Oracle Net Servicesでは、ネットワークの問題を理解し、テストして、解決するための手段が提供されています。Oracle Databaseには、ネットワークの接続と問題をテストおよび診断するための、ユーティリティおよびログ・ファイルとトレース・ファイルが含まれます。TNSPINGおよびTRCROUTEユーティリティは接続をテストします。ログ・ファイルとトレース・ファイルは、エラーが発生すると、ネットワーク・コンポーネント間の対話を追跡し記録します。この情報を評価すると、ネットワーク上の問題点を診断してトラブルシューティングできます。
この章では、一般的なテスト手順とネットワーク・エラー、および問題を解決する手順の概要を説明します。さらに複雑なネットワークの問題を診断しトラブルシューティングするために、エラー情報をロギングしてトレースする方法についても説明します。この章の内容は、次のとおりです。
自動診断リポジトリ(ADR)は、システム全体のトレースおよびロギング用中央リポジトリです。このリポジトリは、ネットワーク・トレースおよびロギング情報などの診断情報を蓄積するための、ファイルベースの階層データ・ストアです。
ADRホームは、Oracle製品のインスタンスに割り当てられるADRディレクトリのユニットです。各データベース・インスタンスに独自のADRホームが割り当てられます。同様に、各リスナー、Oracle Connection Managerおよびクライアント・インスタンスにも独自の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製品またはコンポーネント(Oracle Automatic Storage Management(Oracle ASM)またはOracle Databaseなど)に対するその他のADRホームが、この階層内の同じADRベースの下に存在する場合があります。
表16-2では、Oracle Connection Managerインスタンスのパス・コンポーネントの値を示します。
表16-2 Oracle Connection ManagerインスタンスのADRホームのパス・コンポーネント
パス・コンポーネント | Oracle Connection Managerの値 |
---|---|
product_type |
netcman |
product_id |
ホスト名 |
instance_id |
Oracle Connection Managerインスタンス名 |
図16-2では、Oracle Connection ManagerインスタンスのADRのディレクトリ階層を示しています。その他のOracle製品またはコンポーネント(Oracle ASMまたはOracle Databaseなど)に対するその他のADRホームが、この階層内の同じADRベースの下に存在する場合があります。
ADRホーム・ディレクトリ内のサブディレクトリでは、各インスタンス(データベース、リスナー、Oracle Connection Managerまたはクライアント)により診断データが格納されます。表16-3では、これらのサブディレクトリの一部とその内容を示します。
表16-3 ADRホームのサブディレクトリ
サブディレクトリ名 | 内容 |
---|---|
alert |
log.xmlという名前のXML形式のログ |
cdump |
コア・ファイル |
incident |
複数のサブディレクトリ。各サブディレクトリは特定のインシデントにちなんで名付けられ、それぞれにそのインシデントにのみ関係するダンプが含められる |
trace |
バックグラウンド・プロセスとサーバー・プロセスのトレース・ファイル、SQLトレース・ファイル、およびalertディレクトリのlog.xmlファイルのテキスト・バージョン |
(その他) |
ADRホームのその他のサブディレクトリ。インシデント・パッケージ、状態監視レポートおよびその他の情報が格納される |
ADR_BASE
は、1つ以上のADRホームが置かれる物理的な場所です。概念的には、これはADRのルート・ディレクトリです。
非ADR(つまりDIAG_ADR_ENABLED
パラメータがOFF
に設定されている)の診断およびトレースの方法が現在も主流であり適用可能ですが、ADRが有効である場合、このパラメータは無視されます。ADRはデフォルトで有効になります。
診断パラメータは次の構成ファイルにあります。
sqlnet.ora
(クライアント用)。
listener.ora
(リスナー用)。
cman.ora
(Connection Manager用)。
表16-4では、ADRの診断と非ADRベースの診断の両方で使用されるsqlnet.ora
ファイル内の、診断パラメータの使用について比較しています。
表16-4 sqlnet.oraファイルの診断パラメータの比較
パラメータ | DIAG_ADR_ENABLED=OFF | DIAG_ADR_ENABLED=ON |
---|---|---|
ADR_BASE |
無効 |
有効 |
TRACE_LEVEL_CLIENT |
有効 |
有効 |
TRACE_LEVEL_SERVER |
有効 |
有効 |
TRACE_DIRECTORY_CLIENT |
有効 |
無効 |
TRACE_FILE_CLIENT |
有効 |
無効 |
TRACE_UNIQUE_CLIENT |
有効 |
無効 |
LOG_DIRECTORY_CLIENT |
有効 |
無効 |
LOG_FILE_CLIENT |
有効 |
無効 |
LOG_DIRECTORY_SERVER |
有効 |
無効 |
TRACE_DIRECTORY_SERVER |
有効 |
無効 |
TRACE_FILE_SERVER |
有効 |
無効 |
表16-5では、非ADRの診断とADRベースの診断の両方で使用されるlistener.ora
ファイル内の、診断パラメータの使用について比較しています。
表16-5 listener.oraファイルの診断パラメータの比較
パラメータ | DIAG_ADR_ENABLED=OFF | DIAG_ADR_ENABLED=ON |
---|---|---|
ADR_BASE_listener_name |
無効 |
有効 |
LOGGING_listener_name |
有効 |
有効 |
TRACE_LEVEL_listener_name |
有効 |
有効 |
TRACE_TIMESTAMP_listener_name |
有効 |
有効 |
LOG_DIRECTORY_CLIENT_listener_name |
有効 |
無効 |
LOG_FILE_CLIENT_listener_name |
有効 |
無効 |
TRACE_DIRECTORY_CLIENT_listener_name |
有効 |
無効 |
TRACE_FILELEN_listener_name |
有効 |
無効 |
TRACE_FILENO_listener_name |
有効 |
無効 |
表16-6では、非ADRの診断とADRベースの診断の両方で使用されるcman.ora
ファイル内の、診断パラメータの使用について比較しています。
表16-6 cman.oraファイルの診断パラメータの比較
パラメータ | DIAG_ADR_ENABLED=OFF | DIAG_ADR_ENABLED=ON |
---|---|---|
ADR_BASE |
無効 |
有効 |
LOG_LEVEL |
有効 |
有効 |
TRACE_LEVEL |
有効 |
有効 |
TRACE_TIMESTAMP |
有効 |
有効 |
LOG_DIRECTORY |
有効 |
無効 |
TRACE_DIRECTORY |
有効 |
無効 |
TRACE_FILELEN |
有効 |
無効 |
TRACE_FILENO |
有効 |
無効 |
関連項目:
|
ADRCIは、Oracle Database 11gで導入されたエラー診断機能インフラストラクチャの一部であるコマンドライン・ツールです。ADRCIでは次のことが可能です。
ADR内で診断データを表示
インシデントおよび問題に関する情報をZIPファイルにパッケージ化し、Oracleサポート・サービスに転送
診断データには、インシデントおよび問題に関する説明、トレース・ファイル、ダンプ、状態監視レポート、アラート・ログ・エントリなどが含まれます。
ADRCIには豊富なコマンド・セットがあり、対話型モードまたはスクリプト内で使用できます。さらに、ADRCIは、SQL*PlusがSQLコマンドおよびPL/SQLコマンドを使用してスクリプトを実行するのと同じ方法で、ADRCIコマンドのスクリプトを実行できます。
ADRCIを使用してトレース・ファイルを表示するには、コマンドラインでADRCI
と入力します。次に示すのは、サーバーを確認するための共通のADRCIコマンドです。
サーバー側
adrci>> SHOW BASE
adrci>> SHOW TRACEFILE
adrci>> SHOW TRACE trace_file
.trc
次に示すのは、クライアントを確認するための共通のADRCIコマンドです。
クライアント側
adrci>> SHOW ALERT adrci>> SHOW BASE -product client adrci>> SET BASE -productclient
adrci>> SHOW TRACEFILE adrci>> SHOW TRACEtrace_file
.trc adrci>> SHOW SPOOL
前述のコマンドで、SHOW ALERT
はlog.xml
ファイルをVIなどのテキスト・エディタで表示します。SHOW BASE -product client
は、クライアントのADR_BASE
の値を表示します。表示された値は、SET BASEコマンドのclient
に使用します。
さらに対象を絞ったOracle Netトレース・ファイル分析を行うには、その他のADRCIコマンド・オプションを使用できます。ヘルプ・マニュアルにアクセスするには、adrci
プロンプトで「HELP
」と入力します。
関連項目: ADRCIの詳細は、『Oracle Databaseユーティリティ』を参照してください。 |
すべての基礎となるエラーは、重大かどうかに関係なく、エラー番号またはエラー・メッセージでOracle Net Servicesによって報告されます。エラー番号およびエラー・メッセージは問題の診断に役立つ情報を提供しますが、常に実際の問題を指しているわけではありません。この項は、Oracle Net Servicesが正しく機能している部分と機能していない部分を切り分けるのに役立ちます。また、エラーが次のどのカテゴリに属しているかを判別する際にも役立ちます。
Oracleソフトウェア
オペレーティング・システム・レイヤー
その他のネットワーク層
ほとんどの場合、各種ネットワーク層を順にテストすることで問題を発見できます。
この項で説明する項目は、次のとおりです。
サーバーの問題の診断を開始するには、次の項目をチェックします。
他のシステム(ワークステーション/サーバー)はOracle Netを使用してサーバーに接続できる。
サーバー、データベースまたはリスナーの構成は、しばらくの間変更されていない。
前述の項目に1つでも当てはまる場合は、「クライアントの問題の診断」に進みます。
不明な場合、またはいずれにも当てはまらない場合、このまま続けます。サーバー上のOracle Net Servicesを診断するには次の作業を行います。
データベースが起動していることを確認するため、有効なユーザー名とパスワードを使用してデータベースにログインおよび接続します。たとえば、次のように指定します。
SQLPLUS system
Enter password: password
データベースに接続していることを確認するメッセージが表示されます。次のエラーが表示される場合は、データベース管理者に連絡してください。
ループバック・テストでは、Oracle Netを使用してデータベース・サーバーからInterprocess Communication(IPC)を利用せずにサーバー自体に戻ります。ループバックが正常に終了すると、Oracle Netがデータベース・サーバーで機能していることが確認できます。
サーバーからデータベースへのループバック・テストを実行する手順は、次のとおりです。
listener.ora
、tnsnames.ora
およびsqlnet.ora
の各ファイルが、「ローカライズされた管理の使用」で説明しているとおり、正しい場所にあることを確認します。
Oracle Net Managerを起動します。
ナビゲータで、「ディレクトリ」または「ローカル」→「サービス・ネーミング」を展開します。
ネット・サービス名またはデータベース・サービスを選択します。
「ツール」→ネット・サービスのテストを選択します。
このテストでは、リスナーとデータベースが実行されている必要があります。データベースやリスナーが実行されていない場合は、「Oracle Net ListenerとOracle Databaseサーバーの起動」を参照してコンポーネントを起動してください。
テスト中、ステータスとテスト結果を示す「接続テスト」ダイアログ・ボックスが表示されます。テストが成功すると、次のメッセージが表示されます。
The connection test was successful.
テストが成功した場合は、手順6に進んでください。
テストが正常終了しなかった場合は、次の処置を行ってください。
データベースとリスナーが実行されていることを確認し、「テスト」をクリックします。
「ログインの変更」をクリックして、接続に使用するユーザー名とパスワードを変更し、「テスト」をクリックします。
ループバック・テストが正常に終了する場合は、「クライアントの問題の診断」に進みます。
ループバック・テストでエラーが発生する場合、Oracleサポート・サービスに問い合せてください。
「閉じる」をクリックして「接続テスト」ダイアログ・ボックスを閉じます。
次の文の少なくとも1つを検証します。これはクライアントの問題かどうかを判定するのに役立ちます。
ネットワークが機能していることを示すデータベース・サーバーでのループバック・テストが正常終了した。
他のコンピュータがOracle Net Servicesを使用して同じデータベースに接続している。
このコンピュータに変更を加える(新たな製品のインストールやネットワーク構成の変更など)前は、このワークステーションからの接続が機能していた。
次の手順では、クライアントでの診断の実行方法を説明します。
データベース・サーバーにインストールされているのと同じプロトコル・サポートがインストールされていることを確認します。
UNIXおよびUNIXプラットフォームの場合は、ADAPTERS
ユーティリティを使用してプロトコル・サポートを確認できます。データベース・サーバーで、ORACLE_HOME/bin
ディレクトリから次のコマンドを実行して、oracle
実行可能プログラムにリンクするプロトコル・サポート、ネーミング・メソッドおよびセキュリティ・オプションを表示します。
adapters ./oracle
次に、adapters
ユーティリティによる出力例を示します。
Installed Oracle Net transport protocols are: IPC BEQ TCP/IP SSL RAW SDP/IB Installed Oracle Net naming methods are: Local Naming (tnsnames.ora) Oracle Directory Naming Oracle Host Naming NIS Naming Installed Oracle Advanced Security options are: RC4 40-bit encryption RC4 56-bit encryption RC4 128-bit encryption RC4 256-bit encryption DES40 40-bit encryption DES 56-bit encryption 3DES 112-bit encryption 3DES 168-bit encryption AES 128-bit encryption AES 192-bit encryption AES 256-bit encryption MD5 crypto-checksumming SHA crypto-checksumming (for FIPS) SHA-1 crypto-checksumming Kerberos v5 authentication RADIUS authentication
クライアントで、ORACLE_HOME/bin
ディレクトリからadapters
コマンドを実行して、構成されたOracle protocol support、ネーミング・メソッドおよびセキュリティ・オプションを表示します。次に、ADAPTERS
ユーティリティによる出力例を示します。
Installed Oracle Net transport protocols are: IPC BEQ TCP/IP SSL RAW SDP/IB 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
注意: RAWはOracle Netで使用される内部プロトコルです。 |
関連項目: adaptersユーティリティの詳細は、『Oracle Database管理者ガイド』 を参照してください。 |
基底のネットワーク・トランスポートの基本的な接続性をチェックします。Oracle Netテクノロジは、正常な接続のために基底のネットワークに依存しています。
プロトコル | 確認方法 |
---|---|
TCP/IP | クライアントからデータベース・サーバーに端末エミュレーションまたはファイル転送ユーティリティ(PING、FTP、TELNET)を使用する。 |
Named Pipes |
|
Oracle Net Foundationレイヤーおよび適切なOracle protocol supportが存在することを確認するため、すべてのクライアント用Oracle Net Servicesソフトウェアがインストールされていることを確認します。
クライアント・コンピュータの正しい場所に、tnsnames.ora
ファイルとsqlnet.ora
ファイルが存在していることを確認します。
選択したOracle Databaseに接続している他の稼働中のクライアント・コンピュータがある場合は、既存のファイルのバックアップをとって、稼働中のクライアント・コンピュータのtnsnames.ora
ファイルとsqlnet.ora
ファイルを稼働していないクライアントにコピーします。これにより、ファイルにエラーが含まれている可能性が排除されます。
Oracle Net Foundationレイヤーをテストします。次のコマンドを使用してSQL*Plusに接続してテストできます。
sqlplususer
/password
@connect_string
注意: TNSPINGユーティリティは使用しないでください。TNSPINGユーティリティはTCP/IP PINGユーティリティと同様に機能します。これはソケットの作成やオープンは行わず、リスナーとは接続しません。このユーティリティは、リスナーがデータベース・サーバー上に存在することを確認します。 |
それでも接続がうまくいかない場合、次の作業を行います。
「ログ・ファイルとトレース・ファイルを使用したネットワーク上の問題点のトラブルシューティング」の説明に従ってトレースを使用する。
OracleサポートWebサイトで、発生したエラーに関する診断情報を確認する。
Oracleサポート・サービスに連絡する。
ネットワーク通信が複雑であるため、様々な理由で各種ソースからネットワーク・エラーが発生する場合があります。エラーが発生した場合、Oracle Net Servicesからのネットワーク・サービスに依存しているSQL*Plusなどのアプリケーションは、通常、エラー・メッセージを生成します。
次のリストは、最も一般的なネットワーク・エラー・メッセージです。
特定のエラー・メッセージの情報に関しては、Oracleエラー・ツールのoerr
を使用します。このためには、任意のコマンドラインで次のように入力します。
oerrcode
error_number
前述のコマンドで、codeはORAやTNSなどのメッセージのタイプ、error_numberはエラー・メッセージに関連付けられている番号です。
関連項目: エラー・メッセージの完全なリストは、『Oracle Databaseエラー・メッセージ』を参照してください。 |
sqlnet.ora
ファイルのnames.directory_path
パラメータにリストされているネーミング・アダプタのタイプを調べます。構成されていない場合は、adapters
コマンドを使用して使用中のアダプタを特定します。adaptersの例を次に示します。
$ adapters ... Installed Oracle Net naming methods are: Local Naming (tnsnames.ora) Oracle Directory Naming Oracle Host Naming NIS Naming
接続文字列で指定されているネット・サービス名が、少なくとも1つのネーミング・メソッドに定義されている必要があります。
各アダプタの解決パスで問題の可能性を調べます。たとえば、接続文字列で指定されている名前が正しく完全であることを確認し、必要であればネット・サービスの完全な名前を使用します。
ローカル・ネーミング・メソッドを使用するときは、次のようにします。
tnsnames.ora
ファイルが正しい場所に存在することを確認します。場所は、ORACLE_HOME/network/admin
ディレクトリまたはTNS_ADMIN環境変数で指定されているディレクトリです。
tnsnames.ora
ファイルに接続文字列で指定されている名前のエントリがあることを確認します。名前が単純でsqlnet.ora
ファイルにNAMES_DEFAULT_DOMAINがない場合、またはネット・サービス名が完全修飾名である場合は、このネット・サービス名がtnsnames.ora
ファイルの名前と厳密に一致している必要があります。接続文字列のネット・サービス名が単純な場合は、sqlnet.ora
ファイルのNAMES_DEFAULT_DIRECTORYパラメータを調べます。その値が、接続文字列で指定されているネット・サービス名に追加されます。この完全修飾名が、tnsnames.ora
ファイル内のエントリである必要があります。
ログイン・ダイアログ・ボックスから接続する場合は、接続するネット・サービス名の前に記号(@)を付けていないことを確認します。
クライアントのトレースをアクティブにして、操作を繰返します。
ディレクトリ・ネーミング・メソッドを使用するときは、次のようにします。
ldap.ora
ファイルが正しい場所に存在することを確認します。次のディレクトリで、この順番に、ldap.ora
ファイルが検索されます。見つかったldap.ora
が使用されます。
環境変数TNS_ADMINで指定されているディレクトリ。
ORACLE_HOME/network/admin
ディレクトリ。
環境変数LDAP_ADMINで指定されているディレクトリ。
ORACLE_HOME/ldap/admin
ディレクトリ。
次のように、ldap.ora
ファイルで定義されているパラメータが正しいことを確認します。
DIRECTORY_SERVERSパラメータで、1つ以上の有効なLDAPサーバーの正しいホストとポートが定義されている。
DEFAULT_ADMIN_CONTEXTパラメータで、ネット・サービス・エントリを含んでいる必要のある、このディレクトリ内のOracleコンテキストの場所が定義されている。
ldap.ora
ファイルが存在しない場合、これらのパラメータは自動検出を使用して解決されます。
LDAPサーバーのホストとポートがDNSで定義されていることを確認します。
ディレクトリでデフォルトのOracleコンテキストが定義されていることを確認します。
ldapsearchユーティリティまたはディレクトリ管理ツールを使用して、DEFAULT_ADMIN_CONTEXTパラメータの値で指定されている場所のOracleコンテキスト内にネット・サービス・オブジェクトが存在することを確認します。
簡易接続ネーミング・メソッドを使用するときは、次のようにします。
指定されているホスト名が正しいこと、およびローカル・ホスト・ファイルやDNSなどのローカル・ホスト名解決サービスでホスト名が定義されていることを確認します。
外部ネーミング・メソッドを使用するときは、次のようにします。
tnsnames用のNISファイルが正しく設定されていることを確認します。
前記のローカル・ネーミング・セクションで説明されているように、ネット・サービス名がtnsnamesのエントリと一致することを確認します。
関連項目:
|
sqlnet.ora
ファイルのSQLNET.INBOUND_CONNECT_TIMEOUT
パラメータで指定した時間内で接続の確立と認証の完了に失敗しました。このエラーは、ネットワークまたはシステムの遅延が原因の可能性があります。または、悪質なクライアントがデータベース・サーバーでDoS攻撃しようとしていることを示す可能性もあります。トレースをオンにして、タイムアウトしたクライアントを特定します。
sqlnet.ora
で、SQLNET.INBOUND_CONNECT_TIMEOUT
、SQLNET.SEND_TIMEOUT
、SQLNET.RECV_TIMEOUT
のいずれかのパラメータをより大きい値に再構成します。
不当なクライアントが疑われる場合は、次の手順を実行します。
そのクライアントへのアクセス制限を行います。たとえば、sqlnet.ora
ファイルでアクセス権のパラメータを構成できます。
データベース・サーバー上のsqlnet.log
ファイルでクライアントのIPアドレスを探索して、ソースを識別します。IPアドレスは偽造できることに注意してください。
たとえば、次のsqlnet.log
の例は、クライアントのIPアドレス192.168.2.35
を示しています。
Fatal NI connect error 12170. VERSION INFORMATION: TNS for Linux: Version 11.2.0.0.0 Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.0.0 TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.0.0 Time: 03-MAY-2009 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.168.2.35)(PORT=52996))
データベース・サーバーでIPアドレスを取り出す前にタイム・アウトが発生した場合は、リスナー・トレースを有効にして、要求を送信したクライアントを特定します。
1ユーザーに許可されるプロセスの最大数を超過した
リスナーがOracleプログラムの実行権限を持っていない
関連付けられたMicrosoft Windowsサービスが起動されていない
状況によっては、これらのエラーは次のエラーと同じ条件下で発生する可能性があります。
TNS-12549/ORA-12549
TNS-00519
TNS-12540/ORA-12540
TNS-00510
TNS-12560/ORA-12560
データベース初期化ファイルのPROCESSES
パラメータを現在より大きな値に設定して、プロセス数を増やします。
listener.log
ファイルで詳しいエラー・スタック情報をチェックします。
しばらく待ってから、もう一度接続します。
リスナー制御ユーティリティのSTATUS
またはSERVICES
コマンドを実行して、リスナーが現在認識しているサービスを確認します。
接続記述子のSERVICE_NAME
パラメータに、リスナーが認識しているサービス名が指定されていることを確認します。
listener.log
ファイル内のイベントを確認します。
SERVICE_NAME
/INSTANCE_NAME
に登録されていないか、データベース・インスタンスがリスナーに登録されていない。接続記述子に(
server
=
value
)
が設定されている場合は、データベースに適したタイプのサービス・ハンドラに値が設定されていることを確認します。適切な値は、専用サーバーの場合はdedicated
、ディスパッチャの場合はshared
です。リスナー制御ユーティリティのSERVICES
コマンドを使用すると、現在リスナーに登録されているサービス・ハンドラを確認できます。
sqlnet.ora
ファイルでUSE_DEDICATED_SERVER
がON
に設定されている場合は、データベースが専用サーバーを使用するように構成されていることを確認します。そのように構成されていない場合は、このパラメータをOFF
に設定します。
データベース・インスタンスが稼働中であることを確認します。インスタンスが稼働していない場合は、リスナーに登録できるようにインスタンスを起動します。
listener.ora
ファイルのINBOUND_CONNECT_TIMEOUT_
listener_name
パラメータで指定された時間内に接続要求を完了するのに失敗しました。このエラーは、ネットワークまたはシステムの遅延が原因の可能性があります。または、悪質なクライアントがリスナーでDoS攻撃しようとしていることを示す可能性もあります。
listener.ora
でINBOUND_CONNECT_TIMEOUT_
listener_name
パラメータをより大きい値に再構成します。
不当なクライアントが疑われる場合は、次の手順を実行します。
ソースを識別するために、listener.log
ファイルでクライアントのIPアドレスを探索します。IPアドレスは偽造できることに注意してください。
たとえば、次のlistener.log
の例は、クライアントのIPアドレス192.168.2.35
を示しています。
03-MAY-2009 16:42:35 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.35)(PORT=53208)) * establish * <unknown sid> * 12525 TNS-12525: TNS:listener has not received client's request in time allowed TNS-12604: TNS: Application timeout occurred
そのクライアントへのアクセス制限を行います。たとえば、sqlnet.ora
ファイルでアクセス権のパラメータを構成できます。
Oracle Netが同時に処理できるオープン接続の数
同時に使用できるメモリー・バッファの数
特定のデータベース・インスタンスで許可されるプロセスの数
最初の2つは、ハード上の制限を示しています。3つ目の制限は、データベース初期化ファイルのPROCESSES
パラメータを大きな値に設定することで増やすことができる例です。この場合は、TNS-12500/ORA-12500エラーも戻されます。状況によっては、これらのエラーはTNS-12549/ORA-12549およびTNS-00519のエラーと同じ条件下で発生する可能性があります。
sqlnet.log
ファイルまたはlistener.log
ファイルで詳しいエラー・スタック情報をチェックします。考えられる制限値には次のものがあります。
1ユーザーに許可されるプロセスの最大数
ページング・スペースに起因するオペレーティング・システムの性能低下
データベース初期化ファイルのPROCESSES
パラメータを現在より大きな値に設定して、プロセス数を増やします。
sqlnet.log
ファイルまたはlistener.log
ファイルで、オペレーティング・システムのエラー・コードなどの詳しいエラー・スタック情報を調べ、超過している割当て制限を特定します。
ADDRESS
パラメータの構成が不適切な場合、または基礎となるプロトコルやオペレーティング・システム・インタフェースからエラーが戻された場合などに発生します。
状況によっては、これらのエラーはTNS-00510、TNS-00519、TNS-12540/ORA-12540およびTNS-12549/ORA-12549のエラーと同じ条件下で発生する可能性があります。
Microsoft Windowsの「スタート」メニューから、「ファイル名を指定して実行」を選択します。
「名前」フィールドにMSCONFIG
と入力します。
「サービス」タブに移動します。
無効になっている場合は、OracleService
sid
を有効にします。
コンピュータを再起動します。
Oracleサービスが開始したことを確認します。
ディレクトリ・サーバーのデータベース・サービス名またはネット・サービス名のエントリに対する接続性エラーに関連するディレクトリ・ネーミングの問題の解決には、データの分析が必要です。ディレクトリ・サーバーに含まれるデータの分析には、ldifwrite
コマンドライン・ツールを使用します。ldifwrite
ツールはOracle Internet Directoryツールです。
ldifwrite
ツールを使用して、ディレクトリ・サーバーにある情報のすべてまたは一部をLightweight Directory Interchange Format (LDIF)に変換できます。ldifwrite
ツールでは、指定した識別名(DN)の下のすべてのエントリを対象にサブツリー検索を実行します(DN自体も対象です)。
ldifwrite
ツールの構文は次のとおりです。
ldifwrite -cnet_service_name/database_service
-bbase_DN
-fldif_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
注意: ldap.ora ファイルをチェックして、base_DN値を確認します。これは、ldap.ora ファイルのDEFAULT_ADMIN_CONTEXT エントリと同じです。 |
ネットワークの問題を診断するときは、次のことが役に立ちます。
構成時に、サーバー・コンピュータの名前ではなくノードまたはネットワーク・アドレスを使用する。
これにより内部ルックアップ問題がなくなり、接続が多少早くなります。
TCP/IPアドレスを使用している場合は、ホスト名ではなくIPアドレスを使用する。
たとえば、tnsnames.ora
ファイルの(HOST=
server_name)の行を(
HOST=192.168.2.5
)のようにIPアドレスに変更します。
ループバック・テストを実行する。
「タスク2、ループバック・テストの実行」の説明に従って、サーバーでループバック・テストを実行します。テストが正常に終了する場合は、FTPを使用してtnsnames.ora
ファイルとsqlnet.ora
ファイルをクライアントに転送します。
クライアントとサーバーの間のシステムをチェックする。
Wide Area Network(WAN)の場合は、正しく作動していない可能性がある中間システムを識別します。すべてのコンピュータが正常である場合、タイミングに問題がある可能性があります。
タイミングに問題があるかどうか検証する。
タイミングの問題は、クライアント・ログ・ファイルのORA-12535
のエラーに関係しています。
この問題を解決するには、名前ではなく正確なアドレスを使用して接続のスピード・アップを図り、listener.ora
ファイルのINBOUND_CONNECT_TIMEOUT_
listener_nameパラメータの値を増やします。このパラメータのデフォルト値は60秒です。
障害が発生しているOracleアプリケーションを判断する。
SQL*Plusは作動するが、CASEツールは作動しない場合があります。データ量に問題があることが判明した場合、基本的な接続を使用してサイズの大きい(5MB)ファイルを転送してみます。
問題を診断する際に役立つチェック項目を次に示します。
すべてのコンピュータに問題があるのか、1台のコンピュータのみか
同じソフトウェア(Oracleおよびサード・パーティ製品)をインストールしていても、機能するコンピュータと機能しないコンピュータがある場合、可能であれば、ネットワーク・ケーブルを取り替えて2番目のクライアントで問題が発生するかどうかを確認します。問題が発生した場合、問題はクライアント/サーバー接続に関するもので、クライアントに限定的なものではないことを示しています。
クライアントとサーバー間の接続の種類(X.25、ISDNまたは専用回線など)は何か
SnifferやLANアナライザは、断続的な接続エラーを特定し、タイム・アウトおよび再送パケットの検出を行うのに便利です。どちら側が応答を待っているのかを知ることもできます。
この項では、TNS-12154エラーのソリューションを提供します。TNS-12154エラーは、SQL*Netがtnsnames.ora
ファイルまたはその他のネーミング・アダプタの接続に指定された別名を検出できない場合に発生します。
問題を解決する前に、tnsnames.ora
ファイルとsqlnet.ora
ファイルを印刷または表示しておくと便利です。両方を参照するため、これらのファイルを同時に参照できるようにすると便利です。
tnsnames.ora
ファイルおよびsqlnet.ora
ファイルは、クライアント・システムのデフォルトのネットワーク管理ディレクトリにあります。
tnsnames.ora
ファイルおよびsqlnet.ora
ファイルが次の例のようになっていることを確認します。
例16-1では、tnsnames.ora
ファイルの例を示します。
例16-1 tnsnames.oraの例
DEV1.WORLD = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.2.56) (PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = sales.example.com) ) )
例16-2では、sqlnet.ora
ファイルの例を示します。
例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, EZCONNECT, HOSTNAME)
このパラメータは必須ではありませんが、sqlnet.ora
ファイル内に存在し、前述の例のように表示されている場合、構成ファイルは理論的には正確と考えられます。
Linuxプロンプトで、次のようにTNS_ADMIN
環境変数をエコーします。
% echo $TNS_ADMIN
なにも戻されない場合、TNS_ADMIN
環境変数を設定し、tnsnames.ora
ファイルの場所を明示的にポイントします。
Cシェル:
% setenv TNS_ADMIN full_path_to_tnsnames.ora_file
Kornシェル:
% 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
に変更して権限を完全オープンに設定し、接続を再度試行します。
まだエラーが発生する場合は、すべての改行と復帰を削除してネット別名が1行になるようにして、再度試行します。
注意: 権限を777 に設定すると、システムのすべてのユーザーが構成ファイルにアクセスできるようになります。この設定は一時テストとしてのみ行い、テストの後で権限をリセットしてください。 |
まだエラーが発生する場合、構成を次のように再実行します。
TNS_ADMIN
環境変数を/tmp
に設定します。
/tmp
ディレクトリへ移動し、テキスト・エディタを使用してtnsnames.ora
ファイルを新規作成します。
例16-1
のtnsnames.oraファイルの例をテキスト・エディタにコピーし、新規tnsnames.ora
ファイルを保存します。
テキスト・エディタを終了し、コマンドラインに次のように入力します。
% sqlplus scott@dev1.world
Enter password: password
Oracle Net Servicesのログは、問題が発生するたびに、問題点の原因の内容について詳細を提供します。エラー情報のロギングとトレースのプロセスにより、ネットワーク上の問題点を容易に診断し解決できます。
Oracle Net Servicesで発生するすべてのエラーは、ネットワーク管理者やデータベース管理者が評価できるように、ログ・ファイルに追加記録されます。ログ・ファイルは、画面に表示されるエラー・メッセージについて、管理者用の追加情報を提供します。ログ・ファイルのエラー・スタックは、各種レイヤーでのソフトウェアの状態を示します。
すべてのエラーが記録されることを保証するためにはクライアントまたはネーム・サーバーに対するロギングを使用禁止にすることはできません。さらに、ログ・ファイルを置換したり消去できるのは管理者のみです。リスナーのログ・ファイルには、すべてのクライアント接続要求に関する監査証跡情報と大半のリスナー制御コマンドが含まれています。
この項で説明する項目は、次のとおりです。
ログ・ファイルには、エラー・スタックに含まれている情報があります。エラー・スタックとは、ネットワーク・エラーの結果としてOracle通信スタック内に各レイヤーごとに作成される情報です。
表16-8に、エラー・スタック・コンポーネントの説明を示します。
表16-8 エラー・スタック・コンポーネント
クライアント・アプリケーションのユーザーがOracle NetとTCP/IPを使用してデータベース・サーバーとの接続を確立しようとする場合は、次のコマンドを入力します。
sqlplus scott@example.com
Enter password: password
コマンドを入力すると、次のエラーが表示されます。
ORA-12543: TNS:Unable to connect to destination
このメッセージは、データベースに連絡できなかったために、サーバーへの接続に失敗したことを示します。アプリケーションでは1行のエラー・メッセージしか表示されませんが、ネットワーク層によってログ・ファイルの中に情報量の多いエラー・スタックが記録されます。
クライアント側では、例16-3
にあるように、sqlnet.logファイルにORA-12543
のエラーに対応するエラー・スタックが含まれています。
例16-3 sqlnet.logファイル
Fatal OSN connect error 12543, connecting to: (DESCRIPTION=(CONNECT_DATA=(SID=trace)(CID=(PROGRAM=) (HOST=lala)(USER=stiger)))(ADDRESS_LIST=(ADDRESS= (PROTOCOL=ipc)(KEY=trace))(ADDRESS=(PROTOCOL=tcp) (HOST=lala)(PORT=1521)))) VERSION INFORMATION: TNS for Linux: Oracle Bequeath NT Protocol Adapter for Linux: Unix Domain Socket IPC NT Protocol Adaptor for Linux: TCP/IP NT Protocol Adapter for Linux: Tracing to file: /home/db_tracefiles/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
Oracle Net Servicesの各コンポーネントは、それぞれ独自のログ・ファイルを生成します。デフォルトのADRを使用するときは、ログ・ファイル名は適切なalertディレクトリにあるlog.xml
です。表16-9は、デフォルトのログ・ファイル名と、ADR/diag/
instance_name
/trace
ディレクトリのログ・ファイルを生成するコンポーネントのリストです。
表16-9 ログ・ファイル
コンポーネント | ログ・ファイル |
---|---|
リスナー |
|
クライアントまたはデータベース・サーバー |
|
Oracle Connection Managerリスナー |
|
Oracle Connection Manager CMGW(Oracle Connection Manager Gateway)プロセス |
instance-name_cmgw_pid.log |
Oracle Connection Manager CMADMIN(Oracle Connection Manager Administration)プロセス |
instance-name_cmadmin_pid.log |
Oracle Connection Managerアラート・ログ |
instance-name_alert.log |
ロギングされる情報の種類と量、ファイルが格納されている位置など、ロギングを制御するパラメータは、表16-10に示されるように各ネットワーク・コンポーネントの構成ファイル内に設定されます。
表16-10 ログ・パラメータの位置
ネットワーク・コンポーネント | 構成ファイル |
---|---|
Oracle Connection Managerプロセス |
cman.ora |
リスナー |
listener.ora |
クライアント |
sqlnet.ora |
データベース・サーバー |
sqlnet.ora |
注意: DIAG_ADR_ENABLED をON に設定すると、すべてのロギング・パラメータはADRによって設定されます。Oracle Net Managerを使用してパラメータを変更することはできません。 |
この項で説明する項目は、次のとおりです。
関連項目: これらのパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
表16-11では、sqlnet.ora
ファイルで設定できるログ・パラメータの設定を示します。
表16-11 sqlnet.oraのログ・パラメータ
sqlnet.oraパラメータ | Oracle Net Managerのフィールド | 説明 |
---|---|---|
このパラメータは手動で設定する必要があります。 |
|
|
このパラメータは手動で設定する必要があります。 |
|
|
「クライアント情報: ログ・ディレクトリ」 |
クライアント・ログ・ファイルの作成先となるディレクトリ。デフォルトのクライアント・ディレクトリは、現行の作業ディレクトリです。このパラメータは、 |
|
「サーバー情報: ログ・ディレクトリ」 |
データベース・サーバー・ログ・ファイルの作成先となるディレクトリ。デフォルトのサーバー・ディレクトリは |
|
「クライアント情報: ログ・ファイル」 |
||
このパラメータは手動で設定する必要があります。 |
データベース・サーバーのログ・ファイルの名前。デフォルトのログ・ファイル名は |
表16-12では、listener.ora
ファイルで設定できるログ・パラメータの設定を示します。
表16-12 listener.oraファイルのログ・パラメータ
listener.oraのパラメータ | Oracle Net Managerのフィールド | 説明 |
---|---|---|
このパラメータは手動で設定する必要があります。 |
|
|
このパラメータは手動で設定する必要があります。 |
|
|
ログ・ファイル |
リスナー・イベントで自動的に生成されるファイルの作成先となるディレクトリとログ・ファイル。デフォルトのディレクトリは |
表16-13では、cman.ora
ファイルで設定できるログ・パラメータの設定を示します。
表16-13 cman.oraファイルのログ・パラメータ
cman.oraのパラメータ | 説明 |
---|---|
|
|
|
|
ロギングされるイベント・グループ。複数のイベントを指定する場合は、リストをカンマで区切ります。このパラメータには次の値を使用できます。
|
|
ログ・ファイルの作成先となるディレクトリ。 デフォルトのディレクトリは このパラメータは、 |
|
ロギングのレベル。次の4つのレベルがサポートされています。
|
sqlnet.ora
ファイルのロギング・パラメータはOracle Net Managerで設定し、listener.ora
ファイルのロギング・パラメータはOracle Enterprise ManagerまたはOracle Net Managerで設定します。cman.ora
ファイルのロギング・パラメータは、手動で設定する必要があります。
この項で説明する項目は、次のとおりです。
次の手順では、sqlnet.ora
ファイルでロギング・パラメータを設定する方法について説明します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」見出しから「プロファイル」を展開します。
右ペインのリストから、「一般」を選択します。
「ロギング」タブをクリックします。
設定を指定します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
ログ・ファイルの名前はsqlnet.log
です。
次の手順では、Oracle Enterprise Managerを使用してlistener.ora
ファイルでロギング・パラメータを設定する方法について説明します。
Oracle Enterprise ManagerのOracle Netの管理ページにアクセスします。
「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。
「実行」をクリックし、「リスナー」ページを表示します。
リスナーを選択し、「編集」をクリックし、「リスナーの編集」ページを表示します。
「ロギングとトレース」タブをクリックします。
設定を指定します。
「OK」をクリックします。
ログ・ファイルの名前はlistener.log
です。
次の手順では、Oracle Net Managerを使用してlistener.ora
ファイルでロギング・パラメータを設定する方法について説明します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」見出しから「リスナー」を展開します。
リスナーを選択します。
右ペインのリストから、「一般」を選択します。
「ロギングとトレース」タブをクリックします。
設定を指定します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
ログ・ファイルの名前はlistener.log
です。
関連項目: 『Oracle Database Net Servicesリファレンス』 |
ロギングは、制御ユーティリティの実行時に設定できます。制御ユーティリティを使用してロギングを設定しても、*.ora
ファイルにパラメータは設定されず、設定は制御ユーティリティのセッションでのみ有効です。
次の設定を制御ユーティリティに対して設定できます。
リスナーの場合は、リスナー制御ユーティリティでSET LOG_FILE
コマンドおよびSET LOG_DIRECTORY
コマンドを使用します。
Oracle Connection Managerの場合は、Oracle Connection Manager制御ユーティリティのSET LOG_DIRECTORY
、SET LOG_LEVEL
およびSET EVENT
コマンドを使用します。
注意: DIAG_ADR_ENABLED をON に設定すると、すべてのロギング・パラメータはADRによって設定されます。Oracle Net Managerを使用してパラメータを変更することはできません。 |
関連項目: 『Oracle Database Net Servicesリファレンス』 |
この項では、リスナー・ログ・ファイルに記録される情報を説明します。この項で説明する項目は、次のとおりです。
リスナー・ログ・ファイルには、ネットワーク利用度の統計を収集および分析できる監査証跡情報と、次の内容を示す情報があります。
クライアントの接続要求
リスナー制御ユーティリティによって発行された、RELOAD
、START
、STOP
、STATUS
またはSERVICES
コマンド
監査証跡情報を表に保存した後、それをレポート形式に書式設定することで、傾向とユーザー・アクティビティを検証できます。データを表にインポートするには、SQL*Loaderなどのインポート・ユーティリティを使用します。
監査証跡のテキストは次のフィールドで構成されます。
Timestamp * Connect Data [* Protocol Info] * Event [* SID | Service] * Return Code
監査証跡のプロパティは次のとおりです。
各フィールドはアスタリスク(*
)で区切られます。
プロトコル・アドレス情報、およびサービス名またはSID情報は、接続が試行された場合のみ記録されます。
成功した接続またはコマンドには、コード0(ゼロ)が戻ります。
失敗した場合は、エラー・メッセージに対応するコードが生成されます。
例16-4に、RELOAD
コマンド要求のログ・ファイルの出力例を示します。
例16-4 正常なリロード要求に対するリスナー・ログ・イベント
14-MAY-2009 00:29:54 * (connect_data=(cid=(program=)(host=sales-server)(user=jdoe))(command=reload) (arguments=64)(service=listener)(version=135290880)) * reload * 0
例16-5に、正常な接続要求のログ・ファイルの出力例を示します。
例16-5 正常な接続要求に対するリスナー・ログ・イベント
14-MAY-2009 15:28:58 * (connect_data=(service_name=sales.us.example.com)(cid=(program=)(host=sales-server) (user=jdoe))) * (address=(protocol=tcp)(host=192.168.2.35)(port=41349)) * establish * sales.us.example.com * 0
例16-6は、ホストsales-server
によるSTATUS
コマンドの正常な実行を抜粋したログ・ファイルを示しています。この後、IPアドレス192.168.2.35
のクライアントによる接続試行が失敗しています。この接続試行の結果、ORA-12525: 「TNS: リスナーは、クライアントのリクエストを許容時間内に受信しませんでした」エラー・メッセージが表示されました。このエラーは、クライアントがlistener.ora
ファイルのINBOUND_CONNECT_TIMEOUT_
listener_nameパラメータで指定された時間内に接続要求を完了するのに失敗すると発生します。このクライアントはリスナーにDos攻撃をしようとした可能性があります。
例16-6 失敗した接続要求に対するリスナー・ログ・イベント
03-MAY-2009 16:41:57 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=sales-server)(USER=jdoe))(COMMAND=status) (ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=153092352)) * status * 0 03-MAY-2009 16:42:35 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.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
関連項目: エラー・メッセージの完全なリストは、『Oracle Databaseエラー・メッセージ』を参照してください。 |
リスナーではサービス登録イベントが記録されます。サービス登録を行うと、PMONプロセスからリスナーに次の情報が提供されます。
データベースにおける稼働中の各インスタンスのサービス名
データベースのインスタンス名
使用可能なサービス・ハンドラ(ディスパッチャまたは専用サーバー)
ディスパッチャ、インスタンスおよびノードのロード情報
動的リスニング・エンドポイント
表16-14にリストされている記録済のサービス登録関連イベントは、listener.log
ファイルにリストされます。
表16-14 サービス登録イベントのログ情報
イベント | 説明 |
---|---|
リスナーがインスタンスの登録情報を受信した。 |
|
リスナーが特定インスタンスについて更新された登録情報(ディスパッチャやインスタンスのロード情報など)を受信した。 |
|
リスナーからPMONへの接続が切断された。インスタンスの登録情報はすべて廃棄されます。PMONによって再度登録されるまで、クライアントはそのインスタンスには接続できません。 |
サービス登録イベントは次のフィールドで構成されます。
Timestamp * Event * Instance Name * Return Code
サービス登録フィールドのプロパティは次のとおりです。
各フィールドはアスタリスク(*
)で区切られます。
通常は、1つのインスタンスのイベントが複数回連続して記録されます。
正常に登録されると、コード0(ゼロ)が戻ります。これは、クライアントがインスタンスに接続できたことを示します。
失敗した場合は、エラー・メッセージに対応するコードが生成されます。
例16-7は、サービス登録イベントが記録されたログ・ファイルを示します。リスナーは正常なservice_register
イベントの後はクライアント要求を受信できますが、service_died
イベントの後はクライアント要求を受信できません。
例16-7 サービス登録イベントが記録されたリスナー・ログ
------------------------------- 14-MAY-2009 15:28:43 * service_register * sales * 0 14-MAY-2009 15:28:43 * service_register * sales * 0 14-MAY-2009 15:28:58 * (connect_data=(service_name=sales.us.example.com) (cid=(program=)(host=sales-server)(user=jdoe))) * (address=(protocol=tcp)(host=192.168.2.35)(port=41349)) * establish * sales.us.example.com * 0 14-MAY-2009 15:38:44 * service_update * sales * 0 14-MAY-2009 15:38:44 * service_update * sales * 0 14-MAY-2009 15:48:45 * service_update * sales * 0 14-MAY-2009 15:48:45 * service_update * sales * 0 14-MAY-2009 15:50:57 * (connect_data=(service_name=sales.us.example.com)(cid=(program=) (host=sales-server)(user=jdoe))) * (address=(protocol=tcp)(host=192.168.2.35)(port=41365)) * establish * sales.us.example.com * 0 14-MAY-2009 15:51:26 * service_died * sales * 12537 14-MAY-2009 15:51:26 * service_died * sales * 12537 14-MAY-2009 15:52:06 * (connect_data=(service_name=sales.us.example.com) (cid=(program=)(host=sales-server)(user=jdoe))) * (address=(protocol=tcp)(host=192.168.2.35)(port=41406)) * establish * sales.us.example.com * 12514 TNS-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor --------------------------------
関連項目: エラー・メッセージの完全なリストは、『Oracle Databaseエラー・メッセージ』を参照してください。 |
リスナーでは、ディスパッチャへのダイレクト・ハンドオフ・イベントが記録されます。これらのイベントは次のフィールドで構成されます。
Timestamp * Presentation * Handoff * Error Code
ダイレクト・ハンドオフ・フィールドのプロパティは次のとおりです。
各フィールドはアスタリスク(*
)で区切られます。
成功した接続またはコマンドには、コード0(ゼロ)が戻ります。
失敗した場合は、エラー・メッセージに対応するコードが生成されます。
例16-8は、ログ・ファイルのダイレクト・ハンドオフ・イベントを示しています。
ONS構成ファイルを使用できる場合、リスナーは、起動時にOracle Notification Service(ONS)にノード停止イベントをサブスクライブします。このサブスクリプションにより、リスナーはONSからノード停止イベント通知を受信したときに、影響を受けるサービスを削除できます。リスナーは、イベント通知に非同期サブスクリプションを使用します。
ONSデーモンがホストで実行されていない場合など、サブスクリプションが完了しなかった場合、次の警告メッセージがSTATUS
コマンドごとにリスナー・ログ・ファイルに記録されます。
WARNING: Subscription for node down event still pending
サブスクリプションの保留中は、リスナーはONSイベントを受信できません。それ以外の場合、他のリスナー機能が影響を受けることはありません。
必要なOracle Clusterware(次のログ・メッセージのCRS)ライブラリがインストールされ、ホストでOracle Clusterwareが起動されている場合、Oracleリスナーは起動プロセスおよび停止プロセスでOracle Clusterwareのステータスを通知します。通知が成功すると、リスナーはイベントをログに記録します。通知が失敗した場合は、メッセージは記録されません。
Listener completed notification to CRS on start Listener completed notification to CRS on stop
Oracle Connection Managerは、リスナー、ゲートウェイ、CMADMINプロセスに1つずつ、およびアラート用に1つ、合計4つのタイプのログ・ファイルを生成します。最後のアラート用ログ・ファイルには、重大なエラーが時系列に記録されます。重大なエラーをロギングするだけでなく、アラート・ログには、インスタンスの起動と停止に関する情報も記録されています。また、セッションの開始と終了時におけるすべての構成パラメータの値も記録されます。
CMADMINとゲートウェイのログ・ファイルはここで再生成されます。表16-15「CMADMINおよびGatewayログのエントリと意味」は、ログ・エントリの例と意味を示しています。各エントリは、タイムスタンプとイベントで構成されます。イベントを次のカテゴリにロギングするようにcman.ora
を構成できます。
初期化と終了
メモリー操作
接続処理
プロセス管理
登録とロード更新
CMADMIN起動キュー関連のイベント
ゲートウェイのタイムアウト
コマンド処理
接続制御ブロックに関連付けられたイベント
SET EVENT
コマンドを使用して、ロギングするイベントを指定します。
例16-9は、一般的なCMADMINログを示しています。
例16-9 CMADMINログ・ファイル
------------------------------- (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:40)(EVENT=Parameter list) (listener_address=(address=(protocol=tcp)(host=sales1)(port=1574))) (aso_authentication_filter=OFF) (connection_statistics=ON) (log_directory=/home/user/network/admin/log) (log_level=support) (max_connections=256) (idle_timeout=5) (inbound_connect_timeout=0) (session_timeout=20) (outbound_connect_timeout=0) (max_gateway_processes=1) (min_gateway_processes=1) (password=OFF) (trace_directory=/home/user/network/admin/log) (trace_level=off) (trace_timestamp=OFF) (trace_filelen=0) (trace_fileno=0) ) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:40)(EVENT=Shared Memory Size) (BYTES=82524)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:40)(EVENT=GMON Attributes validated) (Type=Information)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:40)(EVENT=NS Listen Successful) ((ADDRESS=(PROTOCOL=tcp)(HOST=usunnae16)(PORT=55878)))) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:44)(EVENT=Received command)(CMD=verify password)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:44)(EVENT=Received command) (CMD=version)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:44)(EVENT=Received command) (CMD=show status)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:44)(EVENT=Failed to get procedure id)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:12)(EVENT=Received command)(CMD=verify password)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:15)(EVENT=Failed to get procedure id)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:29)(EVENT=Received command)(CMD=verify password)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:46)(EVENT=Failed to get procedure id)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:50)(EVENT=Received command)(CMD=verify password)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:50)(EVENT=Received command) (CMD=probe monitor)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:50)(EVENT=Received command) (CMD=shutdown normal)) -------------------------------
例16-10は、一般的なゲートウェイ・ログ・ファイルを示しています。
例16-10 ゲートウェイ・ログ・ファイル
------------------------------- (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=NS Initialised)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=Memory Allocated) (BYTES=1024)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=NCR Initialised)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=Connected to Monitor)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=State Change from Empty to Init)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=Memory Allocated) (BYTES=251904)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=Memory Allocated) (BYTES=2048)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=CCB Initialised)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=Started Listening)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:41)(EVENT=State Change from Init to Ready)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:46:47)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:06)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:06)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:07)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:12)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:13)(EVENT=Idle Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:17)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:22)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:25)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:25)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:27)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:30)(EVENT=Idle Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:32)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:37)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:42)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:42)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:42)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:47)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:52)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:48:57)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:02)(EVENT=Session Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2009 08:49:02)(EVENT=Housekeeping)) -------------------------------
表16-15は、ログ・ファイル・エントリとその説明を示しています。
表16-15 CMADMINおよびGatewayログのエントリ
ログ・ファイル | イベント | 説明 |
---|---|---|
CMADMIN |
Failed to get procedure ID |
CMADMINに接続されていたCMCTLセッションが切断されました。 |
CMADMIN |
GMON Attributes validated |
通知メッセージ。CMADMINの起動に必要なパラメータが正しく指定されています。 |
CMADMIN |
Invalid connect data |
未知のクライアントがCMADMINに接続しようとしています。Dos攻撃と考えられます。 |
CMADMIN |
No connect data |
未知のクライアントがCMADMINに接続しようとしています。Dos攻撃と考えられます。 |
Gateway |
Connected to Monitor |
ゲートウェイがCMADMINに接続されました。 |
Gateway |
Housekeeping |
通知メッセージ。ゲートウェイ・プロセスの内部ハウスキーピングが適切に行われています。ゲートウェイ・プロセスはCMADMINプロセスに正しく接続されています。 |
Gateway |
Idle Timeout |
|
Gateway |
Out of connection control block (CCB) |
CMADMINが接続要求を処理できません。次の2つの理由が考えられます。
|
Session Timeout |
|
|
Gateway |
State change from Empty to Init |
ゲートウェイからの状態変更メッセージ。ゲートウェイはready状態になると、クライアントからの接続を受け入れます。 |
Gateway |
State change from Init to Ready |
ゲートウェイからの状態変更メッセージ。ゲートウェイはready状態になると、クライアントからの接続を受け入れます。 |
トレース機能は、実行されたネットワーク・イベントが記述される一連の詳細文を生成します。操作をトレースすると、ログ・ファイルにある情報より多くのOracle Net Servicesコンポーネントの内部操作に関する情報が得られます。この情報は、ファイル出力されエラーの原因となったイベントを識別できます。
注意: トレース機能には大量のディスク領域を消費するため、システムのパフォーマンスに大きな影響を与える可能性があります。したがって、必要なときにのみトレースを行うようにしてください。 |
この項で説明する項目は、次のとおりです。
Oracle Net Servicesの各コンポーネントは、それぞれ独自のトレース・ファイルを生成します。表16-16は、デフォルトのトレース・ファイル名と、トレース・ファイルを生成するコンポーネントのリストです。
表16-16 トレース・ファイル名
トレース・ファイル | コンポーネント |
---|---|
Oracle Connection Managerリスナー |
|
instance-name_cmgw_pid.trc |
Oracle Connection Manager CMGW(Oracle Connection Manager Gateway)プロセス |
instance-name_cmadmin_pid.trc |
Oracle Connection Manager CMADMIN(Oracle Connection Manager Administration)プロセス |
リスナー |
|
クライアント |
|
データベース・サーバー |
|
TNSPINGユーティリティ |
トレースされる情報の種類と量、ファイルが格納されている位置など、トレースを制御するパラメータは、表16-17に示されるように各ネットワーク・コンポーネントの構成ファイル内に設定されます。
表16-17 トレース・パラメータの位置
構成ファイル | コンポーネント |
---|---|
cman.ora |
Oracle Connection Managerプロセス |
listener.ora |
リスナー |
sqlnet.ora |
クライアント データベース・サーバー TNSPINGユーティリティ |
この項で説明する項目は、次のとおりです。
関連項目: これらのパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
表16-18では、cman.ora
ファイルでOracle Connection Managerに設定できるトレース・パラメータの設定を示します。
表16-18 cman.oraのトレース・パラメータ
cman.oraのパラメータ | 説明 |
---|---|
トレース・ファイルの作成先となるディレクトリ。 デフォルトのディレクトリは |
|
トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
トレース用トレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、このパラメータを3に設定すると、ゲートウェイ・プロセス用のOracle Connection Managerのトレース・ファイル名は、 また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 |
|
トレース機能によりリスナーで記録される詳細レベル。トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
Oracle Connection Managerでは、リスナー、ゲートウェイおよびCMADMINの各プロセスで、LinuxとMicrosoft Windowsの両方にトレース・ファイルが作成されます。 |
|
|
表16-19では、listener.ora
ファイルで設定できるリスナー用のトレース・パラメータの設定を示します。
表16-19 listener.oraのトレース・パラメータ
listener.oraのパラメータ | Oracle Enterprise ManagerまたはOracle Net Managerのフィールド | 説明 |
---|---|---|
「トレース・レベルを選択します」/「トレース・レベル」 |
トレース機能によりリスナーで記録される詳細レベル。トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
|
トレース・ファイル |
トレース・ファイルの作成先となるディレクトリとファイル。デフォルトのディレクトリは |
|
このパラメータは手動で設定する必要があります。 |
リスナー・トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
リスナーのトレース用トレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイル また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 |
|
このパラメータは手動で設定する必要があります。 |
リスナー・トレース・ファイルのすべてのトレース・イベントのタイムスタンプ( |
表16-20では、sqlnet.ora
ファイルで設定できるトレース・パラメータの設定を示します。
表16-20 sqlnet.oraのトレース・パラメータ
sqlnet.oraパラメータ | Oracle Net Managerのフィールド | 説明 |
---|---|---|
「クライアント情報: トレース・ディレクトリ」 |
クライアント・トレース出力の作成先となるディレクトリ。デフォルトのクライアント・ディレクトリは |
|
「サーバー情報: トレース・ディレクトリ」 |
データベース・サーバー・トレース出力の作成先となるディレクトリ。デフォルトのサーバー・ディレクトリは |
|
「クライアント情報: トレース・ファイル」 |
クライアントのトレース・ファイルの名前。デフォルトのトレース・ファイル名は |
|
「サーバー情報: トレース・ファイル」 |
データベース・サーバーのトレース・ファイルの名前。デフォルトのトレース・ファイル名は |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
データベース・サーバー・トレース・ファイルのサイズ(KB単位)。指定のサイズに到達すると、トレース情報は次のファイルに書き込まれます。ファイルの数は、 |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース用のトレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイル また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 |
|
このパラメータは手動で設定する必要があります。 |
データベース・サーバーのトレース用トレース・ファイルの数。このパラメータを トレース・ファイル名は、順序番号によって識別されます。たとえば、デフォルトのトレース・ファイル また、トレース・ファイル内のトレース・イベントの前には、そのファイルの順序番号が付きます。 |
|
「クライアント情報: トレース・レベル」 |
トレース機能によりクライアントで記録される詳細レベル。 トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
|
「サーバー情報: トレース・レベル」 |
トレース機能によりデータベース・サーバーで記録される詳細レベル。トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイル |
|
このパラメータは手動で設定する必要があります。 |
クライアント・トレース・ファイル |
|
「クライアント情報: 一意のトレース・ファイル名」 |
値を |
表16-21に示されるTNSPINGユーティリティのトレース・パラメータをsqlnet.ora
ファイルに手動で追加できます。TNSPINGユーティリティでは、Oracle Netネットワーク上のサービス(データベース、その他のTNSサービスなど)に正常に到達できるかどうか判断します。
表16-21 TNSPINGのトレース・パラメータ
sqlnet.oraパラメータ | 説明 |
---|---|
TNSPINGトレース・ファイル |
|
トレース機能によりTNSPINGユーティリティで記録される詳細レベル。トレース・レベルは、0(ゼロ)から16までの数値(0はトレースなし、16は最大限のトレースを表す)か、次のいずれかの値を指定します。
|
sqlnet.ora
ファイルのトレース・パラメータはOracle Net Managerで設定し、listener.ora
ファイルのトレース・パラメータはOracle Enterprise ManagerまたはOracle Net Managerで設定します。cman.ora
ファイルのトレース・パラメータは、手動で設定する必要があります。
この項で説明する項目は、次のとおりです。
次の手順では、Oracle Net Managerを使用してsqlnet.ora
ファイルでトレース・パラメータを設定する方法について説明します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」見出しから「プロファイル」を展開します。
右ペインのリストから、「一般」を選択します。
「トレース」タブをクリックします。
設定を指定します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
クライアントのトレース・ファイルの名前はsqlnet.trc
です。サーバーのトレース・ファイルの名前はsvr_
pid
.trc
です。
次の手順では、Oracle Enterprise Managerを使用してリスナーのトレース・パラメータを設定する方法について説明します。
Oracle Enterprise ManagerのOracle Netの管理ページにアクセスします。
「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。
「実行」をクリックし、「リスナー」ページを表示します。
リスナーを選択し、「編集」をクリックし、「リスナーの編集」ページを表示します。
「ロギングとトレース」タブをクリックします。
設定を指定します。
「OK」をクリックします。
トレース・ファイルの名前はlistener.trc
です。
次の手順では、Oracle Net Managerを使用してリスナーのトレース・パラメータを設定する方法について説明します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」見出しから「リスナー」を展開します。
リスナーを選択します。
右ペインのリストから、「一般」を選択します。
「ロギングとトレース」タブをクリックします。
設定を指定します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
トレースは、制御ユーティリティの実行時に設定できます。制御ユーティリティを使用してトレースを設定しても、*.ora
ファイルにパラメータは設定されません。設定は、制御ユーティリティの現在のセッションでのみ有効です。
リスナーの場合は、リスナー制御ユーティリティのSET TRC_DIRECTORY
、SET TRC_FILE
およびSET TRC_LEVEL
コマンドを使用します。
Oracle Connection Managerの場合は、Oracle Connection Manager制御ユーティリティのSET
TRACE_DIRECTORY
、SET TRACE_LEVEL
およびSET TRACE_TIMESTAMP
コマンドを使用します。
トレース・ファイルは、Oracleサポート・サービスがネットワーク上の問題点を診断してトラブルシューティングする際に役立ちます。この項では、トレース・ファイルの基本的な分析を実行する方法について説明します。内容は次のとおりです。
Oracle Netは、データ・パケットを送受信することにより、その機能を実行します。support
のトレース・レベルを指定すると、トレース・ファイル内のOracle Netパケットの実際の内容を参照できます。送受信したパケット・タイプの順序により、接続を確立した方法を確認できます。
トレース・ファイルの各行は、後ろにメッセージが続くプロシージャで始まります。各プロシージャの後には、実際のデータを示す16進データの行があります。パケットの内部をフローする実際のデータは、16進データの右側に表示される場合があります。
各パケットには、パケット・タイプを示すキーワードがあります。すべてのパケット・タイプは、接頭辞「nsp
」から始まります。これは、特定のパケット情報についてトレース・ファイルを検討する場合に役立ちます。トレース・ファイルで使用されるキーワードは次のとおりです。
NSPTCN: 接続パケット・タイプで使用します。
NSPTAC: 受入れパケット・タイプで使用します。
NSPTRF: 拒否パケット・タイプで使用します。
NSPTRS: 再送パケット・タイプで使用します。
NSPTDA: データ・パケット・タイプで使用します。
NSPCNL: 制御パケット・タイプで使用します。
NSPTMK: マーカー・パケット・タイプで使用します。
例16-11では、一般的なパケット情報を示します。この例では、nscon
プロシージャはネットワークを通じてNSPTCNパケットを送信します。
例16-11 パケット情報
nscon: entry
nscon: doing connect handshake...
nscon: sending NSPTCN packet
nspsend: entry
nspsend: plen=187, type=1
nspsend: 187 bytes to transport
nspsend:packet dump
nspsend:00 BB 00 00 01 00 00 00 |........|
nspsend:01 33 01 2C 0C 01 08 00 |.3.,....|
nspsend:7F FF 7F 08 00 00 00 01 |........|
nspsend:00 99 00 22 00 00 08 00 |..."....|
nspsend:01 01 28 44 45 53 43 52 |..(DESCR|
nspsend:49 50 54 49 4F 4E 3D 28 |IPTION=(|
nspsend:43 4F 4E 4E 45 43 54 5F |CONNECT_|
nspsend:44 41 54 41 3D 28 53 49 |DATA=(SI|
nspsend:44 3D 61 70 33 34 37 64 |D=ap347d|
nspsend:62 31 29 28 43 49 44 3D |b1)(CID=|
nspsend:28 50 52 4F 47 52 41 4D |(PROGRAM|
nspsend:3D 29 28 48 4F 53 54 3D |=)(HOST=|
nspsend:61 70 32 30 37 73 75 6E |sales-12|
nspsend:29 28 55 53 45 52 3D 6D |)(USER=m|
nspsend:77 61 72 72 65 6E 29 29 |stiger))|
nspsend:29 28 41 44 44 52 45 53 |)(ADDRES|
nspsend:53 5F 4C 49 53 54 3D 28 |S_LIST=(|
nspsend:41 44 44 52 45 53 53 3D |ADDRESS=|
nspsend:28 50 52 4F 54 4F 43 4F |(PROTOCO|
nspsend:4C 3D 74 63 70 29 28 48 |L=tcp)(H|
nspsend:4F 53 54 3D 61 70 33 34 |OST=sale|
nspsend:37 73 75 6E 29 28 50 4F |s-12)(PO|
nspsend:52 54 3D 31 35 32 31 29 |RT=1521)|
nspsend:29 29 29 00 00 00 00 00 |))).....|
nspsend: normal exit
nscon: exit (0)
問題があると、トレース・ファイルにエラー・コードがロギングされます。例16-12は、データベース・サーバーへのSQL*Plus接続の障害に関する代表的なトレース・ファイル出力です。エラー・メッセージおよびエラー・スタックは太字で示されています。
例16-12 トレースの例
[22-MAY-2009 13:34:07:687] nsprecv: entry [22-MAY-2009 13:34:07:687] nsbal: entry [22-MAY-2009 13:34:07:687] nsbgetfl: entry [22-MAY-2009 13:34:07:687] nsbgetfl: normal exit [22-MAY-2009 13:34:07:687] nsmal: entry [22-MAY-2009 13:34:07:687] nsmal: 44 bytes at 0x132d90 [22-MAY-2009 13:34:07:687] nsmal: normal exit [22-MAY-2009 13:34:07:687] nsbal: normal exit [22-MAY-2009 13:34:07:687] nsprecv: reading from transport... [22-MAY-2009 13:34:07:687] nttrd: entry [22-MAY-2009 13:35:09:625] nttrd: exit [22-MAY-2009 13:35:09:625] ntt2err: entry [22-MAY-2009 13:35:09:625] ntt2err: Read unexpected EOF ERROR on 10 [22-MAY-2009 13:35:09:625] ntt2err: exit [22-MAY-2009 13:35:09:625] nsprecv: transport read error [22-MAY-2009 13:35:09:625] nsprecv: error exit [22-MAY-2009 13:35:09:625] nserror: entry[22-MAY-2009 13:35:09:625] nserror: nsres: id=0, op=68, ns=12537, ns2=12560;
nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
[22-MAY-2009 13:35:09:625] nscon: error exit [22-MAY-2009 13:35:09:625] nsdo: nsctxrnk=0 [22-MAY-2009 13:35:09:625] nsdo: error exit [22-MAY-2009 13:35:09:625] nscall: unexpected response [22-MAY-2009 13:35:09:625] nsclose: entry [22-MAY-2009 13:35:09:625] nstimarmed: entry [22-MAY-2009 13:35:09:625] nstimarmed: no timer allocated [22-MAY-2009 13:35:09:625] nstimarmed: normal exit [22-MAY-2009 13:35:09:625] nsdo: entry [22-MAY-2009 13:35:09:625] nsdo: cid=0, opcode=98, *bl=0, *what=0, uflgs=0x440, cflgs=0x2 [22-MAY-2009 13:35:09:625] nsdo: rank=64, nsctxrnk=0 [22-MAY-2009 13:35:09:625] nsdo: nsctx: state=1, flg=0x4201, mvd=0 [22-MAY-2009 13:35:09:625] nsbfr: entry [22-MAY-2009 13:35:09:625] nsbaddfl: entry [22-MAY-2009 13:35:09:625] nsbaddfl: normal exit [22-MAY-2009 13:35:09:625] nsbfr: normal exit [22-MAY-2009 13:35:09:625] nsbfr: entry [22-MAY-2009 13:35:09:625] nsbaddfl: entry [22-MAY-2009 13:35:09:625] nsbaddfl: normal exit [22-MAY-2009 13:35:09:625] nsbfr: normal exit [22-MAY-2009 13:35:09:625] nsdo: nsctxrnk=0 [22-MAY-2009 13:35:09:625] nsdo: normal exit [22-MAY-2009 13:35:09:625] nsclose: closing transport [22-MAY-2009 13:35:09:625] nttdisc: entry [22-MAY-2009 13:35:09:625] nttdisc: Closed socket 10 [22-MAY-2009 13:35:09:625] nttdisc: exit [22-MAY-2009 13:35:09:625] nsclose: global context check-out (from slot 0) complete [22-MAY-2009 13:35:09:703] nsnadisc: entry [22-MAY-2009 13:35:09:703] nadisc: entry [22-MAY-2009 13:35:09:703] nacomtm: entry [22-MAY-2009 13:35:09:703] nacompd: entry [22-MAY-2009 13:35:09:703] nacompd: exit [22-MAY-2009 13:35:09:703] nacompd: entry [22-MAY-2009 13:35:09:703] nacompd: exit [22-MAY-2009 13:35:09:703] nacomtm: exit [22-MAY-2009 13:35:09:703] nas_dis: entry [22-MAY-2009 13:35:09:703] nas_dis: exit [22-MAY-2009 13:35:09:703] nau_dis: entry [22-MAY-2009 13:35:09:703] nau_dis: exit [22-MAY-2009 13:35:09:703] naeetrm: entry [22-MAY-2009 13:35:09:703] naeetrm: exit [22-MAY-2009 13:35:09:703] naectrm: entry [22-MAY-2009 13:35:09:703] naectrm: exit [22-MAY-2009 13:35:09:703] nagbltrm: entry [22-MAY-2009 13:35:09:703] nau_gtm: entry [22-MAY-2009 13:35:09:703] nau_gtm: exit [22-MAY-2009 13:35:09:703] nagbltrm: exit [22-MAY-2009 13:35:09:703] nadisc: exit [22-MAY-2009 13:35:09:703] nsnadisc: normal exit [22-MAY-2009 13:35:09:703] nsbfr: entry [22-MAY-2009 13:35:09:703] nsbaddfl: entry [22-MAY-2009 13:35:09:703] nsbaddfl: normal exit [22-MAY-2009 13:35:09:703] nsbfr: normal exit [22-MAY-2009 13:35:09:703] nsmfr: entry [22-MAY-2009 13:35:09:703] nsmfr: 2256 bytes at 0x130508 [22-MAY-2009 13:35:09:703] nsmfr: normal exit [22-MAY-2009 13:35:09:703] nsmfr: entry [22-MAY-2009 13:35:09:703] nsmfr: 484 bytes at 0x1398a8 [22-MAY-2009 13:35:09:703] nsmfr: normal exit [22-MAY-2009 13:35:09:703] nsclose: normal exit [22-MAY-2009 13:35:09:703] nscall: connecting... [22-MAY-2009 13:35:09:703] nsclose: entry [22-MAY-2009 13:35:09:703] nsclose: normal exit [22-MAY-2009 13:35:09:703] nladget: entry [22-MAY-2009 13:35:09:734] nladget: exit [22-MAY-2009 13:35:09:734] nsmfr: entry [22-MAY-2009 13:35:09:734] nsmfr: 144 bytes at 0x132cf8 [22-MAY-2009 13:35:09:734] nsmfr: normal exit [22-MAY-2009 13:35:09:734] nsmfr: entry [22-MAY-2009 13:35:09:734] nsmfr: 156 bytes at 0x138e70 [22-MAY-2009 13:35:09:734] nsmfr: normal exit [22-MAY-2009 13:35:09:734] nladtrm: entry [22-MAY-2009 13:35:09:734] nladtrm: exit [22-MAY-2009 13:35:09:734] nscall: error exit [22-MAY-2009 13:35:09:734] nioqper: error from nscall[22-MAY-2009 13:35:09:734] nioqper: ns main err code: 12537
[22-MAY-2009 13:35:09:734] nioqper: ns (2) err code: 12560
[22-MAY-2009 13:35:09:734] nioqper: nt main err code: 507
[22-MAY-2009 13:35:09:734] nioqper: nt (2) err code: 0
[22-MAY-2009 13:35:09:734] nioqper: nt OS err code: 0
[22-MAY-2009 13:35:09:734] niomapnserror: entry [22-MAY-2009 13:35:09:734] niqme: entry [22-MAY-2009 13:35:09:734] niqme: reporting NS-12537 error as ORA-12537 [22-MAY-2009 13:35:09:734] niqme: exit [22-MAY-2009 13:35:09:734] niomapnserror: returning error 12537 [22-MAY-2009 13:35:09:734] niomapnserror: exit [22-MAY-2009 13:35:09:734] niotns: Couldn't connect, returning 12537 [22-MAY-2009 13:35:10:734] niotns: exit [22-MAY-2009 13:35:10:734] nsbfrfl: entry [22-MAY-2009 13:35:10:734] nsbrfr: entry [22-MAY-2009 13:35:10:734] nsbrfr: nsbfs at 0x132d90, data at 0x132dc8. [22-MAY-2009 13:35:10:734] nsbrfr: normal exit [22-MAY-2009 13:35:10:734] nsbrfr: entry [22-MAY-2009 13:35:10:734] nsbrfr: nsbfs at 0x1248d8, data at 0x132210. [22-MAY-2009 13:35:10:734] nsbrfr: normal exit [22-MAY-2009 13:35:10:734] nsbrfr: entry [22-MAY-2009 13:35:10:734] nsbrfr: nsbfs at 0x12d820, data at 0x1319f0. [22-MAY-2009 13:35:10:734] nsbrfr: normal exit [22-MAY-2009 13:35:10:734] nsbfrfl: normal exit [22-MAY-2009 13:35:10:734] nigtrm: Count in the NI global area is now 1 [22-MAY-2009 13:35:10:734] nigtrm: Count in the NL global area is now 1
注意: 前述の例のエラー・スタックには、オペレーティング・システムのエラー・コードが示されています。各オペレーティング・システムには独自のエラー・コードがあります。ご使用のオペレーティング・システムのエラー・コードの詳細は、システムのマニュアルを参照してください。 |
エラー・コードを評価する最も効率的な方法は、ロギングされている最新のnserror
エントリを検索することです。これは、セッション・レイヤーが接続を制御しているためです。最も重要なエラー・メッセージはファイルの最後部にあるメッセージです。これらは最新のエラーであり、接続の問題の原因を示しています。
特定のリターン・コードの情報に関しては、Oracleエラー・ツールのoerr
を使用します。このためには、任意のコマンドラインで次のように入力します。
oerr tns error_number
例として、例16-12
に示されるトレース・ファイルにロギングされた、次のnserrorエントリを考えます。
[22-MAY-2009 13:35:09:625] nserror: nsres: id=0, op=68, ns=12537, ns2=12560
;
nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
前のエントリでは、メインTNSエラーは12537で、セカンダリ・エラーは12560です。プロトコル・アダプタ・エラーは507です。oerr
を使用することによって、リターン・コード12537、12560、および507の詳細を検索できます。次の例ではユーザー入力は太字で示されています。
oerr tns 12537
12537, 00000, "TNS:connection closed"
// *Cause: "End of file" condition has been reached; partner has disconnected.
// *Action: None needed; this is an information message.
oerr tns 12560
12560, 00000, "TNS: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.
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.
Oracle Net Servicesでは、トレース・アシスタントという名前のツールを提供しています。このツールは、トレース・ファイル・テキストの既存の行をわかりやすい段落に変換することによって、トレース・ファイル内の情報を理解する際に役立ちます。トレース・アシスタントは、レベル16(support)のOracle Net Servicesトレース・ファイルでのみ機能します。トレース・アシスタントは、ADRトレース・ファイルとADR以外のトレース・ファイルで機能できます。
この項で説明する項目は、次のとおりです。
トレース・アシスタントを実行するには、コマンドライン・プロンプトで次のコマンドを入力します。
trcasst [options
]filename
表16-22では、オプションを説明します。
表16-22 トレース・アシスタントの構文
オプション | 説明 |
---|---|
-elevel |
エラー情報を表示します。
|
-la |
接続IDがNS接続パケットに存在する場合、出力結果には接続IDが表示されます。接続IDは、16進数の8バイトのIDとして表示されます。パケットが接続に関連付けられていない場合、生成されるIDはトレース・アシスタントによって作成されます。つまり、トレース・ファイル内の接続パケットは上書きされます。これは、循環方式のトレース・ファイルで発生する可能性があります。 出力には、IDごとに次の内容が表示されます。
注意:
|
-li ID |
注意: このオプションは、必ず |
-otype |
出力する情報の種類と量を表示します。
注意: |
-s |
次の統計情報を表示します。
|
オプションを指定しない場合、デフォルトは-odt -e0 -s
です。この場合、トレース・ファイル内の接続情報とTTCイベントの詳細、エラー・レベル0
のエラー情報、および統計情報が表示されます。
例16-13では、トレース・アシスタントが-e1
オプションを使用して、トレース・ファイル情報を読みやすい書式に変換する方法を示します。
例16-13 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
ファンクションでロギングされなかった他のエラーがトレース・ファイル内に存在する場合があります。
トレース・アシスタントでは、Oracle NetレイヤーとTTC通信レイヤーの両方からデータ・パケットを表示することもできます。トレース・アシスタントでは、これらのパケットを表示するために、次の2つのオプションを使用できます。
接続性のサマリー(-oc
オプションを使用)
接続性の詳細(-od
オプションを使用)
例16-14は、-oc
オプションを使用した場合のサマリー情報の出力を示します。
例16-14 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-15は、-od
オプションを使用した場合の詳細情報の出力を示します。この出力には、接続のネゴシエーション時に接続データとともに送信されたすべての詳細情報が表示されます。
例16-15 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 * *************************************************************************
TTCは、カーソルのオープン、行の選択、行の更新など、データベース・サーバーに送られる要求を処理します。データベース・サーバーは、すべての要求に応答します。ログインを要求すると、その要求を完了したデータベース・サーバーから応答が返されます。
-ou
オプションを使用した場合のTTCサマリー情報は、他の表示とは異なり、行ごとに1つのパケットではなく2つのパケットが表示されます。これは、TTCで処理された要求と応答のペアをミラー化するためです。
出力は次の書式で表示されます。
description
TTC_message
cursor_number
SQL_statement
bytes_sent
bytes_received
例16-16では、接続のネゴシエーション時に接続データとともに送信されたすべての詳細情報を示します。
例16-16 trcasst -ouの出力
************************************************************************* * Trace Assistant * ************************************************************************* Bytes Bytes Sent Rcvd Send operation(TTIPRO) 32 140 Send operation(TTIDTY) 33 22 Get the session key (OSESSKEY) 229 145 Generic authentication call (OAUTH) 368 1001 Send operation(TTIPFN) 44 144 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 SELECT USER FROM ... 47 100 Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 137 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 !Keep Parse BEGI... 156 145 Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 SELECT ATTRIBUTE,... 186 100 Fast upi calls to opial7 (OALL7) # 1 246 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 SELECT CHAR_VALUE... 208 100 Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse BEGI... 183 41 Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch SELE... 165 278 Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 commit 31 100 Execute statement (OEXEC) # 1 number of rows: 1 25 100 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse BEGI... 183 41 Send operation(TTIRXD) 60 111 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse BEGI... 183 41 Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch sele... 144 383 New v8 bundled call (OALL8) # 1 !Keep Fetch 121 315 Logoff off of Oracle (OLOGOFF) 13 11 ************************************************************************* * Trace Assistant has completed * *************************************************************************
例16-17は、-ot
オプションを使用した場合のTTC詳細情報の出力を示します。
例16-17 trcasst -otの出力の詳細なTTC情報
************************************************************************* * 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 11.2.0.0.0 With the Partitioning option JServer Release 11.2.0.0.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-18は、-ouq
オプションを使用した場合のSQL詳細情報の出力を示します。出力の各行の最初に表示される項目は、実際に送信された要求です。2番目に表示される項目は、操作が実行されたカーソルの位置です。3番目に表示される項目は、SQLコマンドのリスト、または応答中を示すフラグのいずれかです。送受信されたバイト数は、最も右側に表示されます。フラグは次のいずれかです。
!PL/SQL = PL/SQL要求以外
COM = Commit
IOV = Get I/O Vector
DEFN = Define
EXEC = Execute
FETCH = Fetch
CAN = Cancel
DESCSEL = Describe select
DESCBND = Describe Bind
BND = Bind
PARSE = Parse
EXACT = Exact
例16-18 trcasst -ouqの出力の詳細なSQL情報
************************************************************************* * Trace Assistant * ************************************************************************* Bytes Bytes Sent Rcvd Send operation(TTIPRO) 32 140 Send operation(TTIDTY) 33 22 Get the session key (OSESSKEY) 229 145 Generic authentication call (OAUTH) 368 1001 Send operation(TTIPFN) 44 144 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 47 100 SELECT USER FROM DUAL Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 137 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 !Keep Parse 156 145 BEGIN DBMS_OUTPUT.DISABLE; END; Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 186 100 SELECT ATTRIBUTE,SCOPE,NUMERIC_VALUE,CHAR_VALUE,DA TE_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('S QL*Plus') LIKE UPPER(PRODUCT)) AND (UPPER(USER) LI KE USERID) Fast upi calls to opial7 (OALL7) # 1 246 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Parse a statement (OSQL) # 1 208 100 SELECT CHAR_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('SQL*Plus') LIKE UPPER(PRODUCT)) AND ((UPPE R(USER) LIKE USERID) OR (USERID = 'PUBLIC')) AND ( UPPER(ATTRIBUTE) = 'ROLES') Fast upi calls to opial7 (OALL7) # 1 130 111 Fetch row (OFETCH) # 1 21 126 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse 183 41 BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); E ND; Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch 165 278 SELECT DECODE('A','A','1','2') FROM DUAL Send operation(TTIPFN) 51 16 Parse a statement (OSQL) # 1 31 100 commit Execute statement (OEXEC) # 1 number of rows: 1 25 100 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse 183 41 BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); E ND; Send operation(TTIRXD) 60 111 Close cursor (OCLOSE) # 1 17 11 Send operation(TTIPFN) 36 16 Fast upi calls to opial7 (OALL7) # 1 !Keep Parse 183 41 BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); E ND; Send operation(TTIRXD) 20 111 Close cursor (OCLOSE) # 1 17 11 New v8 bundled call (OALL8) # 0 Parse Fetch 144 383 select * from dept New v8 bundled call (OALL8) # 1 !Keep Fetch 121 315 Logoff off of Oracle (OLOGOFF) 13 11 ************************************************************************* * Trace Assistant has completed * *************************************************************************
例16-19は、-la
オプションを使用した場合の出力を示します。出力には次の情報が表示されます。
受信した接続ID。
この接続を受信したソケットID。
操作。
Receive
はトレースがデータベース・サーバー・トレースであることを示します。この例では、Receive
が操作です。
Send
はトレースがクライアント・トレースであることを示します。
Receive
はトレースをデータベース・サーバーのトレースとして識別し、Send
はトレースをクライアントのトレースとして識別します。この出力では、Receive
が操作です。
DISPATCHERS
パラメータのMULTIPLEX
属性は、ON
に設定されています。
32ビットのセッションID。
受信した接続データ情報。
例16-19 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-20は、-li 00000B1F00000008
オプションを使用した場合の接続ID 00000B1F00000008
に関する出力を示します。
例16-20 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 * *************************************************************************
収集される統計の種類は、ほとんどの場合、ネットワーク・パートナ間で送受信されたTTCコール数、パケット数およびバイト数です。例16-21では、-s
オプションを使用した場合の代表的なトレース・ファイルの統計を示します。
例16-21 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 * *************************************************************************
いくつかのメッセージでは、Oracleサポート・サービスに連絡して問題を報告することをお薦めします。Oracleサポート・サービスに連絡する場合は、次の情報を手元にご用意ください。
ハードウェア、オペレーティング・システム、およびOracle Databaseが稼働しているオペレーティング・システムのリリース番号。
Oracle Databaseの完全なリリース番号(11.2.0.1.0など)。
エラーが発生したときに使用していたすべてのOracleプログラムとリリース番号(SQL*Plusリリース11.2.0.1.0など)。
複数のエラー・コードやメッセージが表示された場合は、正確なコード番号およびメッセージ・テキスト、それらの表示順序。
次のコードに基づいた問題の重大度。
1: プログラムは使用できません。操作に重大な影響があります。
2: プログラムは使用できます。操作が大幅に制限されます。
3: プログラムは機能制限付きで使用できます。操作全体に重大な影響はありません。
4: 問題はお客様によって回避されました。操作に対する影響(ある場合)は最小限です。
次の情報も手元にご用意ください。
お客様のお名前
組織名
OracleサポートID番号
電話番号