16.6.2 エラー・スタック・メッセージの理解

アプリケーションでは1行のエラー・メッセージしか表示されませんが、ネットワーク層によってログ・ファイルの中に情報量の多いエラー・スタックが記録されます。

クライアント・アプリケーションのユーザーが次のコマンドを入力することでOracle NetとTCP/IPを使用してデータベース・サーバーとの接続を確立しようとしたとします:

SQLPLUS scott@example.com
Enter password: password

コマンドを入力すると、次のエラーが表示されます:

ORA-12543: TNS:Unable to connect to destination

このメッセージは、データベースに連絡できなかったために、サーバーへの接続に失敗したことを示します。

クライアント側では、sqlnet.logファイルに、ORA-12543エラーに対応するエラー・スタックが含まれています。次のログの例で示すように、メッセージは、簡潔な形式(デフォルト設定)またはより詳細な長い形式で表示できます:

  • 簡潔な形式: この形式では、すべての関連情報が1行で表示されます。これにより、ログ・ファイルのサイズが小さくなり、わかりやすくなります。

    sqlnet.oraの設定ENABLE_CONCISE_LOGS=TRUEにより、簡潔な形式でのロギングが有効になります。

  • 長い形式: これは、バージョン情報などのその他の詳細を含む、複数の行が含まれている通常の長い形式です。

    sqlnet.oraの設定ENABLE_CONCISE_LOGS=FALSEにより、簡潔なロギングが無効になり、長い形式でメッセージが出力されます。

例16-3 sqlnet.logファイル: 簡潔な形式

このログ・ファイルでは、デフォルトの簡潔な形式を使用してメッセージが表示されています:

Fatal NI connect error 12514 [Time : 06-AUG-2024 06:33:17] [NS errors [12564:TNS-12564: TNS:connection refused] 0] [NT errors [0 0] 0] [Oracle errors [0 ] 0] [Connecting to: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-sever)(PORT=6513))(CONNECT_DATA=(service_name=sales.example.com)(CID=(PROGRAM=oracle)(HOST=sales-server)(USER=scott))(CONNECTION_ID=1abcAB1+ABcabAB1aBCabl2A==)))] [PID: 1122110]

例16-4 sqlnet.logファイル: 長い形式

このログ・ファイル例では、より長く詳細な形式を使用してメッセージが表示されています:

Fatal NI connect error 12514, connecting to:
 (DESCRIPTION=
  (ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=6513))
  (CONNECT_DATA=
    (service_name=sales.oracle,.com)
    (CID=(PROGRAM=ora cle)(HOST=sales-server)(USER=scott))
    (CONNECTION_ID=945VpOeGXR/gU0tBRmTdxw==)))
VERSION INFORMATION:
 TNS for Linux: Version 23.4.0.0.0 - Development
 Oracle Bequeath NT Protocol Adapter for Linux: Version 23.4.0.0.0 - Development
 TCP/IP NT Protocol Adapter for Linux: Version 23.4.0.0.0 - Development
 Version 23.4.0.0.0
 Time: 23-AUG-2024 08:48:02
 Tracing not turned on. Process Id = 2317599
 Tns error struct:
    ns main err code: 12564
    TNS-12564: TNS:connection refused
    ns secondary err code: 0
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0