一件処理するごとに,JDBC接続でデータベース(ORACLE)にコネクション確立,切断を繰り返しているのですが
一定件数を処理した後,oracleのコネクションが切断され,ORA-12519が発生します.
個人的な見解としては,接続・切断を高速で繰り返しているため接続が不安定になっているものと考えています.
下記が実行環境です.
OS:windowsxp
JDK:1.5
ORACLE:10g
テスト環境のため
コネクションプールは使用していません.
ご質問の主旨は何でしょうか?
ORA-12519 エラーの原因と対策をご質問でしょうか?
エラー・ログも無いので状況がまったく掴めませんが、java側で切断プロセスが完了しないうちに次の接続を行っていないでしょうか?
もしそうであれば、PROCESSES 数を増やしてみて下さい。
ところで、本番環境で1件処理毎にコネクション接続/切断を行うということはしませんよね?
http://d.hatena.ne.jp/yofucasi/20090818/1250602316
Javaなので、切断する命令を書いても実際にはすぐには切断されないので、高速に接続・切断をすると不安定になると思います。
ご回答ありがとうございます。
上にも書きましたが、完全に切断される前に、次のコネクション確立が始まることがあるということでしょうか?
>上にも書きましたが、完全に切断される前に、次のコネクション確立が始まることがあるということでしょうか?
ありえないとはいえません。だから、コネクションプールなどを使って、短期間に確立・切断が起こらないようにするのが一番の
解決策かと。コネクションプールのパラメータの調整がうまくできないと、同じ現象が起こることがあります。
ご回答ありがとうございます。
質問の趣旨なのですが、シンプルにいうとソース上で、コネクション確立→コネクションクローズの順で行われていても、コネクションクローズ中に次のコネクション確立に入る場合があるのかどうかを知りたいのです。ちなみにローカル環境でメインメソッドから起動しているだけなので、シングルクライアントです。
コネクションクローズが完了するまで、次のコネクション確立を待つものを思っていたのですが・・
>>もしそうであれば、PROCESSES 数を増やしてみて下さい。
既存システムですでに使用されているDBなので環境の操作は最後の手段にしたいところなので、最後の手段にしています。
>>ところで、本番環境で1件処理毎にコネクション接続/切断を行うということはしませんよね?
本番環境ではデータソースを使用してコネクションプーリングするので問題なしかと思っていたのですが、問題ありありですか???