ヘッダーをスキップ
Oracle Database Net Services管理者ガイド
11g リリース1(11.1)
E05725-04
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

16 Oracle Net Servicesのトラブルシューティング

Oracle Net Servicesには、ログ・ファイルとトレース・ファイルを使用してネットワーク上の問題点を理解して解決する方法があります。これらのファイルは、エラーが発生すると、ネットワーク・コンポーネント間の対話を追跡し記録します。この情報を評価すると、非常に複雑なネットワーク上の問題点でも容易に診断してトラブルシューティングできます。

この章では、一般的なネットワーク・エラーとそれらのエラーを解決する手順を説明します。また、さらに複雑なネットワーク上の問題点を診断してトラブルシューティングするためにエラー情報をロギングしてトレースする方法についても説明します。この章の内容は、次のとおりです。

16.1 Oracle Net Servicesの診断

基本的なpeer-to-peer(単一プロトコル・ネットワーク)接続を確立しようとしてORAエラーが戻された場合は、この項を参考にして問題の原因を診断してください。

Oracle Net Servicesによって、基底に存在するエラーのエラー番号やエラー・メッセージで報告されますが、これらは実際の問題を指しているとはかぎりません。この項は、Net8 Servicesの正常に機能する部分と機能していない部分を切り分けるのに役立ちます。また、エラーが次のどの項目に属するかを判断するのに役立ちます。

ほとんどの場合、各種ネットワーク層を順にテストすることで問題を発見できます。

この項で説明する項目は、次のとおりです。

16.1.1 自動診断リポジトリ

データベース上の問題が発生した際に停止時間および業務の中断の両方を軽減するため、Oracleでは、すべてのOracle製品で使用される標準化された診断方法を実装しています。

この方法の一環として、Oracle Netの診断およびトレースに関する情報が、標準化された読みやすい書式に統合されます。この情報は単一の階層リポジトリに格納されます。Oracle Net診断データは、Oracleクライアント、アプリケーション・サーバーおよびデータベース・サーバーにより生成されたトレースおよびロギング情報で構成されます。

自動診断リポジトリ(ADR)は、システム全体のトレースおよびロギング用中央リポジトリです。このリポジトリは、ネットワーク・トレースおよびロギング情報などの診断情報を蓄積するための、ファイルベースの階層データストアです。

ADRホームは、Oracle製品のインスタンスに割り当てられるADRディレクトリのユニットです。各データベース・インスタンスに独自のADRホームが割り当てられます。同様に、各リスナー、Connection Manager(CMAN)およびクライアント・インスタンスに独自のADRホームが割り当てられます。

ADRホームの場所は、ADRの基本ディレクトリから始まる次のパスで指定されます。

diag/product_type/product_id/instance_id

表16-1では、Oracle Net Listenerインスタンスの各種パス・コンポーネントの値を示します。

表16-1 Oracle Net ListenerインスタンスのADRホームのパス・コンポーネント

パス・コンポーネント Oracle Net Listenerの値
product_type

tnslsnr

product_id

ホスト名

instance_id

リスナーの別名


図16-1では、Oracle Net ListenerインスタンスのADRのディレクトリ階層を示しています。その他のOracle製品またはコンポーネント(ASMまたはOracle Databaseなど)に対するその他のADRホームが、この階層内の同じADRベースの下に存在する場合があります。

図16-1 Oracle Net Listenerインスタンスのディレクトリ構造

図16-1の説明は次にあります。
画像の説明

表16-2では、CMANインスタンスの各種パス・コンポーネントの値を示します。

表16-2 CMANインスタンスのADRホームのパス・コンポーネント

パス・コンポーネント Oracle Net Listenerの値
product_type

netcman

product_id

ホスト名

instance_id

CMANインスタンス名


ADRホーム・ディレクトリ内のサブディレクトリでは、各インスタンス(データベース、リスナー、CMANまたはクライアント)により診断データが格納されます。表16-3では、これらのサブディレクトリの一部とその内容を示します。

図16-2では、CMANインスタンスのADRのディレクトリ階層を示しています。その他のOracle製品またはコンポーネント(ASMまたはOracle Databaseなど)に対するその他のADRホームが、この階層内の同じADRベースの下に存在する場合があります。

図16-2 CMANインスタンスのディレクトリ構造

図16-2の説明は次にあります。
画像の説明

表16-3 ADRホームのサブディレクトリ

サブディレクトリ名 目次
alert

XML形式のアラート・ログ。

cdump

コア・ファイル。

incident

複数のサブディレクトリ。各サブディレクトリは特定のインシデントにちなんで名付けられ、それぞれにそのインシデントにのみ関係するダンプが含められます。

trace

バックグラウンド・プロセスとサーバー・プロセスのトレース・ファイルおよびSQLトレース・ファイル。

(その他)

ADRホームのその他のサブディレクトリ。インシデント・パッケージ、状態監視レポートおよびその他の情報が格納されます。



関連項目:


クライアントADRホームの場所の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。

ADR_BASEは、1つ以上のADRホームが置かれる物理的な場所です。概念的には、これはADRのルート・ディレクトリです。


関連項目:


ADRの詳細は、『Oracle Database管理者ガイド』を参照してください。

非ADR(つまりDIAG_ADR_ENABLEDパラメータがOFFに設定されている)の診断およびトレースの方法が現在も主流であり適用可能ですが、ADRが有効である場合、このパラメータは無視されます。

診断パラメータは、sqlnet.ora(クライアント用)、listener.ora(リスナー用)およびcman.ora(Connection Manager用)の3つの構成ファイルにあります。


関連項目:


次の診断パラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

表16-4では、非ADRの診断とADRベースの診断の両方で使用されるsqlnet.oraファイル内の、各種診断パラメータの使用について比較しています。

表16-4 sqlnet.oraファイルの診断パラメータの比較

パラメータ 非ADRDIAG_ADR_ENABLED=OFF ADRDIAG_ADR_ENABLED=ON
ADR_BASE脚注1 

No

Yes

TRACE_LEVEL_CLIENT脚注2 

Yes

Yes

TRACE_LEVEL_SERVER脚注2

Yes

Yes

TRACE_DIRECTORY_CLIENT脚注3 

Yes

No

TRACE_FILE_CLIENT脚注3

Yes

No

TRACE_UNIQUE_CLIENT脚注3

Yes

No

LOG_DIRECTORY_CLIENT脚注3

Yes

No

LOG_FILE_CLIENT脚注3

Yes

No

LOG_DIRECTORY_SERVER脚注3

Yes

No

TRACE_DIRECTORY_SERVER脚注3

Yes

No

TRACE_FILE_SERVER脚注3

Yes

No


脚注 1 ADR専用パラメータです。このパラメータは、非ADRベースのトレースおよびロギングには使用されません。

脚注 2 これらのパラメータは、非ADRおよびADRベースのトレースおよびロギングのどちらについても機能的に同等です。

脚注 3 DIAG_ADR_ENABLEDONに設定された場合、このパラメータは無視されます。トレース・ファイルおよびログ・ファイルは、ADR_BASEで定義された場所に作成されます(ADRディレクトリ・ツリーおよびログ/トレース・ファイルの命名規則の詳細は、『Oracle Database管理者ガイド』を参照してください)。

表16-5では、非ADRの診断とADRベースの診断の両方で使用されるlistener.oraファイル内の、各種診断パラメータの使用について比較しています。

表16-5 listener.oraファイルの診断パラメータの比較

パラメータ 非ADRDIAG_ADR_ENABLED=OFF ADRDIAG_ADR_ENABLED=ON
ADR_BASE_listener_name脚注1 

No

Yes

LOGGING_listener_name脚注2

Yes

Yes

TRACE_LEVEL_listener_name脚注2 

Yes

Yes

TRACE_TIMESTAMP_listener_name脚注2

Yes

Yes

LOG_DIRECTORY_CLIENT_listener_name脚注3

Yes

No

LOG_FILE_CLIENT_listener_name脚注3

Yes

No

TRACE_DIRECTORY_CLIENT_listener_name脚注3 

Yes

No

TRACE_FILELEN_listener_name脚注3

Yes

No

TRACE_FILENO_listener_name脚注3

Yes

No


脚注 1 ADR専用パラメータです。このパラメータは、非ADRベースのトレースおよびロギングには使用されません。

脚注 2 これらのパラメータは、非ADRおよびADRベースのトレースおよびロギングのどちらについても機能的に同等です。

脚注 3 DIAG_ADR_ENABLED_listener_nameONに設定された場合、このパラメータは無視されます。トレース・ファイルおよびログ・ファイルは、ADR_BASE_listener_nameで定義された場所に作成されます(ADRディレクトリ・ツリーおよびログ/トレース・ファイルの命名規則の詳細は、『Oracle Database管理者ガイド』を参照してください)。

表16-6では、非ADRの診断とADRベースの診断の両方で使用されるcman.oraファイル内の、各種診断パラメータの使用について比較しています。

表16-6 cman.oraファイルの診断パラメータの比較

パラメータ 非ADRDIAG_ADR_ENABLED=OFF ADRDIAG_ADR_ENABLED=ON
ADR_BASE脚注1 

No

Yes

LOG_LEVEL脚注2 

Yes

Yes

TRACE_LEVEL脚注2

Yes

Yes

TRACE_TIMESTAMP脚注2

Yes

Yes

LOG_DIRECTORY脚注3 

Yes

No

TRACE_DIRECTORY脚注3

Yes

No

TRACE_FILELEN脚注3

Yes

No

TRACE_FILENO脚注3

Yes

No


脚注 1 ADR専用パラメータです。このパラメータは、非ADRベースのトレースおよびロギングには使用されません。

脚注 2 これらのパラメータは、非ADRおよびADRベースのトレースおよびロギングのどちらについても機能的に同等です。

脚注 3 DIAG_ADR_ENABLEDONに設定された場合、このパラメータは無視されます。トレース・ファイルおよびログ・ファイルは、ADR_BASEで定義された場所に作成されます(ADRディレクトリ・ツリーおよびログ/トレース・ファイルの命名規則の詳細は、『Oracle Database管理者ガイド』を参照してください)。

トレース・アシスタント

トレース・アシスタントは、Oracle Netトレース・データの各パケットを完全にデコードし、読みやすくわかりやすい書式で表す診断ツールです。また、トレース・アシスタントは役立つ統計情報を提供します。

16.1.2 ADRCI: ADRコマンド・インタプリタ

ADRCIは、Oracle Database 11gで導入されたエラー診断機能インフラストラクチャの一部であるコマンドライン・ツールです。ADRCIでは次のことが可能です。

  • ADR内で診断データを表示

  • インシデントおよび問題に関する情報をZIPファイルにパッケージ化し、Oracleサポートに転送

診断データには、インシデントおよび問題に関する説明、トレース・ファイル、ダンプ、状態監視レポート、アラート・ログ・エントリなどが含まれます。

ADRCIには豊富なコマンド・セットがあり、対話型モードまたはスクリプト内で使用できます。さらに、ADRCIは、SQL*PlusがSQLコマンドおよびPL/SQLコマンドのスクリプトを実行するのと同じ方法で、ADRCIコマンドのスクリプトを実行できます。

ADRCIを使用してトレース・ファイルを表示するには、コマンド・プロンプトで「ADRCI」と入力します。Oracle Netトレース診断に使用する共通コマンドは次のとおりです。

クライアント側

adrci>> SHOW BASE -product client
adrci>> SET BASE -product client
adrci>> SHOW TRACEFILE
adrci>> SHOW TRACE trace_file.trc

前述のコマンドで、SHOW BASE -product clientは、クライアントのADR_BASEの値を表示します。表示された値は、SET BASEコマンドのclientに使用します。

サーバー側

adrci>> SHOW BASE
adrci>> SHOW TRACEFILE
adrci>> SHOW TRACE trace_file.trc

前述のコマンドで、BASE$ORACLE_HOME/logとして定義されています。

さらに対象を絞ったOracle Netトレース・ファイル分析を行うには、その他のADRCIコマンド・オプションを使用できます。 インライン・ヘルプ・マニュアルにアクセスするには、adrci>>プロンプトで「HELP」と入力します。


関連項目:


ADRCIの詳細は、『Oracle Databaseユーティリティ』を参照してください。

16.1.3 サーバーの診断

チェック項目は次のとおりです。

  • 他のシステム(ワークステーション/サーバー)はNet8を使用してサーバーに接続できる。

  • サーバー、データベースまたはリスナーの構成は、しばらくの間変更されていない。

上の項目に1つでも当てはまる場合は、この項をスキップして「クライアントの診断」に進みます。

不明な場合、またはいずれにも当てはまらない場合、このまま続けます。

サーバー上のNet8 Servicesを診断するには次の作業を行います。

16.1.3.1 タスク1: データベースの実行状態の検証

