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