Doctrine + Oracle = превышено максимальное количество открытых курсоров (ORA-01000) - PullRequest
2 голосов
/ 12 июля 2011

В настоящее время я использую Doctrine для БД Oracle, используя Doctrine_Adapter_Oracle.

Мое приложение имеет дело с некоторой пакетной обработкой, включающей запросы и вставку / увлажнение большого количества объектов (~ 700+).

При этом я получаю сообщение об ошибке от Oracle:

ORA-01000: maximum open cursors exceeded 

ORA-04088: error during execution of trigger 'SYSTEM.DOCUMENT_AI_PK' : INSERT INTO (...)

Мои максимальные курсоры, разрешенные Oracle, равны 300, что, по мнению IMO, много . Так я что-то упустил или что-то не так с Доктриной?

После некоторого поиска в Google, я нашел Запись в трекере ошибок Doctrine: «Oracle не закрывает курсор» . Я попробовал предложенный патч, и он, кажется, работает. Однако я очень неохотно его использую, поскольку Джонатан Вейдж (лидер Доктрины), похоже, обескураживает его.

Я застрял на этом, поэтому любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 июля 2011

Не думаю, что есть много вопросов, что-то не так с Доктриной. Когда вы сталкиваетесь с этой ошибкой, у вас есть два варианта:

  1. Закрыть курсоры как можно скорее
  2. Увеличение OPEN_CURSORS

Обсуждение в приведенной ссылке, кажется, сосредоточено вокруг того, как правильно исправить это в Doctrine.

...