ヘッダーをスキップ
Oracle Application Server Web Servicesアドバンスト開発者ガイド
10g(10.1.3.1.0)
B31869-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 メッセージの監査およびトレース

この章では、Oracle Application Server Web Servicesで使用可能な監査およびトレース(ロギング)機能を説明します。監査機能により、リクエスト、レスポンス、およびSOAP障害メッセージのレコードの完全性と永続性を維持できます。監査機能により、メッセージ全体が記録されます。トレース機能により、リクエスト、レスポンス、およびSOAP障害メッセージの離散部分を抽出し、永続的に保存できます。

監査の概要

監査機能により、SOAPリクエスト、SOAPレスポンス、およびSOAP障害のレコードの完全性と永続性を維持できます。開発中、SOAPリクエストやレスポンスの内容を参照して、問題を診断できるのは非常に便利です。本番環境では、否認防止のために特定のSOAPメッセージを保存できます。たとえば、オンライン・ショップでは受信したすべての発注リクエストを記録できます。

また、監査機能では、セキュリティ関連のイベントを記録して分析する計画を設計することもできます。監査レコードの履歴から監査証跡を作成し、一連のイベントを再構築して調査することが可能です。監査証跡は、攻撃の検出、ポリシーへの準拠の確認、不正使用の抑止などに使用できます。

パフォーマンスに対する監査の影響

監査は、サーバーによって開始および実行されます。クライアントが開始または実行することはできません。Webサービスに監査を追加しても、WSDLへの変更や拡張は必要ありません。

監査を有効化すると、システムのパフォーマンスにかなりの影響が出る可能性があります。開発中やデバッグ中、または本番環境において、明らかにメッセージの内容をすべて維持する必要がある場合にのみ、監査を使用することをお薦めします。否認防止のための監査がよい例です。この場合、監査の必要があるのはWebサービス操作のわずかな部分のみであるため、パフォーマンスへの影響も許容範囲内です。

記録されたメッセージのサイズは、パフォーマンスへの影響の大きさを左右します。メッセージが大きければ、保存に必要な時間もシステム・リソースも多くなります。

ランタイムによる監査の処理方法

監査は、プラットフォームで受信するメッセージ(リクエスト・メッセージ)、プラットフォームから発信するメッセージ(レスポンス・メッセージ)および生成された障害メッセージに対して実行時に適用できます。ランタイムでは、これらのメッセージは次の永続ログ・ファイルに保存されます。

ORACLE_HOME\j2ee\OC4J_Instance_Name\log\group_name_n\wsmgmt\auditing\log.xml

これはローリング・ファイルで、一定のサイズになるとlog-[number].xmlという名前に変更され、新しいlog.xmlファイルが開始されます。時間が経つと、古いバージョンのファイルは削除されます。このファイルは、Application Server Controlで読み取ります。

ログ・ファイルの場所は、構成ファイルORACLE_HOME\j2ee\OC4J_instance_name\config\j2ee-logging.xmlで定義されます。


関連資料:

  • 監査およびロギングの診断ロギングをOracleAS Web Servicesで構成する方法の詳細は、「Webサービス・ログ出力の出力の制御」を参照してください。

  • j2ee-logging.xmlファイルの詳細は、『Oracle Containers for J2EE構成および管理ガイド』の「OC4Jロギングの構成」を参照してください。


次の各項では、これらのメッセージがランタイムによってどのように処理されるかを説明します。

例6-1に、記録されたSOAPメッセージのサンプルを示します。この例では、元のSOAPメッセージは<MSG_TEXT>要素として出現しており、太字で強調してあります。

例6-1 監査ログのサンプルのSOAPメッセージ

<MESSAGE>
  <HEADER>
    <TSTZ_ORIGINATING>2006-05-17T17:05:23.421-04:00</TSTZ_ORIGINATING>
    <COMPONENT_ID>webservices</COMPONENT_ID>
    <MSG_TYPE TYPE="NOTIFICATION"></MSG_TYPE>
    <MSG_LEVEL>1</MSG_LEVEL>
    <HOST_ID>bjones-lap</HOST_ID>
    <HOST_NWADDR>138.2.8.215</HOST_NWADDR>
    <MODULE_ID>management.auditing</MODULE_ID>
    <THREAD_ID>73</THREAD_ID>
    <USER_ID>SYSTEM</USER_ID>
    <SUPPL_ATTRS>
      <ATTR NAME="J2EE_MODULE.name">owsm-test-service-web</ATTR>
      <ATTR NAME="J2EE_APP.name">owsm-test-service</ATTR>
      <ATTR NAME="WEBSERVICE_PORT.name">OwsmTestPort</ATTR>
      <ATTR NAME="WEBSERVICE.name">OwsmTestService</ATTR>
    </SUPPL_ATTRS>
  </HEADER>
  <CORRELATION_DATA>
  <EXEC_CONTEXT_ID>
    <UNIQUE_ID>138.2.8.215:27595:1147899923421:429</UNIQUE_ID><SEQ>0</SEQ>
  </EXEC_CONTEXT_ID>
  </CORRELATION_DATA>
  <PAYLOAD>
    <MSG_TEXT>&lt;soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://oracle.com/owsm-test/wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    &lt;soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        &lt;ns:hello>
            &lt;name xsi:type="xsd:string">Oracle Customer&lt;/name>
        &lt;/ns:hello>
    &lt;/soap:Body>
&lt;/soap:Envelope></MSG_TEXT>
  </PAYLOAD>
</MESSAGE>

ランタイムによるリクエスト・メッセージの監査方法

インバウンドSOAPメッセージを受信すると、ランタイムにより、ポートで監査が有効化されているかどうかが構成に基づいて確認されます。構成では、リクエスト・メッセージを監査できるかどうかも確認できます。ポートおよび操作の両方で監査が有効化されている場合、メッセージ全体が監査ログに記録されます。

