16.3.11 ORA-12520

リクエストされたサーバー・タイプの使用可能なハンドラをリスナーが見つけられないことを示します。

メッセージ

ORA-12520: Cannot connect to database.
Listener at string does not have handler 
  for string server type
  ready or registered for service string.
(CONNECTION_ID=string)
たとえば:
ORA-12520: Cannot connect to database. 
Listener at host 10.9.7.5 port 1522 does not have handler
  for pooled server type 
  ready or registered for service sales_service.example.com.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)

原因

Oracle Databaseのリスナー・プロセスによって接続が拒否されました。リクエストされたサーバー・タイプ(専用、共有またはプール)に対して、クライアント接続に適した既知の使用可能なハンドラがありません。

処置

  1. 指定した接続文字列に誤りがないかを確認します。

  2. 接続文字列内のSERVERパラメータまたはtnsnames.oraファイルの接続記述子で、リスナーが認識するハンドラでサポートされているサーバー・タイプ(専用、共有またはプール)が指定されていることを確認します。

  3. 簡易接続の接続文字列を使用している場合は、リスナーが認識するハンドラによって指定したサーバー・タイプがサポートされていることを確認します。

  4. しばらくしてから、接続を再試行してください。サービス・ハンドラがブロック状態の可能性があり、新しい接続が受け入れられていません。

  5. CONNECTION_ID値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。

  6. 現在リスナーに認識されていて、接続を受け入れているハンドラを確認するために、次のいずれかのタスクを実行します。
    • データベース管理者に問い合せてください。

    • クラウド・サービス・コンソールに表示される接続文字列をレビューします。

    • リスナーを実行しているマシンにアクセスできる場合は、次のいずれかを実行します。
      • lsnrctl services

      • リスナーがlistener.oraファイルで指定されている場合は、次を実行します。
        lsnrctl services listener_name
      • Oracle Connection Manager (Oracle CMAN)プロキシ・リスナーの名前がcman.oraファイルで指定されている場合は、次を実行します。
        cmctl show services -c cman_name
      • Oracle Global Service Manager (Oracle GSM)リスナーの名前がgsm.oraファイルで指定されている場合は、次を実行します。
        gdsctl services -raw -gsm gsm_name