データベースが起動していることを確認するため、有効なユーザー名とパスワードを使用してデータベースにログインおよび接続します。たとえば、次のように指定します。

SQLPLUS system
Enter password: password

データベースに接続していることを確認するメッセージが表示されます。次のエラーが表示される場合は、データベース管理者に連絡してください。

  • ORA-1017: invalid U/P

  • ORA-1034: Oracle not available

16.1.3.2 タスク2: ループバック・テストの実行

サーバーからデータベースへのループバック・テストを実行する手順は、次のとおりです。

  1. listener.oratnsnames.oraおよびsqlnet.oraの各ファイルが、「ローカライズされた構成ファイルのサポート」で説明しているとおり、正しい場所にあることを確認します。

  2. ループバック・テストを実行するには、「データベース・サーバーでの構成のテスト」にある手順に従います。

    • ループバック・テストでエラーが発生する場合、次の手順に進みます。

    • ループバック・テストが正常に終了する場合は、「クライアントの診断」に進みます。

  3. Oracleサポート・サービスに連絡してください。

16.1.4 クライアントの診断


関連項目:


ADR診断ファイルの場所については、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。

この時点で、次の最低1項目が確認されているので、サーバー側のリスナーは正常に機能していることになります。

  • ネットワークが機能していることを示すデータベース・サーバーでのループバック・テストが正常終了した。

  • 他のコンピュータがNet8 Servicesを使用して同じデータベースに接続している。

  • このコンピュータに変更を加える(新たな製品のインストールやネットワーク構成の変更など)前は、このワークステーションからの接続が機能していた。

クライアントの診断を行うには、次の手順に従います。

  1. データベース・サーバーにインストールされているのと同じプロトコル・サポートがインストールされていることを確認します。

    UNIXの場合は、adaptersユーティリティを使用してプロトコル・サポートを確認できます。データベース・サーバーで、$ORACLE_HOME/binからadapters 'which oracle'コマンドを実行して、oracle実行可能プログラムにリンクするプロトコル・サポート、ネーミング・メソッドおよびセキュリティ・オプションを表示します。次に、adaptersユーティリティによる出力例を示します。

    Oracle Net transport protocols linked with ./oracle are:
    
        IPC
        BEQ
        TCP/IP
        SSL
        RAW
    
    Oracle Net naming methods linked with ./oracle are:
    
        Local Naming (tnsnames.ora)
        Oracle Directory Naming
        Oracle Host Naming
        NIS Naming
    
    Oracle Advanced Security options linked with ./oracle 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
        ENTRUST authentication
    

    クライアントで、$ORACLE_HOME/binからadaptersコマンドを実行して、構成されたOracle protocol support、ネーミング・メソッドおよびセキュリティ・オプションを表示します。次に、adaptersユーティリティによる出力例を示します。

    Installed Oracle Net transport protocols are:
    
        IPC
        BEQ
        TCP/IP
        SSL
        RAW
    
    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-1 crypto-checksumming
        Kerberos v5 authentication
        RADIUS authentication
        ENTRUST authentication
    

    注意:


    RAWはOracle Netで使用される内部プロトコルです。


    関連項目:


    adaptersユーティリティの詳細は、Oracle UNIXオペレーティング・システム固有の管理者リファレンスを参照してください。

  2. 基底のネットワーク・トランスポートの基本的な接続性をチェックします。Net8テクノロジは、正常な接続のために基底のネットワークに依存しています。

    プロトコル 確認方法
    TCP/IP クライアントからデータベース・サーバーに端末エミュレーションまたはファイル転送ユーティリティ(PING、FTP、TELNET)を使用する。
    Named Pipes
    • マイクロソフト・ネットワーク上のその他のコンピュータやサーバーを確認する。
    • ネットワーク内のドライブを共有できることを確認する。


  3. Net8 Foundationレイヤーおよび適切なOracle protocol supportが存在することを確認するため、すべてのクライアント用Net8 Servicesソフトウェアがインストールされていることを確認します。

  4. クライアント・コンピュータの正しい場所に、tnsnames.oraファイルとsqlnet.oraファイルが存在していることを確認します。

    選択したOracle Databaseに接続している他の稼働中のクライアント・コンピュータがある場合は、既存のファイルのバックアップをとって、稼働中のコンピュータのtnsnames.oraファイルとsqlnet.oraファイルを稼働していないクライアント・ワークステーションにコピーします。これにより、ファイルにエラーが含まれている可能性が排除されます。

  5. Net8 Foundationレイヤーをテストします。


    注意:


    TNSPINGユーティリティは使用しないでください。TNSPINGユーティリティはTCP/IP PINGユーティリティと同様に機能し、ソケットの作成やオープンは行われず、リスナーとも接続しません。このユーティリティは、データベース・サーバーにリスナーが存在することを確認します。

  6. それでも接続がうまくいかない場合、次の作業を行います。

16.2 Oracle Net Servicesの最も一般的なエラー・メッセージの解決

ネットワーク通信が複雑であるため、様々な理由で各種ソースからネットワーク・エラーが発生する場合があります。エラーが発生した場合、Oracle Net Servicesからのネットワーク・サービスに依存しているSQL*Plusなどのアプリケーションは、通常、エラー・メッセージを発生します。

次のリストは、最も一般的なネットワーク・エラー・メッセージです。


関連項目:


エラー・メッセージの完全なリストは、『Oracle Databaseエラー・メッセージ』を参照してください。

ORA-03113: TNS: 通信チャネルでend-of-fileが検出されました
原因: データベース・サーバーでエラーが発生した。
処置: サーバーのalert_sid.logをチェックします。alert_sid.logの位置は、BACKGROUND_DUMP_DEST初期化パラメータによって指定されます。通信チャネル上で、予測しなかったファイルの終わりが処理された。これは、通信リンクが少なくとも一時的にダウンした可能性があることを示す場合があります。また、サーバーがダウンしていることを示す場合もあります。再送カウントを変更する必要があります。
ORA-03121: インタフェース・ドライバが接続されていません - 関数は実行されません
原因: 接続文字列で使用されるSQL*Netバージョン1の接頭辞に誤りがある。
処置: 接続文字列内では次の接頭辞を使用しないでください。
  • T:

  • X:

  • P:

ローカルのOracle Databaseがインストールされていないクライアント・コンピュータから、ユーザー名とパスワードが指定されました。接続文字列を指定します。

ORA-12154: TNS: サービス名を解決できませんでした。
原因: Oracle Netがtnsnames.ora構成ファイルに指定されたネット・サービス名を検出できない。
処置: 次の手順を実行します。
  1. tnsnames.oraファイルが存在することを確認します。


    関連項目:

    構成ファイルの場所に関する情報は、「ローカライズされた構成ファイルのサポート」を参照してください。

  2. tnsnames.oraファイルの複数コピーが存在しないことを確認します。

  3. 接続文字列で指定したネット・サービス名がtnsnames.oraファイルの接続記述子にマップされていることを確認します。

  4. sqlnet.oraファイルのコピーが存在しないことを確認します。

  5. ドメイン名を使用している場合は、sqlnet.oraファイルにNAMES.DEFAULT_DOMAINパラメータがあることを確認します。このパラメータが存在しない場合は、接続文字列にドメイン名を指定する必要があります。

  6. ドメイン名を使用しておらず、このパラメータが存在する場合は、このパラメータを削除するか、コメントにして無効にします。

  7. ログイン・ダイアログ・ボックスから接続する場合は、接続するネット・サービス名の前に@記号を付けていないことを確認します。

  8. クライアントのトレースをアクティブにして、操作を繰返します。

原因: Oracle Netが、ディレクトリ・サーバーで指定されたデータベース・サービス名またはネット・サービス名を検出できない。
処置: 次の手順を実行します。
  1. データベース・サービス名またはネット・サービス名のエントリが、このコンピュータが使用するように構成されたディレクトリに存在することを確認します。


    関連項目:


    ディレクトリの設定手順については、『Oracle Internet Directory管理者ガイド』を参照してください。

  2. sqlnet.oraファイルに次のエントリが含まれることを確認します。

    NAMES.DIRECTORY_PATH=(ldap, other_naming_methods)
    
ORA-12170: TNS: 接続タイムアウトが発生しました。
原因: クライアントが、sqlnet.oraファイルのSQLNET.INBOUND_CONNECT_TIMEOUTパラメータで指定された時間内に接続を確立して認証を完了するのに失敗した。このエラーは、ネットワークまたはシステムの遅延が原因の可能性があります。また、不当なクライアントがデータベース・サーバーにDoS攻撃をしようとしている可能性もあります。

関連項目:


SQLNET.INBOUND_CONNECT_TIMEOUTパラメータの設定の詳細は、「権限のないユーザーによるリソース使用を制限するためのリスナーおよびOracle Databaseの構成」を参照してください。

処置: 特定の環境におけるシステムあるいはネットワークの通常の遅延によるエラーである場合は、次の手順を実行します。
  1. トレースをオンにして、クライアントのタイムアウトの場所を特定します。

  2. sqlnet.oraSQLNET.INBOUND_CONNECT_TIMEOUTパラメータをより大きい値に再構成します。

不当なクライアントが疑われる場合は、次の手順を実行します。

  1. データベース・サーバー上のsqlnet.logファイルでクライアントのIPアドレスを探索して、ソースを識別します。

    たとえば、次のsqlnet.logの例は、クライアントのIPアドレス192.0.2.35を示しています。

    Fatal NI connect error 12170.
    
      VERSION INFORMATION:
            TNS for Solaris: Version 10.1.0.2.0
            Oracle Bequeath NT Protocol Adapter for Solaris: Version 10.1.0.2.0
            TCP/IP NT Protocol Adapter for Solaris: Version 10.1.0.2.0
      Time: 03-JUL-2002 13:51:12
      Tracing to file: /ora/trace/svr_13279.trc
      Tns error struct:
        nr err code: 0
        ns main err code: 12637
        TNS-12637: Packet receive failed
        ns secondary err code: 12604
        nt main err code: 0
        nt secondary err code: 0
        nt OS err code: 0
      Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.0.2.35)(PORT=52996))
    

    IPアドレスは偽造できることに注意してください。

    データベース・サーバーでIPアドレスを取り出す前にタイム・アウトが発生した場合は、リスナー・トレースを有効にして、要求を送信したクライアントを特定します。

  2. そのクライアントへのアクセス制限を行います。たとえば、sqlnet.oraファイルでアクセス権のパラメータを構成できます。

TNS-12500/ORA-12500: TNS: リスナーが専用サーバー・プロセスの起動に失敗しました。
原因: リスナーがOracleプログラムの起動に失敗した。次の理由が考えられます。
  • 1ユーザーに許可されるプロセスの最大数を超過した

  • リスナーがOracleプログラムの実行権限を持っていない

  • 関連付けられたWindowsサービスが起動されていない

状況によっては、これらのエラーはTNS-12549/ORA-12549、TNS-00519、TNS-12540/ORA-12540、TNS-00510およびTNS-12560/ORA-12560のエラーと同じ条件下で発生する可能性があります。

処置: 適切な処置を実行します。
  • データベース初期化ファイルのPROCESSESパラメータを現在より大きな値に設定して、プロセス数を増やします。

  • listener.logファイルで詳しいエラー・スタック情報をチェックします。

ORA-12514: TNS: リスナーは現在、接続識別子でリクエストされているサービスを認識していません
原因: リスナーが、データベースまたは他のサービスとの接続を確立するための要求を受信した。リスナーが受信した接続記述子には、リスナーに動的に登録されなかったかまたはリスナーに静的に構成されていないサービス(通常はデータベース・サービス)の名前が指定されていました。これはリスナーが起動した後、データベース・インスタンスがリスナーに登録されるまでの間に発生した場合など、一時的な状況と考えられます。
処置: 次の手順を実行します。
  1. しばらく待ってから、もう一度接続します。

  2. リスナー制御ユーティリティのSTATUSまたはSERVICESコマンドを実行して、リスナーが現在認識しているサービスを確認します。

  3. 接続記述子のSERVICE_NAMEパラメータに、リスナーが認識しているサービス名が指定されていることを確認します。

  4. listener.logファイル内のイベントを確認します。

ORA-12520: TNS: リスナーは、リクエストしたサーバー・タイプに使用可能なハンドラを検出できませんでした。
原因: クライアントに要求されたサービス・ハンドラのタイプが不適切であるか、要求されたSERVICE_NAME/INSTANCE_NAMEに登録されていないか、データベース・インスタンスがリスナーに登録されていない。
処置: 問題がサービス・ハンドラのタイプの不正にあると思われる場合は、次の手順を実行します。
  1. 接続記述子に(server=value)が設定されている場合は、データベースに適したタイプのサービス・ハンドラに値が設定されていることを確認します。適切な値は、専用サーバーの場合はdedicated、ディスパッチャの場合はsharedです。リスナー制御ユーティリティのSERVICESコマンドを使用すると、現在リスナーに登録されているサービス・ハンドラを確認できます。

  2. sqlnet.oraファイルでUSE_DEDICATED_SERVERONに設定されている場合は、データベースが専用サーバーを使用するように構成されていることを確認します。そのように構成されていない場合は、このパラメータをoffに設定します。

  3. データベース・インスタンスが稼働中であることを確認します。インスタンスが稼働していない場合は、リスナーに登録できるようにインスタンスを起動します。