ランタイムによるレスポンス・メッセージの監査方法

Webサービス実装によりアウトバウンド・レスポンスSOAPメッセージが作成されると、管理機能は通常とは逆向きに適用されます。ポートおよび構成で監査が有効化されている場合は、レスポンス・メッセージが監査され、メッセージ全体が監査ログに記録されることも意味します。

ランタイムによる障害メッセージの監査方法

障害メッセージは、Webサービス実装または任意のアプリケーション・ハンドラによって生成されます。構成によりポートおよび操作で障害メッセージの監査が有効化されている場合、障害メッセージは監査ログに記録されます。

サーバーにおける監査の構成方法

監査の構成情報は、サーバー・サイドのWebサービス独自のデプロイメント・ディスクリプタoracle-webservices.xmlに配置されています。このファイルの内容は、パッケージ化またはデプロイの際に変更できます。実行時には、Application Server Controlの使用または管理構成ファイルの編集のいずれかの方法で変更する必要があります。

ORACLE_HOME\j2ee\OC4J_Instance_Name\config\wsmgmt.xml file.

監査は操作レベルでのみ実行可能です。グローバルまたはポート・レベルでは監査を構成できません。


関連資料:

log.xmlファイルの詳細は、Application Server Controlのオンライン・ヘルプの「Webサービスの監査の構成」を参照してください。


サーバー・サイドの監査構成要素

監査構成は、Webサービス・ポートの各操作に対して定義できます。<auditing>要素、およびrequestresponsefaultの3つの属性により、監査構成が定義されます。各属性にはtrueまたはfalseの値があり、Webサービス管理によってこれらのメッセージが保存されるどうかを示します。次に監査構成のサンプルを示します。

<auditing request="true" response="false" fault="false"/>

例6-2に、oracle-webservices.xmlデプロイメント・ディスクリプタで使用される<auditing>要素を、太字で強調して示します。ポートに監査を指定できない場合でも、ポート・レベルには<runtime enabled="auditing">要素が必要であることに注意してください。このファイルのスキーマは次のとおりです。

http://xmlns.oracle.com/oracleas/schema/oracle-webservices-10_0.xsd

例6-2 サーバー・サイドの構成ファイルの操作レベルの監査要素

...
<port-component name="String">
  ...
   <runtime enabled="auditing">
     ...
   </runtime>
    <operations>
      <operation name "..." >
        <runtime>
        ...
          <auditing request="true" response="true" fault="false"/>
        </runtime>
      </operation>
    </operations>
</port-component>
...

表6-1に、監査要素の属性を説明します。

表6-1 メッセージの監査を有効化する要素

要素名 説明

<auditing>

ブール値を取る属性requestresponseおよびfaultがあります。属性がtrueの場合は、そのタイプのメッセージが監査されます。

  • fault: 障害メッセージが監査されるかどうかを示します。デフォルトはfalseです。

  • request: リクエスト・メッセージが監査されるかどうかを示します。デフォルトはtrueです。

  • response: レスポンス・メッセージが監査されるかどうかを示します。デフォルトはfalseです。


J2EEクライアントにおける監査の構成方法

監査の構成情報は、J2EEクライアント・サイドのWebサービス独自のデプロイメント・ディスクリプタに配置されています。クライアント・アプリケーションにより、orion-web.xmlorion-ejb-jar.xmlまたはorion-application-client.xmlのいずれかになります。このファイルの内容は、パッケージ化またはデプロイの際に変更できます。

監査は操作レベルにおいてのみ実行可能です。そのため、グローバルまたはポート・レベルの構成はありません。

Similar サーバー・サイド同様、クライアント・サイドの監査構成は、Webサービス・ポートの各操作に対して定義できます。<auditing>要素、およびrequestresponsefaultの3つの属性により、監査構成が定義されます。各属性にはtrueまたはfalseの値があり、Webサービス管理によってこれらのメッセージが保存されるどうかを示します。表6-1に、<auditing>要素およびその属性を説明します。次に監査構成のサンプルを示します。

<auditing request="true" response="false" fault="false"/>

監査構成は、<service-ref-mapping>要素の<operation>句に含まれます。各操作には独自の監査構成があります。例6-3に、階層における監査構成の位置を示すOracle独自のクライアント・サイドのデプロイメント・ディスクリプタorion-web.xmlのスケルトンを示します。監査構成は太字で強調してあります。構成が<port-info>要素内にあることに注意してください。このファイルのスキーマは次のとおりです。

http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.xsd

例6-3 監査構成が含まれるクライアント・サイドのorion-web.xmlのサンプル

<orion-web-app ...>
    <service-ref-mapping name="service/MyTestServiceRef">
        <port-info>
            ...
            <runtime>
                ...
                <security/>
                <reliability/>
                ...
            </runtime>
            <operations>
                ...
                  <operation name="echo">
                    <runtime enabled = "security,reliability,auditing">
                        ...
                        <security/>
                        <reliability/>
                        <auditing request="true" response="true" fault="false"/>
                        ...
                    </runtime>
                  </operation>
                ...
            </operations>
        </port-info>
    </service-ref-mapping>
</orion-web-app>

トレースの概要

OracleAS Web Servicesには、SOAPメッセージの基本的なトレース(ロギング)機能が含まれています。この機能により、リクエスト、レスポンス、およびSOAP障害メッセージの離散部分を抽出し、永続的に保存できます。

SOAPメッセージから永続的に情報を捕捉する必要がある状況は多数考えられます。たとえば、内部Webサービスをデプロイしている多くの大規模な組織では、組織内のどのグループがサービスを使用しているかの追跡が必要な場合があります。トレース機能を使用すると、メッセージからグループの情報を抽出して収集することでこれを実現できます。


注意:

Webサービス・クライアントではトレースの使用または構成はできません。

パフォーマンスに対するトレースの影響

