小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


【対処方法】ORA-12516: TNS: リスナーは、一致するプロトコル・スタックが使用可能なハンドラを検出できませんでした

はじめに

とあるプログラムでOracleへの接続、切断を繰り返す処理があり、途中でORA-12516のエラーとなってしまいました。

ORA-12516: TNS: リスナーは、一致するプロトコル・スタックが使用可能なハンドラを検出できませんでした。

ORA-12516の解決方法について | Oracle CommunityORA-12516の解決方法について | Oracle Community

ざっくり言うと
  • listener.logのログにORA-12516が出力される
  • ORA-12516は同時に接続できるプロセス数を超えたときに発生することがある
  • 初期化パラメタPROCESSESの値を増やすことで回避できる
最大接続数を確認する

f:id:replication:20150307000252p:plain
Oracleには、同時に接続するプロセス数を制限するパラメタがあります。以下のクエリで、データベースに同時に接続できるOSのユーザー・プロセスの最大数を確認できます。

connect sys/oracle as sysdba
show parameter PROCESSES;
最大プロセス数を増やす

pfileやspfileにて、PROCESSESパラメタを増やしてあげれば良いです。