ORA-12521: TNS: リスナーは接続記述子で指定したINSTANCE_NAMEを解決できませんでした。
原因: 接続記述子のINSTANCE_NAMEが不適切であるか、データベース・インスタンスがリスナーに登録されていない。
処置: 次の手順を実行します。
  1. 接続記述子で指定されたサービス名が正しいことを確認します。

  2. データベース・インスタンスが稼働中であることを確認します。インスタンスが稼働していない場合は、リスナーに登録できるようにインスタンスを起動します。リスナー制御ユーティリティのSERVICESコマンドを使用すると、現在リスナーに登録されているインスタンスを確認できます。

ORA-12525: TNS: リスナーは、クライアントのリクエストを許容時間内に受信しませんでした
原因: クライアントが、listener.oraファイルのINBOUND_CONNECT_TIMEOUT_listener_nameパラメータで指定された時間内に接続要求を完了するのに失敗した。このエラーは、ネットワークまたはシステムの遅延が原因の可能性があります。また、不当なクライアントがリスナーにDoS攻撃をしようとしている可能性もあります。

関連項目:


INBOUND_CONNECT_TIMEOUT_listener_nameパラメータの設定の詳細は、「権限のないユーザーによるリソース使用を制限するためのリスナーおよびOracle Databaseの構成」を参照してください。

処置: 特定の環境におけるシステムあるいはネットワークの通常の遅延によるエラーである場合は、listener.oraINBOUND_CONNECT_TIMEOUT_listener_nameパラメータをより大きい値に再構成します。

不当なクライアントが疑われる場合は、次の手順を実行します。

  1. ソースを識別するために、listener.logでクライアントのIPアドレスを探索します。

    たとえば、次のlistener.logの例は、クライアントのIPアドレス192.0.2.35を示しています。

    03-JUL-2002 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
    

    IPアドレスは偽造できることに注意してください。

  2. そのクライアントへのアクセス制限を行います。たとえば、sqlnet.oraファイルでアクセス権のパラメータを構成できます。

ORA-12533: TNS: ADDRESSパラメータが不正です。
原因: 指定された接続記述子のADDRESSセクションにあるプロトコル固有パラメータが正しくない。
処置: プロトコル・アドレスを訂正します。

関連項目:


正しいプロトコル構文は、『Oracle Database Net Servicesリファレンス』を参照してください。

TNS-12540/ORA-12540: TNS: 内部制限を超えました。TNS-00510: 内部制限を超えました。
原因: 内部制限を超過した。考えられる制限値には次のものがあります。
  • Oracle Netが同時に処理できるオープン接続の数

  • 同時に使用できるメモリー・バッファの数

  • 特定のデータベース・インスタンスで許可されるプロセスの数

最初の2つは、ハード上の制限を示しています。3つ目の制限は、データベース初期化ファイルのPROCESSESパラメータを大きな値に設定することで増やすことができる例です。この場合は、TNS-12500/ORA-12500エラーも戻されます。状況によっては、これらのエラーはTNS-12549/ORA-12549およびTNS-00519のエラーと同じ条件下で発生する可能性があります。

処置: 次の手順を実行します。

オープン接続がクローズするのを待ち、再試行します。それでもエラーが発生する場合は、sqlnet.logファイルまたはlistener.logファイルで詳しいエラー・スタック情報をチェックします。

TNS-12541/ORA-12541: TNS: リスナーがありません。
原因: リスナーが実行されていないため、接続要求を完了できない。
処置: 次の手順を実行します。

指定した接続先アドレスが、リスナーで使用されているアドレスの1つと一致していることを確認します。このエラーが、バージョンの互換性に起因する問題でないかどうかを確認します。

TNS-12549/ORA-12549: TNS: オペレーティング・システム・リソース割当て制限を超えました。TNS-00519: オペレーティング・システムのリソース割当て制限を超えました。
原因: オペレーティング・システムで課せられている割当て制限またはハード上の制限を超過した。

考えられる制限値には次のものがあります。

  • 1ユーザーに許可されるプロセスの最大数

  • ページング・スペースに起因するオペレーティング・システムの性能低下

処置: 適切な処置を実行します。
  • データベース初期化ファイルのPROCESSESパラメータを現在より大きな値に設定して、プロセス数を増やします。

  • sqlnet.logファイルまたはlistener.logファイルで、オペレーティング・システムのエラー・コードなどの詳しいエラー・スタック情報を調べ、超過している割当て制限を特定します。

TNS-12560/ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました
原因: 特定のプロトコルを使用しているときにエラーが発生した。このエラーは、ADDRESSパラメータの構成が不適切な場合、または基礎となるプロトコルやオペレーティング・システム・インタフェースからエラーが戻された場合などに発生します。

状況によっては、これらのエラーはTNS-00510、TNS-00519、TNS-12540/ORA-12540およびTNS-12549/ORA-12549のエラーと同じ条件下で発生する可能性があります。

処置: sqlnet.logファイルまたはlistener.logファイルで詳しいエラー・スタック情報をチェックします。

16.2.1 ディレクトリ・ネーミング・エラーのトラブルシューティング

ディレクトリ・サーバーのデータベース・サービス名またはネット・サービス名のエントリに対するORA-12154ORA-12543またはORA-12541などの、接続性エラーに関連するディレクトリ・ネーミングの問題の解決には、データの分析が必要です。ディレクトリ・サーバーに含まれるデータの分析には、ldifwriteコマンドライン・ツールを使用します。

ldifwriteを使用すると、ディレクトリ・サーバーに存在する情報の全部または一部をLDAP Data Interchange Format(LDIF)に変換できます。ldifwriteツールは、指定された識別名(DN)の下のすべてのエントリを範囲とするサブツリー検索を実行します。エントリにはDN自体も含まれます。

ldifwriteツールの構文は次のとおりです。

ldifwrite -c net_service_name/database_service -b base_DN -f ldif_file

表16-7では、ldifwriteツールの引数とその説明を示しています。

表16-7 ldifwrite引数

引数 説明

-c net_service_name/database_service

ディレクトリ・サーバーに接続するためのネット・サービス名またはデータベース・サービス名を指定します。

-b base_DN

LDIFフォーマットで書き出されるサブツリーのベースを指定します。

-f ldif_file

入力ファイル名を指定します。


次の例は、dc=us,dc=example,dc=comの下のすべてのディレクトリ・ネーミング・エントリをoutput1.ldiファイルに書き込みます。

ldifwrite -c ldap -b "dc=us,dc=example,dc=com" -f output.ldif

16.3 Oracle Net Servicesのフィールドからのトラブルシューティングのヒント

ネットワークの問題の診断に困ったときは、次のヒントが参考になることがあります。

16.3.1 Oracle Net Servicesのトラブルシューティングのためのチェック項目

問題を診断する際に、次の項目をチェックしてください。

  • すべてのコンピュータに問題があるのか、1台のコンピュータのみか

    同じソフトウェア(Oracleおよびサード・パーティ製品)をインストールしていても、機能するコンピュータと機能しないコンピュータがある場合、距離が近ければ、ネットワーク・ケーブルを取り替えて問題が進展するかどうかを確認します。状況に変化があった場合、問題はクライアント/サーバー接続に関するもので、PCに限定的なものではないことを示しています。

  • クライアントとサーバー間のリンクの種類(X.25、ISDN、トークン・リングまたは専用回線など)は何か

    SnifferやLANアナライザは、断続的な接続エラーやタイム・アウトおよび再送パケットの検出を行うのに便利です。また、会話のどちら側が応答を待っているのかを知ることもできます。

16.4 TNS-12154エラーのトラブルシューティング

この項では、TNS-12154エラーのソリューションを提供します。TNS-12154エラーは、SQL*Netがtnsnames.oraファイルまたはその他のネーミング・アダプタの接続に指定された別名を検出できない場合に発生します。

問題を解決する前に、tnsnames.oraファイルとsqlnet.oraファイルの両方を印刷または表示しておくと便利です。両方を参照するため、これらのファイルを同時に参照できるようにすると便利です。

この項で説明する項目は、次のとおりです。

16.4.1 TNS-12154の問題の説明

TNS-12154エラーは、SQL*Netがtnsnames.oraファイルまたはその他のネーミング・アダプタの接続に指定された別名を検出できない場合に表示されます。

この問題を解決する前に、tnsnames.oraファイルとsqlnet.oraファイルの両方を印刷または表示しておくと便利です。両方を参照するため、これらのファイルを同時に参照できるようにすると便利です。

tnsnames.oraファイルおよびsqlnet.oraファイルは、クライアント・システムのデフォルトのネットワーク管理ディレクトリにあります。

16.4.2 UNIXでのTNS-12154のトラブルシューティング

tnsnames.oraファイルおよびsqlnet.oraファイルが次の例のようになっていることを確認します。

例16-1 tnsnames.oraの例

DEV1.WORLD =
     (DESCRIPTION =
       (ADDRESS_LIST =
           (ADDRESS =
             (PROTOCOL = TCP)
             (Host = 192.0.2.56)
             (Port = 1521)
           )
       )
       (CONNECT_DATA = (SID = ORCL)
       )
     )

例16-2 sqlnet.oraの例

TRACE_LEVEL_CLIENT = OFF
SQLNET.AUTHENTICATION_SERVICES = (NONE)
NAMES.DIRECTORY_PATH = (TNSNAMES)
AUTOMATIC_IPC = OFF

診断プロセスを開始するには、問題に適用されるこのマニュアルの項を判別します。例16-1および例16-2に示すファイル例では、例16-1の別名はDEV1.WORLDですが、例16-2にはNAMES.DEFAULT_DOMAIN=worldパラメータが存在しません。

この場合、sqlnet.oraファイルの任意の場所にNAMES.DEFAULT_DOMAIN=worldパラメータを追加します。ファイルを保存し、接続を再度試行します。

それでもTNS-12154エラーが発生する場合は、ファイルがクライアントからサーバーに転送されたかどうかを判断し、構成ファイルで、CTRL-M(^M)またはCTRL-R(^R)の文字がどの行末にも挿入されていないことを確認します。このような文字を見つけた場合は削除します。

文字が存在しない場合、NAMES.DIRECTORY_PATHパラメータがsqlnet.oraファイルに存在するかどうかを確認し、カッコ内の値が次のようにTNSNAMESであることを確認します。

NAMES.DIRECTORY_PATH=(TNSNAMES)
NAMES.DIRECTORY_PATH=(TNSNAMES, HOSTNAME)

このパラメータは必須ではありませんが、sqlnet.oraファイル内に存在し、前述の例のように表示されている場合、構成ファイルは理論的には正確と考えられます。

UNIXプロンプトで、次のようにTNS_ADMIN環境変数をエコーします。

% echo $TNS_ADMIN

なにも戻されない場合、TNS_ADMIN環境変数を設定し、tnsnames.oraファイルの場所を明示的にポイントします。

  • Cシェル:

    % setenv TNS_ADMIN full_path_to_tnsnames.ora_file
    
  • Kシェル:

    % TNS_ADMIN=full_path_to_tnsnames.ora_file; export TNS_ADMIN
    

接続を再度試行します。

それでもエラーが発生する場合は、AUTOMATIC_IPC=OFFパラメータをsqlnet.oraファイルに追加します。AUTOMATIC_IPCがすでにONに設定されている場合、この値をOFFに変更します。接続を再度試行します。

まだエラーが発生する場合は、tnsnames.oraファイルおよびsqlnet.oraファイルと親ディレクトリの権限を確認します。通常、.oraファイルは-rwxrwxrwxまたは-rwxrwx---です。構成ファイルの権限を777に変更して権限を完全オープンに設定し、接続を再度試行します。


注意:


権限を777に設定すると、システムのすべてのユーザーが構成ファイルにアクセスできるようになります。この設定は一時テストとしてのみ行い、終了時には権限をリセットしてください。

まだエラーが発生する場合、構成を次のように再実行します。

  1. TNS_ADMIN環境変数を/tmpに設定します。

  2. /tmpディレクトリへ移動し、テキスト・エディタを使用してtnsnames.oraファイルを新規作成します。

  3. 例16-1tnsnames.oraファイルの例をテキスト・エディタにコピーし、新規tnsnames.oraファイルを保存します。

  4. テキスト・エディタを終了し、コマンド・プロンプトに次のように入力します。

    % sqlplus scott@dev1.world
    Enter password: password
    

これによって次の論理エラーに接続または進みます。