トレースは、システムのパフォーマンスにあまり影響しません。メッセージから抽出できるのは単純なタイプのみであるため、影響も大きくはありません。トレースのメカニズムに、個々のメッセージから大量の情報(大量のテキスト・ブロックなど)を抽出するよう要求があれば、パフォーマンスへの影響も比例して大きくなります。

ランタイムによるトレースの処理方法

トレースは、プラットフォームで受信するメッセージ(リクエスト・メッセージ)、プラットフォームから発信するメッセージ(レスポンス・メッセージ)および生成された障害メッセージに対して実行時に適用できます。トレース情報は次の永続ログ・ファイルに保存されます。

ORACLE_HOME\j2ee\OC4J_Instance_Name\log\group_name_n\wsmgmt\logging\log.xml

これはローリング・ファイルで、一定のサイズになるとlog-[number].xmlという名前に変更され、新しいlog.xmlファイルが開始されます。

ログ・ファイルの場所は、構成ファイルORACLE_HOME\j2ee\OC4J_instance_name\config\j2ee-logging.xmlで定義されます。


関連資料:

  • 監査およびロギングの診断ロギングをOracleAS Web Servicesで構成する方法の詳細は、「Webサービス・ログ出力の出力の制御」を参照してください。

  • j2ee-logging.xmlファイルの詳細は、『Oracle Containers for J2EE構成および管理ガイド』の「OC4Jロギングの構成」を参照してください。


次の各項では、これらのメッセージがランタイムによってどのように処理されるかを説明します。

例6-4に、インバウンドのSOAPリクエスト・メッセージから導出されたログ・レコードのサンプルを示します。

例6-4 ログ・ファイル・エントリのサンプル

<MESSAGE>
  <HEADER>
    <TSTZ_ORIGINATING>2006-05-17T17:05:23.421-04:00</TSTZ_ORIGINATING>
    <COMPONENT_ID>webservices</COMPONENT_ID>
    <MSG_TYPE TYPE="NOTIFICATION"></MSG_TYPE>
    <MSG_LEVEL>1</MSG_LEVEL>
    <HOST_ID>bjones-lap</HOST_ID>
    <HOST_NWADDR>138.2.8.215</HOST_NWADDR>
    <MODULE_ID>management.logging</MODULE_ID>
    <THREAD_ID>73</THREAD_ID>
    <USER_ID>SYSTEM</USER_ID>
    <SUPPL_ATTRS>
      <ATTR NAME="J2EE_MODULE.name">owsm-test-service-web</ATTR>
      <ATTR NAME="J2EE_APP.name">owsm-test-service</ATTR>
      <ATTR NAME="WEBSERVICE_PORT.name">OwsmTestPort</ATTR>
      <ATTR NAME="WEBSERVICE.name">OwsmTestService</ATTR>
    </SUPPL_ATTRS>
  </HEADER>
  <CORRELATION_DATA>
    <EXEC_CONTEXT_ID>
      <UNIQUE_ID>138.2.8.215:27595:1147899923421:429</UNIQUE_ID><SEQ>0</SEQ>
    </EXEC_CONTEXT_ID>
  </CORRELATION_DATA>
  <PAYLOAD>
    <MSG_TEXT>name='Oracle Customer'</MSG_TEXT>
  </PAYLOAD>
</MESSAGE>

ランタイムによるリクエスト・メッセージのロギング方法

インバウンドSOAPメッセージを受信すると、ランタイムにより、ポートでトレースが有効化されているかどうかが構成に基づいて確認されます。その後トレース・メカニズムにより、構成に基づいて、操作のメッセージからどの情報が抽出されるかが確認されます(存在する場合)。この情報は保存されます。

ランタイムによるレスポンス・メッセージのロギング方法

Webサービス実装によりアウトバウンド・レスポンスSOAPメッセージが作成されると、管理機能は通常とは逆向きに適用されます。ポートおよび構成でもトレースが有効化されている場合には、レスポンス・メッセージの情報がロギングされ、その情報が抽出および保存されることを意味します。

ランタイムによる障害メッセージのロギング方法

障害メッセージは、Webサービス実装または任意のアプリケーション・ハンドラによって生成されます。構成により障害メッセージのトレースが有効化されている場合、指定された情報がメッセージから抽出され保存されます。

サーバーにおけるトレースの構成方法

トレースの構成要素は、oracle-webservices-10_0.xsdスキーマで定義されます。このファイルは、oc4j-schemas.jarファイルにあります。

OC4J_HOME\j2ee\home\lib\oc4j-schemas.jar

サーバー・サイドのトレースの構成情報は、独自のデプロイメント・ディスクリプタoracle-webservices.xmlに保存されています。このファイルの内容は、パッケージ化またはデプロイの際に変更できます。実行時には、Application Server Controlの使用または管理構成ファイルの編集のいずれかの方法で変更する必要があります。

ORACLE_HOME\j2ee\OC4J_Instance_Name\config\wsmgmt.xml file.

トレースは、ポートおよび操作レベルで構成する必要があります。グローバル・レベルの構成はありません。

サーバー・サイドのトレース構成要素

トレース機能を使用する場合には、ポートおよび操作レベルの両方で構成する必要があります。ポート・レベルの構成には、操作レベルで参照される情報が含まれます。セキュリティとは異なり、操作レベルの構成はポート・レベルの構成を上書きしません。

サーバーにおけるポート・レベルのトレース要素

例6-5に、サーバー・サイドのWebサービス独自のデプロイメント・ディスクリプタoracle-webservices.xmlで使用されるポート・レベルのトレース要素を示します。これらの要素は、操作レベルの構成によって参照される一連の名前空間接頭辞とURIのペアの作成に使用されます。このファイルのスキーマは次のとおりです。

例6-5 サーバー・サイドの構成ファイルのポート・レベルのトレース要素

