• 締切済み

ORA-00019発生のメカニズムについてご教授下さい。

最大同時接続数(35件)より少ない数(5件)の同時接続を行った時「ORA-00019: 最大セッション・ライセンス数を超えました」が発生しました。 V$LICENSEで確認したところ何故かSESSIONS_MAX<SESSIONS_CURRENTとなっており、古いセッション情報が残っていました。 これら古いセッション情報のステータスはINACTIVEとなっていたので新しい接続がきた場合、リプレースされるものと思っていましたが同時接続を試みると上記エラーとなります。(単一で接続するとリプレースされます) そもそも古いセッション情報は一定時間が経過すると削除されるとの認識でいましたが、削除されない条件(ステータス以外)とは何なのでしょうか? 何方かご教授下さい。

みんなの回答

  • ishi7474
  • ベストアンサー率32% (71/216)
回答No.1

通常データベースへの接続は、クライアント側から明示的に切断する ものです。一定時間アイドルのセッションを切断したければ、そのような 設定が必要です。 ご使用のアプリケーションと「単一で接続するとリプレースされます」の 意味を補足説明されれば、他の回答も得られると思います。

hiro1961__
質問者

補足

ご返答ありがとうございます。 質問の内容につきまして補足致します。 「単一で接続するとリプレースされます」と言うのは、1つのセッションのみを接続させた場合、V$LICENSEのSESSIONS_CURRENT値がSESSIONS_MAX値を超えていても接続可能でしたと言う意味です。 (ある権限を持つユーザであれば接続は可能と言うところまでは判明してます) あと、「クライアント側から明示的に切断する」についてですが、本アプリ、JAVAで作成しており、処理終了時には明示的に切断(Connection.close)しております。 現在はインスタンスの上げ下げを行いSESSIONS_CURRENT値を初期化し同時接続は可能となっておりますし、同時接続時V$LICENSEのSESSIONS_CURRENT値は同時接続数分一時的に増えますが、セッション切断後即ではありませんが数分後には初期化した値に戻ります。 以上よろしくお願いします。

関連するQ&A