16.5 ログ・ファイルとトレース・ファイルを使用したネットワーク上の問題点のトラブルシューティング

Oracle Net Servicesは、問題が発生するたびに、問題点の原因の内容について詳細を提供します。この情報は、ログ・ファイルとトレース・ファイル内に作成、格納されます。エラー情報のロギングとトレースのプロセスにより、ネットワーク上の問題点を容易に診断し解決できます。

16.6 Oracle Net Servicesのエラー情報のロギング

Oracle Net Servicesで発生するすべてのエラーは、ネットワーク管理者やデータベース管理者が評価できるように、ログ・ファイルに追加記録されます。ログ・ファイルは、画面に表示されるエラー・メッセージで障害を十分に識別できない場合、管理者用の追加情報として使用できます。エラー・スタックとしてのログ・ファイルは、各種レイヤーでのソフトウェアの状態を示します。

すべてのエラーが記録されることを保証するためにはクライアントまたはネーム・サーバーに対するロギングを使用禁止にすることはできません。さらに、ログ・ファイルを置換したり消去できるのは管理者のみです。リスナーのログ・ファイルには、すべてのクライアント接続要求に関する監査証跡と大半のリスナー制御コマンドが含まれています。

この項で説明する項目は、次のとおりです。

16.6.1 Oracle Netエラー・スタック

ログ・ファイルには、エラー・スタックに含まれている情報があります。エラー・スタックとは、ネットワーク・エラーの結果としてOracle通信スタック内に各レイヤーごとに作成される情報です。

表16-8に、エラー・スタック・コンポーネントの説明を示します。

表16-8 エラー・スタック・コンポーネント

エラー・スタック・コンポーネント 説明

NI

ネットワーク・インタフェース。このレイヤーには、Oracleのクライアントまたはサーバー、外部プロセスがOracle Netの機能にアクセスするための汎用インタフェースがあります。NIレイヤーは、接続のブレーク要求およびリセット要求を処理します。

NIは、ネットワーク・ルーティング(Network Routing: NR)レイヤーを使用してOracle8i以前のクライアントのネットワーク・ルート情報を取得し、ネットワーク・ネーミング(Network Naming: NN)レイヤーを使用して名前を接続記述子に解決します。Oracle9iクライアントの場合は、NIは直接ネットワーク・セッション(Network Session: NS)レイヤーに移動します。

NS

ネットワーク・セッション(1次および2次層)。これらのレイヤーはNIから要求を受け取り、サーバーまたは接続先の位置(オープン、クローズの各機能)、接続時に1つ以上のプロトコルを必要とするかどうか(オープン、クローズの各機能)、クライアントとサーバー間の割込みをそれぞれの機能に基づいて処理する方法(送信、受信の各機能)など、コンピュータ・レベルの一般的な接続に関する問題をすべて解決します。

NA

ネットワーク認証。このレイヤーは認証要求および暗号化要求のネゴシエーションを行います。

NT

ネットワーク・トランスポート(1次、2次およびオペレーティング・システム層)。このレイヤーは、Oracle Net Foundationレイヤー機能を業界標準プロトコルにマップします。


16.6.1.1 例: エラー・スタック

たとえば、クライアント・アプリケーションのユーザーがOracle NetとTCP/IPを使用してデータベース・サーバーとの接続を確立しようとする場合は、次のように入力します。

sqlplus scott@example.com
Enter password: password

次のエラーが表示されます。

ORA-12543: TNS:Unable to connect to destination

このメッセージは、データベースに連絡できなかったために、サーバーへの接続に失敗したことを示します。アプリケーションでは1行のエラー・メッセージしか表示されませんが、ネットワーク層によってログ・ファイルの中に情報量の多いエラー・スタックが記録されます。

クライアント側では、sqlnet.logファイル(例16-3)にORA-12543のエラーに対応するエラー・スタックが含まれています。

例16-3 sqlnet.logファイル

***********************************************************

Fatal OSN connect error 12543, connecting to:
 (DESCRIPTION=(CONNECT_DATA=(SID=trace)(CID=(PROGRAM=)
   (HOST=lala)(USER=sviavant)))(ADDRESS_LIST=(ADDRESS=
   (PROTOCOL=ipc)(KEY=trace))(ADDRESS=(PROTOCOL=tcp)
   (HOST=lala)(PORT=1521))))

VERSION INFORMATION:
TNS for SunOS:
Oracle Bequeath NT Protocol Adapter for SunOS:
Unix Domain Socket IPC NT Protocol Adaptor for SunOS:
TCP/IP NT Protocol Adapter for SunOS:
  Tracing to file: /home/sviavant/trace_admin.trc
  Tns error struct:
    TNS-12543: TNS:unable to connect to destination
    ns main err code: 12541
    TNS-12541: TNS:no listener
    ns secondary err code: 12560
    nt main err code: 511
    TNS-00511: No listener
    nt secondary err code: 61
    nt OS err code: 0

16.6.2 Oracle Net Servicesのログ・ファイル名

Oracle Net Servicesの各コンポーネントは、それぞれ独自のログ・ファイルを生成します。表16-9は、デフォルトのログ・ファイル名と、ログ・ファイルを生成するコンポーネントのリストです。

表16-9 ログ・ファイル

ログ・ファイル コンポーネント

listener.log

リスナー

sqlnet.log

クライアントまたはデータベース・サーバー

instance-name_pid.log

Oracle Connection Managerリスナー

instance-name_cmgw_pid.log

Oracle Connection Manager CMGW(Connection Manager Gateway)プロセス

instance-name_cmadmin_pid.log

Oracle Connection Manager CMADMIN(Connection Manager Administration)プロセス

instance-name_alert.log

Oracle Connection Managerアラート・ログ


16.6.3 ロギング・パラメータの設定

ロギングされる情報の種類と量、ファイルが格納されている位置など、ロギングを制御するパラメータは、表16-10に示されるように各ネットワーク・コンポーネントの構成ファイル内に設定されます。

表16-10 ログ・パラメータの位置

ネットワーク・コンポーネント 構成ファイル

Oracle Connection Managerプロセス

cman.ora

リスナー

listener.ora

クライアント

sqlnet.ora

データベース・サーバー

sqlnet.ora


この項で説明する項目は、次のとおりです。

16.6.3.1 sqlnet.oraファイルのログ・パラメータ

表16-11では、sqlnet.oraファイルで設定できるログ・パラメータの設定を示します。

表16-11 sqlnet.oraファイルのログ・パラメータ

sqlnet.oraパラメータ Oracle Net Managerのフィールド 説明
ADR_BASE

 


ADR_BASEパラメータは、インシデントのトレースおよびロギングが格納される基本ディレクトリを指定します。

DIAG_ADR_ENABLEDONに設定されている場合、このパラメータを使用します。

DIAG_ADR_ENABLED

 


DIAG_ADR_ENABLEDパラメータは、ADRトレースが有効かどうかを示します。

DIAG_ADR_ENABLEDパラメータがOFFに設定されている場合、非ADRファイルのトレースが使用されます。

LOG_DIRECTORY_CLIENT

「クライアント情報: ログ・ディレクトリ」

クライアント・ログ・ファイルの作成先となるディレクトリを設定します。デフォルトのクライアント・ディレクトリは、現行の作業ディレクトリです。

LOG_DIRECTORY_SERVER

「サーバー情報: ログ・ディレクトリ」

データベース・サーバー・ログ・ファイルの作成先となるディレクトリを設定します。デフォルトのサーバー・ディレクトリは、UNIXでは$ORACLE_HOME/network/log、Windowsでは%ORACLE_HOME%\network\logです。

LOG_FILE_CLIENT

「クライアント情報: ログ・ファイル」

クライアントのログ・ファイルの名前を設定します。デフォルトのログ・ファイル名はsqlnet.logです。

LOG_FILE_SERVER

該当なし

データベース・サーバーのログ・ファイルの名前を設定します。デフォルトのログ・ファイル名はsqlnet.logです。


16.6.3.2 listener.oraファイルのログ・パラメータ

表16-12では、listener.oraファイルで設定できるログ・パラメータの設定を示します。

表16-12 listener.oraファイルのログ・パラメータ

listener.oraファイルのパラメータ Oracle Net Managerのフィールド 説明
ADR_BASE_listener_name

 


ADR_BASE_listener_nameパラメータは、インシデントのトレースおよびロギングが格納される基本ディレクトリを指定します。

DIAG_ADR_ENABLED_listener_nameONに設定されている場合、このパラメータを使用します。

DIAG_ADR_ENABLED_listener_name

 


DIAG_ADR_ENABLED_listener_nameパラメータは、ADRトレースが有効かどうかを示します。

DIAG_ADR_ENABLED_listener_nameパラメータがOFFに設定されている場合、非ADRファイルのトレースが使用されます。

LOG_DIRECTORY_listener_name
LOG_FILE_listener_name

ログ・ファイル

リスナー・イベントで自動的に生成されるファイルの作成先となるディレクトリとログ・ファイルを設定します。デフォルトのディレクトリは、UNIXでは$ORACLE_HOME/network/log、WindowsではORACLE_HOME\network\logです。デフォルトのファイル名はlistener.logです。


16.6.3.3 cman.oraファイルのログ・パラメータ

表16-13では、cman.oraファイルで設定できるログ・パラメータの設定を示します。

表16-13 cman.oraファイルのログ・パラメータ

cman.oraファイルのパラメータ 説明
ADR_BASE

ADR_BASEパラメータは、インシデントのトレースおよびロギングが格納される基本ディレクトリを指定します。

DIAG_ADR_ENABLEDONに設定されている場合、このパラメータを使用します。

DIAG_ADR_ENABLED

DIAG_ADR_ENABLEDパラメータは、ADRトレースが有効かどうかを示します。

DIAG_ADR_ENABLEDパラメータがOFFに設定されている場合、非ADRファイルのトレースが使用されます。

EVENT_GROUP

ロギングされるイベント・グループを指定します。 複数のイベントを指定する場合は、リストをカンマで区切ります。このパラメータには次の値を使用できます。

  • INIT_AND_TERM: 初期化と終了

  • MEMORY_OPS: メモリー操作

  • CONN_HDLG: 接続処理

  • PROC_MGMT: プロセス管理

  • REG_AND_LOAD: 登録とロード更新

  • WAKE_UP: CMADMIN起動キュー関連のイベント

  • TIMER: ゲートウェイのタイム・アウト

  • CMD_PROC: コマンド処理

  • RELAY: 接続制御ブロックに関連付けられたイベント

LOG_DIRECTORY

ログ・ファイルの作成先となるディレクトリを設定します。

デフォルトのディレクトリは、UNIXでは$ORACLE_HOME/network/log、Windowsでは%ORACLE_HOME%\network\logです。

LOG_LEVEL

ロギングのレベルを設定します。次の4つのレベルがサポートされています。

  • off(デフォルト): ロギングなし

  • user: ユーザー・ログ情報

  • admin: 管理ログ情報

  • support: Oracleサポート・サービス情報

Oracle Connection Managerでは、リスナー、ゲートウェイおよびCMADMINの各プロセスで、UNIXとWindowsの両方にログ・ファイルが作成されます


16.6.3.4 構成ファイルのロギング・パラメータの設定

sqlnet.oraファイルのロギング・パラメータはOracle Net Managerで設定し、listener.oraファイルのロギング・パラメータはOracle Enterprise ManagerまたはOracle Net Managerで設定します。

cman.oraファイルのロギング・パラメータは、手動で設定する必要があります。


関連項目:


『Oracle Database Net Servicesリファレンス』

Oracle Enterprise ManagerおよびOracle Net Managerでロギング・パラメータを設定するには、表16-14を参照してください。

表16-14 構成ファイルのロギング・パラメータの設定

ログ・ファイル ツール ロギング・パラメータの設定方法

sqlnet.log

Oracle Net Manager


  1. Oracle Net Managerを起動します。

    関連項目: 「Oracle Net Manager」

  2. ナビゲータ・ペインで、「ローカル」「プロファイル」を展開します。

  3. 右ペインのリストから、「一般」を選択します。

  4. 「ロギング」タブをクリックします。

  5. 設定を指定します。

  6. 「ファイル」「ネットワーク構成の保存」を選択します。

listener.log

Oracle Enterprise Manager


  1. Oracle Enterprise ManagerのOracle Netの管理ページにアクセスします。

    関連項目: 「Oracle Enterprise Manager」

  2. 「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。

  3. 「実行」をクリックし、「リスナー」ページを表示します。

  4. リスナーを選択し、「編集」をクリックし、「リスナーの編集」ページを表示します。

  5. 「ロギングとトレース」タブをクリックします。

  6. 設定を指定します。

  7. 「OK」をクリックします。

listener.log