...
<port-component name="...">
  ...
 <runtime enabled="logging">
  <logging>
     <namespaces>
       <namespace prefix='env' uri='http://schemas.xmlsoap.org/soap/envelope/'/>
       <namespace prefix='ns0' uri='http://oracle.com/test/wsdl'/>
     </namespaces>
  </logging> 
  ...
 </runtime>
</port-component>
...

表6-2に、レポートする情報をトレースするために設定する必要のあるポート・レベルの名前空間要素を説明します。名前空間接頭辞とURIのペアは、xpath式の処理に使用されます。

表6-2 トレースの名前空間要素

要素名 説明

<namespace>

名前空間接頭辞と名前空間URIの名前と値のペアを指定します。名前空間URIは、操作レベルでトレース用に定義されているxpath式に接頭辞を使用することによって暗黙的に参照されます。


サーバーにおける操作レベルのトレース要素

例6-6に、サーバー・サイドのWebサービス独自のデプロイメント・ディスクリプタoracle-webservices.xmlで使用される操作レベルのトレース要素を示します。操作レベルでは、リクエスト、レスポンスおよび障害メッセージのトレースを有効化または無効化できます。

例6-6 サーバー・サイドの構成ファイルの操作レベルのトレース要素

...
<port-component name="String">
  ...
    <operations>
      <operation name="...">
       <runtime>
        ...
        <logging> 
          <request enabled='true'>
            <attributes>
             <attribute name='input'
                ...
                xpath='/env:Envelope/env:Body/ns0:echo/String_1/text()'/>
            </attributes>
          </request>
          <response enabled='true'>
            <attributes>
              <attribute name='output' 
                 xpath='/env:Envelope/env:Body/ns0:echoResponse/result/text()'/>
            </attributes>
          </response>
          <fault enabled='true'>
            <attributes>
              <attribute name='output' 
                 xpath='/env:Envelope/env:Body/ns0:echoResponse/result/text()'/>
            </attributes>
          </fault>
        </logging>
      </runtime>
     </operation>
    </operations>
</port-component>
...

表6-3に、メッセージのトレース要素requestresponseおよびfaultを説明します。要素をtrueに設定すると、そのメッセージ・タイプのトレースを有効化できます。トレースが有効化されている場合、各メッセージ・タイプに対してロギングする属性を1つ以上指定できます。これらの属性は、nameおよびxpathで示されます。

メッセージ・タイプのトレースが有効化されていても、属性が構成されていない場合、トレースは実行されません。同様に、xpath問合せで結果が戻されない場合にも、トレースは実行されません。

表6-3 メッセージのトレースを有効化する要素

要素名 説明

<fault>

enabled=trueの場合は、メッセージ属性の名前と値のペアを指定します。各属性は、属性nameおよびxpath値で指定されます。デフォルトはtrueです。

<request>

enabled=trueの場合は、メッセージ属性の名前と値のペアを指定します。各属性は、属性nameおよびxpath値で指定されます。デフォルトはtrueです。

<response>

enabled=trueの場合は、メッセージ属性の名前と値のペアを指定します。各属性は、属性nameおよびxpath値で指定されます。デフォルトはtrueです。


Webサービスの監査およびトレースに対するツールのサポート

この項では、Oracle JDeveloperおよびApplication Server Controlツールで設定可能な、Webサービスの監査およびトレース構成の一部の概要を説明します。これらのツールで制御可能な監査およびトレースの個々のオプションの詳細は、Application Server ControlおよびOracle JDeveloperのオンライン・ヘルプを参照してください。

WebServicesAssemblerを使用した監査およびトレース構成の追加方法

この項では、WebServicesAssemblerコマンドを使用して、Webサービスに監査およびトレース構成を追加する方法を説明します。構成は、トップダウンまたはボトムアップのいずれの方式によるWebサービスのアセンブリにも追加できます。監査は、J2EE Webサービス・クライアントにもアセンブルできます(クライアントではトレースは使用できません)。どちらの場合も、構成はXMLファイルで指定されており、ddFileName引数を使用してWebServicesAssemblerコマンドに渡されます。

ボトムアップ方式でのWebサービスへの監査およびトレースのアセンブル手順

次に示す一般的な手順では、ボトムアップ方式でWebサービスに監査およびトレース構成をアセンブルする方法を説明します。

  1. 有効化する監査およびトレース機能の設定を指定するXMLファイルを作成します。これを実行する方法は2つあります。

    • 監査およびトレースの設定を含むXMLファイルを手動で記述します。例6-8に、これらの設定を含むXMLファイルのサンプルを示します。ファイルを保存します。

    • Webサービスに対して、WebServicesAssemblerツールの適切な*Assembleコマンドを実行します。作成されるファイルの1つは、ポートおよび操作のスケルトンを含むoracle-webservices.xmlファイルです。たとえば、このファイルを取得するためのddFileName引数なしで、例6-7のAntタスクを実行できます。oracle-webservices.xmlファイルを編集して、監査およびトレース機能の適切な設定を入力します。別の名前でファイルを保存します。

      サーバーで使用可能なポート・レベルと操作レベルの監査およびトレース機能は、「サーバー・サイドの監査構成要素」および「サーバー・サイドのトレース構成要素」で説明されています。

  2. 適切な*Assembleコマンドを使用してWebサービスをアセンブルします。ddFileName引数を使用して、手順1で作成した監査およびトレース構成を含むファイルをWebServicesAssemblerツールに渡します。

    *Assembleコマンドの詳細は、『Oracle Application Server Web Services開発者ガイド』の「Webサービス・アセンブリ・コマンド」で説明されています。

    ddFileNameコマンドの詳細は、『Oracle Application Server Web Services開発者ガイド』の「デプロイメント・ディスクリプタ引数」の項の「ddFileName」で説明されています。

例6-7に、ddFileName引数を使用してwsmBankServiceConfig.xmlの監査およびトレース構成をWebサービスに追加するassemble Antタスクを示します。

例6-7 ボトムアップ方式でのWebサービスのアセンブリにおける監査およびトレース構成の追加

