подключение к удаленному серверу Oracle с помощью CakePHP - PullRequest
0 голосов
/ 09 июля 2009

Сначала я извиняюсь, если отправил сообщение не туда. Теперь о проблеме:

Я занимаюсь разработкой веб-приложения с CakePHP с бэкэндом Oracle для Windows, изначально разработка велась в CodeIgniter, а недавно мы решили перейти на CakePHP.

Сервер Oracle расположен в другой подсети. Я могу подключить Cake к удаленному серверу без проблем, я настроил простую модель, представление и контроллер. Тем не менее, когда я пытаюсь получить доступ к одному из контроллеров. например http://www.example.com/facilities/, загрузка страницы занимает некоторое время, а через 30 секунд сценарий отключается.

После отладки я обнаружил, что эти строки вызывают проблемы.

cake/libs/model/datasources/dbo/dbo_oracle.php:448


     $sql = 'SELECT view_name AS name FROM all_views UNION SELECT table_name
             AS name FROM all_tables';

    if (!$this->execute($sql)) {
         return false;
     }

Насколько я понимаю, Cake пытается получить все таблицы в базе данных и связать их с моделью. Когда я пытаюсь выполнить вышеуказанный запрос на sqldeveloper, я получил результат 3.7k + и думаю, что он замедляется до такой степени где сценарий истекает.

Есть ли обходной путь к этому?

Спасибо заранее.

1 Ответ

1 голос
/ 09 июля 2009

ALL_TABLES и ALL_VIEWS содержат список всех таблиц / представлений, к которым вы можете получить доступ.

  • Попробуйте подключиться как кто-то с меньшим ВЫБЕРИТЕ привилегии.
  • В качестве альтернативы вы можно изменить ALL_TABLES / ALL_VIEWS USER_TABLES / USER_VIEWS. Тот будет возвращать только те объекты, которые вы владеть.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...