Oracle Net


  1. Oracle Net Managerを起動します。

    関連項目: 「Oracle Net Manager」

  2. ナビゲータ・ペインで、「ローカル」「リスナー」を展開します。

  3. リスナーを選択します。

  4. 右ペインのリストから、「一般」を選択します。

  5. 「ロギングとトレース」タブをクリックします。

  6. 設定を指定します。

  7. 「ファイル」「ネットワーク構成の保存」を選択します。


16.6.4 制御ユーティリティ実行時のロギング設定

ロギングは、制御ユーティリティの実行時に設定できます。制御ユーティリティを使用してロギングを設定しても、*.oraファイルにパラメータは設定されません。設定は、制御ユーティリティの現在のセッションでのみ有効です。

  • リスナーの場合は、リスナー制御ユーティリティでSET LOG_FILEコマンドおよびSET LOG_DIRECTORYコマンドを使用します。

  • Oracle Connection Managerの場合は、Oracle Connection Manager制御ユーティリティのSET LOG_DIRECTORYSET LOG_LEVELおよびSET EVENTコマンドを使用します。


    関連項目:


    『Oracle Database Net Servicesリファレンス』

16.6.5 ログ・ファイルの使用

ログ・ファイルを使用してネットワーク・エラーを診断するには、次の手順に従います。

  1. アプリケーションから受信した最新のエラー番号でログ・ファイルを探します。ほとんどの場合、これがログ・ファイルの最後のエントリです。

  2. ファイルの最も下から順にたどり、エラー・レポートで0(ゼロ)以外の最初のエントリを探します。通常は、これが実際の原因です。

  3. そのエラーが希望の情報を示していない場合は、正しいエラー情報が見つかるまでスタック内の次のエラーを見直します。

  4. それでもエラーの原因が明らかにならない場合は、トレースをオンにし、エラー・メッセージが発生した文を繰り返します。

16.6.6 リスナー・ログ・ファイルの分析

この項では、リスナー・ログ・ファイルに記録される情報を説明します。内容は次のとおりです。

16.6.6.1 リスナー・ログ監査証跡情報

リスナー・ログ・ファイルには、ネットワーク利用度の統計を収集および分析できる監査証跡情報と、次の内容を示す情報があります。

  • クライアントの接続要求

  • リスナー制御ユーティリティによって発行された、RELOADSTARTSTOPSTATUSまたはSERVICESコマンド

監査証跡情報を表に保存した後、それをレポート形式に書式設定することで、傾向とユーザー・アクティビティを検証できます。データを表にインポートするには、SQL*Loaderなどのインポート・ユーティリティを使用します。

16.6.6.1.1 リスナーのログ監査証跡の書式

監査証跡のテキストは次のフィールドで構成されます。

Timestamp * Connect Data [* Protocol Info] * Event [* SID | Service] * Return Code

監査証跡のプロパティは次のとおりです。

  • 各フィールドはアスタリスク(*)で区切られます。

  • プロトコル・アドレス情報、およびサービス名またはSID情報は、接続が試行された場合のみ記録されます。

  • 成功した接続またはコマンドには、コード0(ゼロ)が戻ります。

  • 失敗した場合は、エラー・メッセージに対応するコードが生成されます。


    関連項目:


16.6.6.1.2 例: 正常なReload要求に対するリスナー・ログ・イベント

次に、RELOADコマンド要求のログ・ファイルの出力例を示します。

14-JUL-2002 00:29:54 *
(connect_data=(cid=(program=)(host=sales-server)(user=jdoe))(command=stop)
(arguments=64)(service=listener)(version=135290880))
* stop * 0
16.6.6.1.3 例: 正常な接続要求に対するリスナー・ログ・イベント

次に、正常な接続要求のログ・ファイルの出力例を示します。

14-JUL-2002 15:28:58 *
(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
16.6.6.1.4 例: 失敗した接続要求に対するリスナー・ログ・イベント

次に、ホストsales-serverSTATUSコマンドが正常に実行された後で、IPアドレス192.0.2.35を持つクライアントによる接続が失敗した場合のログ・ファイルの出力例を示します。この接続試行の結果、ORA-12525: 「TNS: リスナーは、クライアントのリクエストを許容時間内に受信しませんでした。」エラーメッセージが表示されました。このエラー・メッセージは、クライアントがlistener.oraファイルのINBOUND_CONNECT_TIMEOUT_listener_nameパラメータで指定された時間内に接続要求を完了できなかった場合に表示されます。このクライアントはリスナーにDoS攻撃をしようとした可能性があります。

03-JUL-2002 16:41:57 *
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=sales-server)(USER=jdoe))(COMMAND=status)
(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=153092352)) * status * 0
03-JUL-2002 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.6.2 リスナーのサービス登録イベント情報

リスナーではサービス登録イベントが記録されます。サービス登録を行うと、PMONプロセスからリスナーに次の情報が提供されます。

  • データベースにおける稼働中の各インスタンスのサービス名

  • データベースのインスタンス名

  • 使用可能なサービス・ハンドラ(ディスパッチャまたは専用サーバー)

  • ディスパッチャ、インスタンスおよびノードのロード情報

  • 動的リスニング・エンドポイント

表16-15にリストされているサービス登録関連イベントは、listener.logファイルに記録されます。

表16-15 サービス登録イベントのログ情報

イベント 説明

service_register

リスナーがインスタンスの登録情報を受信した。

service_update

リスナーが特定インスタンスについて更新された登録情報(ディスパッチャやインスタンスのロード情報など)を受信した。

service_died

リスナーからPMONへの接続が切断された。インスタンスの登録情報はすべて廃棄されます。PMONによって再度登録されるまで、クライアントはそのインスタンスには接続できません。


16.6.6.2.1 リスナーのサービス登録情報の書式

サービス登録イベントは次のフィールドで構成されます。

Timestamp * Event *  Instance Name * Return Code

サービス登録フィールドのプロパティは次のとおりです。

  • 各フィールドはアスタリスク(*)で区切られます。

  • 通常は、1つのインスタンスのイベントが複数回連続して記録されます。

  • 正常に登録されると、コード0(ゼロ)が戻ります。これは、クライアントがインスタンスに接続できたことを示します。

  • 失敗した場合は、エラー・メッセージに対応するコードが生成されます。


    関連項目:


16.6.6.2.2 例: サービス登録イベントが記録されたリスナー・ログ

次の例では、サービス登録イベントが記録されたログ・ファイルを示します。リスナーは正常なservice_registerイベントの後はクライアント要求を受信できますが、service_diedイベントの後はクライアント要求を受信できない点に注意してください。

-------------------------------
14-JUL-2002 15:28:43 * service_register * sales * 0
14-JUL-2002 15:28:43 * service_register * sales * 0
14-JUL-2002 15:28:58 *
(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
14-JUL-2002 15:38:44 * service_update * sales * 0
14-JUL-2002 15:38:44 * service_update * sales * 0
14-JUL-2002 15:48:45 * service_update * sales * 0
14-JUL-2002 15:48:45 * service_update * sales * 0
14-JUL-2002 15:50:57 *
(connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server)(u
ser=jdoe)))
* (address=(protocol=tcp)(host=192.0.2.35)(port=41365)) * establish
* sales.us.example.com * 0
14-JUL-2002 15:51:26 * service_died * sales * 12537
14-JUL-2002 15:51:26 * service_died * sales * 12537
14-JUL-2002 15:52:06 *
(connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server)(u
ser=jdoe)))
* (address=(protocol=tcp)(host=192.0.2.35)(port=41406)) * establish
* sales.us.example.com * 12514
TNS-12514: TNS:listener could not resolve SERVICE_NAME given in connect
descriptor
--------------------------------

16.6.6.3 リスナーのDirect Hand-Off情報

リスナーでは、ディスパッチャへのDirect Hand-Offイベントが記録されます。これらのイベントは次のフィールドで構成されます。

Timestamp * Presentation * Handoff  * Error Code

Direct Hand-Offフィールドのプロパティは次のとおりです。

  • 各フィールドはアスタリスク(*)で区切られます。

  • 成功した接続またはコマンドには、コード0(ゼロ)が戻ります。

  • 失敗した場合は、エラー・メッセージに対応するコードが生成されます。


    関連項目:


    Oracle Netの一般的なエラーは、「Oracle Net Servicesの最も一般的なエラー・メッセージの解決」を、エラー・メッセージの詳細なリストは、『Oracle Databaseエラー・メッセージ』を参照してください。

16.6.6.3.1 例: Direct Hand-Offのリスナー・ログ・イベント

ログ・ファイルのDirect Hand-Offイベントの例を次に示します。

21-JUL-2002 10:54:55 * oracle.aurora.net.SALESHttp2 * handoff * 0

16.6.6.4 ONSノード停止イベント情報のリスナー・サブスクリプション

ONS構成ファイルを使用できる場合、リスナーは、起動時にOracle Notification Service(ONS)にnode downイベントをサブスクライブします。このサブスクリプションにより、リスナーはONSからnode downイベント通知を受信したときに、影響を受けるサービスを削除できます。リスナーは、イベント通知に非同期サブスクリプションを使用します。ONSデーモンがホストで実行されていない場合など、サブスクリプションが完了しなかった場合、次の警告メッセージがSTATUSコマンドごとにリスナー・ログ・ファイルに記録されます。

WARNING: Subscription for node down event still pending

サブスクリプションの保留中は、リスナーはONSイベントを受信できません。それ以外の場合、他のリスナー機能が影響を受けることはありません。

16.6.6.5 リスナーのOracle Clusterware通知情報

必要なOracle Clusterware(次のログ・メッセージのCRS)ライブラリがインストールされ、ホストでOracle Clusterwareが起動されている場合、Oracleリスナーは起動時および停止時にOracle Clusterwareのステータスを通知します。通知が成功すると、リスナーはイベントをログに記録します。通知が失敗した場合は、メッセージは記録されません。

Listener completed notification to CRS on start
Listener completed notification to CRS on stop

16.6.7 Oracle Connection Managerログの分析

Oracle Connection Managerは、各リスナー、ゲートウェイ、CMADMINプロセスに1個ずつ、およびアラート用に1つ、合計4つのタイプのログ・ファイルを生成します。最後のアラート用ログ・ファイルには、すべての重大エラーが時系列で記録されます。重大エラーのロギングのみでなく、アラート・ログには、起動と停止のインスタンスに関する情報も取り込まれます。また、セッションの開始時と終了時におけるすべての構成パラメータ値も記録されます。ファイル名の構文は、表16-9「ログ・ファイル」を参照してください。

CMADMINとゲートウェイのログ・ファイルはここで再生成されます。ログ・エントリの例と意味については、表16-16「CMADMINおよびGatewayログのエントリと意味」を参照してください。各エントリは、タイムスタンプとイベントで構成されます。イベントを次のカテゴリにロギングするようにcman.oraを構成できます。

  • 初期化と終了

  • メモリー操作

  • 接続処理

  • プロセス管理

  • 登録とロード更新

  • CMADMIN起動キュー関連のイベント

  • ゲートウェイのタイムアウト

  • コマンド処理

  • 接続制御ブロックに関連付けられたイベント

SET EVENTコマンドを使用して、ロギングするイベントを指定します。

この項で説明する例は、次のとおりです。

16.6.7.1 CMADMINログ・ファイルの例

-------------------------------
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=Parameter list)
    (listener_address=(address=(protocol=tcp)(host=usunnae16)(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)
    (password=OFF)
    (remote_admin=ON)
    (trace_directory=/home/user/network/admin/log)
    (trace_level=off)
    (trace_timestamp=OFF)
    (trace_filelen=0)
    (trace_fileno=0)
)
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=Shared Memory Size)
(BYTES=82524))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=GMON Attributes validated)
(Type=Information))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=NS Listen Successful)
((ADDRESS=(PROTOCOL=tcp)(HOST=usunnae16)(PORT=55878))))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)
(CMD=version))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)
(CMD=show status))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:12)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:15)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:29)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:46)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)
(CMD=probe monitor))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)
(CMD=shutdown normal))
-------------------------------

16.6.7.2 Gatewayログ・ファイルの例

-------------------------------
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=NS Initialised))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Memory Allocated)
(BYTES=1024))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=NCR Initialised))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Connected to Monitor))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=State Change from Empty to
Init))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Memory Allocated)
(BYTES=251904))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Memory Allocated)
(BYTES=2048))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=CCB Initialised))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Started Listening))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=State Change from Init to
Ready))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:47)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:06)(EVENT=Ready)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:06)(EVENT=Ready)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:07)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:12)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:13)(EVENT=Idle Timeout)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:17)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:22)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:25)(EVENT=Ready)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:25)(EVENT=Ready)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:27)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:30)(EVENT=Idle Timeout)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:32)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:37)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:42)(EVENT=Ready)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:42)(EVENT=Ready)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:42)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:47)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:52)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:57)(EVENT=Housekeeping))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:02)(EVENT=Session Timeout)(CONN NO=0))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:02)(EVENT=Housekeeping))
-------------------------------