<oracle:assemble appName="bank"
            targetNamespace="http://www.oracle.com/bank"
            typeNamespace="http://www.oracle.com/bank"
            serviceName="Banking"
            interfaceName="oracle.ws.server.bank.Bank"
            className="oracle.ws.server.bank.BankImpl"
            input="./build/classes/service"
            output="build"
            ear="build/bank.ear"
            style="rpc"
            use="encoded"
            ddFileName="wsmBankServiceConfig.xml"
            >
        </oracle:assemble>

例6-8に、サーバー・サイドの監査およびトレース構成のwsmBankServiceConfig.xmlの内容を示します。ポート・レベルでは監査とトレースの両方が有効になっていますが、トレース構成のみが指定されています。操作レベルでは、withdraw操作に監査構成が指定されており、deposit操作にトレース構成が指定されています。このファイルの内容は、<oracle-webservices>要素で囲まれていることに注意してください。

例6-8 サーバー・サイドの監査およびトレース構成のサンプル

<?xml version='1.0' encoding='UTF-8'?>
<oracle-webservices xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/
                                  oracle-webservices-10_0.xsd">
    <webservice-description name="Bank">
        <port-component name="HttpSoap11">
            <runtime enabled="auditing, logging">
                <auditing/>
                <logging>
                    <namespaces>
                        <namespace prefix="target_ns" uri="http://oracle.com/bank/wsdl"/>
                        <namespace prefix="soap" uri="http://schemas.xmlsoap.org/soap/envelope/"/>
                    </namespaces>
                </logging>
            </runtime>
            <operations>
                <operation name="withdraw">
                    <runtime>
                        <auditing request="true" response="true" fault="false"/>
                    </runtime>
                </operation>
                <operation name="deposit">
                    <runtime>
                        <logging>
                            <request enabled="true">
                                <attributes>
                                    <attribute name="request_string"  
             xpath="/soap:Envelope/soap:Body/target_ns:deposit/String_1/text()"/>
                                </attributes>
                            </request>
                            <response enabled="true">
                                <attributes>
                                    <attribute name="response_result" 
        xpath="/soap:Envelope/soap:Body/target_ns:depositResponse/result/text()"/>
                                </attributes>
                            </response>
                        </logging>
                    </runtime>
                </operation>
            </operations>
        </port-component>
    </webservice-description>
</oracle-webservices>

トップダウン方式でのWebサービスへの監査およびトレースのアセンブル手順

次に示す一般的な手順では、トップダウン方式でWebサービスに監査およびトレース構成をアセンブルする方法を説明します。

  1. 有効化する監査およびトレース機能の設定を指定するXMLファイルを作成します。これを実行する方法は2つあります。

    • 監査およびトレースの設定を含むXMLファイルを手動で記述します。例6-8に、監査およびトレース設定を含むXMLファイルのサンプルを示します。

    • WebServicesAssemblerツールのtopDownAssembleコマンドを実行します。作成されるファイルの1つは、ポートおよび操作のスケルトンを含むoracle-webservices.xmlファイルです。たとえば、このファイルを取得するためのddFileName引数なしで、例6-9のAntタスクを実行できます。oracle-webservices.xmlファイルを編集して、監査およびトレース機能の適切な設定を入力します。別の名前でファイルを保存します。

      サーバーで使用可能なポート・レベルと操作レベルの監査およびトレース機能は、「サーバー・サイドの監査構成要素」および「サーバー・サイドのトレース構成要素」で説明されています。

  2. topDownAssembleコマンドを使用してWebサービスをアセンブルします。ddFileName引数を使用して、手順1で作成した監査およびトレース構成を含むファイルをWebServicesAssemblerツールに渡します。

    topDownAssembleコマンドの詳細は、『Oracle Application Server Web Services開発者ガイド』の「WSDLからのWebサービスのアセンブル」で説明されています。

    この引数の詳細は、『Oracle Application Server Web Services開発者ガイド』の「デプロイメント・ディスクリプタ引数」の項の「ddFileName」を参照してください。

例6-9に、ddFileName引数を使用してwsmLoggingServiceConfig.xmlの監査およびトレース構成をWebサービスに追加するtopDownAssemble Antタスクを示します。

例6-9 トップダウン方式でのWebサービスのアセンブリにおける監査およびトレース構成の追加

<oracle:topDownAssemble
            wsdl="BankService.wsdl"
            input="build/classes/service"
            output="build"
            className="oracle.ws.server.bank.BankImpl"
            ear="dist/bank.ear"
            packageName="oracle.ws.server.bank"
            ddFileName="BankServiceWsmConfig.xml"/>

J2SE Webサービス・クライアント・プロキシへの監査のアセンブル手順

次に示す一般的な手順では、J2SE Webサービス・クライアント・プロキシに監査構成をアセンブルする方法を説明します。Webサービス・クライアントではトレースは使用できません。

  1. XMLファイルで有効にする監査機能の設定を指定します。

    クライアントに設定できる操作レベルの監査機能は、「2EEクライアントにおける監査の構成方法」で説明されています。

  2. genProxyコマンドを使用して、Webサービス・プロキシをアセンブルします。ddFileName引数を使用してコマンドに監査構成を渡します。

    これにより、XMLファイルが生成されます。例6-10に示されているgenProxyコマンドの場合、ファイルoracle\generated\runtime\BankPortBinding_Stub.xmltest\srcディレクトリに生成されます。

    J2SEクライアントに管理構成を追加する方法の詳細は、「J2SEクライアントへの管理情報の追加方法」で説明されています。

例6-10に、ddFileName引数を使用してwsmClientDD.xmlの監査構成をWebサービスに追加するgenProxy Antタスクを示します。

例6-10 Webサービス・クライアントのアセンブリにおける監査構成の追加

<oracle:genProxy
       wsdl="http://localhost:8888/bankdemo/bank?WSDL"
       output="test/src"
       packageName="oracle.generated"
       ddFileName="wsmClientDD.xml"/>
