开发者

Doctrine + Oracle = maximum open cursors exceeded (ORA-01000)

开发者 https://www.devze.com 2023-03-20 05:58 出处:网络
I\'m currently using Doctrine on an Oracle DB, using the Doctrine_Adapte开发者_开发技巧r_Oracle.

I'm currently using Doctrine on an Oracle DB, using the Doctrine_Adapte开发者_开发技巧r_Oracle.

My application deals with some batch treatment, involving querying and inserting/hydrating a lot of objects (~700+).

When doing that, I get an error from Oracle :

ORA-01000: maximum open cursors exceeded 

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

My maximum cursors allowed by Oracle is 300, which IMO, is a lot. So am I missing something, or is there something wrong with Doctrine ?

After some googling, I found this Entry on the Doctrine bug tracker: "Oracle don't close cursor". I tried the suggested patch, and it seems to work. However, I'm really reluctant to use it, as it seems to be discouraged by Jonathan Wage (Doctrine's lead).

I'm pretty stuck on this one, so any help would be greatly appreciated.


I don't think there's much question there's something wrong with Doctrine. You have two choices when faced with this error:

  1. Close cursors ASAP
  2. Increase OPEN_CURSORS

The discussion in the link provided seems to center around what is the right way to fix it within Doctrine.

0

精彩评论

暂无评论...
验证码 换一张
取 消