表16-16 CMADMINおよびGatewayログのエントリと意味

イベント 説明 ログ・ファイル

GMON Attributes validated

通知メッセージ。CMADMINの起動に必要なパラメータが正しく指定されています。

CMADMIN

Failed to get procedure ID

CMADMINに接続されていたCMCTLセッションが切断されました。

CMADMIN

Out of CCB

CMADMINが接続要求を処理できません。次の2つの理由が考えられます。

  • CMADMINとリスナー間のロード更新が不完全

  • CMADMINに直接接続しようとしている侵入者がいる(Dos攻撃の可能性)

Gateway

No connect data

未知のクライアントがCMADMINに接続しようとしています。Dos攻撃と考えられます。

CMADMIN

Invalid connect data

未知のクライアントがCMADMINに接続しようとしています。Dos攻撃と考えられます。

CMADMIN

Housekeeping

通知メッセージ。ゲートウェイ・プロセスの内部ハウスキーピングが適切に行われています。ゲートウェイ・プロセスはCMADMINプロセスに正しく接続されています。

Gateway

Connected to Monitor

ゲートウェイがCMADMINに接続されました。

Gateway

State change from Empty to Init

ゲートウェイからの状態変更メッセージ。ゲートウェイはready状態になると、クライアントからの接続を受け入れます。

Gateway

State change from Init to Ready

ゲートウェイからの状態変更メッセージ。ゲートウェイはready状態になると、クライアントからの接続を受け入れます。

Gateway

Idle Timeout

cman.oraに指定された時間より長い間アイドル状態が続いたため、接続が切断されました。

Gateway

Session Timeout

cman.oraに指定されたセッション・タイムアウト時間を超過したため、接続が切断されました。

Gateway


16.7 Oracle Net Servicesのエラー情報のトレース

トレース機能は、実行されたネットワーク・イベントが記述される一連の詳細文を生成します。操作をトレースすると、ログ・ファイルにある情報より多くのOracle Net Servicesコンポーネントの内部操作に関する情報が得られます。この情報は、ファイル出力されエラーの原因となったイベントを識別できます。


注意:


トレース機能には大量のディスク領域を消費するため、システムのパフォーマンスに大きな影響を与える可能性があります。したがって、必要なときにのみトレースを行うようにしてください。

この項で説明する項目は、次のとおりです。

16.7.1 Oracle Net Servicesのトレース・ファイル名

Oracle Net Servicesの各コンポーネントは、それぞれ独自のトレース・ファイルを生成します。表16-17は、デフォルトのトレース・ファイル名と、トレース・ファイルを生成するコンポーネントのリストです。

表16-17 トレース・ファイル

トレース・ファイル コンポーネント

instance-name_pid.trc

Oracle Connection Managerリスナー

instance-name_cmgw_pid.trc

Oracle Connection Manager CMGW(Connection Manager Gateway)プロセス

instance-name_cmadmin_pid.trc

Oracle Connection Manager CMADMIN(Connection Manager Administration)プロセス

listener.trc

リスナー

sqlnet.trc

クライアント

svr_pid.trc

データベース・サーバー

tnsping.trc

TNSPINGユーティリティ


16.7.2 トレース・パラメータの設定

トレースする情報の種類と量、ファイルが格納されている位置など、トレースを制御するパラメータは、表16-18に示されるように各ネットワーク・コンポーネントの構成ファイル内に設定されます。

表16-18 トレース・パラメータの位置

コンポーネント 構成ファイル

Oracle Connection Managerプロセス

cman.ora

リスナー

listener.ora

クライアント

sqlnet.ora

データベース・サーバー

sqlnet.ora

TNSPINGユーティリティ

sqlnet.ora


この項で説明する項目は、次のとおりです。

16.7.2.1 sqlnet.oraファイルのトレース・パラメータ

表16-19では、sqlnet.oraファイルで設定できるトレース・パラメータの設定を示します。

表16-19 sqlnet.oraファイルのトレース・パラメータ

sqlnet.oraパラメータ Oracle Net Managerのフィールド 説明
TRACE_DIRECTORY_CLIENT

「クライアント情報: トレース・ディレクトリ」

クライアント・トレース出力の作成先となるディレクトリを設定します。デフォルトのクライアント・ディレクトリは、UNIXでは$ORACLE_HOME/network/trace、WindowsではORACLE_HOME\network\traceです。

TRACE_DIRECTORY_SERVER

「サーバー情報: トレース・ディレクトリ」

データベース・サーバー・トレース出力の作成先となるディレクトリを設定します。デフォルトのサーバー・ディレクトリは、UNIXでは$ORACLE_HOME/network/trace、WindowsではORACLE_HOME\network\traceです。

TRACE_FILE_CLIENT

「クライアント情報: トレース・ファイル」

クライアントのトレース・ファイルの名前を設定します。デフォルトのトレース・ファイル名はsqlnet.trcです。

TRACE_FILE_SERVER

「サーバー情報: トレース・ファイル」

データベース・サーバーのトレース・ファイルの名前を設定します。デフォルトのトレース・ファイル名はsvr_pid.trcです。

TRACE_FILELEN_CLIENT

該当なし

クライアント・トレース・ファイルのサイズを指定します(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、TRACE_FILENO_CLIENTパラメータで指定します。

TRACE_FILELEN_SERVER

該当なし

データベース・サーバー・トレース・ファイルのサイズを指定します(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、TRACE_FILENO_CLIENTパラメータで指定します。

TRACE_FILENO_CLIENT

該当なし

クライアント・トレース用のトレース・ファイルの数を指定します。このパラメータをTRACE_FILELEN_CLIENTパラメータとともに設定すると、トレース・ファイルは循環方式で使用されます。最初のファイルがいっぱいになると、2番目のファイルが使用され、順番にファイルが使用されます。最後のファイルがいっぱいになると、最初のファイルが再利用され、再度、順番にファイルが使用されます。

トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイルsqlnet.trcを使用し、このパラメータを3に設定すると、トレース・ファイル名はsqlnet1_pid.trcsqlnet2_pid.trcおよびsqlnet3_pid.trcになります。

また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。

TRACE_FILENO_SERVER

該当なし

データベース・サーバーのトレース用トレース・ファイルの数を指定します。このパラメータをTRACE_FILELEN_SERVERパラメータとともに設定すると、トレース・ファイルは循環方式で使用されます。最初のファイルがいっぱいになると、2番目のファイルが使用され、順番にファイルが使用されます。最後のファイルがいっぱいになると、最初のファイルが再利用され、再度、順番にファイルが使用されます。

トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイルsvr_pid.trcを使用し、このパラメータを3に設定すると、トレース・ファイル名はsvr1_pid.trcsvr2_pid.trcおよびsvr3_pid.trcになります。

また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。

TRACE_LEVEL_CLIENT

「クライアント情報: トレース・レベル」

トレース機能によりクライアントで記録される詳細レベルを指定します。

トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、offadminuserまたはsupportの値で指定します。

  • off0と同じ)はトレースを実行しません。

  • user4と同じ)はユーザーによるエラー条件を特定するためのトレースを実行します。

  • admin6と同じ)はインストレーション固有の問題を特定するためのトレースを実行します。

  • support16と同じ)はトラブルシューティング情報のトレース情報をOracleサポート・サービスに提供するためのトレースを実行します。

TRACE_LEVEL_SERVER

「サーバー情報: トレース・レベル」

トレース機能によりデータベース・サーバーで記録される詳細レベルを指定します。トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、offadminuserまたはsupportの値で指定します。

  • off0と同じ)はトレースを実行しません。

  • user4と同じ)はユーザーによるエラー条件を特定するためのトレースを実行します。

  • admin6と同じ)はインストレーション固有の問題を特定するためのトレースを実行します。

  • support16と同じ)はトラブルシューティング情報のトレース情報をOracleサポート・サービスに提供するためのトレースを実行します。

TRACE_TIMESTAMP_CLIENT

該当なし

クライアント・トレース・ファイルsqlnet.trcのすべてのトレース・イベントに、タイムスタンプをdd-mon-yyyy hh:mi:ss:milの書式で追加します。

TRACE_TIMESTAMP_SERVER

該当なし

クライアント・トレース・ファイルsqlnet.trcのすべてのトレース・イベントに、タイムスタンプをdd-mon-yyyy hh:mi:ss:milの書式で追加します。

TRACE_UNIQUE_CLIENT

「クライアント情報: 一意のトレース・ファイル名」

値をonに設定すると、複数のファイルが共存できるように、生成された各トレース・ファイルの名前にプロセス識別子が付加され、トレース・セッションごとに一意なファイル名がOracle Netによって作成されます。たとえば、デフォルトでトレース・ファイル名sqlnet.trcが使用されている場合、トレース・ファイルsqlnetpid.trcが作成されます。値をoffに設定すると、新しいクライアントのトレース・セッションからのデータによって既存のファイルが上書きされます。


表16-20に示されるTNSPINGユーティリティのトレース・パラメータをsqlnet.oraファイルに手動で追加できます。TNSPINGユーティリティでは、Oracle Netネットワーク上のサービス(データベース、その他のTNSサービスなど)に正常に到達できるかどうか判断します。

表16-20 TNSPINGのトレース・パラメータ

sqlnet.oraパラメータ 説明
TNSPING.TRACE_DIRECTORY

TNSPINGトレース・ファイルtnsping.trcの作成先となるディレクトリを設定します。デフォルトのディレクトリは、UNIXでは$ORACLE_HOME/network/trace、Windowsでは%ORACLE_HOME%\network\traceです。

TNSPING.TRACE_LEVEL

トレース機能によりTNSPINGユーティリティで記録される詳細レベルを指定します。

トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、offadminuserまたはsupportの値で指定します。

  • off0と同じ)はトレースを実行しません。

  • user4と同じ)はユーザーによるエラー条件を特定するためのトレースを実行します。

  • admin6と同じ)はインストレーション固有の問題を特定するためのトレースを実行します。

  • support16と同じ)はトラブルシューティング情報のトレース情報をOracleサポート・サービスに提供するためのトレースを実行します。


16.7.2.2 listener.oraファイルのトレース・パラメータ

表16-21では、listener.oraファイルで設定できるリスナー用のトレース・パラメータの設定を示します。

表16-21 listener.oraファイルのトレース・パラメータ

listener.oraファイルのパラメータ Oracle Enterprise ManagerまたはOracle Net Managerのフィールド 説明
TRACE_LEVEL_listener_name

「トレース・レベルを選択します」/「トレース・レベル」

トレース機能によりリスナーで記録される詳細レベルを指定します。

トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、offadminuserまたはsupportの値で指定します。

  • off0と同じ)はトレースを実行しません。

  • user4と同じ)はユーザーによるエラー条件を特定するためのトレースを実行します。

  • admin6と同じ)はインストレーション固有の問題を特定するためのトレースを実行します。

  • support16と同じ)はトラブルシューティング情報のトレース情報をOracleサポート・サービスに提供するためのトレースを実行します。

TRACE_DIRECTORY_listener_name
TRACE_FILE_listener_name

トレース・ファイル

トレース・ファイルの作成先となるディレクトリとファイルを設定します。デフォルトのディレクトリは、UNIXでは$ORACLE_HOME/network/trace、Windowsでは%ORACLE_HOME%\network\traceです。デフォルトのファイル名はlistener.trcです。

TRACE_FILELEN_listener_name

該当なし

