16 Oracle Net Servicesのトラブルシューティング
Oracle Net Servicesでは、ネットワークの問題を理解し、テストして、解決するための手段が提供されています。Oracle Databaseには、ネットワークの接続と問題をテストおよび診断するための、ユーティリティおよびログ・ファイルとトレース・ファイルが含まれます。
TNSPING
およびTRCROUTE
ユーティリティでは、接続をテストします。ログ・ファイルとトレース・ファイルは、エラーが発生すると、ネットワーク・コンポーネント間の対話を追跡し記録します。この情報を評価すると、ネットワーク上の問題点を診断してトラブルシューティングできます。
一般的なテスト手順とネットワーク・エラー、および問題を解決する手順の概要について説明します。また、より複雑なネットワークの問題を診断してトラブルシューティングするために、エラー情報をロギングしてトレースする方法も学習します。
- 自動診断リポジトリの理解
自動診断リポジトリ(ADR)は、システム全体のトレースおよびロギング用の中央リポジトリです。 - Oracle Net Servicesの診断
すべての基礎となるエラーは、重大かどうかに関係なく、エラー番号またはエラー・メッセージでOracle Net Servicesによって報告されます。エラー番号およびエラー・メッセージは問題の診断に役立つ情報を提供しますが、常に実際の問題を指しているわけではありません。 - Oracle Net Servicesの最も一般的なエラー・メッセージの解決
ネットワーク通信が複雑であるため、様々な理由で各種ソースからネットワーク・エラーが発生する場合があります。エラーが発生した場合、Oracle Net Servicesからのネットワーク・サービスに依存しているSQL*Plusなどのアプリケーションは、通常、エラー・メッセージを生成します。 - Oracle Net Servicesのトラブルシューティングのヒント
ネットワークの問題を診断し、Traffic DirectorモードのOracle Connection Managerをトラブルシューティングするために次のようなヒントがあります。 - TNS-12154エラーのトラブルシューティングの例
この項では、TNS-12154エラーの解決策をいくつか示します。TNS-12154エラーは、SQL*Netがtnsnames.ora
ファイルまたはその他のネーミング・アダプタの接続に指定された接続識別子を検出できない場合に発生します。 - Oracle Net Servicesのエラー情報のロギング
Oracle Net Servicesで発生したエラーはすべて、ネットワーク管理者やデータベース管理者が評価できるように、ログ・ファイルに追加記録されます。ログ・ファイルは、画面に表示されるエラー・メッセージについて、管理者用の追加情報を提供します。ログ・ファイルのエラー・スタックは、各種レイヤーでのソフトウェアの状態を示します。 - Oracle Net Servicesのエラー情報のトレース
トレース機能では、実行されたネットワーク・イベントが記述される、詳細な一連の文が生成されます。操作をトレースすると、ログ・ファイルにある情報より多くのOracle Net Servicesコンポーネントの内部操作に関する情報が得られます。 - Oracleサポート・サービスへの連絡
一部のエラー・メッセージでは、Oracleサポート・サービスに連絡して問題を報告することをお薦めしています。Oracleサポート・サービスに連絡する場合は、次の情報を用意してください。
16.1 自動診断リポジトリの理解
自動診断リポジトリ(ADR)は、システム全体のトレースおよびロギング用の中央リポジトリです。
このリポジトリは、ネットワーク・トレースおよびロギング情報などの診断情報を蓄積するための、ファイルベースの階層データ・ストアです。
ADRホームは、Oracle製品のインスタンスに割り当てられるADRディレクトリのユニットです。各データベース・インスタンスに独自のADRホームが割り当てられます。同様に、各リスナー、Oracle Connection Managerおよびクライアント・インスタンスにも独自のADRホームが割り当てられます。
プロセス障害の場合は、インシデントが生成されます。インシデント・ダンプ・ファイルは、ADR_BASE/ADR_HOME/incident/
ディレクトリにあり、ORACLE_BASE
変数が設定されている場合、ADR_BASE
はデフォルトでORACLE_BASE
になります。この変数が設定されていない場合、ADR_BASE
はORACLE_HOME/log
になります。ADR_BASE
は任意の場所に設定できます。
インシデント・ダンプ・ファイルの場所は、プロセス・トレース・ファイル内でがわかります。
ADRホームの場所は、ADRの基本ディレクトリから始まる次のパスで指定されます。
diag/product_type
/product_id
/instance_id
次の表では、Oracle Net Listenerインスタンスのパス・コンポーネントの値を示します。
表16-1 Oracle Net ListenerインスタンスのADRホームのパス・コンポーネント
パス・コンポーネント | Oracle Net Listenerの値 |
---|---|
|
|
|
ホスト名 |
|
リスナーの別名 |
次の図では、Oracle Net ListenerインスタンスのADRのディレクトリ階層を示します。その他のOracle製品またはコンポーネント(Oracle Automatic Storage Management(Oracle ASM)またはOracle Databaseなど)に対するその他のADRホームが、この階層内の同じADRベースの下に存在する場合があります。
次の表では、Oracle Connection Managerインスタンスのパス・コンポーネントの値を示します。
表16-2 Oracle Connection ManagerインスタンスのADRホームのパス・コンポーネント
パス・コンポーネント | Oracle Connection Managerの値 |
---|---|
|
|
|
ホスト名 |
|
Oracle Connection Managerインスタンス名 |
次の図では、Oracle Connection ManagerインスタンスのADRのディレクトリ階層を示します。その他のOracle製品またはコンポーネント(Oracle ASMまたはOracle Databaseなど)に対するその他のADRホームが、この階層内の同じADRベースの下に存在する場合があります。
ADRホーム・ディレクトリ内のサブディレクトリでは、各インスタンス(データベース、リスナー、Oracle Connection Managerまたはクライアント)により診断データが格納されます。次の表では、前の図で示したすべてのサブディレクトリと、その内容を一覧で示します。
表16-3 ADRホームのサブディレクトリ
サブディレクトリ名 | 目次 |
---|---|
|
|
|
コア・ファイル。 |
|
複数のサブディレクトリがあり、各サブディレクトリには特定のインシデントの名前が付けられ、そのインシデントのみに関するダンプが含まれます。 |
|
バックグラウンド・プロセスとサーバー・プロセスのトレース・ファイル、SQLトレース・ファイル、およびalertディレクトリの |
|
ADRホームのその他のサブディレクトリには、インシデント・パッケージ、状態モニター・レポートなどの情報が格納されます。 |
ADR_BASE
ディレクトリは、1つ以上のADRホームが置かれる物理的な場所です。概念的には、これはADRのルート・ディレクトリです。
非ADR(つまりDIAG_ADR_ENABLED
パラメータがOFF
に設定されている)の診断およびトレースの方法が現在も主流であり適用可能ですが、ADRが有効である場合、このパラメータは無視されます。ADRはデフォルトで有効になります。
診断パラメータは次の構成ファイルにあります。
-
sqlnet.ora
(クライアント用) -
listener.ora
(リスナー用) -
cman.ora
(Oracle Connection Manager用)
次の表では、ADRベースの診断と非ADRベースの診断の両方で使用される、sqlnet.ora
ファイル内にある診断パラメータの使用について比較しています。
表16-4 sqlnet.oraファイルの診断パラメータの比較
パラメータ | DIAG_ADR_ENABLED=ON | DIAG_ADR_ENABLED=OFF |
---|---|---|
|
有効 |
無効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
次の表では、ADRベースの診断と非ADRベースの診断の両方で使用される、listener.ora
ファイル内にある診断パラメータの使用について比較しています。
表16-5 listener.oraファイルの診断パラメータの比較
パラメータ | DIAG_ADR_ENABLED=ON | DIAG_ADR_ENABLED=OFF |
---|---|---|
|
有効 |
無効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
次の表では、ADRベースの診断と非ADRベースの診断の両方で使用される、cman.ora
ファイル内にある診断パラメータの使用について比較しています。
表16-6 cman.oraファイルの診断パラメータの比較
パラメータ | DIAG_ADR_ENABLED=ON | DIAG_ADR_ENABLED=OFF |
---|---|---|
|
有効 |
無効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
有効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
|
無効 |
有効 |
-
クライアントADRホームの場所に関するその他の情報は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。
-
ADRに関するその他の情報は、『Oracle Database管理者ガイド』を参照してください。
-
診断パラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
16.1.1 ADRCI: ADRコマンド・インタプリタ
ADRCIは、故障診断機能インフラストラクチャに使用されるコマンドライン・ツールです。ADRCIでは、次のことができます。
-
ADR内で診断データを表示
-
インシデントおよび問題に関する情報をZIPファイルにパッケージ化し、Oracleサポート・サービスに転送
診断データには、インシデントおよび問題に関する説明、トレース・ファイル、ダンプ、状態監視レポート、アラート・ログ・エントリなどが含まれます。
ADRCIには豊富なコマンド・セットがあり、対話型モードまたはスクリプト内で使用できます。さらに、ADRCIは、SQL*PlusがSQLコマンドおよびPL/SQLコマンドを使用してスクリプトを実行するのと同じ方法で、ADRCIコマンドのスクリプトを実行できます。
ADRCIを使用してトレース・ファイルを表示するには、コマンドラインでADRCI
と入力します。次に示すのは、クライアントの確認に使用される共通のADRCIコマンドです。
クライアント側
adrci> SHOW ALERT adrci> SHOW BASE -product client adrci> SET BASE -productclient
adrci> SHOW TRACEFILE adrci> SHOW TRACEtrace_file
.trc adrci> SHOW SPOOL
前述のコマンドで、SHOW ALERT
コマンドはlog.xml
ファイルをVIなどのテキスト・エディタで表示します。SHOW BASE -product client
コマンドは、クライアントのADR_BASE
ディレクトリの値を表示します。表示された値は、SET BASE
コマンドのclientに使用します。
次に示すのは、サーバーの確認に使用される共通のADRCIコマンドです。
サーバー側
adrci> SHOW BASE
adrci> SHOW TRACEFILE
adrci> SHOW TRACE trace_file
.trc
さらに対象を絞ったOracle Netトレース・ファイル分析を行うには、その他のADRCIコマンド・オプションを使用できます。ヘルプ・ドキュメントにアクセスするには、ADRCIプロンプトでHELP
と入力します。
関連項目:
ADRCIの詳細は、『Oracle Databaseユーティリティ』を参照してください。
親トピック: 自動診断リポジトリの理解
16.2 Oracle Net Servicesの診断
すべての基礎となるエラーは、重大かどうかに関係なく、エラー番号またはエラー・メッセージでOracle Net Servicesによって報告されます。エラー番号およびエラー・メッセージは問題の診断に役立つ情報を提供しますが、常に実際の問題を指しているわけではありません。
この項は、Oracle Net Servicesの正しく機能している部分を特定するのに役立ちます。また、エラーが次のどのカテゴリに属しているかを判別することもできます。
- Oracleソフトウェア
- オペレーティング・システム・レイヤー
- その他のネットワーク・レイヤー
ほとんどの場合、各種ネットワーク層を順にテストすることで問題を発見できます。
Oracle Database 21c以降では、ネットワーク接続ごとに接続識別子を使用できます。接続識別子は、様々なネットワーク要素のトレースおよびログで接続を一意に識別し、これらの要素の診断データを関連付けるのに役立ちます。
SQL*Net接続に、クライアントからOracle Connection Manager (CMAN)へ、その後サーバーへなどの複数のホップがある場合は、既存のログおよびトレースからの診断情報の関連付けが困難になります。ただし、接続識別子が使用できるようになったため、診断の関連付け、ネットワーク・データ・トラフィックの追跡および接続エラーの解決を行うことができます。
接続識別子は、CONNECTION_ID
およびCONNECTION_ID_PREFIX
の2つのコンポーネントで構成されます。CONNECTION_ID
パラメータには一意の値が含まれ、この値は、接続がクライアントから開始されたときに生成されます。CONNECTION_ID_PREFIX
は、接続識別子に追加されるアプリケーション固有の接頭辞パラメータです。
16.2.1 サーバーの問題の診断
サーバーの問題の診断を開始するには、次の項目をチェックします。
-
他のシステム(ワークステーション、サーバーなど)はOracle Netを使用してサーバーに接続できる。
-
サーバー、データベースまたはリスナーの構成は、しばらくの間変更されていない。
前述の項目に1つでも当てはまる場合は、「クライアントの問題の診断」に進みます。
不明な場合、またはいずれにも当てはまらない場合、この項のタスクを使用して問題を診断します。サーバー上のOracle Net Servicesを診断するには次の作業を行います。
- タスク1 データベースの実行状態の検証
-
データベースが起動していることを確認するため、有効なユーザー名とパスワードを使用してデータベースにログインおよび接続します。たとえば:
SQLPLUS system Enter password:
password
データベースに接続していることを確認するメッセージが表示されます。次のエラーが表示される場合は、データベース管理者に連絡してください。
-
ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
-
ORA-01034: Oracleは使用できません。
-
- タスク2 ループバック・テストの実行
-
ループバック・テストでは、Oracle Netを使用してデータベース・サーバーからInterprocess Communication(IPC)プロトコルを利用せずにサーバー自体に戻ります。多数のネットワーク・プロトコルが、ネットワーク接続をテストする方法を用意しています。PINGユーティリティは、TCP/IPネットワークで使用できます。ループバックが正常に終了すると、Oracle Netがデータベース・サーバーで機能していることが確認できます。
次の手順では、サーバーからデータベースにループバック・テストを実行する方法について説明します。
-
listener.ora
、tnsnames.ora
およびsqlnet.ora
の各ファイルが、「ローカライズされた管理の使用」で説明しているとおり、正しい場所にあることを確認します。 -
Oracle Net Managerを起動します。
-
ナビゲータで、「ディレクトリ」または「ローカル」オプションを展開します。
-
「サービス・ネーミング」を展開し、使用可能なネットワーク・サービスとデータベースの名前を表示します。
-
ネットワーク・サービス名またはデータベース・サービスを選択します。
-
「ツール」を選択し、ネット・サービスのテストを選択します。
このテストでは、リスナーとデータベースが実行されている必要があります。実行されていない場合は、「Oracle Net ListenerとOracle Databaseサーバーの起動」を参照してコンポーネントを起動してください。
テスト中、ステータスとテスト結果を示す「接続テスト」ダイアログ・ボックスが表示されます。テストが成功すると、次のメッセージが表示されます。
The connection test was successful.
テストが成功した場合は、ステップ7に進んでください。
テストが正常終了しなかった場合は、次の処置を行ってください。
-
データベースとリスナーが実行されていることを確認し、「テスト」をクリックします。
-
「ログインの変更」をクリックして、接続に使用するユーザー名とパスワードを変更し、「テスト」をクリックします。
-
ループバック・テストが正常に終了する場合は、「クライアントの問題の診断」に進みます。
-
ループバック・テストでエラーが発生する場合、Oracleサポート・サービスに問い合せてください。
-
-
「閉じる」をクリックして「接続テスト」ダイアログ・ボックスを閉じます。
-
親トピック: Oracle Net Servicesの診断
16.2.2 クライアントの問題の診断
次の文の少なくとも1つを検証します。これはクライアントの問題かどうかを判定するのに役立ちます。
-
接続が機能していることを示すデータベース・サーバーでのループバック・テストが正常終了した。
-
他のコンピュータがOracle Net Servicesを使用して同じデータベースに接続している。
-
このコンピュータに変更を加える(新たな製品のインストールやネットワーク構成の変更など)前は、このワークステーションからの接続が機能していた。
次の手順では、クライアントでの診断の実行方法を説明します。
-
データベース・サーバーにインストールされているのと同じプロトコル・サポートがインストールされていることを確認します。
UNIXおよびUNIXプラットフォームの場合は、
ADAPTERS
ユーティリティを使用してプロトコル・サポートを確認できます。データベース・サーバーで、ORACLE_HOME/bin
ディレクトリから次のコマンドを実行して、oracle
実行可能プログラムにリンクするプロトコル・サポート、ネーミング・メソッドおよびセキュリティ・オプションを表示します。adapters ./oracle
次に、
adapters
ユーティリティによる出力例を示します。Installed Oracle Net transport protocols are: IPC BEQ TCP/IP SSL RAW SDP/IB Installed Oracle Net naming methods are: Local Naming (tnsnames.ora) Oracle Directory Naming Oracle Host Naming NIS Naming Installed Oracle Advanced Security options are: RC4 40-bit encryption RC4 56-bit encryption RC4 128-bit encryption RC4 256-bit encryption DES40 40-bit encryption DES 56-bit encryption 3DES 112-bit encryption 3DES 168-bit encryption AES 128-bit encryption AES 192-bit encryption AES 256-bit encryption MD5 crypto-checksumming SHA crypto-checksumming (for FIPS) SHA-1 crypto-checksumming Kerberos v5 authentication RADIUS authentication
クライアントで、
ORACLE_HOME/bin
ディレクトリからadapters
コマンドを実行して、構成されたOracle protocol support、ネーミング・メソッドおよびセキュリティ・オプションを表示します。次に、ADAPTERS
ユーティリティによる出力例を示します。Installed Oracle Net transport protocols are: IPC BEQ TCP/IP SSL RAW SDP/IB Exadirect Installed Oracle Net naming methods are: Local Naming (tnsnames.ora) Oracle Directory Naming Oracle Host Naming Installed Oracle Advanced Security options are: RC4 40-bit encryption RC4 56-bit encryption RC4 128-bit encryption RC4 256-bit encryption DES40 40-bit encryption DES 56-bit encryption 3DES 112-bit encryption 3DES 168-bit encryption AES 128-bit encryption AES 192-bit encryption AES 256-bit encryption MD5 crypto-checksumming SHA-1 crypto-checksumming Kerberos v5 authentication RADIUS authentication
ノート:
-
DES
、DES40
、3DES 112
、3DES 168
、RC4 40
、RC4 56
、RC4 128
、RC4 256
およびMD5
アルゴリズムは、このリリースでは非推奨です。より強力なアルゴリズムを使用するようにOracle Database環境を移行するには、My Oracle Supportノート2118136.2で説明されているパッチをダウンロードしてインストールします。
-
RAWはOracle Netで使用される内部プロトコルです。
関連項目:
adapters
ユーティリティの詳細は、『Oracle Database管理者リファレンス』を参照してください。 -
-
基底のネットワーク・トランスポートの基本的な接続性をチェックします。Oracle Netテクノロジは、正常な接続のために基底のネットワークに依存しています。
表16-7 ネットワーク・トランスポートの基本的な接続性の確認
プロトコル 確認方法 TCP/IP
クライアントからデータベース・サーバーに端末エミュレーションまたはファイル転送ユーティリティ(PING、FTP、TELNET)を使用する。
名前付きパイプ
-
マイクロソフト・ネットワーク上のその他のコンピュータやサーバーを確認する。
-
ネットワーク内のドライブを共有できることを確認する。
-
-
Oracle Net Foundationレイヤーおよび適切なOracle protocol supportが存在することを確認するため、すべてのクライアント用Oracle Net Servicesソフトウェアがインストールされていることを確認します。
-
クライアント・コンピュータの正しい場所に、
tnsnames.ora
ファイルとsqlnet.ora
ファイルが存在していることを確認します。関連項目:
選択したOracle Databaseに接続している他の稼働中のクライアント・コンピュータがある場合は、既存のファイルのバックアップをとって、稼働中のクライアント・コンピュータの
tnsnames.ora
ファイルとsqlnet.ora
ファイルを稼働していないクライアントにコピーします。これにより、ファイルにエラーが含まれている可能性が排除されます。 -
Oracle Net Foundationレイヤーをテストします。次のコマンドを使用してSQL*Plusに接続してテストできます。
SQLPLUS
user
/password
@connect_string
ノート:
TNSPINGユーティリティは使用しないでください。TNSPINGユーティリティはTCP/IP pingユーティリティと同様に機能します。これはソケットの作成やオープンは行わず、リスナーとは接続しません。表示されるのは、リスナーがデータベース・サーバー上に存在することのみです。
-
それでも接続がうまくいかない場合、次の作業を行います。
-
「Oracle Net Servicesのエラー情報のトレース」の項の説明に従って、トレースを使用する。
-
Oracleサポート・サービスのWebサイトで、発生したエラーに関する診断情報を確認する。
-
Oracleサポート・サービスに問い合せてください。
-
親トピック: Oracle Net Servicesの診断
16.3 Oracle Net Servicesの最も一般的なエラー・メッセージの解決
ネットワーク通信が複雑であるため、様々な理由で各種ソースからネットワーク・エラーが発生する場合があります。エラーが発生した場合、Oracle Net Servicesからのネットワーク・サービスに依存しているSQL*Plusなどのアプリケーションは、通常、エラー・メッセージを生成します。
特定のエラー・メッセージの情報に関しては、Oracleエラー・ツールのoerr
を使用し、任意のコマンドラインで次のコマンドを入力します。
oerrcode
error_number
前述のコマンドで、codeはORAやTNSなどのメッセージのタイプ、error_numberはエラー・メッセージに関連付けられている番号です。
次に、最も一般的なネットワーク・エラー・メッセージをリストします:
- ORA-03113
データベース・サーバーでエラーが発生したことを示します。 - ORA-12154
指定した接続別名を解決できないことを示します。 - ORA-12170
Transmission Control Protocol (TCP)接続タイムアウト、アウトバウンド接続タイムアウト、受信タイムアウトなどのタイムアウトによって接続が失敗したことを示します。 - ORA-12241
Microsoft Windowsシステムに表示されて、特定のサービスが使用できないか、実行されていないことを示します。 - ORA-12261
簡易接続構文のエラーにより、指定した接続別名を解決できないことを示します。 - ORA-12262
簡易接続構文のホスト名が無効なため、指定された接続別名を解決できないことを示します。 - ORA-12500
リスナーがOracleプログラムの起動に失敗したことを示します。 - ORA-12505
接続記述子で指定されたシステム識別子(SID)をリスナーが識別できないことを示します。 - ORA-12514
接続記述子でリクエストされたサービスをリスナーが識別できないことを示します。 - ORA-12516
一致するプロトコル・スタックが設定された使用可能なハンドラをリスナーが見つけられないことを示します。 - ORA-12520
リクエストされたサーバー・タイプの使用可能なハンドラをリスナーが見つけられないことを示します。 - ORA-12521
接続記述子でリクエストされたインスタンスをリスナーが識別できないことを示します。 - ORA-12525
クライアントがlistener.ora
ファイルのINBOUND_CONNECT_TIMEOUT_listener_name
パラメータで指定された時間内に接続要求を完了するのに失敗したことを示します。 - ORA-12533
ADDRESS
セクションのパラメータが正しくないことを示します。 - ORA-12540およびTNS-00510
内部制限を超えていることを示します。 - ORA-12541
リスナーに到達できないことを示します。 - ORA-12549およびTNS-00519
オペレーティング・システムで設定されている割当てまたはハード・リミットを超えたことを示します。 - ORA-12560
下位レベルの通信プロトコル・アダプタのエラーが発生したことを示します。 - ディレクトリ・ネーミング・エラー
関連項目:
エラー・メッセージの完全なリストは、『Oracle Databaseエラー・メッセージ』を参照してください。
16.3.1 ORA-03113
データベース・サーバーでエラーが発生したことを示します。
メッセージ
ORA-03113: End-of-file on communication channel
原因
通信チャネルで予期しないファイルの終了処理が行われました。通信リンクが少なくとも一時的に停止していることを示しているか、サーバーが停止したことを示している可能性があります。
処置
サーバー上のalert_sid.log
ファイルをチェックします。再送回数の変更が必要である可能性があります。
16.3.2 ORA-12154
指定した接続別名を解決できないことを示します。
メッセージ
ORA-12154: Cannot connect to database.
Could not find alias string in string.
たとえば:
ORA-12154: Cannot connect to database.
Could not find alias sales in LDAP.
-
1つの(システムまたはローカル)
tnsnames.ora
ファイルのみを使用する場合:ORA-12154: Cannot connect to database. Could not find alias sales in /u01/app/oracle/product/21.3.0/dbhome_1/network/admin/tnsnames.ora.
-
システムとローカル両方の
tnsnames.ora
ファイルを使用する場合:ORA-12154: Cannot connect to database. Could not find alias sales in path_to_file_1, path_to_file_2.
-
1つの(システムまたはローカル)
tnsnames.ora
ファイルのみを使用する場合:ORA-12154: Cannot connect to database. Could not find alias sales in /u01/app/oracle/product/21.3.0/dbhome_1/network/admin/tnsnames.ora and LDAP.
-
システムとローカル両方の
tnsnames.ora
ファイルを使用する場合:ORA-12154: Cannot connect to database. Could not find alias sales in path_to_file_1, path_to_file_2 and LDAP.
原因
データベースまたは他のサービスへの接続が接続記述子を使用してリクエストされていますが、指定された別名は、構成されているどのネーミング・メソッドを使用しても接続記述子に解決できません。たとえば、接続識別子としてネットワーク・サービス名を使用していた場合、そのネットワーク・サービス名がネーミング・メソッド・リポジトリで見つからないか、リポジトリが見つかっていません。
デフォルトでは、ローカル(TNSNAMES)から開始して、LDAP、簡易接続プラスの順ですべてのネーミング・メソッドがクライアントで試行されます。これらすべてのネーミング・メソッドで別名の解決に失敗すると、エラーが返されます。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
sqlnet.ora
ファイルにNAMES.DIRECTORY_PATH
パラメータが含まれている場合は、そのパラメータに有効な値が含まれていることを確認してください。 -
tnsnames.ora
ファイルの別名を使用している場合は、次のステップを実行します:-
tnsnames.ora
ファイルが正しいディレクトリに存在していて、アクセスできることを確認します。tnsnames.ora
ファイルは次のいずれかの場所にあります:-
環境変数
TNS_ADMIN
で指定したディレクトリ(設定されている場合)。 -
ORACLE_BASE_HOME/network/admin
ディレクトリ。ファイルがORACLE_BASE_HOME/network/admin
ディレクトリにない場合は、ORACLE_HOME/network/admin
ディレクトリでファイルを探します。
-
-
接続文字列に指定された別名が、いずれかの
tnsnames.ora
ファイルに存在することを確認します。名前が単純で
sqlnet.ora
ファイルにNAMES_DEFAULT_DOMAIN
がない場合、またはネットワーク・サービス名が完全修飾名である場合は、このネットワーク・サービス名がtnsnames.ora
ファイルの名前と厳密に一致している必要があります。接続文字列のネットワーク・サービス名が単純な場合は、sqlnet.ora
ファイルのNAMES_DEFAULT_DOMAIN
パラメータを調べます。その値が、接続文字列で指定されているネットワーク・サービス名に追加されます。この完全修飾名が、tnsnames.ora
ファイル内のエントリである必要があります。 -
tnsnames.ora
ファイルのどこにも構文エラーがないことを確認します。一致しないカッコまたは文字を検索してください。マジック・クォートが使用されていないことを確認します。 -
「ログイン」ダイアログ・ボックスから接続する場合は、接続するネットワーク・サービス名の前にアット・マーク(
@
)を付けていないことを確認します。クライアントのトレースをアクティブにして、操作を繰返します。
-
-
LDAPディレクトリ・ネーミングを使用している場合は、次のステップを実行します:
-
接続識別子として使用したネット・サービス名またはデータベース名が、ディレクトリ内で構成されていることを確認します。
-
LDAPディレクトリ・サーバーが稼働しており、アクセスできることを確認してください。
-
接続識別子として完全修飾ネット・サービス名または完全なLDAP DNを指定して、使用するデフォルト・コンテキストが正しいことを確認してください。
-
ldap.ora
ファイルが正しい場所に存在することを確認します。ldap.ora
ファイルが、次のディレクトリで次の順に検索されます:-
環境変数
TNS_ADMIN
で指定されたディレクトリ。 -
ORACLE_BASE_HOME/network/admin
ディレクトリ。ファイルがORACLE_BASE_HOME/network/admin
ディレクトリにない場合は、ORACLE_HOME/network/admin
ディレクトリでファイルが検索されます。 -
環境変数
LDAP_ADMIN
で指定されているディレクトリ。 -
読取り専用Oracleホームの場合は
ORACLE_BASE_HOME/network/admin
ディレクトリ。 -
読取り/書込みOracleホームの場合は
ORACLE_HOME/network/admin
ディレクトリ。
-
-
次のように、
ldap.ora
ファイルで定義されているパラメータが正しいことを確認します。-
DIRECTORY_SERVERS
パラメータで、1つ以上の有効なLDAPサーバーの正しいホストとポートが定義されていること。 -
DEFAULT_ADMIN_CONTEXT
パラメータに、このディレクトリのOracleコンテキストの場所が定義されていること。ここにネットワーク・サービスのエントリが含まれている必要があります。
ldap.ora
ファイルが存在しない場合、これらのパラメータは自動検出を使用して解決されます。 -
-
LDAPサーバーのホストとポートがDNSで定義されていることを確認します。
-
ディレクトリでデフォルトのOracleコンテキストが定義されていることを確認します。
-
ldapsearch
ユーティリティまたはディレクトリ管理ツールを使用して、DEFAULT_ADMIN_CONTEXT
パラメータの値で指定されている場所のOracleコンテキスト内にネットワーク・サービス・オブジェクトが存在することを確認します。
-
16.3.3 ORA-12170
Transmission Control Protocol (TCP)接続タイムアウト、アウトバウンド接続タイムアウト、受信タイムアウトなどのタイムアウトによって接続が失敗したことを示しています。
メッセージ
ORA-12170: Cannot connect.
string timeout of string for string.
(CONNECTION_ID=string)
たとえば:
ORA-12170: Cannot connect.
TCP connect timeout of 30s for host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
ORA-12170: Cannot connect.
Outbound connect timeout of 30s for host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
ORA-12170: Cannot connect.
Receive timeout of 30s for host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
原因
割り当てられた時間間隔内に接続リクエストを完了できません。これは、ネットワークまたはシステムの遅延の結果であるか、データベース・サーバーでのサービス拒否(DoS)攻撃を示している可能性があります。
処置
-
このエラーがアプリケーションで発生した場合は、次のタスクを実行します:
-
簡易接続または
tnsnames.ora
の接続文字列でCONNECT_TIMEOUT
またはTRANSPORT_CONNECT_TIMEOUT
パラメータを使用した場合は、これらのパラメータにさらに大きい値に設定します。または、クライアントのsqlnet.ora
ファイルで、次のパラメータのいずれかまたはすべてをさらに大きい値に設定します:-
SQLNET.OUTBOUND_CONNECT_TIMEOUT
-
SQLNET.RECV_TIMEOUT
-
TCP.CONNECT_TIMEOUT
接続文字列のパラメータは、それに対応する
sqlnet.ora
のパラメータよりも優先されます。 -
-
プログラムでドライバを設定できる言語で、指定したタイムアウト・パラメータ値と同等の設定になるように調整します。
たとえば:
JDBCでは
oracle.net.OUTBOUND_CONNECT_TIMEOUT
、oracle.net.CONNECT_TIMEOUT
を調整するか、setLoginTimeout()
を使用します。Python,
python-oracledb
では、connect()
またはcreate_pool()
をコールするときにtcp_connect_timeout
パラメータを調整します。
-
-
データベースのアラート・ログ・ファイルにエラーが存在する場合は、データベースの
sqlnet.ora
ファイルで、次のパラメータのいずれかまたは両方を大きい値に設定します。-
SQLNET.INBOUND_CONNECT_TIMEOUT
-
SQLNET.RECV_TIMEOUT
-
-
悪意のあるクライアントが疑われる場合は、データベースのアラート・ログを使用してソース・アドレスを特定し、アクセスを制限します。
-
CONNECTION_ID
値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。
16.3.4 ORA-12241
Microsoft Windowsシステムに表示されて、特定のサービスが使用できないか、実行されていないことを示します。
メッセージ
ORA-12241: Windows service string is either not available or not running.
ORA-12241: Windows service OracleServiceSID1 is either not available or not running.
原因
要求されたWindowsサービスが使用できないか実行中であるため、操作を完了できません。
処置
操作を実行する前に、Windowsサービスを作成して起動してください。
詳細を調べるには、トレースをオンにして操作を再実行してください。このエラーが繰り返される場合は、Oracleサポート・サービスに連絡してください。
16.3.5 ORA-12261
簡易接続構文のエラーにより、指定した接続別名を解決できないことを示します。
メッセージ
ORA-12261: Cannot connect to database.
Syntax error in Easy Connect connection string string.
ORA-12261: Cannot connect to database.
Syntax error in Easy Connect connection string sales1.example.com:1522/sales.
原因
データベースまたは他のサービスへの接続が不正な簡易接続の接続文字列を使用してリクエストされています。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
指定したホスト、ポートおよびサービス名の値が正しいことを確認してください。
-
接続識別子を引用符で囲んでみてください。
16.3.6 ORA-12262
簡易接続構文のホスト名が無効なため、指定された接続別名を解決できないことを示します。
メッセージ
ORA-12262: Cannot connect to database.
Could not resolve hostname string
in Easy Connect connection string string.
ORA-12262: Cannot connect to database.
Could not resolve hostname sales1.example.com
in Easy Connect connection string sales1.example.com:1522/sales.
原因
データベースや他のサービスへの接続がホスト名または簡易接続の接続文字列を使用してリクエストされていますが、ホスト名が無効であるため解決できません。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
指定したホスト名の値が正しいことを確認してください。
-
接続識別子を引用符で囲んでみてください。
16.3.7 ORA-12500
リスナーがOracleプログラムの起動に失敗したことを示します。
メッセージ
ORA-12500: Listener failed to start a dedicated server process
原因
-
1ユーザーに許可されるプロセスの最大数を超過した
-
リスナーがOracleプログラムの実行権限を持っていない
-
関連付けられたMicrosoft Windowsサービスが起動されていない
-
TNS-12549またはORA-12549
-
TNS-00519
-
TNS-12540またはORA-12540
-
TNS-00510
-
TNS-12560またはORA-12560
処置
-
データベース初期化ファイルの
PROCESSES
パラメータを現在より大きな値に設定して、プロセス数を増やします。 -
listener.log
ファイルで詳しいエラー・スタック情報を確認します。
16.3.8 ORA-12505
接続記述子で指定されたシステム識別子(SID)をリスナーが識別できないことを示します。
メッセージ
ORA-12505: Cannot connect to database.
SID string is not registered with the listener at string.
(CONNECTION_ID=string)
ORA-12505: Cannot connect to database.
SID sales_sid is not registered with the listener at host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
原因
リスナー・プロセスは、最初にOracle Databaseへのすべての接続を処理します。リスナーが受信した接続リクエストは、まだリスナーに動的に登録されていないインスタンスか、リスナーのlistener.ora
構成ファイルで静的に構成されていないインスタンス(通常はデータベース・インスタンス)のSIDを指定しました。このエラーは、リスナーが起動した後、データベース・インスタンスがリスナーに登録されるまでの間に発生する、一時的な状況と考えられます。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
接続文字列内の
SID
パラメータまたはtnsnames.ora
ファイルの接続記述子で、リスナーが認識しているインスタンスが指定されていることを確認します。 -
しばらくしてから、接続を再試行してください。まだ、データベース・インスタンスの登録が完了していない可能性があります。
-
CONNECTION_ID
値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。 -
次のいずれかのタスクを実行して、現在リスナーによって認識されているインスタンスを確認します。
-
データベース管理者に問い合せてください。
-
クラウド・サービス・コンソールで接続文字列を再確認します。
- リスナーを実行しているマシンにアクセスできる場合は、次のいずれかを実行します。
-
lsnrctl
services -
リスナーが
listener.ora
ファイルで指定されている場合は、次を実行します。lsnrctl services listener_name
-
Oracle Connection Manager (Oracle CMAN)プロキシ・リスナーの名前が
cman.ora
ファイルで指定されている場合は、次を実行します。cmctl show services -c cman_name
-
-
関連トピック
16.3.9 ORA-12514
接続記述子でリクエストされたサービスをリスナーが識別できないことを示します。
メッセージ
ORA-12514: Cannot connect to database.
Service string is not registered with the listener at string.
(CONNECTION_ID=string)
たとえば:
ORA-12514: Cannot connect to database.
Service sales_service.example.com is not registered with the listener
at host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
ORA-12514: Cannot connect to database.
Service Default is not registered with the listener
at host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
原因
リスナー・プロセスは、最初にOracle Databaseへのすべての接続を処理します。リスナーが受信した接続リクエストは、リスナーに動的に登録されていないか、リスナーのlistener.ora
構成ファイルで性的に構成されていないサービス名(通常はデータベース・サービスの名前)を指定しました。このエラーは、リスナーが起動した後、データベース・インスタンスがリスナーに登録されるまでの間に発生する、一時的な状況と考えられます。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
データベースまたはプラガブル・データベース(PDB)が稼働していることを確認します。クラウド・サービスを使用している場合は、データベース・サービスが稼働していることを確認します。
-
接続文字列内の
SERVICE_NAME
パラメータまたはtnsnames.ora
ファイルの接続記述子で、リスナーが認識しているサービスが指定されていることを確認します。 -
簡易接続の接続文字列を使用している場合は、指定したサービス名がリスナーによって認識されていることを確認します。
-
しばらくしてから、接続を再試行してください。まだ、データベース・インスタンスの登録が完了していない可能性があります。
-
CONNECTION_ID
値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。 -
次のいずれかのタスクを実行して、現在リスナーによって認識されているサービスを確認します。
-
データベース管理者に問い合せてください。
-
クラウド・サービス・コンソールで接続文字列を再確認します。
- リスナーを実行しているマシンにアクセスできる場合は、次のいずれかを実行します。
-
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
-
-
関連トピック
16.3.10 ORA-12516
一致するプロトコル・スタックが設定された使用可能なハンドラをリスナーが見つけられないことを示します。
メッセージ
ORA-12516: Cannot connect to database.
Listener at string does not have a protocol handler
for string ready or registered for service string.
(CONNECTION_ID=string)
ORA-12516: Cannot connect to database.
Listener at host 10.9.7.5 port 1522 does not have protocol handler
for tcp ready or registered for service sales_service.example.com.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
原因
Oracle Databaseのリスナー・プロセスによって接続が拒否されました。指定されたサービス名に対して既知の使用可能なサービス・ハンドラは、クライアントがリクエストしたプロトコル・スタックをサポートしていません。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
クラウド・サービスを使用している場合は、クラウド・サービス・コンソールに表示される接続文字列をレビューします。
-
しばらくしてから、接続を再試行してください。サービス・ハンドラがブロック状態の可能性があり、新しい接続が受け入れられていません。
-
CONNECTION_ID
値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。 -
現在リスナーに認識されていて、接続を受け入れているハンドラを確認するために、次のいずれかのタスクを実行します。
-
データベース管理者に問い合せてください。
-
クラウド・サービス・コンソールで接続文字列を再確認します。
- リスナーを実行しているマシンにアクセスできる場合は、次のいずれかを実行します。
-
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
-
-
登録されたハンドラが、必要なプロトコル・スタックをサポートするように構成されていることを確認します。たとえば、接続文字列で使用されているプロトコル、セッションおよびプレゼンテーションが一致するようにします。
-
関連トピック
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のリスナー・プロセスによって接続が拒否されました。リクエストされたサーバー・タイプ(専用、共有またはプール)に対して、クライアント接続に適した既知の使用可能なハンドラがありません。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
接続文字列内の
SERVER
パラメータまたはtnsnames.ora
ファイルの接続記述子で、リスナーが認識するハンドラでサポートされているサーバー・タイプ(専用、共有またはプール)が指定されていることを確認します。 -
簡易接続の接続文字列を使用している場合は、リスナーが認識するハンドラによって指定したサーバー・タイプがサポートされていることを確認します。
-
しばらくしてから、接続を再試行してください。サービス・ハンドラがブロック状態の可能性があり、新しい接続が受け入れられていません。
-
CONNECTION_ID
値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。 -
現在リスナーに認識されていて、接続を受け入れているハンドラを確認するために、次のいずれかのタスクを実行します。
-
データベース管理者に問い合せてください。
-
クラウド・サービス・コンソールに表示される接続文字列をレビューします。
-
リスナーを実行しているマシンにアクセスできる場合は、次のいずれかを実行します。
-
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
-
-
関連トピック
16.3.12 ORA-12521
接続記述子でリクエストされたインスタンスをリスナーが識別できないことを示します。
メッセージ
ORA-12521: Cannot connect to database.
Instance string for service string
is not registered with the listener at string.
(CONNECTION_ID=string)
ORA-12521: Cannot connect to database.
Instance sales_instance for service sales_service.example.com
is not registered with the listener at host 10.9.7.5 port 1522.
(CONNECTION_ID=1ABcDEabCd1aB+AbCdE1aB==)
原因
リスナー・プロセスは、最初にOracle Databaseへのすべての接続を処理します。サービス名に加えて、リスナーが受信した接続リクエストは、リスナーに動的に登録されていないか、リスナーのlistener.ora
構成ファイルで静的に構成されていないインスタンス(通常はデータベース・インスタンス)のインスタンス名も指定しました。このエラーは、リスナーが起動した後、データベース・インスタンスがリスナーに登録されるまでの間に発生する、一時的な状況と考えられます。
処置
-
指定した接続文字列に誤りがないかを確認します。
-
接続文字列内の
INSTANCE_NAME
パラメータまたはtnsnames.ora
ファイルの接続記述子で、リスナーが認識しているインスタンスが指定されていることを確認します。 -
簡易接続の接続文字列を使用している場合は、指定したインスタンス名がリスナーによって認識されていることを確認します。
-
しばらくしてから、接続を再試行してください。まだ、データベース・インスタンスの登録が完了していない可能性があります。
-
CONNECTION_ID
値を使用して、今後の診断のために、この接続の試行をトレース・ファイルで追跡します。 -
次のいずれかのタスクを実行して、現在リスナーによって認識されているインスタンスを確認します。
-
データベース管理者に問い合せてください。
-
クラウド・サービス・コンソールで接続文字列を再確認します。
-
リスナーを実行しているマシンにアクセスできる場合は、次のいずれかを実行します。
-
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
-
-
関連トピック
16.3.13 ORA-12525
クライアントがlistener.ora
ファイルのINBOUND_CONNECT_TIMEOUT_listener_name
パラメータで指定された時間内に接続要求を完了するのに失敗したことを示します。
メッセージ
ORA-12525: Listener has not received client's request in time allowed
原因
このエラーは、ネットワークまたはシステムの遅延が原因の可能性があります。または、悪質なクライアントがリスナーでサービス拒否攻撃(DoS)をしようとしていることを示す可能性もあります。
処置
-
特定の環境におけるシステムあるいはネットワークの通常の遅延によるエラーである場合は、
listener.ora
でINBOUND_CONNECT_TIMEOUT_listener_name
パラメータをより大きい値に再構成します。 -
不当なクライアントが疑われる場合は、次のステップを実行します。
-
ソースを識別するために、
listener.log
ファイルでクライアントのIPアドレスを探索します。IPアドレスは偽装できることに注意してください。たとえば、次の
listener.log
ファイルの例は、クライアントのIPアドレス192.0.2.35
を示しています。03-MAY-2023 16:42:35 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=192.0.2.35)(PORT=53208)) * establish * <unknown sid> * 12525 TNS-12525: TNS:listener has not received client's request in time allowed TNS-12604: TNS: Application timeout occurred
-
そのクライアントへのアクセス制限を行います。
sqlnet.ora
ファイルでアクセス権のパラメータを構成できます。
-
関連トピック
16.3.14 ORA-12533
ADDRESS
セクションのパラメータが正しくないことを示します。
メッセージ
ORA-12533: Illegal address parameters
原因
指定された接続記述子のADDRESS
セクションにあるプロトコル固有パラメータが正しくない場合に、このメッセージが表示されます。このエラーは、tnsnames.ora
ファイルを手作業で編集したために発生することがよくあります。
処置
tnsnames.ora
ファイルのプロトコル・アドレスを修正してください。tnsnames.ora
ファイルは、Oracle Enterprise Manager Cloud ControlまたはOracle Net Managerを使用してのみ編集してください。
16.3.15 ORA-12540およびTNS-00510
内部制限を超えたことを示します。
メッセージ
ORA-12540: TNS:Internal limit restriction exceeded
TNS-00510: Internal limit restriction exceeded
原因
-
Oracle Netが同時に処理できるオープン接続の数
-
同時に使用できるメモリー・バッファの数
-
特定のデータベース・インスタンスで許可されるプロセスの数
最初の2つは、ハード上の制限を示しています。3つ目は、データベース初期化ファイルのPROCESSES
パラメータを大きな値に設定することで増やすことができる制限の例です。この場合は、TNS-12500またはORA-12500エラーも戻されます。
状況によっては、これらのエラーはTNS-12549またはORA-12549、およびTNS-00519のエラーと同じ条件下で発生する可能性があります。
処置
オープン接続がクローズするのを待ち、再試行します。引き続きエラーが発生する場合は、sqlnet.log
ファイルまたはlistener.log
ファイルで詳しいエラー・スタック情報を確認します。
16.3.16 ORA-12541
リスナーに到達できないことを示します。
メッセージ
ORA-12541: Cannot connect.
No listener at string.
たとえば:
ORA-12541: Cannot connect.
No Listener at host 10.9.7.5 port 1522
この場合、最後に試行されたクライアントのIPアドレスが表示されます。リダイレクトの場合は、リダイレクトIPアドレスが表示されます。
ORA-12541: Cannot connect.
No Listener at key EXTPROC
原因
-
データベース・リスナーのプロセスが、指定されたホストとポートで実行されていません。
-
Interprocess Communication (IPC)プロトコル接続が試行されていますが、ローカル・マシンで実行されている指定したキーのリスナーが存在しません。
指定したアドレスを外部サーバーのプロセスがリスニングしていない場合に、UTL
パッケージを使用するPL/SQLアプリケーションでも、このエラーが発生することがあります。
処置
-
接続に使用しようとしたホストとポートのエラーが表示される場合は、そのホストでリスナー・プロセスが実行されていて、そのポートをリスニングしていることを確認してください。指定されたキーのリスナーが存在しないことをメッセージが示している場合は、リスナーがローカル・マシンで実行されていることと、指定したキーをリスニングしていることを確認します。リスナー・プロセスは、Oracle Databaseへのすべての接続を最初に処理するために使用されます。
-
指定した接続文字列に誤りがないかを確認します。
-
tnsnames.ora
ファイルからの別名を使用している場合は、ホストとポートが正しいかどうかを確認します。また、IPC接続を使用している場合は、キーが正しいかどうかを確認します。
-
簡易接続の接続文字列を使用している場合は、ホストとポートが正しいことを確認してください。
-
lsnrctl
を使用して、リスナーが稼働していることを確認し、リスナーがリスニングしているポートまたはキーも確認します。これを行うには、次のいずれかを実行します。-
lsnrctl
status -
リスナーが
listener.ora
ファイルで指定されている場合は、次を実行します。lsnrctl status listener_name
-
Oracle Connection Manager (Oracle CMAN)プロキシ・リスナーの名前が
cman.ora
ファイルで指定されている場合は、次を実行します。cmctl show status -c cman_name
-
16.3.17 ORA-12549およびTNS-00519
オペレーティング・システムで設定されている割当てまたはハード・リミットを超えたことを示します。
メッセージ
ORA-12549: TNS:Operating system resource quota exceeded
TNS-00519: Operating system resource quota exceeded
原因
-
1ユーザーに許可されるプロセスの最大数
-
ページング・スペースに起因するオペレーティング・システムの性能低下
処置
-
データベース初期化ファイルの
PROCESSES
パラメータを現在より大きな値に設定して、プロセス数を増やします。 -
sqlnet.log
ファイルまたはlistener.log
ファイルで、オペレーティング・システムのエラー・コードなどの詳しいエラー・スタック情報を調べ、超過している割当て制限を特定します。
16.3.18 ORA-12560
下位レベルの通信プロトコル・アダプタのエラーが発生したことを示します。
メッセージ
ORA-12560: Database communication protocol error.
原因
このエラーは、ADDRESS
パラメータの構成が不適切な場合、または基礎となるプロトコルやオペレーティング・システム・インタフェースからエラーが戻された場合などに発生します。
状況によっては、これらのエラーはTNS-00510、TNS-00519、TNS-12540、ORA-12540、TNS-12549またはORA-12549のエラーと同じ条件下で発生する可能性があります。
処置
-
追加情報については、エラー・スタック内の下位レベルのネットワーク転送エラーを確認します。
-
接続のアドレスで使用されているプロトコル指定が正しいことを確認してください。
-
詳細を調べるために、ネットワーク・トレースをオンにして、操作を再実行します。操作が完了したら、トレースをオフにしてください。
-
Oracleサポート・サービスに問い合せてください。
16.3.19 ディレクトリ・ネーミング・エラー
ディレクトリ・サーバーのデータベース・サービス名またはネットワーク・サービス名のエントリに対する接続性エラーに関連するディレクトリ・ネーミングの問題の解決には、データの分析が必要です。ディレクトリ・サーバーに含まれるデータの分析には、ldifwrite
コマンドライン・ツールを使用します。ldifwrite
ツールはOracle Internet Directoryツールです。
ldifwrite
ツールを使用して、ディレクトリ・サーバーにある情報のすべてまたは一部をLDIFに変換できます。ldifwrite
ツールでは、指定した識別名(DN)の下のすべてのエントリを対象にサブツリー検索を実行します(DN自体も対象です)。
ldifwrite
ツールの構文は次のとおりです。
ldifwrite -cnet_service_name/database_service
-bbase_DN
-fldif_file
次の表では、ldifwrite
ツールの引数とそれぞれの説明を一覧で示します。
表16-8 ldifwriteの引数
引数 | 説明 |
---|---|
|
ディレクトリ・サーバーに接続するためのネットワーク・サービス名またはデータベース・サービス名。 |
|
LDIFフォーマットで書き出されるサブツリーのベース。 |
|
出力ファイル名。 |
次の例は、dc=us,dc=example,dc=com
の下のすべてのディレクトリ・ネーミング・エントリをoutput1.ldi
ファイルに書き込みます。
ldifwrite -c ldap -b "dc=us,dc=example,dc=com" -f output.ldif
ノート:
ldap.ora
ファイルをチェックして、base_DN値を確認します。これは、ldap.ora
ファイルのDEFAULT_ADMIN_CONTEXTエントリと同じです。
16.4 Oracle Net Servicesのトラブルシューティングのヒント
ネットワークの問題を診断し、Traffic DirectorモードのOracle Connection Managerをトラブルシューティングするために次のようなヒントがあります。
- ネットワークの問題を診断するためのヒント
ネットワーク接続エラーの診断および解決に際し、次のヒントが役立ちます。 - Traffic DirectorモードのOracle Connection Managerのトラブルシューティング
Traffic DirectorモードのOracle Connection Managerを使用してSELECT
文を実行中に発生する可能性のあるエラーを解決する方法について学習します。 - Oracle Net Servicesのトラブルシューティングのためのチェック項目
次の質問は、ネットワークの問題の診断に役立ちます。
16.4.1 ネットワークの問題を診断するためのヒント
ネットワーク接続エラーの診断および解決に際し、次のヒントが役立ちます。
-
構成時に、サーバー・コンピュータの名前ではなくノードまたはネットワーク・アドレスを使用する。これにより内部ルックアップ問題がなくなり、接続が多少早くなります。
-
TCP/IPアドレスを使用している場合は、ホスト名ではなくIPアドレスを使用する。たとえば、
tnsnames.ora
ファイルの(HOST=
server_name
)の行を(HOST=192.0.2.5
)のようにIPアドレスに変更します。 -
「タスク2、ループバック・テストの実行」の説明に従って、サーバーでループバック・テストを実行します。テストが正常に終了する場合は、FTPを使用して
tnsnames.ora
ファイルとsqlnet.ora
ファイルをクライアントに転送します。 -
クライアントとサーバーの間のシステムをチェックする。Wide Area Network(WAN)の場合は、正しく作動していない可能性がある中間システムを識別します。すべてのコンピュータが正常である場合、タイミングに問題がある可能性があります。
-
タイミングに問題があるかどうか検証する。タイミングの問題は、クライアント・ログ・ファイルの
ORA-12535
のエラーに関係しています。タイミングの問題を解決するには、名前ではなく正確なアドレスを使用して接続のスピード・アップを図り、
listener.ora
ファイルのINBOUND_CONNECT_TIMEOUT_listener_nameパラメータの値を増やします。このパラメータのデフォルト値は10秒です。 -
障害が発生しているOracleアプリケーションを判断する。SQL*Plusは作動するが、CASEツールは作動しない場合があります。データ量に問題があることが判明した場合、基本的な接続を使用してサイズの大きい(5MB)ファイルを転送してみます。
16.4.2 Traffic DirectorモードのOracle Connection Managerのトラブルシューティング
Traffic DirectorモードのOracle Connection Managerを使用してSELECT
文を実行中に発生する可能性のあるエラーを解決する方法について学習します。
アプリケーションにおいてTraffic DirectorモードのOracle Connection Managerを使用してSELECT
文が実行されると、次のシナリオでORA-24449
エラー・メッセージが表示されることがあります。
-
Oracle Connection Managerの実行中にデータベース・サーバー側の選択リスト列のデータ型または最大長を変更した場合。
このエラーを解決するには、
SELECT
文をクローズまたは戻して問合せを再度実行する必要があります。 -
形式が異なる列(たとえば、
NLS_DATE_FORMAT
値が異なるTO_CHAR(<datecolumn>)
)を選択し、プロキシ常駐接続プーリング(PRCP)を使用して、同じ接続で、または書式設定が異なる別の接続を使用してセッション・プロパティを変更した場合。このエラーを解決するには、列の別名を使用して同じ接続内の文を識別します。PRCP接続の場合は、接続クラスまたはタグを使用します。
16.4.3 Oracle Net Servicesのトラブルシューティングのためのチェック項目
次の質問は、ネットワークの問題の診断に役立ちます。
-
すべてのコンピュータに問題があるのか、1台のコンピュータのみか
同じソフトウェア(Oracleおよびサード・パーティ製品)をインストールしていても、機能するコンピュータと機能しないコンピュータがある場合、可能であれば、ネットワーク・ケーブルを取り替えて2番目のクライアントで問題が発生するかどうかを確認します。問題が発生した場合、問題はクライアント/サーバー接続に関するもので、クライアントに限定的なものではないことを示しています。
-
クライアントとサーバー間の接続の種類(X.25、ISDNまたは専用回線など)は何か
SnifferやLANアナライザは、断続的な接続エラーを特定し、タイム・アウトおよび再送パケットの検出を行うのに便利です。どちら側が応答を待っているのかを知ることもできます。
16.5 TNS-12154エラーのトラブルシューティングの例
この項では、TNS-12154エラーのソリューションを提供します。TNS-12154エラーは、SQL*Netがtnsnames.ora
ファイルまたはその他のネーミング・アダプタの接続に指定された接続識別子を検出できない場合に発生します。
問題を解決する前に、tnsnames.ora
ファイルとsqlnet.ora
ファイルを印刷または表示しておくと便利です。両方を参照するため、これらのファイルを同時に参照できるようにすると便利です。
この例では、tnsnames.ora
ファイルおよびsqlnet.ora
ファイルは、クライアント・システムのデフォルトのネットワーク管理ディレクトリにあります。
tnsnames.ora
ファイルおよびsqlnet.ora
ファイルが次の例のようになっていることを確認します。
tnsnames.ora
ファイルの例を次に示します:
例16-1 tnsnames.oraの例
DEV1.WORLD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 192.0.2.56) (PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = sales.example.com) ) )
sqlnet.ora
ファイルの例を次に示します:
例16-2 sqlnet.oraの例
TRACE_LEVEL_CLIENT = OFF SQLNET.AUTHENTICATION_SERVICES = (NONE) NAMES.DIRECTORY_PATH = (TNSNAMES) AUTOMATIC_IPC = OFF
例16-1の別名はDEV1.WORLD
です。ただし、例16-2にはNAMES.DEFAULT_DOMAIN = WORLD
パラメータが存在しません。この問題を解決するには、sqlnet.ora
ファイル内の任意の場所にNAMES.DEFAULT_DOMAIN = WORLD
パラメータを追加します。ファイルを保存し、接続を再度試行します。
16.6 Oracle Net Servicesのエラー情報のロギング
Oracle Net Servicesで発生するすべてのエラーは、ネットワーク管理者やデータベース管理者が評価できるように、ログ・ファイルに追加記録されます。ログ・ファイルは、画面に表示されるエラー・メッセージについて、管理者用の追加情報を提供します。ログ・ファイルのエラー・スタックは、各種レイヤーでのソフトウェアの状態を示します。
すべてのエラーが記録されることを保証するためにはクライアントまたはネーム・サーバーに対するロギングを使用禁止にすることはできません。さらに、ログ・ファイルを置換したり消去できるのは管理者のみです。リスナーのログ・ファイルには、すべてのクライアント接続要求に関する監査証跡情報と大半のリスナー制御コマンドが含まれています。
- Oracle Netエラー・スタック
ログ・ファイルには、エラー・スタックに含まれている情報があります。エラー・スタックとは、ネットワーク・エラーの結果としてOracle通信スタック内に各レイヤーごとに作成される情報です。 - エラー・スタック・メッセージの理解
アプリケーションでは1行のエラー・メッセージのみが表示されますが、ネットワーク層によって情報量の多いエラー・スタックがログ・ファイルに記録されます。 - Oracle Net Servicesのログ・ファイル名
Oracle Net Servicesの各コンポーネントでは、それぞれ固有のログ・ファイルが生成されます。デフォルトのADRを使用するときは、ログ・ファイル名は適切なalertディレクトリにあるlog.xml
です。 - Oracle Networkログ・ファイルのセグメンテーション
Oracle Net Listener、Oracle Connection Manager、グローバル・サービス・マネージャなどのOracleネットワーク・コンポーネントには、テキスト・ログ・ファイルの最大サイズと数を構成できます。 - ロギング・パラメータについて
ログ記録される情報の種類と量、ファイルが格納されている位置など、ロギングを制御するパラメータは、各ネットワーク・コンポーネントの構成ファイル内で設定されます。 - 構成ファイルのロギング・パラメータの設定
sqlnet.ora
ファイルのロギング・パラメータはOracle Net Managerで設定し、listener.ora
ファイルのロギング・パラメータはOracle Enterprise Manager Cloud ControlまたはOracle Net Managerで設定します。 - 制御ユーティリティ実行時のロギング設定
ロギングは、制御ユーティリティの実行中に設定できます。制御ユーティリティを使用してロギングを設定しても、*.ora
ファイルにパラメータは設定されず、設定は制御ユーティリティのセッションでのみ有効です。 - ログ・ファイルの使用
この手順では、ログ・ファイルを使用してネットワーク・エラーを診断する方法を説明します。 - リスナー・ログの分析
リスナー・ログ・ファイルには、監査証跡、サービス登録関連イベント、ダイレクト・ハンドオフ・イベント、Oracle Notification Service (ONS)ノードダウン・イベントのサブスクリプションおよびOracle Clusterware通知に関する情報が記録されます。 - Oracle Connection Managerログの分析
Oracle Connection Manager (CMAN)は、指定されたログ・ディレクトリにcman_alias.log
ファイルを生成します。このログ・ファイルには、CMANリスナー、ゲートウェイ、CMADMINプロセスおよびアラートに関連するメッセージが記録されます。
16.6.1 Oracle Netエラー・スタック
ログ・ファイルには、エラー・スタックに含まれている情報があります。エラー・スタックとは、ネットワーク・エラーの結果としてOracle通信スタック内に各レイヤーごとに作成される情報です。
表16-9 エラー・スタック・コンポーネント
エラー・スタック・コンポーネント | 説明 |
---|---|
ネットワーク・インタフェース。このレイヤーには、Oracleのクライアントまたはサーバー、外部プロセスがOracle Netの機能にアクセスするための汎用インタフェースがあります。NIレイヤーは、接続のブレーク要求およびリセット要求を処理します。 |
|
ネットワーク・セッション(1次および2次層)。これらのレイヤーはNIから要求を受け取り、次のようなコンピュータ・レベルの一般的な接続に関する問題をすべて解決します。
|
|
ネットワーク認証。このレイヤーは認証要求および暗号化要求のネゴシエーションを行います。 |
|
ネットワーク・トランスポート(1次、2次およびオペレーティング・システム層)。これらのレイヤーは、Oracle Net Foundationレイヤー機能を業界標準プロトコルにマップします。 |
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
16.6.3 Oracle Net Servicesのログ・ファイル名
Oracle Net Servicesの各コンポーネントは、それぞれ独自のログ・ファイルを生成します。デフォルトのADRを使用するときは、ログ・ファイル名は適切なalertディレクトリにあるlog.xml
です。
次の表では、デフォルトのログ・ファイル名と、ADR/diag/
instance_name
/trace
ディレクトリ内のログ・ファイルを生成するコンポーネントをリストします。
16-10 ADR使用時のログ・ファイル名
コンポーネント | ログ・ファイル |
---|---|
リスナー |
|
クライアントまたはデータベース・サーバー |
|
Oracle Connection Managerリスナー |
|
Oracle Connection Manager CMGW (Oracle Connection Manager Gateway)プロセス |
|
Oracle Connection Manager CMADMIN(Oracle Connection Manager Administration)プロセス |
|
Oracle Connection Managerアラート・ログ |
|
16.6.4 Oracle Networkログ・ファイルのセグメンテーション
Oracle Net Listener、Oracle Connection Manager、グローバル・サービス・マネージャなどのOracleネットワーク・コンポーネントには、テキスト・ログ・ファイルの最大サイズと数を構成できます。
この機能により、特にクラウド環境でログ・ファイルの管理が向上します。これはADRの専用機能で、テキスト・ログ・ファイルとXMLログ・ファイルの両方に適用できます。
16.6.5 ロギング・パラメータについて
ログ記録される情報の種類と量、ファイルが格納されている位置など、ロギングを制御するパラメータは、各ネットワーク・コンポーネントの構成ファイル内で設定されます。
表16-11 ログ・パラメータの位置
ネットワーク・コンポーネント | 構成ファイル |
---|---|
Oracle Connection Managerプロセス |
|
リスナー |
|
クライアント |
|
データベース・サーバー |
|
ノート:
ADR_ENABLED
をON
に設定すると、すべてのロギング・パラメータがADRによって設定されます。Oracle Net Managerを使用してパラメータを変更することはできません。
- sqlnet.oraのログ・パラメータ
これらのログ・パラメータは、sqlnet.ora
ファイル内で設定できます。 - listener.oraのログ・パラメータ
これらのログ・パラメータは、listener.ora
ファイル内で設定できます。 - cman.oraのログ・パラメータ
これらのログ・パラメータは、cman.ora
ファイル内で設定できます。
16.6.5.1 sqlnet.oraのログ・パラメータ
これらのログ・パラメータは、sqlnet.ora
ファイル内で設定できます。
表16-12 sqlnet.oraのログ・パラメータ
sqlnet.oraのパラメータ | Oracle Net Managerのフィールド | 説明 |
---|---|---|
|
トレース: ADRベース・ディレクトリ |
インシデントのトレースおよびロギングを格納するベース・ディレクトリを指定します。
|
|
このパラメータは手動で設定する必要があります。 |
ADRトレースを有効にするかどうかを指定します。
|
|
このパラメータは手動で設定する必要があります。 |
簡潔な形式(1つの障害の関連情報すべてが1行で表示される)でのロギングを有効または無効にします。 |
|
このパラメータは手動で設定する必要があります。 |
発生回数に基づいて、データベース・サーバー側でのログ・メッセージの抑制を制御します。 |
|
このパラメータは手動で設定する必要があります。 |
時間間隔に基づいて、データベース・サーバー側でのログ・メッセージの抑制を制御します。 |
|
「クライアント情報: ログ・ディレクトリ」 |
クライアントのログ・ファイルの宛先ディレクトリを指定します。 デフォルトのクライアント・ディレクトリは、現行の作業ディレクトリです。このパラメータは、 |
|
「サーバー情報: ログ・ディレクトリ」 |
データベース・サーバーのログ・ファイルの宛先ディレクトリを指定します。 デフォルトでは、このサーバー・ディレクトリは |
|
「クライアント情報: ログ・ファイル」 |
クライアントのログ・ファイルの名前を指定します。 デフォルトでは、このログ・ファイル名は |
|
このパラメータは手動で設定する必要があります。 |
データベース・サーバーのログ・ファイルの名前を指定します。 デフォルトでは、このログ・ファイル名は |
親トピック: ロギング・パラメータについて
16.6.5.2 listener.oraのログ・パラメータ
これらのログ・パラメータは、listener.ora
ファイル内で設定できます。
表16-13 listener.oraファイルのログ・パラメータ
listener.oraのパラメータ | Oracle Net Managerのフィールド | 説明 |
---|---|---|
このパラメータは手動で設定する必要があります。 |
|
|
このパラメータは手動で設定する必要があります。 |
|
|
ログ・ファイル |
リスナー・イベントで自動的に生成されるファイルの作成先となるディレクトリとログ・ファイル。デフォルトのディレクトリは |
親トピック: ロギング・パラメータについて
16.6.5.3 cman.oraのログ・パラメータ
これらのログ・パラメータは、cman.ora
ファイル内で設定できます。
表16-14 cman.oraファイルのログ・パラメータ
cman.oraのパラメータ | 説明 |
---|---|
|
|
|
|
ロギングされるイベント・グループ。複数のイベントを指定するには、カンマ区切りリストを使用します。このパラメータには次の値を使用できます。
|
|
ログ・ファイルの作成先となるディレクトリ。 デフォルトのディレクトリは このパラメータは、 |
|
ロギングのレベル。次の4つのレベルがサポートされています。
|
親トピック: ロギング・パラメータについて
16.6.6 構成ファイルのロギング・パラメータの設定
sqlnet.ora
ファイルのロギング・パラメータはOracle Net Managerで設定し、listener.ora
ファイルのロギング・パラメータはOracle Enterprise Manager Cloud ControlまたはOracle Net Managerで設定します。
cman.ora
ファイルのロギング・パラメータは、手動で設定する必要があります。
16.6.6.1 Oracle Net Managerを使用したsqlnet.oraファイルのパラメータの設定
次の手順では、sqlnet.ora
ファイルでロギング・パラメータを設定する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」見出しから「プロファイル」を展開します。
-
右ペインのリストから、「一般」を選択します。
-
「ロギング」 タブをクリックします。
-
設定を指定します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
ログ・ファイルの名前はsqlnet.log
です。
親トピック: 構成ファイルのロギング・パラメータの設定
16.6.6.2 Oracle Enterprise Manager Cloud Controlを使用したlistener.oraファイルのパラメータの設定
次の手順では、Oracle Enterprise Manager Cloud Controlを使用してlistener.ora
ファイルでロギング・パラメータを設定する方法について説明します。
-
Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。
-
「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。
-
「実行」をクリックし、「リスナー」ページを表示します。
-
リスナーを選択し、「編集」をクリックし、「リスナーの編集」ページを表示します。
-
「ロギングとトレース」タブをクリックします。
-
設定を指定します。
-
「OK」をクリックします。
ログ・ファイルの名前はlistener.log
です。
親トピック: 構成ファイルのロギング・パラメータの設定
16.6.6.3 Oracle Net Managerを使用したlistener.oraファイルのパラメータの設定
次の手順では、Oracle Net Managerを使用してlistener.ora
ファイルでロギング・パラメータを設定する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」見出しから「リスナー」を展開します。
-
リスナーを選択します。
-
右ペインのリストから、「一般」を選択します。
-
「ロギングとトレース」タブをクリックします。
-
設定を指定します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
ログ・ファイルの名前はlistener.log
です。
親トピック: 構成ファイルのロギング・パラメータの設定
16.6.7 制御ユーティリティ実行時のロギング設定
ロギングは、制御ユーティリティの実行時に設定できます。制御ユーティリティを使用してロギングを設定しても、*.ora
ファイルにパラメータは設定されず、設定は制御ユーティリティのセッションでのみ有効です。
次の設定を制御ユーティリティに対して設定できます。
-
リスナーの場合は、リスナー制御ユーティリティで
SET LOG_FILE
コマンドおよびSET LOG_DIRECTORY
コマンドを使用します。 -
Oracle Connection Managerの場合は、Oracle Connection Manager制御ユーティリティの
SET LOG_DIRECTORY
、SET LOG_LEVEL
およびSET EVENT
コマンドを使用します。
ノート:
ADR_ENABLED
をON
に設定すると、すべてのロギング・パラメータがADRによって設定されます。Oracle Connection Managerを使用してパラメータを変更することはできません。
16.6.9 リスナー・ログの分析
リスナー・ログ・ファイルには、監査証跡、サービス登録関連イベント、ダイレクト・ハンドオフ・イベント、Oracle Notification Service (ONS)ノードダウン・イベントのサブスクリプションおよびOracle Clusterware通知に関する情報が記録されます。
- リスナー・ログ監査証跡
リスナー・ログ・ファイル内の監査証跡情報を使用すると、ネットワーク使用状況統計、クライアント接続リクエスト、リスナー制御ユーティリティによって発行されたコマンドなどを分析できます。 - リスナー・サービス登録イベント
リスナー・ログ・ファイル内のサービス登録イベント情報を使用すると、インスタンスのサービス名、インスタンス名、サービス・ハンドラ、ロード情報、動的リスニング・エンドポイントなどの登録関連の統計を分析できます。 - リスナー・ハンドラ・ブロック情報
リスナー・ログ・ファイルのリスナー・ハンドラ・ブロック情報によって、ブロックされたハンドラとブロック解除されたハンドラに関するイベントを分析できます。 - リスナー・ダイレクト・ハンドオフ情報
リスナー・ログ・ファイル内のダイレクト・ハンドオフ情報を使用すると、ディスパッチャへのダイレクト・ハンドオフ・イベントを分析できます。 - ONSノード停止イベント情報のリスナー・サブスクリプション
ONS構成ファイルが使用可能な場合、リスナーは起動時にOracle Notification Service (ONS)のノード停止イベントをサブスクライブします。リスナー・ログ・ファイル内のONSノード停止イベント情報を使用すると、これらのメッセージを分析できます。 - リスナーOracle Clusterware通知情報
必要なOracle Clusterwareライブラリがインストールされていて、ホストでOracle Clusterwareが起動されている場合、リスナーは起動プロセスおよび停止プロセスでOracle Clusterwareのステータスを通知します。リスナー・ログ・ファイル内のOracle Clusterware通知情報を使用すると、これらのメッセージを分析できます。
16.6.9.1 リスナー・ログ監査証跡
リスナー・ログ・ファイル内の監査証跡情報を使用すると、ネットワーク使用状況統計、クライアント接続リクエスト、リスナー制御ユーティリティによって発行されたコマンドなどを分析できます。
- リスナー・ログ監査証跡情報
監査証跡情報は、ネットワーク使用状況、クライアント接続リクエストおよびリスナー制御ユーティリティによって発行されるコマンド(RELOAD
、START
、STOP
、STATUS
、SERVICES
など)に関する統計で構成されます。 - リスナー・ログ監査証跡の書式
これは、リスナー・ログ・ファイルに取得される監査証跡テキスト・フィールドの書式です。
親トピック: リスナー・ログの分析
16.6.9.1.1 リスナー・ログ監査証跡情報
監査証跡情報は、ネットワーク使用状況、クライアント接続リクエストおよびリスナー制御ユーティリティによって発行されるコマンド(RELOAD
、START
、STOP
、STATUS
、SERVICES
など)に関する統計で構成されます。
監査証跡情報を表に保存した後、それをレポート形式に書式設定することで、傾向とユーザー・アクティビティを確認できます。データを表にインポートするには、SQL*Loaderなどのインポート・ユーティリティを使用します。
親トピック: リスナー・ログ監査証跡
16.6.9.1.2 リスナーのログ監査証跡の書式
これは、リスナー・ログ・ファイルに取得される監査証跡テキスト・フィールドの書式です。
Timestamp * Connect Data [* Protocol Info] * Event [* SID | Service] * Return Code
監査証跡のプロパティは、次のとおりです。
-
各フィールドはアスタリスク(
*
)で区切られます。 -
プロトコル・アドレス情報、およびサービス名またはSID情報は、接続が試行された場合のみ記録されます。
-
成功した接続またはコマンドには、コード0(ゼロ)が戻ります。
-
失敗した場合は、エラー・メッセージに対応するコードが生成されます。
例16-5に、RELOAD
コマンド要求のログ・ファイルの出力例を示します。
例16-5 正常なRELOAD要求に対するリスナー・ログ・イベント
14-OCT-2022 00:29:54 * (connect_data=(cid=(program=)(host=sales-server)(user=jdoe))(command=reload) (arguments=64)(service=listener)(version=135290880)) * reload * 0
例16-6に、正常な接続要求のログ・ファイルの出力例を示します。
例16-6 正常な接続要求に対するリスナー・ログ・イベント
14-OCT-2022 15:28:58 * (connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server) (user=jdoe))(CONNECTION_ID=abcdefgtx42abCde6V/aB602xAbCDe==))(TARGET_INSTANCE=sales) * (address=(protocol=tcp)(host=192.0.2.35)(port=41349)) * establish * sales.us.example.com * 0
例16-7は、ホストsales-server
によるSTATUS
コマンドが正常に実行された場合のログ・ファイルの抜粋を示しています。この後、IPアドレス192.0.2.35
のクライアントによる接続試行が失敗しています。この接続試行の結果、ORA-12525: 「TNS: リスナーは、クライアントのリクエストを許容時間内に受信しませんでした」エラー・メッセージが表示されます。このエラーは、クライアントがlistener.oraファイルのINBOUND_CONNECT_TIMEOUT_
listener_nameパラメータで指定された時間内に接続要求を完了するのに失敗すると発生します。このクライアントはリスナーにサービス拒否攻撃をしようとした可能性があります。
例16-7 失敗した接続要求に対するリスナー・ログ・イベント
03-OCT-2022 16:41:57 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=sales-server)(USER=jdoe))(COMMAND=status) (ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=153092352)) * status * 0 03-OCT-2022 16:42:35 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=192.0.2.35)(PORT=53208)) * establish * <unknown sid> * 12525 TNS-12525: TNS:listener has not received client's request in time allowed TNS-12604: TNS: Application timeout occurred
親トピック: リスナー・ログ監査証跡
16.6.9.2 リスナーのサービス登録イベント
リスナー・ログ・ファイル内のサービス登録イベント情報を使用すると、インスタンスのサービス名、インスタンス名、サービス・ハンドラ、ロード情報、動的リスニング・エンドポイントなどの登録関連の統計を分析できます。
- リスナーのサービス登録イベント情報
サービス登録情報は、service_register
やservice_update
、service_died
などのデータベース・サービス登録イベントに関連する統計で構成されています。 - リスナーのサービス登録情報の書式
これは、リスナー・ログ・ファイルに取得されたサービス登録イベント・メッセージごとの書式です。
親トピック: リスナー・ログの分析
16.6.9.2.1 リスナーのサービス登録イベント情報
サービス登録情報は、service_register
やservice_update
、service_died
などのデータベース・サービス登録イベントに関連する統計で構成されています。
サービス登録時に、リスナー登録(LREG)プロセスは、次の項目に関する情報をリスナーに提供します。
-
データベースにおける稼働中の各インスタンスのサービス名
-
データベースのインスタンス名
-
各インスタンスで使用可能なサービス・ハンドラ(ディスパッチャまたは専用サーバー)
-
ディスパッチャ、インスタンスおよびノードのロード情報
-
動的リスニング・エンドポイント
表16-15 サービス登録イベントのログ情報
イベント | 説明 |
---|---|
リスナーがインスタンスについて受信する登録情報。 |
|
特定インスタンスについてリスナーが受信する更新された登録情報(ディスパッチャやインスタンスのロード情報など)。 これらのメッセージには、この |
|
リスナーがLREGで確立できない接続の接続切断情報。インスタンスの登録情報はすべて廃棄されます。LREGによって再度登録されるまで、クライアントはそのインスタンスには接続できません。 |
親トピック: リスナーのサービス登録イベント
16.6.9.2.2 リスナーのサービス登録情報の書式
これは、リスナー・ログ・ファイルに取得されたサービス登録イベント・メッセージごとの書式です。
表16-16 サービス登録イベントの書式
イベント | 書式 |
---|---|
|
|
|
|
|
サービス登録フィールドのプロパティは次のとおりです。
-
各フィールドはアスタリスク(
*
)で区切られます。 -
通常は、1つのインスタンスのイベントが複数回連続して記録されます。
-
正常に登録されると、コード0(ゼロ)が戻ります。これは、クライアントがインスタンスに接続できたことを示します。
-
失敗した場合は、エラー・メッセージに対応するコードが生成されます。
例16-8は、サービス登録イベントが記録されたログ・ファイルを示しています。リスナーは正常なservice_register
イベントの後はクライアント要求を受信できますが、service_died
イベントの後はクライアント要求を受信できません。
例16-8 サービス登録イベントが記録されたリスナー・ログ
------------------------------- 01-OCT-2022 11:40:06 * (ADDRESS=(PROTOCOL=tcp)(HOST=192.0.2.35)(PORT=46750)) * service_register * sales * 0 01-OCT-2022 11:40:26 * (connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server)(user=jdoe))) * (address=(protocol=tcp)(host=192.0.2.35)(port=41349)) * establish * sales.us.example.com * 0 01-OCT-2022 11:41:51 * service_update * inst_upd=1 handler_upd=2 * sales * 0 01-OCT-2022 11:41:57 * service_update * inst_upd=1 handler_upd=2 * sales * 0 01-OCT-2022 11:42:06 * service_update * inst_upd=1 handler_upd=2 * sales * 0 01-OCT-2022 11:42:08 * (connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server)(user=jdoe))) * (address=(protocol=tcp)(host=192.0.2.35)(port=41365)) * establish * sales.us.example.com * 0 01-OCT-2022 11:57:02 * service_died * sales * 12537 01-OCT-2022 11:57:10 * (connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server)(user=jdoe))) * (address=(protocol=tcp)(host=192.0.2.35)(port=41406)) * establish * sales.us.example.com * 12514 TNS-12514: TNS:Cannot connect to database. Service sales.us.example.com is not registered with the listener at host 192.0.2.35 port 41365. (CONNECTION_ID=4VIdFEpcSe3gU+FoRmR0aA==) --------------------------------
親トピック: リスナーのサービス登録イベント
16.6.9.3 リスナー・ハンドラ・ブロック情報
リスナー・ログ・ファイルのリスナー・ハンドラ・ブロック情報によって、ブロックされたハンドラとブロック解除されたハンドラに関するイベントを分析できます。
サービス・ハンドラがデータベース・インスタンスまたはリスナーによってブロックまたはブロック解除されると、次の形式で、ブロックまたはブロック解除されたハンドラの詳細がロード情報とともに表示されます。
Timestamp * Handler Blocked or Unblocked by Instance or Listener: Load Information * Instance Name
例16-9 ハンドラ・ブロック・イベントのリスナー・ログ
19-OCT-2022 06:13:51 * dedicated handler blocked by instance : load = 79 * sales 19-OCT-2022 06:13:51 * dedicated handler blocked by listener : load = 79 * sales 19-OCT-2022 06:15:05 * dedicated handler unblocked: load = 74 * sales 19-OCT-2022 07:51:13 * dedicated handler blocked by instance * sales 19-OCT-2022 07:51:13 * dedicated handler unblocked by instance * sales
親トピック: リスナー・ログの分析
16.6.9.4 リスナーのダイレクト・ハンドオフ情報
リスナー・ログ・ファイル内のダイレクト・ハンドオフ情報を使用すると、ディスパッチャへのダイレクト・ハンドオフ・イベントを分析できます。
これらのイベントは次のフィールドで構成されます。
Timestamp * Presentation * Handoff * Error Code
ダイレクト・ハンドオフ・フィールドのプロパティは次のとおりです。
-
各フィールドはアスタリスク(
*
)で区切られます。 -
成功した接続またはコマンドには、コード0(ゼロ)が戻ります。
-
失敗した場合は、エラー・メッセージに対応するコードが生成されます。
次の例では、ログ・ファイル内のダイレクト・ハンドオフ・イベントを示します。
例16-10 ダイレクト・ハンドオフのリスナー・ログ・イベント
21-MAY-2012 10:54:55 * oracle.aurora.net.SALESHttp2 * handoff * 0
親トピック: リスナー・ログの分析
16.6.9.5 ONSノード停止イベント情報のリスナー・サブスクリプション
ONS構成ファイルを使用できる場合、リスナーは、起動時にOracle Notification Service (ONS)にノード停止イベントをサブスクライブします。リスナー・ログ・ファイル内のONSノード停止イベント情報を使用すると、これらのメッセージを分析できます。
このサブスクリプションにより、ノード停止イベント通知をONSから受信した場合、リスナーは、影響を受けたサービスを削除できます。リスナーは、イベント通知に非同期サブスクリプションを使用します。
ONSデーモンがホストで実行されていない場合など、サブスクリプションが完了しなかった場合、次の警告メッセージがSTATUS
コマンドごとにリスナー・ログ・ファイルに記録されます。
WARNING: Subscription for node down event still pending
サブスクリプションの保留中は、リスナーはONSイベントを受信できません。それ以外の場合、他のリスナー機能が影響を受けることはありません。
親トピック: リスナー・ログの分析
16.6.9.6 リスナーのOracle Clusterware通知情報
必要なOracle Clusterwareライブラリがインストールされていて、ホストでOracle Clusterwareが起動されている場合、リスナーは起動プロセスおよび停止プロセスでOracle Clusterwareのステータスを通知します。リスナー・ログ・ファイル内のOracle Clusterware通知情報を使用すると、これらのメッセージを分析できます。
Oracle Clusterware (次のログ・メッセージにCRSとして表示)への通知に成功すると、リスナーはイベントをログに記録します。通知が失敗した場合は、メッセージは記録されません。
Listener completed notification to CRS on start Listener completed notification to CRS on stop
親トピック: リスナー・ログの分析
16.6.10 Oracle Connection Managerログの分析
Oracle Connection Manager (CMAN)は、指定されたログ・ディレクトリにcman_alias.log
ファイルを生成します。このログ・ファイルには、CMANリスナー、ゲートウェイ、CMADMINプロセスおよびアラートに関連するメッセージが記録されます。
アラート用ログ・エントリには、重大なエラーが時系列にリストされます。重大なエラーをロギングするだけでなく、インスタンスの起動と停止に関する情報も記録されています。また、セッションの開始と終了時におけるすべての構成パラメータの値も記録されます。
各ログ・エントリは、タイムスタンプとイベントで構成されます。イベントを次のカテゴリにロギングするようにcman.ora
ファイルを構成できます。
-
初期化と終了
-
メモリー操作
-
接続処理
-
プロセス管理
-
登録とロード更新
-
CMADMIN起動キュー関連のイベント
-
ゲートウェイのタイムアウト
-
コマンド処理
-
接続制御ブロックに関連付けられたイベント
SET EVENT
コマンドを使用して、ロギングするイベントのタイプを指定します。
表16-17 CMADMINおよびゲートウェイ・ログのエントリの詳細
ログ・エントリ | イベント | 説明 |
---|---|---|
CMADMIN |
Failed to get procedure ID |
CMADMINに接続されていたCMCTLセッションが切断されました。 |
CMADMIN |
GMON attributes validated |
情報メッセージです。CMADMINの起動に必要なパラメータが正しく指定されています。 |
CMADMIN |
Invalid connect data |
未知のクライアントがCMADMINに接続しようとしています。サービス拒否攻撃と考えられます。 |
CMADMIN |
No connect data |
未知のクライアントがCMADMINに接続しようとしています。サービス拒否攻撃と考えられます。 |
Gateway |
Connected to monitor |
ゲートウェイがCMADMINに接続されました。 |
Gateway |
Housekeeping |
情報メッセージです。ゲートウェイ・プロセスの内部ハウスキーピングが適切に行われています。ゲートウェイ・プロセスはCMADMINプロセスに正しく接続されています。 |
Gateway |
Idle timeout |
|
Gateway |
Out of connection control block (CCB) |
CMADMINが接続要求を処理できません。次の2つの理由が考えられます。
|
Gateway |
Session timeout |
|
Gateway |
State change from Empty to Init |
ゲートウェイからの状態変更メッセージ。Init状態になると、ゲートウェイは内部データの初期化を開始します。 |
Gateway |
State change from Init to Ready |
ゲートウェイからの状態変更メッセージ。ゲートウェイはReady状態になると、クライアントからの接続を受け入れます。 |
例16-11 CMADMINログ・メッセージの例
------------------------------- (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:40)(EVENT=Parameter list) (listener_address=(address=(protocol=tcp)(host=sales1)(port=1574))) (aso_authentication_filter=OFF) (connection_statistics=ON) (log_directory=/home/user/network/admin/log) (log_level=support) (max_connections=256) (idle_timeout=5) (inbound_connect_timeout=0) (session_timeout=20) (outbound_connect_timeout=0) (max_gateway_processes=1) (min_gateway_processes=1) (trace_directory=/home/user/network/admin/log) (trace_level=off) (trace_timestamp=OFF) (trace_filelen=0) (trace_fileno=0) ) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:40)(EVENT=Shared Memory Size) (BYTES=82524)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:40)(EVENT=GMON Attributes validated) (Type=Information)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:40)(EVENT=NS Listen Successful) ((ADDRESS=(PROTOCOL=tcp)(HOST=sales1)(PORT=1574)))) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:44)(EVENT=Received command) (CMD=version)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:44)(EVENT=Received command) (CMD=show status)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:44)(EVENT=Failed to get procedure id)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:49:15)(EVENT=Failed to get procedure id)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:49:46)(EVENT=Failed to get procedure id)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:49:50)(EVENT=Received command) (CMD=probe monitor)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:49:50)(EVENT=Received command) (CMD=shutdown normal)) -------------------------------
例16-12 ゲートウェイ・ログ・メッセージの例
------------------------------- (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=NS Initialised)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=Memory Allocated) (BYTES=1024)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=NCR Initialised)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=Connected to Monitor)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=State Change from Empty to Init)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=Memory Allocated) (BYTES=251904)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=Memory Allocated) (BYTES=2048)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=CCB Initialised)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=Started Listening)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:41)(EVENT=State Change from Init to Ready)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:46:47)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:06)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:06)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:07)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:12)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:13)(EVENT=Idle Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:17)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:22)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:25)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:25)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:27)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:30)(EVENT=Idle Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:32)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:37)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:42)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:42)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:42)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:47)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:52)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:48:57)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:49:02)(EVENT=Session Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=01-MAY-2024 08:49:02)(EVENT=Housekeeping)) -------------------------------
16.7 Oracle Net Servicesのエラー情報のトレース
トレース機能は、実行されたネットワーク・イベントが記述される一連の詳細文を生成します。操作をトレースすると、ログ・ファイルにある情報より多くのOracle Net Servicesコンポーネントの内部操作に関する情報が得られます。
この情報は、ファイル出力されエラーの原因となったイベントを識別できます。
ノート:
トレース機能には大量のディスク領域を消費するため、システムのパフォーマンスに大きな影響を与える可能性があります。したがって、必要なときにのみトレースを行うようにしてください。
16.7.1 Oracle Net Servicesのトレース・ファイル名の理解
Oracle Net Servicesの各コンポーネントは、それぞれ独自のトレース・ファイルを生成します。表16-18に、デフォルトのトレース・ファイル名と、トレース・ファイルを生成するコンポーネントのリストを示します。
表16-18 トレース・ファイル名
トレース・ファイル | コンポーネント |
---|---|
Oracle Connection Managerリスナー |
|
|
Oracle Connection Manager CMGWプロセス |
|
Oracle Connection Manager CMADMINプロセス |
|
リスナー |
|
クライアント |
|
データベース・サーバー |
|
TNSPINGユーティリティ |
16.7.2 トレース・パラメータの設定
トレースする情報のタイプと量やファイルを格納する場所など、トレースを制御するパラメータは、表16-19に示すように、ネットワーク・コンポーネントごとの構成ファイルで設定します。
表16-19 トレース・パラメータの位置
構成ファイル | コンポーネント |
---|---|
|
Oracle Connection Managerプロセス |
|
リスナー |
|
クライアント データベース・サーバー TNSPINGユーティリティ |
この項では、次の項目について説明します。
- cman.oraトレース・パラメータ
cman.ora
ファイルで設定できるOracle Connection Manager用のトレース・パラメータの設定を確認します。 - listener.oraトレース・パラメータ
listener.ora
ファイルで設定できるリスナー用のトレース・パラメータの設定を確認します。 - sqlnet.oraトレース・パラメータ
sqlnet.ora
ファイルで設定できるトレース・パラメータの設定を確認します。 - 構成ファイルのトレース・パラメータの設定
関連項目:
これらのパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。16.7.2.1 cman.oraのトレース・パラメータ
cman.ora
ファイルで設定できるOracle Connection Manager用のトレース・パラメータの設定を確認します。
表16-20 cman.oraのトレース・パラメータ
cman.oraのパラメータ | 説明 |
---|---|
トレース・ファイルの作成先となるディレクトリ。 デフォルトのディレクトリは |
|
トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
トレース用トレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、このパラメータを3に設定すると、ゲートウェイ・プロセス用のOracle Connection Managerのトレース・ファイル名は、 また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 |
|
トレース機能によりリスナーで記録される詳細レベル。次のいずれかのトレース・レベル値を指定します。
Oracle Connection Managerでは、リスナー、ゲートウェイおよび |
|
|
親トピック: トレース・パラメータの設定
16.7.2.2 listener.oraのトレース・パラメータ
listener.ora
ファイルで設定できるリスナー用のトレース・パラメータの設定を確認します。
表16-21 listener.oraのトレース・パラメータ
listener.oraのパラメータ | Oracle Enterprise Manager Cloud Control/Oracle Net Managerのフィールド | 説明 |
---|---|---|
「トレース・レベルを選択します」/「トレース・レベル」 |
トレース機能によりリスナーで記録される詳細レベル。トレース・レベルは、0 (ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
|
トレース・ファイル |
トレース・ファイルの作成先となるディレクトリとファイル。デフォルトのディレクトリは |
|
このパラメータは手動で設定する必要があります。 |
リスナー・トレース・ファイルの最大保持期間(分単位)。保持期間制限に達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
トレース・ファイルの最大保持期間を分単位で指定します。保持期間制限に達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
リスナー・トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
リスナーのトレース用トレース・ファイルの数。このパラメータが トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイル また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 このパラメータが このパラメータが |
|
このパラメータは手動で設定する必要があります。 |
リスナー・トレース・ファイルのすべてのトレース・イベントのタイムスタンプ( |
親トピック: トレース・パラメータの設定
16.7.2.3 sqlnet.oraのトレース・パラメータ
sqlnet.ora
ファイルで設定できるトレース・パラメータの設定を確認します。
表16-22 sqlnet.oraのトレース・パラメータ
sqlnet.oraのパラメータ | Oracle Net Managerのフィールド | 説明 |
---|---|---|
「クライアント情報: トレース・ディレクトリ」 |
クライアント・トレース出力の作成先となるディレクトリ。デフォルトのクライアント・ディレクトリは |
|
「サーバー情報: トレース・ディレクトリ」 |
データベース・サーバー・トレース出力の作成先となるディレクトリ。デフォルトのサーバー・ディレクトリは |
|
「クライアント情報: トレース・ファイル」 |
クライアントのトレース・ファイルの名前。デフォルトのトレース・ファイル名は |
|
「サーバー情報: トレース・ファイル」 |
データベース・サーバーのトレース・ファイルの名前。デフォルトのトレース・ファイル名は |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイルの最大保持期間を分単位で指定します。保持期間制限に達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
トレース・ファイルの最大保持期間を分単位で指定します。保持期間制限に達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
データベース・サーバー・トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース用のトレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイル また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 このパラメータが このパラメータが |
|
このパラメータは手動で設定する必要があります。 |
データベース・サーバーのトレース用トレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイル また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 このパラメータが このパラメータが |
|
「クライアント情報: トレース・レベル」 |
トレース機能によりクライアントで記録される詳細レベル。 トレース・レベルは、0 (ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
|
「サーバー情報: トレース・レベル」 |
トレース機能によりデータベース・サーバーで記録される詳細レベル。トレース・レベルは、0 (ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイル |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイル |
|
「クライアント情報: 一意のトレース・ファイル名」 |
値を |
TNSPINGユーティリティのトレース・パラメータ(表16-23を参照)は、手動でsqlnet.ora
ファイルに追加できます。TNSPINGユーティリティでは、Oracle Netネットワーク上のサービス(データベース、その他のTNSサービスなど)に正常に到達できるかどうか判断します。
表16-23 TNSPINGのトレース・パラメータ
sqlnet.oraのパラメータ | 説明 |
---|---|
TNSPINGトレース・ファイル |
|
トレース機能によりTNSPINGユーティリティで記録される詳細レベル。トレース・レベルは、0 (ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
親トピック: トレース・パラメータの設定
16.7.2.4 構成ファイルのトレース・パラメータの設定
sqlnet.ora
ファイルのトレース・パラメータはOracle Net Managerで設定し、listener.ora
ファイルのトレース・パラメータはOracle Enterprise Manager Cloud ControlまたはOracle Net Managerで設定します。cman.ora
ファイルのトレース・パラメータは、手動で設定する必要があります。
- Oracle Net Managerを使用したsqlnet.oraファイルのトレース・パラメータの設定
- Oracle Enterprise Manager Cloud Controlを使用したリスナーのトレース・パラメータの設定
- Oracle Net Managerを使用したリスナーのトレース・パラメータの設定
親トピック: トレース・パラメータの設定
16.7.2.4.1 Oracle Net Managerを使用したsqlnet.oraファイルのトレース・パラメータの設定
次の手順では、Oracle Net Managerを使用してsqlnet.ora
ファイルでトレース・パラメータを設定する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」見出しから「プロファイル」を展開します。
-
右ペインのリストから、「一般」を選択します。
-
「トレース」タブをクリックします。
-
設定を指定します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
クライアントのトレース・ファイルの名前はsqlnet.trc
です。サーバーのトレース・ファイルの名前はsvr_
pid
.trc
です。
親トピック: 構成ファイルのトレース・パラメータの設定
16.7.2.4.2 Oracle Enterprise Manager Cloud Controlを使用したリスナーのトレース・パラメータの設定
次の手順では、Oracle Enterprise Manager Cloud Controlを使用してリスナーのトレース・パラメータを設定する方法について説明します。
-
Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。
-
「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。
-
「実行」をクリックし、「リスナー」ページを表示します。
-
リスナーを選択し、「編集」をクリックし、「リスナーの編集」ページを表示します。
-
「ロギングとトレース」タブをクリックします。
-
設定を指定します。
-
「OK」をクリックします。
トレース・ファイルの名前はlistener.trc
です。
親トピック: 構成ファイルのトレース・パラメータの設定
16.7.2.4.3 Oracle Net Managerを使用したリスナーのトレース・パラメータの設定
次の手順では、Oracle Net Managerを使用してリスナーのトレース・パラメータを設定する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ローカル」見出しから「リスナー」を展開します。
-
リスナーを選択します。
-
右ペインのリストから、「一般」を選択します。
-
「ロギングとトレース」タブをクリックします。
-
設定を指定します。
-
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
親トピック: 構成ファイルのトレース・パラメータの設定
16.7.3 制御ユーティリティ実行時のトレース設定
トレースは、制御ユーティリティの実行時に設定できます。制御ユーティリティを使用してトレースを設定しても、*.ora
ファイルにパラメータは設定されません。設定は、制御ユーティリティの現在のセッションでのみ有効です。
-
リスナーの場合は、リスナー制御ユーティリティの
SET TRC_DIRECTORY
、SET TRC_FILE
およびSET TRC_LEVEL
コマンドを使用します。 -
Oracle Connection Managerの場合は、Oracle Connection Manager制御ユーティリティの
SET TRACE_DIRECTORY
、SET TRACE_LEVEL
およびSET TRACE_TIMESTAMP
コマンドを使用します。
16.7.4 Oracle Net Servicesのトレース・ファイルの評価
トレース・ファイルは、Oracleサポート・サービスがネットワーク上の問題点を診断してトラブルシューティングする際に役立ちます。この項では、トレース・ファイルの基本的な分析を実行する方法について説明します。
- ネットワーク・ノード間のデータ・パケットの流れ
- Oracle Netのデータ・パケットのフォーマット
- Oracle Netの関連トレース・エラー出力
問題がある場合は、トレース・ファイルにエラー・コードが記録されます。この例は、データベース・サーバーへのSQL*Plus接続が失敗した場合の典型的なトレース・ファイル出力を示しています。
16.7.4.1 ネットワーク・ノード間のデータ・パケットの流れ
Oracle Netは、データ・パケットを送受信することにより、その機能を実行します。support
のトレース・レベルを指定すると、トレース・ファイル内のOracle Netパケットの実際の内容を参照できます。送受信したパケット・タイプの順序により、接続を確立した方法を確認できます。
16.7.4.2 Oracle Netのデータ・パケットのフォーマット
トレース・ファイルの各行は、後ろにメッセージが続くプロシージャで始まります。各プロシージャの後には、実際のデータを示す16進データの行があります。パケットの内部をフローする実際のデータは、16進データの右側に表示される場合があります。
各パケットには、パケット・タイプを示すキーワードがあります。すべてのパケット・タイプは、接頭辞「nsp
」から始まります。これは、特定のパケット情報についてトレース・ファイルを検討する場合に役立ちます。トレース・ファイルで使用されるキーワードは次のとおりです。
-
NSPTCN: 接続パケット・タイプで使用します。
-
NSPTAC: 受入れパケット・タイプで使用します。
-
NSPTRF: 拒否パケット・タイプで使用します。
-
NSPTRS: 再送パケット・タイプで使用します。
-
NSPTDA: データ・パケット・タイプで使用します。
-
NSPCNL: 制御パケット・タイプで使用します。
-
NSPTMK: マーカー・パケット・タイプで使用します。
例16-13は、一般的なパケット情報を示しています。この例では、nscon
プロシージャはネットワークを通じてNSPTCNパケットを送信します。
例16-13 パケット情報
nscon: entry
nscon: doing connect handshake...
nscon: sending NSPTCN packet
nspsend: entry
nspsend: plen=187, type=1
nspsend: 187 bytes to transport
nspsend:packet dump
nspsend:00 BB 00 00 01 00 00 00 |........|
nspsend:01 33 01 2C 0C 01 08 00 |.3.,....|
nspsend:7F FF 7F 08 00 00 00 01 |........|
nspsend:00 99 00 22 00 00 08 00 |..."....|
nspsend:01 01 28 44 45 53 43 52 |..(DESCR|
nspsend:49 50 54 49 4F 4E 3D 28 |IPTION=(|
nspsend:43 4F 4E 4E 45 43 54 5F |CONNECT_|
nspsend:44 41 54 41 3D 28 53 49 |DATA=(SI|
nspsend:44 3D 61 70 33 34 37 64 |D=ap347d|
nspsend:62 31 29 28 43 49 44 3D |b1)(CID=|
nspsend:28 50 52 4F 47 52 41 4D |(PROGRAM|
nspsend:3D 29 28 48 4F 53 54 3D |=)(HOST=|
nspsend:61 70 32 30 37 73 75 6E |sales-12|
nspsend:29 28 55 53 45 52 3D 6D |)(USER=m|
nspsend:77 61 72 72 65 6E 29 29 |scott))|
nspsend:29 28 41 44 44 52 45 53 |)(ADDRES|
nspsend:53 5F 4C 49 53 54 3D 28 |S_LIST=(|
nspsend:41 44 44 52 45 53 53 3D |ADDRESS=|
nspsend:28 50 52 4F 54 4F 43 4F |(PROTOCO|
nspsend:4C 3D 74 63 70 29 28 48 |L=tcp)(H|
nspsend:4F 53 54 3D 61 70 33 34 |OST=sale|
nspsend:37 73 75 6E 29 28 50 4F |s-12)(PO|
nspsend:52 54 3D 31 35 32 31 29 |RT=1521)|
nspsend:29 29 29 00 00 00 00 00 |))).....|
nspsend: normal exit
nscon: exit (0)
16.7.4.3 Oracle Netの関連トレース・エラー出力
問題があると、エラー・コードがトレース・ファイルに記録されます。この例は、データベース・サーバーへのSQL*Plus接続が失敗した場合の典型的なトレース・ファイル出力を示しています。
エラー・メッセージおよびエラー・スタックは太字で示されています。
例16-14 トレース・ファイルの出力例
[22-MAY-2022 13:34:07:687] nsprecv: entry [22-MAY-2022 13:34:07:687] nsbal: entry [22-MAY-2022 13:34:07:687] nsbgetfl: entry [22-MAY-2022 13:34:07:687] nsbgetfl: normal exit [22-MAY-2022 13:34:07:687] nsmal: entry [22-MAY-2022 13:34:07:687] nsmal: 44 bytes at 0x132d90 [22-MAY-2022 13:34:07:687] nsmal: normal exit [22-MAY-2022 13:34:07:687] nsbal: normal exit [22-MAY-2022 13:34:07:687] nsprecv: reading from transport... [22-MAY-2022 13:34:07:687] nttrd: entry [22-MAY-2022 13:35:09:625] nttrd: exit [22-MAY-2022 13:35:09:625] ntt2err: entry [22-MAY-2022 13:35:09:625] ntt2err: Read unexpected EOF ERROR on 10 [22-MAY-2022 13:35:09:625] ntt2err: exit [22-MAY-2022 13:35:09:625] nsprecv: transport read error [22-MAY-2022 13:35:09:625] nsprecv: error exit [22-MAY-2022 13:35:09:625] nserror: entry[22-MAY-2022 13:35:09:625] nserror: nsres: id=0, op=68, ns=12537, ns2=12560;
nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
[22-MAY-2022 13:35:09:625] nscon: error exit [22-MAY-2022 13:35:09:625] nsdo: nsctxrnk=0 [22-MAY-2022 13:35:09:625] nsdo: error exit [22-MAY-2022 13:35:09:625] nscall: unexpected response [22-MAY-2022 13:35:09:625] nsclose: entry [22-MAY-2022 13:35:09:625] nstimarmed: entry [22-MAY-2022 13:35:09:625] nstimarmed: no timer allocated [22-MAY-2022 13:35:09:625] nstimarmed: normal exit [22-MAY-2022 13:35:09:625] nsdo: entry [22-MAY-2022 13:35:09:625] nsdo: cid=0, opcode=98, *bl=0, *what=0, uflgs=0x440, cflgs=0x2 [22-MAY-2022 13:35:09:625] nsdo: rank=64, nsctxrnk=0 [22-MAY-2022 13:35:09:625] nsdo: nsctx: state=1, flg=0x4201, mvd=0 [22-MAY-2022 13:35:09:625] nsbfr: entry [22-MAY-2022 13:35:09:625] nsbaddfl: entry [22-MAY-2022 13:35:09:625] nsbaddfl: normal exit [22-MAY-2022 13:35:09:625] nsbfr: normal exit [22-MAY-2022 13:35:09:625] nsbfr: entry [22-MAY-2022 13:35:09:625] nsbaddfl: entry [22-MAY-2022 13:35:09:625] nsbaddfl: normal exit [22-MAY-2022 13:35:09:625] nsbfr: normal exit [22-MAY-2022 13:35:09:625] nsdo: nsctxrnk=0 [22-MAY-2022 13:35:09:625] nsdo: normal exit [22-MAY-2022 13:35:09:625] nsclose: closing transport [22-MAY-2022 13:35:09:625] nttdisc: entry [22-MAY-2022 13:35:09:625] nttdisc: Closed socket 10 [22-MAY-2022 13:35:09:625] nttdisc: exit [22-MAY-2022 13:35:09:625] nsclose: global context check-out (from slot 0) complete [22-MAY-2022 13:35:09:703] nsnadisc: entry [22-MAY-2022 13:35:09:703] nadisc: entry [22-MAY-2022 13:35:09:703] nacomtm: entry [22-MAY-2022 13:35:09:703] nacompd: entry [22-MAY-2022 13:35:09:703] nacompd: exit [22-MAY-2022 13:35:09:703] nacompd: entry [22-MAY-2022 13:35:09:703] nacompd: exit [22-MAY-2022 13:35:09:703] nacomtm: exit [22-MAY-2022 13:35:09:703] nas_dis: entry [22-MAY-2022 13:35:09:703] nas_dis: exit [22-MAY-2022 13:35:09:703] nau_dis: entry [22-MAY-2022 13:35:09:703] nau_dis: exit [22-MAY-2022 13:35:09:703] naeetrm: entry [22-MAY-2022 13:35:09:703] naeetrm: exit [22-MAY-2022 13:35:09:703] naectrm: entry [22-MAY-2022 13:35:09:703] naectrm: exit [22-MAY-2022 13:35:09:703] nagbltrm: entry [22-MAY-2022 13:35:09:703] nau_gtm: entry [22-MAY-2022 13:35:09:703] nau_gtm: exit [22-MAY-2022 13:35:09:703] nagbltrm: exit [22-MAY-2022 13:35:09:703] nadisc: exit [22-MAY-2022 13:35:09:703] nsnadisc: normal exit [22-MAY-2022 13:35:09:703] nsbfr: entry [22-MAY-2022 13:35:09:703] nsbaddfl: entry [22-MAY-2022 13:35:09:703] nsbaddfl: normal exit [22-MAY-2022 13:35:09:703] nsbfr: normal exit [22-MAY-2022 13:35:09:703] nsmfr: entry [22-MAY-2022 13:35:09:703] nsmfr: 2256 bytes at 0x130508 [22-MAY-2022 13:35:09:703] nsmfr: normal exit [22-MAY-2022 13:35:09:703] nsmfr: entry [22-MAY-2022 13:35:09:703] nsmfr: 484 bytes at 0x1398a8 [22-MAY-2022 13:35:09:703] nsmfr: normal exit [22-MAY-2022 13:35:09:703] nsclose: normal exit [22-MAY-2022 13:35:09:703] nscall: connecting... [22-MAY-2022 13:35:09:703] nsclose: entry [22-MAY-2022 13:35:09:703] nsclose: normal exit [22-MAY-2022 13:35:09:703] nladget: entry [22-MAY-2022 13:35:09:734] nladget: exit [22-MAY-2022 13:35:09:734] nsmfr: entry [22-MAY-2022 13:35:09:734] nsmfr: 144 bytes at 0x132cf8 [22-MAY-2022 13:35:09:734] nsmfr: normal exit [22-MAY-2022 13:35:09:734] nsmfr: entry [22-MAY-2022 13:35:09:734] nsmfr: 156 bytes at 0x138e70 [22-MAY-2022 13:35:09:734] nsmfr: normal exit [22-MAY-2022 13:35:09:734] nladtrm: entry [22-MAY-2022 13:35:09:734] nladtrm: exit [22-MAY-2022 13:35:09:734] nscall: error exit [22-MAY-2022 13:35:09:734] nioqper: error from nscall[22-MAY-2022 13:35:09:734] nioqper: ns main err code: 12537
[22-MAY-2022 13:35:09:734] nioqper: ns (2) err code: 12560
[22-MAY-2022 13:35:09:734] nioqper: nt main err code: 507
[22-MAY-2022 13:35:09:734] nioqper: nt (2) err code: 0
[22-MAY-2022 13:35:09:734] nioqper: nt OS err code: 0
[22-MAY-2022 13:35:09:734] niomapnserror: entry [22-MAY-2022 13:35:09:734] niqme: entry [22-MAY-2022 13:35:09:734] niqme: reporting NS-12537 error as ORA-12537 [22-MAY-2022 13:35:09:734] niqme: exit [22-MAY-2022 13:35:09:734] niomapnserror: returning error 12537 [22-MAY-2022 13:35:09:734] niomapnserror: exit [22-MAY-2022 13:35:09:734] niotns: Couldn't connect, returning 12537 [22-MAY-2022 13:35:10:734] niotns: exit [22-MAY-2022 13:35:10:734] nsbfrfl: entry [22-MAY-2022 13:35:10:734] nsbrfr: entry [22-MAY-2022 13:35:10:734] nsbrfr: nsbfs at 0x132d90, data at 0x132dc8. [22-MAY-2022 13:35:10:734] nsbrfr: normal exit [22-MAY-2022 13:35:10:734] nsbrfr: entry [22-MAY-2022 13:35:10:734] nsbrfr: nsbfs at 0x1248d8, data at 0x132210. [22-MAY-2022 13:35:10:734] nsbrfr: normal exit [22-MAY-2022 13:35:10:734] nsbrfr: entry [22-MAY-2022 13:35:10:734] nsbrfr: nsbfs at 0x12d820, data at 0x1319f0. [22-MAY-2022 13:35:10:734] nsbrfr: normal exit [22-MAY-2022 13:35:10:734] nsbfrfl: normal exit [22-MAY-2022 13:35:10:734] nigtrm: Count in the NI global area is now 1 [22-MAY-2022 13:35:10:734] nigtrm: Count in the NL global area is now 1
ノート:
オペレーティング・システムのエラー・コードはエラー・スタックに表示されます。各オペレーティング・システムには独自のエラー・コードがあります(オペレーティング・システムのエラー・コードの詳細は、システムのドキュメントを参照してください)。
エラー・コードを評価する最も効率的な方法は、ロギングされている最新のnserror
エントリを検索することです。これは、セッション・レイヤーが接続を制御しているためです。最も重要なエラー・メッセージはファイルの最後部にあるメッセージです。これらは最新のエラーであり、接続の問題の原因を示しています。
oerr
を使用します。このためには、任意のコマンドラインで次のように入力します。oerr tns error_number
例として、例16-14で示されているトレース・ファイル内にログ記録された、次のnserror
エントリについて考えます。
[22-MAY-2022 13:35:09:625] nserror: nsres: id=0, op=68, ns=12537, ns2=12560
;
nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
前述の例では、メインTNSエラーは12537で、セカンダリ・エラーは12560です。プロトコル・アダプタ・エラーは507です。oerr
を使用することによって、リターン・コード12537、12560、および507の詳細を検索できます。次の例ではユーザー入力は太字で示されています。
oerr tns 12537
12537, 00000, "TNS:connection closed"
// *Cause: "End of file" condition has been reached; partner has disconnected.
// *Action: None needed; this is an information message.
oerr tns 12560
12560, 00000, "TNS:Database communication protocol error."
// *Cause: A lower level communication protocol adapter error occurred.
// *Action:
// - Check for lower level network transport errors in the error stack
// for additional information.
// - Ensure the protocol specification used in the address for the
// connection is correct.
// - For further details, turn on network tracing and rerun the
// operation. Turn off tracing when the operation is complete.
// - Contact Oracle Support.
oerr tns 507
00507, 00000, "Connection closed"
// *Cause: Normal "end of file" condition has been reached; partner has
// disconnected.
// *Action: None needed; this is an information message.
16.7.5 トレース・アシスタントを使用したトレース・ファイルの検証
Oracle Net Servicesでは、トレース・アシスタントという名前のツールを提供しており、このツールは、トレース・ファイル・テキストの既存の行をわかりやすい段落に変換することによって、トレース・ファイル内の情報を理解する際に役立ちます。トレース・アシスタントは、レベル16(support)のOracle Net Servicesトレース・ファイルでのみ機能します。
ノート:
トレース・アシスタントは、DIAG_ADR_ENABLEDパラメータがoff
に設定されている場合のみ使用できます。「自動診断リポジトリの理解」を参照してください。
- トレース・アシスタントの構文
トレース・アシスタントを実行するには、コマンドラインでtrcasst
コマンドを入力します。 - パケットに関する出力例
トレース・アシスタントでは、Oracle NetレイヤーとTTC通信レイヤーの両方からデータ・パケットを表示できます。 - Two-Task Common (TTC)パケットの例
TTCは、カーソルのオープン、行の選択、行の更新など、データベース・サーバーに送られる要求を処理します。 - 接続に関する出力例
これらは、trcasst
-la
および-li
オプションを使用した出力例です。 - 統計に関する出力例
16.7.5.1 トレース・アシスタントの構文
トレース・アシスタントを実行するには、コマンドラインでtrcasst
コマンドを入力します。
trcasst [options
]filename
表16-24 トレース・アシスタントの構文オプション
オプション | 説明 |
---|---|
-elevel |
エラー情報を表示します。
|
-la |
接続IDがNS接続パケットに存在する場合、出力結果には接続IDが表示されます。接続IDは、16進数の8バイトのIDとして表示されます。パケットが接続に関連付けられていない場合、生成されるIDはトレース・アシスタントによって作成されます。つまり、トレース・ファイル内の接続パケットは上書きされます。これは、循環方式のトレース・ファイルで発生する可能性があります。 出力には、IDごとに次の内容が表示されます。
ノート:
|
-li ID |
ノート: このオプションは、必ず |
-otype |
出力する情報の種類と量を表示します。
ノート: |
-s |
次の統計情報を表示します。
|
オプションを指定しない場合、デフォルトは-odt -e0 -s
です。この場合、トレース・ファイル内の接続情報とTTCイベントの詳細、エラー・レベル0(ゼロ)のエラー情報、および統計情報が表示されます。
次の例では、トレース・アシスタントで-e1
オプションの使用によってどのようにトレース・ファイル情報がより読みやすい書式に変換されるかを示します。
例16-15 trcasst -e1の出力
************************************************************************* * Trace Assistant * ************************************************************************* ntus2err: exit ntuscni: exit ntusconn: exit nserror: entry -<ERROR>- nserror: nsres: id=0, op=65, ns=12541, ns2=12560; nt[0]=511, nt[1]=2, nt[2]=0 /////////////////////////////////////////////////////////////// Error found. Error Stack follows: id:0 Operation code:65 NS Error 1:12541 NS Error 2:12560 NT Generic Error:511 Protocol Error:2 OS Error:0 NS & NT Errors Translation 12541, 00000 "TNS:Cannot connect. No listener at %s." // *Cause: The connection request could not be completed because either the // database listener process was not running on the specified host // and port, or an Interprocess Communication (IPC) protocol // connection was attempted but there was no listener for the // specified key running on the local machine. PL/SQL applications // using UTL packages can also get this error if the external server // process is not listening on the specified address. // *Action: // - If the error shows the host and port that the connection tried to // use, then ensure that a listener process is running on that host // and is listening on that port. If the message indicates that there // was no listener at the specified key, then ensure that the listener // is running on the local machine and listening for the specified // key. The listener process is used to initially handle all // connections to Oracle Database. // - Check for mistakes in the specified connection string. // - If you are using an alias from a tnsnames.ora file, then verify // the correctness of the host and port. Alternatively, verify the // correctness of the key if you are using an IPC connection. // - If using an Easy Connect connection string, then ensure that the // host and port are correct. // - Use lsnrctl to check that the listener is running and to verify // the port or key it listens to. Run one of the following: // * lsnrctl status // * Or, when a listener is named in the listener.ora file, run: // lsnrctl status <listener_name> // * Or, if an Oracle Connection Manager (Oracle CMAN) proxy // listener is named in the cman.ora file, run: // cmctl show status -c <cman_name> / 12560, 00000 "TNS:Database communication protocol error." // *Cause: A lower level communication protocol adapter error occurred. // *Action: // - Check for lower level network transport errors in the error stack // for additional information. // - Ensure the protocol specification used in the address for the // connection is correct. // - For further details, turn on network tracing and rerun the // operation. Turn off tracing when the operation is complete. // - Contact Oracle Support. / 00511, 00000 "No listener" // *Cause: The connect request could not be completed because no application // is listening on the address specified, or the application is unable to // service the connect request in a sufficiently timely manner. // *Action: Ensure that the supplied destination address matches one of // the addresses used by the listener - compare the TNSNAMES.ORA entry with // appropriate LISTENER.ORA file (or TNSNAV.ORA if the connection is to go // by way of an Interchange. Start the listener on the remote machine. / /////////////////////////////////////////////////////////////// ************************************************************************* * Trace Assistant has completed * *************************************************************************
ただし、nserror
ファンクションでロギングされなかった他のエラーがトレース・ファイル内に存在する場合があります。
親トピック: トレース・アシスタントを使用したトレース・ファイルの検証
16.7.5.2 パケットに関する出力例
トレース・アシスタントでは、Oracle NetレイヤーとTTC通信レイヤーの両方からデータ・パケットを表示できます。
次のオプションを使用してパケットを表示できます。
-
接続性のサマリー(
-oc
オプションを使用) -
接続性の詳細(
-od
オプションを使用)
例16-16は、-oc
オプションを使用した場合のサマリー情報の出力を示しています。
例16-16 trcasst -ocの出力のサマリー情報
************************************************************************* * Trace Assistant * ************************************************************************* ---> Send 198 bytes - Connect packet Connect data length: 140 Connect Data: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)(CID=(PROGRAM=) (HOST=sales-server)(USER=joe)))) <--- Received 76 bytes - Redirect packet Redirect data length: 66 Redirect Data: (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)) ---> Send 198 bytes - Connect packet Connect data length: 140 Connect Data: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)(CID=(PROGRAM=) (HOST=sales-server)(USER=joe)))) <--- Received 32 bytes - Accept packet Connect data length: 0 ---> Send 153 bytes - Data packet Native Services negotiation packet <--- Received 127 bytes - Data packet Native Services negotiation packet ---> Send 32 bytes - Data packet <--- Received 140 bytes - Data packet ************************************************************************* * Trace Assistant has completed * *************************************************************************
送信または受信されるパケットには、それぞれ、---> Send
nnn
bytes
または<--- Received
nnn
bytes
という接頭辞が付きます。これは、このノードがnnn
バイトの特定のタイプのパケットを送信または受信していることを示しています。この接頭辞によって、ノードがクライアントかデータベース・サーバーかを判断できます。接続要求は、常にクライアントから送信され、データベース・サーバーまたはリスナーに受信されます。
例16-17は、-od
オプションを使用した場合の詳細情報の出力を示しています。この出力には、接続のネゴシエーション時に接続データとともに送信されたすべての詳細情報が表示されます。
例16-17 trcasst -odの出力の詳細情報
************************************************************************* * Trace Assistant * ************************************************************************* ---> Send 241 bytes - Connect packet Current NS version number is: 311. Lowest NS version number can accommodate is: 300. Global options for the connection: can receive attention no attention processing Don't care Maximum SDU size:8192 Maximum TDU size:32767 NT protocol characteristics: Test for more data Test operation Full duplex I/O Urgent data support Generate SIGURG signal Generate SIGPIPE signal Generate SIGIO signal Handoff connection to another Line turnaround value :0 Connect data length :183 Connect data offset :58 Connect data maximum size :512 Native Services wanted NAU doing O3LOGON - DH key foldedin Native Services wanted NAU doing O3LOGON - DH key foldedin Cross facility item 1: 0 Cross facility item 2: 0 Connection id : Ox000059F70000004C (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)(SRVR=SHARED)(CID=(PROGRAM=) (HOST=sales-server)(USER=joe)))) <--- Received 76 bytes - Redirect packet Redirect data length: 66 (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)) ---> Send 241 bytes - Connect packet Current NS version number is: 311. Lowest NS version number can accommodate is: 300. Global options for the connection: can receive attention no attention processing Don't care Maximum SDU size:8192 Maximum TDU size:32767 NT protocol characteristics: Test for more data Test operation Full duplex I/O Urgent data support Generate SIGURG signal Generate SIGPIPE signal Generate SIGIO signal Handoff connection to another Line turnaround value :0 Connect data length :183 Connect data offset :58 Connect data maximum size :512 Native Services wanted NAU doing O3LOGON - DH key foldedin Native Services wanted NAU doing O3LOGON - DH key foldedin Cross facility item 1: 0 Cross facility item 2: 0 Connection id : Ox000059F70000007A (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)(SRVR=SHARED)(CID=(PROGRAM=) (HOST=sales-server)(USER=joe)))) <--- Received 32 bytes - Accept packet Accepted NS version number is: 310. Global options for the connection: no attention processing Don't care Accepted maximum SDU size: 8192 Accepted maximum TDU size: 32767 Connect data length: 0 Native Services wanted NAU doing O3LOGON - DH key foldedin Native Services wanted NAU doing O3LOGON - DH key foldedin ---> Send 153 bytes - Data packet Native Services negotiation packet version#: 150999040 Service data packet #0 for Supervisor has 3 subpackets Subpacket #0: Version #150999040 Subpacket #1: 0000000000000000 Subpacket #2: DAABBCEF0003000000040004000100010002 Service data packet #1 for Authentication has 3 subpackets Subpacket #0: Version #150999040 Subpacket #1: UB2: 57569 Subpacket #2: FCFF Service data packet #2 for Encryption has 2 subpackets Subpacket #0: Version #150999040 Subpacket #1: 000000000000000000 Service data packet #3 for Data Integrity has 2 subpackets Subpacket #0: Version #150999040 Subpacket #1: 000000 <--- Received 127 bytes - Data packet Native Services negotiation packet version#: 135290880 Service data packet #0 for Supervisor has 3 subpackets Subpacket #0: Version #135290880 Subpacket #1: 0000 Subpacket #2: DAABBCEF00030000000200040001 Service data packet #1 for Authentication has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: FBFF Service data packet #2 for Encryption has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: UB1: 0 Service data packet #3 for Data Integrity has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: UB1: 0 .... ---> Send 11 bytes - Marker packet One data byte. Hex character sent over to the server: 2 <--- Received 11 bytes - Marker packet One data byte. Hex character sent over to the server: 2 <--- Received 155 bytes - Data packet ---> Send 25 bytes - Data packet <--- Received 11 bytes - Data packet ---> Send 13 bytes - Data packet <--- Received 11 bytes - Data packet ---> Send 10 bytes - Data packet Data Packet flags: End of file ************************************************************************* * Trace Assistant has completed * *************************************************************************
親トピック: トレース・アシスタントを使用したトレース・ファイルの検証
16.7.5.3 Two-Task Common (TTC)パケットの例
TTCは、カーソルのオープン、行の選択、行の更新など、データベース・サーバーに送られる要求を処理します。
データベース・サーバーは、すべての要求に応答します。ログオンを要求すると、その要求を完了したデータベース・サーバーから応答が返されます。
-ou
オプションを使用した場合のTTCサマリー情報は、他の表示とは異なり、行ごとに1つのパケットではなく2つのパケットが表示されます。これは、TTCで処理された要求と応答のペアをミラー化するためです。
出力は次の書式で表示されます。
description
TTC_message
cursor_number
SQL_statement
bytes_sent
bytes_received
例16-18は、接続のネゴシエーション時に接続データとともに送信されたすべての詳細情報を示しています。
例16-18 trcasst -ouの出力
************************************************************************* * Trace Assistant * ************************************************************************* Bytes Bytes Sent Rcvd Send operation(TTIPRO) 32 140 Send operation(TTIDTY) 33 22 Get the session key (OSESSKEY) 229 145 Generic authentication call (OAUTH) 368 1001 Send operation(TTIPFN) 44 144 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 SELECT USER FROM ... 47 100 Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 137 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 !Keep Parse BEGI... 156 145 Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 SELECT ATTRIBUTE,... 186 100 Fast upi calls to opial7 (OALL7) # 1 246 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 SELECT CHAR_VALUE... 208 100 Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse BEGI... 183 41 Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch SELE... 165 278 Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 commit 31 100 Execute statement (OEXEC) # 1 number of rows: 1 25 100 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse BEGI... 183 41 Send operation(TTIRXD) 60 111 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse BEGI... 183 41 Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch sele... 144 383 New v8 bundled call (OALL8) # 1 !Keep Fetch 121 315 Logoff off of Oracle (OLOGOFF) 13 11 ************************************************************************* * Trace Assistant has completed * *************************************************************************
例16-19は、-ot
オプションを使用した場合のTTC詳細情報の出力を示しています。
例16-19 trcasst -otの出力の詳細なTTC情報
************************************************************************* * Trace Assistant * ************************************************************************* Set protocol (TTIPRO) Operation 01 (con) Send protocol version=6 Originating platform: x86_64/Linux 2.4.xx Set protocol (TTIPRO) Operation 01 (con) Receive protocol version=6 Destination platform: x86_64/Linux 2.4.xx Set datatypes (TTIDTY) Set datatypes (TTIDTY) Start of user function (TTIFUN) Get the session key (OSESSKEY) Return opi parameter (TTIRPA) Start of user function (TTIFUN) Generic authentication call (OAUTH) Return opi parameter (TTIRPA) Piggyback function follows (TTIPFN) Start of user function (TTIFUN) V8 session switching piggyback (O80SES) Start of user function (TTIFUN) Get Oracle version/date (OVERSION) Return opi parameter (TTIRPA) Oracle Database 23ai Enterprise Edition Release 23.4.0.0.0 - 64bit Production Version 23.4.0.0.0 Start of user function (TTIFUN) New v8 bundled call (OALL8) Cursor # 0 Parse Fetch Describe information (TTIDCB) Start of user function (TTIFUN) Fetch row (OFETCH) Cursor # 3 ORACLE function complete (TTIOER) ORA-01403: no data found Piggyback function follows (TTIPFN) Start of user function (TTIFUN) Cursor Close All (OCCA) Start of user function (TTIFUN) New v8 bundled call (OALL8) Cursor # 0 Parse Fetch Describe information (TTIDCB) Piggyback function follows (TTIPFN) Start of user function (TTIFUN) Cursor Close All (OCCA) Start of user function (TTIFUN) New v8 bundled call (OALL8) Cursor # 0 Parse Fetch Describe information (TTIDCB) Piggyback function follows (TTIPFN) Start of user function (TTIFUN) Cursor Close All (OCCA) Start of user function (TTIFUN) New v8 bundled call (OALL8) Cursor # 0 !Keep Parse Sending the I/O vector only for fast upi (TTIIOV) Piggyback function follows (TTIPFN) Start of user function (TTIFUN) Cursor Close All (OCCA) Start of user function (TTIFUN) New v8 bundled call (OALL8) Cursor # 0 Parse Fetch Describe information (TTIDCB) Piggyback function follows (TTIPFN) Start of user function (TTIFUN) Cursor Close All (OCCA) Start of user function (TTIFUN) Commit (OCOMMIT) V6 Oracle func complete (TTISTA) Start of user function (TTIFUN) Commit (OCOMMIT) V6 Oracle func complete (TTISTA) Start of user function (TTIFUN) Logoff off of Oracle (OLOGOFF) MAXIMUM OPEN CURSORS: 0 CURSORS NOT CLOSED: 0 V6 Oracle func complete (TTISTA) Succeeded ************************************************************************* * Trace Assistant has completed * *************************************************************************
例16-20は、-ouq
オプションを使用した場合のSQL詳細情報の出力を示しています。出力の各行の最初に表示される項目は、実際に送信された要求です。2番目に表示される項目は、操作が実行されたカーソルの位置です。3番目に表示される項目は、SQLコマンドのリスト、または応答中を示すフラグのいずれかです。送受信されたバイト数は、最も右側に表示されます。フラグは次のいずれかです。
-
!PL/SQL = PL/SQL要求以外
-
COM = Commit
-
IOV = Get I/O Vector
-
DEFN = Define
-
EXEC = Execute
-
FETCH = Fetch
-
CAN = Cancel
-
DESCSEL = Describe select
-
DESCBND = Describe Bind
-
BND = Bind
-
PARSE = Parse
-
EXACT = Exact
例16-20 trcasst -ouqの出力の詳細なSQL情報
************************************************************************* * Trace Assistant * ************************************************************************* Bytes Bytes Sent Rcvd Send operation(TTIPRO) 32 140 Send operation(TTIDTY) 33 22 Get the session key (OSESSKEY) 229 145 Generic authentication call (OAUTH) 368 1001 Send operation(TTIPFN) 44 144 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 47 100 SELECT USER FROM DUAL Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 137 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 !Keep Parse 156 145 BEGIN DBMS_OUTPUT.DISABLE; END; Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 186 100 SELECT ATTRIBUTE,SCOPE,NUMERIC_VALUE,CHAR_VALUE,DA TE_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('S QL*Plus') LIKE UPPER(PRODUCT)) AND (UPPER(USER) LI KE USERID) Fast upi calls to opial7 (OALL7) # 1 246 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 208 100 SELECT CHAR_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('SQL*Plus') LIKE UPPER(PRODUCT)) AND ((UPPE R(USER) LIKE USERID) OR (USERID = 'PUBLIC')) AND ( UPPER(ATTRIBUTE) = 'ROLES') Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse 183 41 BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); E ND; Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch 165 278 SELECT DECODE('A','A','1','2') FROM DUAL Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 31 100 commit Execute statement (OEXEC) # 1 number of rows: 1 25 100 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse 183 41 BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); E ND; Send operation(TTIRXD) 60 111 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse 183 41 BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); E ND; Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch 144 383 select * from dept New v8 bundled call (OALL8) # 1 !Keep Fetch 121 315 Logoff off of Oracle (OLOGOFF) 13 11 ************************************************************************* * Trace Assistant has completed * *************************************************************************
親トピック: トレース・アシスタントを使用したトレース・ファイルの検証
16.7.5.4 接続に関する出力例
これらは、trcasst
-la
および-li
オプションを使用した出力例です。
例16-21は、-la
オプションを使用した場合の出力を示しています。出力には次の情報が表示されます。
-
受信した接続ID
-
接続のソケットID
-
操作
-
Receive
はトレースがデータベース・サーバー・トレースであることを示します。この例では、Receive
が操作です。 -
Send
はトレースがクライアント・トレースであることを示します。
-
-
DISPATCHERS
パラメータのMULTIPLEX
属性は、ON
に設定されています。 -
32ビットのセッションID
-
受信した接続データ情報。
例16-21 trcasst -laの出力
************************************************************************* * Trace Assistant * ************************************************************************* Connection ID: 00000B270000000B Socket Id: 15 Operation: Receive Multiplex: ON Session Id: 8362785DE4FC0B19E034080020F793E1 Connect Data: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVER=shared) (SERVICE_NAME=sales.us.example.com)(CID=(PROGRAM=)(HOST=sales-server) (USER=oracle)))) Connection ID: 00000B240000000B Socket Id: 15 Operation: Receive Multiplex: ON Session Id: 8362785DE4FB0B19E034080020F793E1 Connect Data: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVER=shared) (SERVICE_NAME=sales.us.example.com)(CID=(PROGRAM=)(HOST=sales-server) (USER=oracle)))) Connection ID: 00000B1F00000008 Socket Id: 15 Operation: Receive Multiplex: ON Session Id: 8362785DE4F90B19E034080020F793E1 Connect Data: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVER=shared) (SERVICE_NAME=sales.us.example.com)(CID=(PROGRAM=)(HOST=sales-server) (USER=oracle)))) ************************************************************************* * Trace Assistant has completed * *************************************************************************
例16-22は、-li 00000B1F00000008
オプションを使用した場合の接続ID 00000B1F00000008
に関する出力を示しています。
例16-22 trcasst -liの出力
************************************************************************* * Trace Assistant * ************************************************************************* <--- Received 246 bytes - Connect packet Current NS version number is: 310. Lowest NS version number can accommodate is: 300. Global options for the connection: Can receive attention No attention processing Don't care Maximum SDU size: 8192 Maximum TDU size: 32767 NT protocol characteristics: Test for more data Test operation Full duplex I/O Urgent data support Generate SIGURG signal Generate SIGPIPE signal Generate SIGIO signal Handoff connection to another Line turnaround value: 0 Connect data length: 188 Connect data offset: 58 Connect data maximum size: 512 Native Services wanted NAU doing O3LOGON - DH key foldedin Native Services wanted NAU doing O3LOGON - DH key foldedin Cross facility item 1: 0 Cross facility item 2: 0 Connection id: Ox00000B1F00000008 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVER=shared)(SERVICE_NAME=sales.us.example.com) (CID=(PROGRAM=)(HOST=sales-server)(USER=oracle)))) ---> Send 114 bytes - Accept packet Accepted NS version number is: 310. Global options for the connection: No attention processing Don't care Accepted maximum SDU size: 8192 Accepted maximum TDU size: 32767 Connect data length: 0 Native Services wanted NAU doing O3LOGON - DH key foldedin Native Services wanted NAU doing O3LOGON - DH key foldedin Connection Time out: 1000 Tick Size: 100 Reconnect Data: (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=34454)) Session Id: 8362785DE4F90B19E034080020F793E1 <--- Received 164 bytes - Data packet Native Services negotiation packet version#: 135290880 Service data packet #0 for Supervisor has 3 subpackets Subpacket #0: Version #135290880 Subpacket #1: 0000000000000000 Subpacket #2: DAABBCEF0003000000040004000100010002 Service data packet #1 for Authentication has 3 subpackets Subpacket #0: Version #135290880 Subpacket #1: UB2: 57569 Subpacket #2: FCFF Service data packet #2 for Encryption has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: 0000000000 Service data packet #3 for Data Integrity has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: 0000 ---> Send 143 bytes - Data packet Native Services negotiation packet version#: 135290880 Service data packet #0 for Supervisor has 3 subpackets Subpacket #0: Version #135290880 Subpacket #1: 0000 Subpacket #2: DAABBCEF00030000000200040001 Service data packet #1 for Authentication has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: FBFF Service data packet #2 for Encryption has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: UB1: 0 Service data packet #3 for Data Integrity has 2 subpackets Subpacket #0: Version #135290880 Subpacket #1: UB1: 0 <--- Received 48 bytes - Data packet Set protocol (TTIPRO) Operation 01 (con) Receive protocol version=6 Destination platform: SVR4-be-8.1.0 ---> Send 156 bytes - Data packet Set protocol (TTIPRO) Operation 01 (con) Send protocol version=6 Originating platform: SVR4-be-8.1.0 <--- Received 49 bytes - Data packet Set datatypes (TTIDTY) ---> Send 38 bytes - Data packet Set datatypes (TTIDTY) <--- Received 245 bytes - Data packet Start of user function (TTIFUN) Get the session key (OSESSKEY) ---> Send 161 bytes - Data packet Return opi parameter (TTIRPA) ... ************************************************************************* * Trace Assistant has completed * *************************************************************************
親トピック: トレース・アシスタントを使用したトレース・ファイルの検証
16.7.5.5 統計に関する出力例
収集される統計の種類は、ほとんどの場合、ネットワーク・パートナ間で送受信されたTTCコール数、パケット数およびバイト数です。例16-23では、-s
オプションを使用した場合の代表的なトレース・ファイルの統計を示しています。
例16-23 trcasst -sの出力
************************************************************************* * Trace Assistant * ************************************************************************* ---------------------- Trace File Statistics: ---------------------- Total number of Sessions: 3 DATABASE: Operation Count: 0 OPENS, 21 PARSES, 21 EXECUTES, 9 FETCHES Parse Counts: 9 PL/SQL, 9 SELECT, 0 INSERT, 0 UPDATE, 0 DELETE, 0 LOCK, 3 TRANSACT, 0 DEFINE, 0 SECURE, 0 OTHER Execute counts with SQL data: 9 PL/SQL, 0 SELECT, 0 INSERT, 0 UPDATE, 0 DELETE, 0 LOCK, 0 TRANSACT, 0 DEFINE, 0 SECURE, 0 OTHER Packet Ratio: 6.142857142857143 packets sent per operation Currently opened Cursors: 0 Maximum opened Cursors : 0 ORACLE NET SERVICES: Total Calls : 129 sent, 132 received, 83 oci Total Bytes : 15796 sent, 13551 received Average Bytes: 122 sent per packet, 102 received per packet Maximum Bytes: 1018 sent, 384 received Grand Total Packets: 129 sent, 132 received ************************************************************************* * Trace Assistant has completed * *************************************************************************
親トピック: トレース・アシスタントを使用したトレース・ファイルの検証
16.8 Oracleサポート・サービスへの連絡
一部のメッセージについては、Oracleサポート・サービスに問題を報告することをお薦めします。Oracleサポート・サービスに連絡する場合は、次の情報を用意してください。
-
ハードウェア、オペレーティング・システムおよびOracle Databaseを実行しているオペレーティング・システムのリリース番号。
-
Oracle Databaseの完全なリリース番号(23.4.0.0.0など)。
-
エラーの発生時に使用していたすべてのOracleプログラムとリリース番号(例: SQL*Plusリリース23.4.0.0.0)。
-
複数のエラー・コードまたはメッセージが検出された場合の表示順の正確なコード番号およびメッセージ・テキスト。
-
次の規約に従った問題の重大度。
-
1: プログラムが使用できません。操作に重大な影響を与えます。
-
2: プログラムが使用できます。操作が大幅に制限されます。
-
3: 機能が制限されて使用できるプログラム。全体の操作に重大な影響はありません。
-
4: お客様によって回避された問題。発生しても操作への影響は最小限です。
-
次の項目も必要です。
-
連絡者の名前
-
連絡者の組織の名前
-
連絡者のOracle Support ID番号
-
連絡者の電話番号