2011-07-12 14 views
1

私は現在、Doctrine_Adapter_Oracleを使用してOracle DB上でDoctrineを使用しています。Doctrine + Oracle =最大オープンカーソル(ORA-01000)

私のアプリケーションでは、多くのオブジェクト(〜700 +)のクエリと挿入/水和を含むバッチ処理が扱われています。

ことをやったとき、私は、Oracleからエラーを取得:

ORA-01000: maximum open cursors exceeded 

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

オラクルによって許可された私の最大のカーソルはIMO、たくさんである、300です。私は何かを逃しているのですか、あるいは教義に何か間違っていますか?

Googleで検索したところ、これはEntry on the Doctrine bug tracker: "Oracle don't close cursor"です。私は提案されたパッチを試しました、そして、それはうまくいくようです。しかし、ジョナサン賃金(Doctrine's Lead)によって落胆しているように見えるので、私は本当にそれを使うのが嫌です。

私はこの1つにこだわっているので、どんな助けでも大歓迎です。

答えて

0

Doctrineに何か問題があるとは思わないです。このエラーに直面したときは、2つの選択肢があります。至急

  1. 閉じるカーソル
  2. 増やしOPEN_CURSORS
提供リンクでの議論は、教義の中にそれを修正するための正しい方法は何かを中心に思わ

+0

基本的には、カーソルの許容数を増やすか、Doctrineを修正するように指示しています。彼らはDoctrineによって完全に管理されているので、私はただ「カーソルをできるだけ早く閉じる」ことができません。 –

+0

私はDoctrieを修正する方法のいくつかの指針を探しています。 (申し訳ありませんが、許可された編集時間は有効期限が切れました) –

+0

あなたは、パッチで、いいえ、できますか?あなたが投稿したリンクが言っていたものではありませんか?自分自身でカーソルの問題を解決したとあなた自身が言っています。何かが壊れています。私が見ているあなたの選択は私がリストしたものです。私はそれがdownvoteを保証するかどうか推測する、そうする。 – DCookie

関連する問題