sql >> データベース >  >> RDS >> Oracle

ORA-01000:Spring SimpleJDBCCall使用時に、開いているカーソルの最大数を超えました

    多くのテストの後、この問題を修正しました。これは、SpringフレームワークとOracleクライアントおよびOracleDBをどのように使用していたかを組み合わせたものです。クローズおよびクリーンアップされていないカーソルとして返されるOracleJDBCクライアントのメタデータ呼び出しを使用する新しいSimpleJDBCCallsを作成していました。これは、Spring JDBCフレームワークがメタデータを呼び出す方法のバグであると考えていますが、カーソルを閉じません。 Springは、カーソルからメタデータをコピーして適切に閉じる必要があります。ベストプラクティスを使用するとバグが表示されないため、春にjiraの問題を開くことを気にしませんでした。

    OPEN_CURSORSまたはその他のパラメータを微調整することは、この問題を修正するための間違った方法であり、表示されるのを遅らせるだけです。

    SimpleJDBCCallをシングルトンDAOに移動することで回避/修正したため、呼び出すoracleprocごとに1つのカーソルしか開かれません。これらのカーソルはアプリの存続期間中開いています-これはバグだと思います。 OPEN_CURSORSがSimpleJDBCCallオブジェクトの数よりも大きい限り、面倒なことはありません。



    1. ストアドプロシージャパラメータSQLにINステートメントを使用する

    2. PLSQL例外のロールバック

    3. MySQLトリガーのクイックアップデート

    4. MLSLABEL Oracleデータ型とは何ですか?