1

Oracle 11gR2データベースにアクセスするためにSpring JDBC 3.2.5を使用して Weblogic Server 12c で実行されている Java エンタープライズ アプリケーションがあります。本番環境でしばらくすると、 「ORA-01000 - 開いているカーソルの最大数を超えました」という例外が発生し、サーバー インスタンスを再起動する必要があります。開いているカーソルは、Oracle で設定された最大しきい値に達するまで、ますます増加しているようです。しきい値を増やしても問題は解決しませんでした。(非常に大きな) ソース コードを確認しましたが、現時点では接続を閉じていない箇所は見つかりませんでした。さらに、通常は接続を開いたり閉じたりしませんが、Spring JdbcTemplate を使用してデータベースの相互作用を処理します。春の問題でしょうか?ヒントはありますか?

4

2 に答える 2

0

Oracle メッセージ「ORA-01000 - 開いているカーソルの最大数を超えました」PreparedStatementは、 s またはsを閉じていないことが原因である可能性がありますResultSetPreparedStatementまたははそれぞれResultSet、Oracle データベースのカーソルです。

このエラーを一時的に回避するには、データベースで開いているカーソルの制限を増やすことができます (ただし、遅かれ早かれ再び発生します)。

このエラーを実際に回避するには、アプリケーション全体を監査し、開いているすべてPreparedStatementの やを閉じる必要がありResultSetます。

PreparedStatementまた、すべての やを追跡する中間 JDBC ドライバーResultSetは、アプリケーションの問題のある部分を特定するのに役立ちます。

于 2014-09-22T12:19:56.183 に答える