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:
- Close cursors ASAP
- Increase OPEN_CURSORS
The discussion in the link provided seems to center around what is the right way to fix it within Doctrine.
精彩评论