2016年9月23日金曜日

oracle ora-12516

初期設定のまま導入したoracleの場合
セッション数やプロセス数という
oracleと処理をやり取りする窓口が小さい場合がある
具体的には 150セッション程度の場合がある
このとき

プログラムを起動している先
(サバクラの場合クライアント)
(winターミナル接続のアプリサーバー側)
のイベントビューアーに

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

というエラーが出力される

状況の確認用sql


SELECT
   RESOURCE_NAME リソース名,
   CURRENT_UTILIZATION 現在数,
   MAX_UTILIZATION 最大数,
   LIMIT_VALUE 上限
FROM
   V$RESOURCE_LIMIT
WHERE
   RESOURCE_NAME IN ('processes','sessions');



SELECT
   S.machine,
   TO_CHAR(S.LOGON_TIME, 'YYYY/MM/DD HH24:MI:SS') LOGON_TIME,
   S.sid,
   S.serial#,
   P.PID ORACLE_PID,
   P.SPID OS_PID,
   S.STATUS,
   S.USERNAME ORACLE_USER,
   S.OSUSER OS_USER,
   S.TERMINAL,
   S.PROGRAM
FROM
   V$PROCESS P
       LEFT OUTER JOIN V$SESSION S
       ON P.ADDR = S.PADDR
WHERE
    P.BACKGROUND IS NULL  AND
    P.PID > 1
ORDER BY
    S.machine,
    TO_CHAR(S.LOGON_TIME, 'YYYY/MM/DD HH24:MI:SS');

などで現在どのくらい接続されているかなど確認する必要がある

上記SQLの最大値と上限に現在数が達している場合
プロセス数又はセッション数の増強を考える必要がある


0 件のコメント:

コメントを投稿