</oracle:genProxy>

例6-11に、クライアント・サイドの監査構成のwsmClientDD.xmlの内容を示します。監査構成は太字で強調してあります。このファイルの内容は、<port-info>タグで囲まれていることに注意してください。

例6-11 クライアント・サイドの監査構成のサンプル

<port-info>
   <runtime>
   </runtime>
   <operations>
      <operation name="deposit">
         <runtime>
            <auditing request="true" response="true" fault="false"/>
         </runtime>
      </operation>
   </operations>
</port-info>

J2EE Webサービス・クライアントへの監査のアセンブル手順

J2EE Webサービス・クライアントは、監査を実行するように構成できます。Webサービス・クライアントではトレースは使用できません。次に示す一般的な手順では、J2EE Webサービス・クライアントに監査構成を追加する方法を説明します。クライアント・コードを生成するだけでなく、標準とOracle独自のWebサービス・デプロイメント・ディスクリプタの両方を編集する必要もあります。

  1. WSDLおよびgenInterfaceコマンドへの入力としてサービス・エンドポイント・インタフェースを指定して、J2EEクライアント・コードを生成します。

    WebServicesAssemblerを使用してJ2EEクライアント・コードをアセンブルする方法の詳細は、『Oracle Application Server Web Services開発者ガイド』の「J2EE Webサービス・クライアントのアセンブル方法」を参照してください。

  2. J2EEコンポーネントのデプロイメント・ディスクリプタ(web.xmlejb-jar.xmlまたはapplication-client.xmlのいずれか)を編集し、コンポーネントによるWebサービス・エンドポイントへのアクセスを可能にするコードを<service-ref>要素に追加します。監査やその他のWebサービス管理情報を標準のJ2EE Webサービス・クライアントのデプロイメント・ディスクリプタに追加する方法は、次の例を参照してください。

    <service-ref>要素およびそのコンテンツの詳細は、『Oracle Application Server Web Services開発者ガイド』の「J2EE Webサービス・クライアント情報のデプロイメント・ディスクリプタへの追加方法」を参照してください。

  3. J2EEコンポーネントのOracle独自のデプロイメント・ディスクリプタ(orion-web.xmlorion-ejb-jar.xmlまたはorion-application-client.xmlのいずれか)を編集し、OC4Jプラットフォーム固有の情報と監査構成を<service-ref-mapping>要素に追加します。

    監査やその他のWebサービス管理情報をJ2EE Webサービス・クライアントに追加する方法は、次の例を参照してください。

    <service-ref-mapping>要素およびそのコンテンツの詳細は、『Oracle Application Server Web Services開発者ガイド』の「OC4J固有のプラットフォーム情報の追加」を参照してください。

    例6-12に、監査構成を含めるために編集されたサンプルのorion-web.xmlファイルを示します。構成は、プラットフォーム固有の情報を指定するために使用される<service-ref-mapping>要素内に記述されています。

    例6-12 監査構成を含めるために編集されたorion-web.xmlファイル

    <?xml version="1.0"?>
    <orion-web-app
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.xsd">
        <service-ref-mapping name="service/BankTeller">
            <port-info>
                <wsdl-port namespaceURI="http://oracle.com/bank" localpart="BankPort"/>
    <service-endpoint-interface>oracle.ws.client.bank.BankService</service-endpoint-interface>
                <runtime enabled="auditing"/>
                <operations>
                    <operation name="deposit">
                        <runtime>
                            <auditing request="true" response="true" fault="false"/>
                        </runtime>
                    </operation>
                </operations>
            </port-info>
        </service-ref-mapping>
    </orion-web-app>
    

監査およびトレースに対するApplication Server Controlのサポート方法

Application Server Controlを使用すると、デプロイ時および実行時に異なる監査オプションを有効化および構成できます。Application Server Controlを使用すると、次のタスクを実行できます。

  • 監査するWebサービス操作およびメッセージのデプロイ時における変更

  • 監査するWebサービス操作およびメッセージの実行時における制御

  • サービスおよびJ2EEクライアントの監査ログに含まれるメッセージの表示

同様に、デプロイ時および実行時に異なるトレース・オプションを有効化および構成できます。Application Server Controlを使用すると、次のタスクを実行できます。

  • 抽出およびロギングする情報の種類のデプロイ時における変更

  • 抽出およびロギングする情報の種類の実行時における制御

  • ログに含まれるメッセージの表示

監査およびトレースに対するOracle JDeveloperのサポート方法

Oracle JDeveloperのウィザードを使用すると、デプロイ・モジュールのWebサービスに監査およびトレース(JDeveloperではロギングと呼ばれます)を構成できます。監査およびロギングの構成は、Oracle独自のデプロイメント・ディスクリプタoracle-webservices.xmlに保存されます。

Oracle JDeveloperでWebサービス・モジュールの最後のパッケージ化が実行される際、Webサービスのランタイムが要求する場所にデプロイメント・ディスクリプタが含まれます。Oracle JDeveloperがWebサービスをデプロイするためのデプロイ・ツールとして使用される場合は、パッケージ化される際に設定された任意の監査およびロギング構成を上書きするオプションを使用できます。

Oracle JDeveloperによって作成される監査およびトレース構成も、デプロイ後にApplication Server Controlを使用して上書きできます。


関連資料:

  • ロギングおよび監査の有効化の詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。

  • デプロイ後に監査およびトレース機能を上書きする方法の詳細は、Application Server Controlのオンライン・ヘルプの「「監査構成の編集」ページ」および「「トレース構成の編集」ページ」を参照してください。


診断ログ出力の概要

Oracle Diagnostic Logging(ODL)フレームワークにより、Webサービスの監査およびロギングの診断ロギングが可能になります。ODLフレームワークでは、ログ・ファイルはXMLドキュメントに書式化されるので、Application Server Controlなどの別のOracle Application Serverコンポーネントで解析および再使用できます。