リスナー・トレース・ファイルのサイズを指定します(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、TRACE_FILENO_listener_nameパラメータで指定します。

TRACE_FILENO_listener_name

該当なし

リスナーのトレース用トレース・ファイルの数を指定します。このパラメータをTRACE_FILELEN_listener_nameパラメータとともに設定すると、トレース・ファイルは循環方式で使用されます。最初のファイルがいっぱいになると、2番目のファイルが使用され、順番にファイルが使用されます。最後のファイルがいっぱいになると、最初のファイルが再利用され、再度、順番にファイルが使用されます。

トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイルlistener.trcを使用し、このパラメータを3に設定すると、トレース・ファイル名はlistener1.trclistener2.trcおよびlistener3.trcになります。

また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。

TRACE_TIMESTAMP_listener_name

該当なし

リスナー・トレース・ファイルのすべてのトレース・イベントに、タイムスタンプをdd-mon-yyyy hh:mi:ss:milの書式で追加します。


16.7.2.3 cman.oraファイルのトレース・パラメータ

表16-22では、cman.oraファイルでOracle Connection Managerに設定できるトレース・パラメータの設定を示します。

表16-22 cman.oraファイルのトレース・パラメータ

cman.oraファイルのパラメータ 説明
TRACE_DIRECTORY

トレース・ファイルの作成先となるディレクトリを設定します。

デフォルトのディレクトリは、UNIXでは$ORACLE_HOME/network/trace、Windowsでは%ORACLE_HOME%\network\traceです。

TRACE_FILELEN

トレース・ファイルのサイズを指定します(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、TRACE_FILENOパラメータで指定します。

TRACE_FILENO

トレース用トレース・ファイルの数を指定します。このパラメータをTRACE_FILELENパラメータとともに設定すると、トレース・ファイルは循環方式で使用されます。最初のファイルがいっぱいになると、2番目のファイルが使用され、順番にファイルが使用されます。最後のファイルがいっぱいになると、最初のファイルが再利用され、再度、順番にファイルが使用されます。

トレース・ファイル名は、順序番号によって識別されます。たとえば、このパラメータを3に設定すると、ゲートウェイ・プロセス用のOracle Connection Managerのトレース・ファイル名は、instance-name_cmgw1_pid.trcinstance-name_cmgw2_pid.trcおよびinstance-name_cmgw3_pid.trcになります。

また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。

TRACE_LEVEL

Oracle Connection Managerインスタンスのトレース・レベルを指定します。このパラメータには、次の4つのトレース・レベルを使用できます。

  • off(デフォルト): ロギングなし

  • user: ユーザー・ログ情報

  • admin: 管理ログ情報

  • support: Oracleサポート・サービス情報

Oracle Connection Managerでは、リスナー、ゲートウェイおよびCMADMINの各プロセスで、UNIXとWindowsの両方にトレース・ファイルが作成されます。ファイル名の構文は、表16-17「トレース・ファイル」を参照してください。

TRACE_TIMESTAMP

TRACINGパラメータが有効な場合、トレース・ファイルのすべてのトレース・イベントに、タイムスタンプをdd-mon-yyyy hh:mi:ss:milの書式で追加します。


16.7.2.4 構成ファイルのトレース・パラメータの設定

sqlnet.oraファイルのトレース・パラメータはOracle Net Managerで設定し、listener.oraファイルのトレース・パラメータはOracle Enterprise ManagerまたはOracle Net Managerで設定します。

cman.oraファイルのトレース・パラメータは、手動で設定する必要があります。


関連項目:


『Oracle Database Net Servicesリファレンス』

Oracle Enterprise ManagerおよびOracle Net Managerでトレース・パラメータを設定するには、表16-23を参照してください。

表16-23 構成ファイルのトレース・パラメータの設定

トレース・ファイル ツール ロギング・パラメータの設定方法

sqlnet.trc(クライアント用)

svr_pid.trc(サーバー用)

Oracle Net Manager


  1. Oracle Net Managerを起動します。

    関連項目: 「Oracle Net Manager」

  2. ナビゲータ・ペインで、「ローカル」「プロファイル」を展開します。

  3. 右ペインのリストから、「一般」を選択します。

  4. 「トレース」タブをクリックします。

  5. 設定を指定します。

  6. 「ファイル」「ネットワーク構成の保存」を選択します。

listener.trc

Oracle Enterprise Manager


  1. Oracle Enterprise ManagerのOracle Netの管理ページにアクセスします。

    関連項目: 「Oracle Enterprise Manager」

  2. 「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。

  3. 「実行」をクリックし、「リスナー」ページを表示します。

  4. リスナーを選択し、「編集」をクリックし、「リスナーの編集」ページを表示します。

  5. 「ロギングとトレース」タブをクリックします。

  6. 設定を指定します。

  7. 「OK」をクリックします。



  1. Oracle Net Managerを起動します。

    関連項目: 「Oracle Net Manager」

  2. ナビゲータ・ペインで、「ローカル」「リスナー」を展開します。

  3. リスナーを選択します。

  4. 右ペインのリストから、「一般」を選択します。

  5. 「ロギングとトレース」タブをクリックします。

  6. 設定を指定します。

  7. 「ファイル」「ネットワーク構成の保存」を選択します。


16.7.3 制御ユーティリティ実行時のトレース設定

トレースは、制御ユーティリティの実行時に設定できます。制御ユーティリティを使用してトレースを設定しても、*.oraファイルにパラメータは設定されません。設定は、制御ユーティリティの現在のセッションでのみ有効です。

  • リスナーの場合は、リスナー制御ユーティリティのSET TRC_DIRECTORYSET TRC_FILEおよびSET TRC_LEVELコマンドを使用します。

  • Oracle Connection Managerの場合は、Oracle Connection Manager制御ユーティリティのSET TRACE_DIRECTORYSET TRACE_LEVELおよびSET TRACE_TIMESTAMPコマンドを使用します。


    関連項目:


    『Oracle Database Net Servicesリファレンス』

この項で説明する項目は、次のとおりです。

16.7.4 Oracle Net Servicesのトレースの評価

トレース・ファイルは、Oracleサポート・サービスがネットワークの問題を診断してトラブルシューティングを行うのに役立ちます。

この項では、トレース・ファイルの基本的な分析方法を説明します。説明する項目は、次のとおりです。

16.7.4.1 ネットワーク・ノード間のデータ・パケットの流れ

Oracle Netは、データ・パケットを送受信することにより、その機能を実行します。supportのトレース・レベルを指定すると、トレース・ファイル内のOracle Netパケットの実際の内容を参照できます。送受信したパケット・タイプの順序により、接続を確立した方法を確認できます。

16.7.4.2 Oracle Netのデータ・パケットのフォーマット

トレース・ファイルの各行は、後ろにメッセージが続くプロシージャで始まります。各プロシージャの後には、実際のデータを示す16進データの行があります。パケットの内部をフローする実際のデータは、16進データの右側に表示される場合があります。

次の表では、Oracle Netパケット・キーワードの一覧と、それらのキーワードが表すパケット・タイプを示します。

キーワード パケット・タイプ
NSPTCN Connect
NSPTAC Accept
NSPTRF Refuse
NSPTRS Resend
NSPTDA Data
NSPCNL Control
NSPTMK Marker

たとえば、次の行はネットワークを通じてNSPTCNパケットを送る「nscon」と呼ばれるプロシージャを記述しています。

nscon: sending NSPTCN packet

各パケットには、パケット・タイプを示すキーワードがあります。すべてのパケット・タイプは、接頭辞「nsp」から始まります。特定のパケット情報についてトレース・ファイルを検討する場合、このことを覚えておくと便利です。

例16-4では、一般的なパケット情報を示します。

例16-4 パケット情報

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  |ap207sun|
nspsend:29 28 55 53 45 52 3D 6D  |)(USER=m|
nspsend:77 61 72 72 65 6E 29 29  |warren))|
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=ap34|
nspsend:37 73 75 6E 29 28 50 4F  |7sun)(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の関連トレース・エラー出力

接続に問題があると、トレース・ファイルにエラー・コードがロギングされます。例16-5は、データベース・サーバーへのSQL*Plus接続の障害に関する代表的なトレース・ファイル出力です。

例16-5 トレースの例

[22-JUL-2002 13:34:07:687] nsprecv: entry
[22-JUL-2002 13:34:07:687] nsbal: entry
[22-JUL-2002 13:34:07:687] nsbgetfl: entry
[22-JUL-2002 13:34:07:687] nsbgetfl: normal exit
[22-JUL-2002 13:34:07:687] nsmal: entry
[22-JUL-2002 13:34:07:687] nsmal: 44 bytes at 0x132d90
[22-JUL-2002 13:34:07:687] nsmal: normal exit
[22-JUL-2002 13:34:07:687] nsbal: normal exit
[22-JUL-2002 13:34:07:687] nsprecv: reading from transport...
[22-JUL-2002 13:34:07:687] nttrd: entry
[22-JUL-2002 13:35:09:625] nttrd: exit
[22-JUL-2002 13:35:09:625] ntt2err: entry
[22-JUL-2002 13:35:09:625] ntt2err: Read unexpected EOF ERROR on 10
[22-JUL-2002 13:35:09:625] ntt2err: exit
[22-JUL-2002 13:35:09:625] nsprecv: transport read error
[22-JUL-2002 13:35:09:625] nsprecv: error exit
[22-JUL-2002 13:35:09:625] nserror: entry
[22-JUL-2002 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-JUL-2002 13:35:09:625] nscon: error exit
[22-JUL-2002 13:35:09:625] nsdo: nsctxrnk=0
[22-JUL-2002 13:35:09:625] nsdo: error exit
[22-JUL-2002 13:35:09:625] nscall: unexpected response
[22-JUL-2002 13:35:09:625] nsclose: entry
[22-JUL-2002 13:35:09:625] nstimarmed: entry
[22-JUL-2002 13:35:09:625] nstimarmed: no timer allocated
[22-JUL-2002 13:35:09:625] nstimarmed: normal exit
[22-JUL-2002 13:35:09:625] nsdo: entry
[22-JUL-2002 13:35:09:625] nsdo: cid=0, opcode=98, *bl=0, *what=0,
uflgs=0x440, cflgs=0x2
[22-JUL-2002 13:35:09:625] nsdo: rank=64, nsctxrnk=0
[22-JUL-2002 13:35:09:625] nsdo: nsctx: state=1, flg=0x4201, mvd=0
[22-JUL-2002 13:35:09:625] nsbfr: entry
[22-JUL-2002 13:35:09:625] nsbaddfl: entry
[22-JUL-2002 13:35:09:625] nsbaddfl: normal exit
[22-JUL-2002 13:35:09:625] nsbfr: normal exit
[22-JUL-2002 13:35:09:625] nsbfr: entry
[22-JUL-2002 13:35:09:625] nsbaddfl: entry
[22-JUL-2002 13:35:09:625] nsbaddfl: normal exit
[22-JUL-2002 13:35:09:625] nsbfr: normal exit
[22-JUL-2002 13:35:09:625] nsdo: nsctxrnk=0
[22-JUL-2002 13:35:09:625] nsdo: normal exit
[22-JUL-2002 13:35:09:625] nsclose: closing transport
[22-JUL-2002 13:35:09:625] nttdisc: entry
[22-JUL-2002 13:35:09:625] nttdisc: Closed socket 10
[22-JUL-2002 13:35:09:625] nttdisc: exit
[22-JUL-2002 13:35:09:625] nsclose: global context check-out (from slot 0)
complete
[22-JUL-2002 13:35:09:703] nsnadisc: entry
[22-JUL-2002 13:35:09:703] nadisc: entry
[22-JUL-2002 13:35:09:703] nacomtm: entry
[22-JUL-2002 13:35:09:703] nacompd: entry
[22-JUL-2002 13:35:09:703] nacompd: exit
[22-JUL-2002 13:35:09:703] nacompd: entry
[22-JUL-2002 13:35:09:703] nacompd: exit
[22-JUL-2002 13:35:09:703] nacomtm: exit
[22-JUL-2002 13:35:09:703] nas_dis: entry
[22-JUL-2002 13:35:09:703] nas_dis: exit
[22-JUL-2002 13:35:09:703] nau_dis: entry
[22-JUL-2002 13:35:09:703] nau_dis: exit
[22-JUL-2002 13:35:09:703] naeetrm: entry
[22-JUL-2002 13:35:09:703] naeetrm: exit
[22-JUL-2002 13:35:09:703] naectrm: entry
[22-JUL-2002 13:35:09:703] naectrm: exit
[22-JUL-2002 13:35:09:703] nagbltrm: entry
[22-JUL-2002 13:35:09:703] nau_gtm: entry
[22-JUL-2002 13:35:09:703] nau_gtm: exit
[22-JUL-2002 13:35:09:703] nagbltrm: exit
[22-JUL-2002 13:35:09:703] nadisc: exit
[22-JUL-2002 13:35:09:703] nsnadisc: normal exit
[22-JUL-2002 13:35:09:703] nsbfr: entry
[22-JUL-2002 13:35:09:703] nsbaddfl: entry
[22-JUL-2002 13:35:09:703] nsbaddfl: normal exit
[22-JUL-2002 13:35:09:703] nsbfr: normal exit
[22-JUL-2002 13:35:09:703] nsmfr: entry
[22-JUL-2002 13:35:09:703] nsmfr: 2256 bytes at 0x130508
[22-JUL-2002 13:35:09:703] nsmfr: normal exit
[22-JUL-2002 13:35:09:703] nsmfr: entry
[22-JUL-2002 13:35:09:703] nsmfr: 484 bytes at 0x1398a8
[22-JUL-2002 13:35:09:703] nsmfr: normal exit
[22-JUL-2002 13:35:09:703] nsclose: normal exit
[22-JUL-2002 13:35:09:703] nscall: connecting...
[22-JUL-2002 13:35:09:703] nsclose: entry
[22-JUL-2002 13:35:09:703] nsclose: normal exit
[22-JUL-2002 13:35:09:703] nladget: entry
[22-JUL-2002 13:35:09:734] nladget: exit
[22-JUL-2002 13:35:09:734] nsmfr: entry
[22-JUL-2002 13:35:09:734] nsmfr: 144 bytes at 0x132cf8
[22-JUL-2002 13:35:09:734] nsmfr: normal exit
[22-JUL-2002 13:35:09:734] nsmfr: entry
[22-JUL-2002 13:35:09:734] nsmfr: 156 bytes at 0x138e70
[22-JUL-2002 13:35:09:734] nsmfr: normal exit
[22-JUL-2002 13:35:09:734] nladtrm: entry
[22-JUL-2002 13:35:09:734] nladtrm: exit
[22-JUL-2002 13:35:09:734] nscall: error exit
[22-JUL-2002 13:35:09:734] nioqper:  error from nscall
[22-JUL-2002 13:35:09:734] nioqper:    ns main err code: 12537
[22-JUL-2002 13:35:09:734] nioqper:    ns (2)  err code: 12560
[22-JUL-2002 13:35:09:734] nioqper:    nt main err code: 507
[22-JUL-2002 13:35:09:734] nioqper:    nt (2)  err code: 0
[22-JUL-2002 13:35:09:734] nioqper:    nt OS   err code: 0
[22-JUL-2002 13:35:09:734] niomapnserror: entry
[22-JUL-2002 13:35:09:734] niqme: entry
[22-JUL-2002 13:35:09:734] niqme: reporting NS-12537 error as ORA-12537
[22-JUL-2002 13:35:09:734] niqme: exit
[22-JUL-2002 13:35:09:734] niomapnserror: returning error 12537
[22-JUL-2002 13:35:09:734] niomapnserror: exit
[22-JUL-2002 13:35:09:734] niotns: Couldn't connect, returning 12537
[22-JUL-2002 13:35:10:734] niotns: exit
[22-JUL-2002 13:35:10:734] nsbfrfl: entry
[22-JUL-2002 13:35:10:734] nsbrfr: entry
[22-JUL-2002 13:35:10:734] nsbrfr: nsbfs at 0x132d90, data at 0x132dc8.
[22-JUL-2002 13:35:10:734] nsbrfr: normal exit
[22-JUL-2002 13:35:10:734] nsbrfr: entry
[22-JUL-2002 13:35:10:734] nsbrfr: nsbfs at 0x1248d8, data at 0x132210.
[22-JUL-2002 13:35:10:734] nsbrfr: normal exit
[22-JUL-2002 13:35:10:734] nsbrfr: entry
[22-JUL-2002 13:35:10:734] nsbrfr: nsbfs at 0x12d820, data at 0x1319f0.
[22-JUL-2002 13:35:10:734] nsbrfr: normal exit
[22-JUL-2002 13:35:10:734] nsbfrfl: normal exit
[22-JUL-2002 13:35:10:734] nigtrm: Count in the NI global area is now 1
[22-JUL-2002 13:35:10:734] nigtrm: Count in the NL global area is now 1

エラー・コードを評価する最も効率的な方法は、ロギングされた最新のnserrorエントリを検索することです。これは接続を制御しているのがセッション層であるためです。最も重要なエラー・メッセージは、ファイルの最後部にあるメッセージです。それらは最新のエラーであり、接続上の問題の原因を示しています。

特定のリターン・コードの情報に関しては、Oracle UNIXエラー・ツールのoerrを使用します。このためには、任意のコマンドラインで次のように入力します。

oerr tns error_number

例として、例16-5に示されるトレース・ファイルにロギングされた、次のnserrorエントリを考えます。

[22-JUL-2002 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

oerrを使用することによって、リターン・コード12537および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 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には、トレース・アシスタントと呼ばれるツールが用意されています。このツールを使用すると、トレース・ファイルの現行のテキスト行が読みやすい文に変換され、トレース・ファイル内の情報を理解するのに役立ちます。トレース・アシスタントは、レベル16support)のOracle Net Servicesトレース・ファイルに対してのみ実行されることに注意してください。


注意:


トレース・アシスタントは、DIAG_ADR_ENABLEDoffに設定されている場合のみ使用できます。

この項で説明する項目は、次のとおりです。

16.7.5.1 トレース・アシスタントの構文

トレース・アシスタントを実行するには、コマンドライン・プロンプトで次のように入力します。

trcasst [options] <filename>

表16-24では、オプションを説明します。

表16-24 トレース・アシスタントの構文

オプション 説明

-elevel

エラー情報を表示します。-eの後に、0(ゼロ)または1つのエラー・デコーディング・レベルが続きます。

  • 0または何もない場合は、nserrorファンクションからダンプされたNSエラー番号が変換され、他のすべてのエラーがリスト表示されます。

  • 1の場合は、nserrorファンクションから変換されたNSエラーのみが表示されます。

  • 2の場合は、変換されていないエラー番号が表示されます。

-la

NS接続パケットに接続IDがある場合は、出力にその接続IDが表示されます。接続IDは、16進の8バイトのIDとして表示されます。パケットが接続に関連付けられていない場合、生成されるIDはトレース・アシスタントで作成されます。つまり、トレース・ファイル内の接続パケットは上書きされます。これは、循環方式のトレース・ファイルで発生する可能性があります。

出力には、IDごとに次の内容が表示されます。

  • ソケットID(接続で使用する場合)。

  • 接続パケットの送受信操作。

  • 初期化パラメータ・ファイル内にあるDISPATCHERSパラメータのMULTIPLEX属性の現行設定。MULTIPLEXONに設定すると、セッションの多重化が使用可能になります。

  • セッションID(MULTIPLEXONに設定されている場合)。

  • 接続データ情報。

注意:

  • このオプションは、他のオプションと一緒には使用しないでください。

  • トレース・アシスタントで生成されたIDは、クライアント/サーバー・トレース・ファイルと相関関係はありません。

-li ID

-laの出力から、特定のIDに関するトレースを表示します。

注意: このオプションは、必ず-laオプションの出力とともに使用します。

-otype

出力する情報の種類と量を表示します。-oの後には、次のオプションを使用できます。

  • cを指定すると、接続サマリー情報を表示します。

  • dを指定すると、接続詳細情報を表示します。

  • uを指定すると、Two-Task Common(TTC)サマリー情報を表示します。

  • tを指定すると、TTC詳細情報を表示します。

  • qを指定すると、TTCサマリー情報を強化するSQLコマンドが表示されます。このオプションは、-ouqのように、uとともに使用します。

注意: dの出力にはcを指定した場合の情報も含まれるため、cdの両方を指定しないでください。両方のオプションを指定すると、dの出力のみが表示されます。

-p

Oracle内部使用のみ

-s

次の統計情報を表示します。

  • 送受信の合計バイト数

  • オープン・カーソルの最大数

  • 現在オープンしているカーソル数

  • 操作の件数と率

  • PL/SQLに関する解析と実行の件数

  • 送受信コールの合計数

  • 送受信バイトの合計、平均および最大数

  • 現行の転送およびセッションの合計数

  • タイムスタンプ情報(ある場合)

  • 順序番号(ある場合)


オプションを指定しない場合、デフォルトは-odt -e0 -sです。この場合、トレース・ファイル内の接続情報とTTCイベントの詳細、エラー・レベル0のエラー情報、および統計情報が表示されます。

例16-6では、トレース・アシスタントがトレース・ファイル情報を読みやすい書式に変換する方法を示します。

例16-6 エラーを含むトレース・ファイル

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

例16-7では、トレース・アシスタントが-e1オプションを使用して、トレース・ファイル情報を読みやすい書式に変換する方法を示します。

例16-7 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:no listener"
 // *Cause: The connection request could not be completed because the listener
 // is not running.
 // *Action: Ensure that the supplied destination address matches one of
 // the addresses used by the listener - compare the TNSNAMES.ORA entry with
 // the 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.
/
12560, 00000 "TNS:protocol adapter error"
 // *Cause: A generic protocol adapter error occurred.
 // *Action: Check addresses used for proper protocol specification. Before
 // reporting this error, look at the error stack and check for lower level
 // transport errors.For further details, turn on tracing and reexecute the
 // operation. Turn off tracing when the operation is complete.
/
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通信レイヤーの両方からデータ・パケットを表示することもできます。トレース・アシスタントでは、これらのパケットを表示するために、次の2つのオプションを使用できます。

  • 接続性のサマリー(-ocオプションを使用)

  • 接続性の詳細(-odオプションを使用)

16.7.5.2.1 例: 接続時に送信されたデータ・パケットのサマリー

例16-8は、-ocオプションを使用した場合のサマリー情報の出力を示します。次のように出力されます。

例16-8 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.7.5.2.2 例: 接続時に送信されたデータ・パケットの詳細

例16-9は、-odオプションを使用した場合の詳細情報の出力を示します。この出力には、接続のネゴシエーション時に接続データとともに送信されたすべての詳細情報が表示されます。

例16-9 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: DEADBEEF0003000000040004000100010002
                                        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: DEADBEEF00030000000200040001
                                        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は、カーソルのオープン、行の選択、行の更新など、データベース・サーバーに送られる要求を処理します。データベース・サーバーは、すべての要求に応答します。ログオンを要求すると、その要求を完了したデータベース・サーバーから応答が返されます。

16.7.5.3.1 例: Two-Task Commonサマリー情報

-ouオプションを使用した場合のTTCサマリー情報は、他の表示とは異なり、行ごとに1つのパケットではなく2つのパケットが表示されます。これは、TTCで処理された要求と応答のペアをミラー化するためです。

例16-10では、接続のネゴシエーション時に接続データとともに送信されたすべての詳細情報を示します。

例16-10 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                      *
    *************************************************************************

出力は次の書式で表示されます。

description TTC_message cursor_number SQL_statement bytes_sent bytes_received

出力の各行の最初に表示される項目は、実際に送信された要求です。2番目に表示される項目は、操作が実行されたカーソルの位置です。3番目に表示される項目は、SQLコマンドのリスト、または応答中を示すフラグのいずれかです。送受信されたバイト数は、最も右側に表示されます。フラグは次のいずれかです。

!PL/SQL = Not a PL/SQL request
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.7.5.3.2 例: Two-Task Commonサマリー情報に追加されたSQL詳細情報

例16-11は、-ouqオプションを使用した場合のSQL詳細情報の出力を示します。

例16-11 trcasst -ouqの出力

    *************************************************************************
    *                        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.3.3 例: Two-Task Common詳細サマリー情報

例16-12は、-otオプションを使用した場合のTTC詳細情報の出力を示します。

例16-12 trcasst -otの出力

    *************************************************************************
    *                        Trace  Assistant                                  *
    *************************************************************************

Set protocol (TTIPRO)
        Operation 01 (con) Send protocol version=6
        Originating platform: SVR4-be-8.1.0

Set protocol (TTIPRO)
        Operation 01 (con) Receive protocol version=6
        Destination platform: SVR4-be-8.1.0

Set datatypes (TTIDTY)

Set datatypes (TTIDTY)

Start of user function (TTIFUN)
              (OSESSKEY)

Return opi parameter (TTIRPA)

Start of user function (TTIFUN)
        (OAUTH)

Return opi parameter (TTIRPA)

Start of user function (TTIFUN)
              session operations 71 (O71SESOPN) (switch session)

Return opi parameter (TTIRPA)

Start of user function (TTIFUN)
        Get Oracle version/date string in new format (OVERSION)

Return opi parameter (TTIRPA)
Oracle Enterprise Edition Release 10.1.0.2.0
With the Partitioning option
JServer Release 10.1.0.2.0

Start of user function (TTIFUN)
        session operations 71 (O71SESOPN) (switch session)

Return opi parameter (TTIRPA)

Start of user function (TTIFUN)
              Open a cursor (OOPEN)

Return opi parameter (TTIRPA)
        Cursor #: 1

Start of user function (TTIFUN)
              Parse a statement (OSQL) Cursor # 1
SELECT USER FROM DUAL
    *************************************************************************
    *                    Trace Assistant has completed                      *
    *************************************************************************

16.7.5.4 接続に関する出力例

例16-13は、-laオプションを使用した場合の出力を示します。出力には次の情報が表示されます。

  • 受信した接続ID。

  • この接続を受信したソケットID。

  • 操作。

    Receiveはトレースをデータベース・サーバーのトレースとして識別し、Sendはトレースをクライアントのトレースとして識別します。この出力では、Receiveが操作です。

  • DISPATCHERSパラメータのMULTIPLEX属性は、ONに設定されています。

  • 32ビットのセッションID。

  • 受信した接続データ情報。

例16-13 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-14は、-li 00000B1F00000008オプションを使用した場合の接続ID 00000B1F00000008に関する出力を示します。

例16-14 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: DEADBEEF0003000000040004000100010002
                 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: DEADBEEF00030000000200040001
                 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-15では、-sオプションを使用した場合の代表的なトレース・ファイルの統計を示します。

例16-15 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サポート・サービスに連絡してエラーを報告するように指示された場合は、次の情報を手元にご用意ください。