様々なOC4Jのコンポーネントは、Javaログ出力を使用して、事前決定した重大度のログ・メッセージをOC4Jログ・ファイルに変更します。

ORACLE_HOME\j2ee\OC4JInstanceName\log\instanceName_groupName_n\oc4j\log.xml

OC4Jログ・ファイルは、Oracle Diagnostic Loggingフレームワークを使用してXMLファイルで生成されます。これは、Application Server Controlコンソールの「ログ出力の構成」ページで表示および構成できます。

oracleログ出力とも呼ばれるj2ee-logging.xmlファイルにより、診断ログ・ハンドラが構成されます。このファイルは次の項で説明します。


関連資料:

ODL機能およびj2ee-logging.xmlファイルの内容の詳細は、『Oracle Containers for J2EE構成および管理ガイド』の「Oracle Diagnostic Logging(ODL)の使用方法」を参照してください。


Webサービス・ログ出力の出力の制御

oracleログ出力とも呼ばれるj2ee-logging.xmlファイルにより、診断ログ・ハンドラが構成されます。ファイルには2つのセクションがあります。ログ・ハンドラ・セクションでは、特定のログ出力の出力プロパティを定義できます。ログ出力セクションは、特定のログ出力をハンドラにリンクします。

ログ・ハンドラ

ログ・ハンドラでは、特定のログ出力の出力プロパティを指定します。j2ee-logging.xmlファイルで、<log_handler>要素によりハンドラが定義されます。最大ログ・ファイル・サイズおよび文字コードなどの属性は、<property>サブ要素で指定されます。OC4Jログ・ファイル以外のファイルに出力するよう変更することもできます。

表6-4に、ログ・ハンドラに対して構成されるプロパティを説明します。

表6-4 ログ・ハンドラのプロパティ

プロパティ名 説明

エンコーディング

ログ・ファイルの文字コードを指定します。デフォルトはUTF-8です。

maxFileSize

ディレクトリ内のログ・ファイルに許可される最大サイズをバイト単位で設定します。デフォルトは104857600バイトです。

maxLogSize

ログ・ファイルの最大サイズをバイト単位で設定します。デフォルトは104857600バイトです。

path

ハンドラがログ・ファイルを生成するディレクトリを指定します。たとえば、監査の診断ログ・ファイルのデフォルトは、次の場所です。

ORACLE_HOME\j2ee\OC4J_Instance_Name\log\group_name_n\wsmgmt\auditing\log.xml

トレースの診断ログ・ファイルのデフォルトは、次の場所です。

ORACLE_HOME\j2ee\OC4J_Instance_Name\log\group_name_n\wsmgmt\logging\log.xml

このプロパティに値を指定しない場合は、メッセージはデフォルト・ログ・ファイルに送信されます。

ORACLE_HOME\j2ee\OC4JInstanceName\log\instanceName_groupName_n\oc4j\log.xml

supplementalAttributes

Application Server Controlのログ・ビューアで特定のWebサービスのログ・レコードを検索する際に、この値を使用します。この値は、デプロイ時に決定されます。デフォルトは、次の値です。

J2EE_APP.name,J2EE_MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name


例6-13では、j2ee-logging.xmlファイルの監査およびトレースのログ・ハンドラ構成を示します。監査およびロギングのハンドラの名前は、oracle-webservices-management-auditing-handlerおよびoracle-webservices-management-logging-handlerです。

例6-13 監査およびトレースのログ・ハンドラの構成

...
<logging_configuration>
  <log_handlers>
    ...
    <!-- The log handler for the oracle.webservices.management.auditing logger. -->
      <log_handler name='oracle-webservices-management-auditing-handler' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
        <property name='path' value='%ORACLE_HOME%/j2ee/%OPMN_PROC_TYPE%/log/%OPMN_PROC_TYPE%_%OPMN_PROC_SET%_%OPMN_PROC_INDEX%/wsmgmt/auditing'/>
        <property name='maxFileSize' value='104857600'/>
        <property name='maxLogSize' value='104857600'/>
        <property name='encoding' value='UTF-8'/>
        <property name='supplementalAttributes' value='J2EE_APP.name,J2EE_MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name'/>
      </log_handler>

      <!-- The log handler for the oracle.webservices.management.logging logger. -->
      <log_handler name='oracle-webservices-management-logging-handler' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
        <property name='path' value='%ORACLE_HOME%/j2ee/%OPMN_PROC_TYPE%/log/%OPMN_PROC_TYPE%_%OPMN_PROC_SET%_%OPMN_PROC_INDEX%/wsmgmt/logging'/>
        <property name='maxFileSize' value='104857600'/>
        <property name='maxLogSize' value='104857600'/>
        <property name='encoding' value='UTF-8'/>
        <property name='supplementalAttributes' value='J2EE_APP.name,J2EE_MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name'/>
      </log_handler>
...

注意:

現行リリースでは、j2ee-logging.xmlファイルを変更する場合は、手動で編集する必要があります。ファイルを変更した後に、OC4Jを再起動してください。


関連資料:

j2ee-logging.xmlファイルの内容の詳細は、『Oracle Containers for J2EE構成および管理ガイド』の「OC4Jロギングの構成」を参照してください。


ログ出力

「診断ログ出力の概要」で説明したとおり、OC4Jでは様々なJavaログ出力を提供します。j2ee-logging.xmlファイルの<loggers>セクションでは、別々の<logger>要素で、各コンポーネント・ログ出力を定義します。ログ・ハンドラ・セクションの出力プロパティへの指定したログ出力のリンクに加え、<logger>要素では、Javaロギング・レベル、つまり親ログ出力のロギング・レベルおよび関連するログ・ハンドラの名前を、ログ出力で継承するかどうかを定義する属性が指定されます。

level属性はログ出力のJavaログ・レベルを指定します。デフォルトでは、ODLメッセージ・タイプおよびログ・レベルはNOTIFICATION:1に設定され、これはJavaログ・レベルINFOにマッピングされます。

j2ee-logging.xmlファイルに設定されるWebサービス診断レベルは、Oracle Application Serverの「ログ出力の構成」ページで表示および構成できます。Application Server Controlを使用して、ログ・レベルの値を変更できますが、変更は永続的ではなく、JVMプロセスの間のみ有効です。


注意:

  • j2ee-logging.xmlファイルの<log-handler>セクションは変更可能ですが、<loggers>セクションは変更しないことをお薦めします。

  • 現行では、Application Server Controlで設定できるWebサービス・ポートごとのロギング・レベルは、j2ee-logging.xmlファイルでは指定できません。



関連資料:

j2ee-logging.xmlファイルで定義できるJavaおよびODLロギング・レベルの詳細は、『Oracle Containers for J2EE構成および管理ガイド』の「OC4Jロギングの構成」を参照してください。


例6-14では、監査およびトレースのj2ee-logging.xmlファイルの<loggers>セクションを示します。監査ログ出力の名前は、oracle.webservices.management.auditingです。トレース・ログ出力の名前は、oracle.webservices.management.loggingです。level属性はデフォルト値のNOTIFICATION:1に設定され、これはJavaログ・レベルInfoにマッピングされます。useParentHandlers属性はfalseに設定されると、監査およびトレースのログ出力は、親rootのログ出力に設定されたレベルを継承しません。

例6-14 監査およびトレースのログ・レベルの構成

 ...
  <loggers>
  ...
   <logger name='oracle.webservices.management.auditing' level='NOTIFICATION:1' useParentHandlers='false'>
        <handler name='oracle-webservices-management-auditing-handler'/>
    </logger>
...
    <logger name='oracle.webservices.management.logging' level='NOTIFICATION:1' useParentHandlers='false'>
        <handler name='oracle-webservices-management-logging-handler'/>
    </logger>
...
 </loggers>
...

診断ログ出力の監査の構成

Application Server Controlの「診断ログ出力の構成」ページを使用して、Webサービスのログ・レベルを変更できます。ただし、個別のログ出力のレベルは変更されず、変更内容は永続的ではありません。

ログ・レベルまたはメッセージを保存するターゲット・ファイルなどのログ出力のデフォルト構成を変更する場合は、その構成をj2ee-logging.xmlファイルに追加できます。

構成を追加するには、ファイルの<loggers>セクションでログ出力を識別し、<log_handlers>セクションでそのログ出力に対するハンドラを定義します。


関連資料:

j2ee-logging.xmlファイルの<log_handlers>および<loggers>セクションの詳細は、「ログ・ハンドラ」および「ログ出力」を参照してください。


例6-15に、Webサービス・セキュリティ・ログ出力oracle.webservices.management.securityの構成のサンプルを示します。構成では、ログ・メッセージをOC4Jログ・ファイルではなく、ORACLE_HOME\j2ee\OC4J_Instance_Name\log\group_name_n\wsmgmt\security\log.xmlファイルに保存するように指定します。

例6-15 Webサービス・セキュリティ・ログ出力の構成のサンプル

...
<log_handlers>
...
      <!-- The log handler for the oracle.webservices.management.security logger. -->
      <log_handler name='oracle-webservices-management-security-handler' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
        <property name='path' value='%ORACLE_HOME%/j2ee/%OPMN_PROC_TYPE%/log/%OPMN_PROC_TYPE%_%OPMN_PROC_SET%_%OPMN_PROC_INDEX%/wsmgmt/security'/>
        <property name='maxFileSize' value='10485760'/>
        <property name='maxLogSize' value='104857600'/>
        <property name='encoding' value='UTF-8'/>
        <property name='supplementalAttributes' value='J2EE_APP.name,J2EE_MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name'/>
      </log_handler>
</log_handlers>
...
  <loggers>
  ...
   <logger name='oracle.webservices.management.security' level='NOTIFICATION:1' useParentHandlers='false'>
        <handler name='oracle-webservices-management-security-handler'/>
    </logger>
...
</loggers>
...

Application Server Controlでの診断ロギング・レベルの設定

Application Server Controlでは、各Webサービス・ポートの診断ロギング・レベルを設定できます。ロギング・レベルを設定するには、Application Server ControlのWebサービス管理ページの「診断ログ出力の構成」リンクをクリックします。リンク先を参照して、Webサービス・ポートのロギング・レベルを設定します。

Application Server Controlで設定するレベルは、「FINER」レベルを設定した場合にかぎり、個別のログ出力oracle.webservice.*のレベルを上書きします。

次に例を示します。

  • ログ出力oracle.webservice.securityINFOに設定し、各ポートのレベルをFINEに設定すると、そのポートに対するSEVERE-FINEであるログ出力oracle.webservice.securityのすべての診断メッセージがロギングされます。

  • 各ポートのレベルをWARNINGに設定し、ログ出力webservice.oracle.securityINFOに設定すると、レベルSEVERE-WARNINGであるポートに対するログ出力oracle.webservice.securityのすべての診断メッセージがロギングされ、レベルSEVERE-INFOのすべてのoracle.webservice.security診断メッセージがポートを問わずロギングされます。


関連資料:

  • 監査およびロギングの診断ロギングをOracleAS Web Servicesで構成する方法の詳細は、「Webサービス・ログ出力の出力の制御」を参照してください。

  • Application Server Controlのオンライン・ヘルプの「Webサービスの監査の構成」および「Webサービスのロギングの構成」を参照してください。

  • Application Server Controlのオンライン・ヘルプの「Webサービスの診断ログ出力の構成」および「OC4Jログ出力で使用するロギング・レベル」を参照してください。


制限事項

「メッセージの監査およびロギング」を参照してください。

追加情報

詳細は、次を参照してください。