この章では、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
で定義されます。
関連資料:
|
次の各項では、これらのメッセージがランタイムによってどのように処理されるかを説明します。
例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><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/"> <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <ns:hello> <name xsi:type="xsd:string">Oracle Customer</name> </ns:hello> </soap:Body> </soap:Envelope></MSG_TEXT> </PAYLOAD> </MESSAGE>
インバウンドSOAPメッセージを受信すると、ランタイムにより、ポートで監査が有効化されているかどうかが構成に基づいて確認されます。構成では、リクエスト・メッセージを監査できるかどうかも確認できます。ポートおよび操作の両方で監査が有効化されている場合、メッセージ全体が監査ログに記録されます。
Webサービス実装によりアウトバウンド・レスポンスSOAPメッセージが作成されると、管理機能は通常とは逆向きに適用されます。ポートおよび構成で監査が有効化されている場合は、レスポンス・メッセージが監査され、メッセージ全体が監査ログに記録されることも意味します。
監査の構成情報は、サーバー・サイドのWebサービス独自のデプロイメント・ディスクリプタoracle-webservices.xml
に配置されています。このファイルの内容は、パッケージ化またはデプロイの際に変更できます。実行時には、Application Server Controlの使用または管理構成ファイルの編集のいずれかの方法で変更する必要があります。
ORACLE_HOME
\j2ee\
OC4J_Instance_Name
\config\wsmgmt.xml
file.
監査は操作レベルでのみ実行可能です。グローバルまたはポート・レベルでは監査を構成できません。
関連資料:
|
監査構成は、Webサービス・ポートの各操作に対して定義できます。<auditing>
要素、およびrequest
、response
、fault
の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に、監査要素の属性を説明します。
監査の構成情報は、J2EEクライアント・サイドのWebサービス独自のデプロイメント・ディスクリプタに配置されています。クライアント・アプリケーションにより、orion-web.xml
、orion-ejb-jar.xml
またはorion-application-client.xml
のいずれかになります。このファイルの内容は、パッケージ化またはデプロイの際に変更できます。
監査は操作レベルにおいてのみ実行可能です。そのため、グローバルまたはポート・レベルの構成はありません。
Similar サーバー・サイド同様、クライアント・サイドの監査構成は、Webサービス・ポートの各操作に対して定義できます。<auditing>
要素、およびrequest
、response
、fault
の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
で定義されます。
関連資料:
|
次の各項では、これらのメッセージがランタイムによってどのように処理されるかを説明します。
例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メッセージが作成されると、管理機能は通常とは逆向きに適用されます。ポートおよび構成でもトレースが有効化されている場合には、レスポンス・メッセージの情報がロギングされ、その情報が抽出および保存されることを意味します。
トレースの構成要素は、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-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に、メッセージのトレース要素request
、response
およびfault
を説明します。要素をtrue
に設定すると、そのメッセージ・タイプのトレースを有効化できます。トレースが有効化されている場合、各メッセージ・タイプに対してロギングする属性を1つ以上指定できます。これらの属性は、name
およびxpath
で示されます。
メッセージ・タイプのトレースが有効化されていても、属性が構成されていない場合、トレースは実行されません。同様に、xpath
問合せで結果が戻されない場合にも、トレースは実行されません。
表6-3 メッセージのトレースを有効化する要素
要素名 | 説明 |
---|---|
<fault> |
|
<request> |
|
<response> |
|
この項では、Oracle JDeveloperおよびApplication Server Controlツールで設定可能な、Webサービスの監査およびトレース構成の一部の概要を説明します。これらのツールで制御可能な監査およびトレースの個々のオプションの詳細は、Application Server ControlおよびOracle JDeveloperのオンライン・ヘルプを参照してください。
この項では、WebServicesAssemblerコマンドを使用して、Webサービスに監査およびトレース構成を追加する方法を説明します。構成は、トップダウンまたはボトムアップのいずれの方式によるWebサービスのアセンブリにも追加できます。監査は、J2EE Webサービス・クライアントにもアセンブルできます(クライアントではトレースは使用できません)。どちらの場合も、構成はXMLファイルで指定されており、ddFileName
引数を使用してWebServicesAssemblerコマンドに渡されます。
次に示す一般的な手順では、ボトムアップ方式でWebサービスに監査およびトレース構成をアセンブルする方法を説明します。
有効化する監査およびトレース機能の設定を指定するXMLファイルを作成します。これを実行する方法は2つあります。
監査およびトレースの設定を含むXMLファイルを手動で記述します。例6-8に、これらの設定を含むXMLファイルのサンプルを示します。ファイルを保存します。
Webサービスに対して、WebServicesAssemblerツールの適切な*Assemble
コマンドを実行します。作成されるファイルの1つは、ポートおよび操作のスケルトンを含むoracle-webservices.xml
ファイルです。たとえば、このファイルを取得するためのddFileName
引数なしで、例6-7のAntタスクを実行できます。oracle-webservices.xml
ファイルを編集して、監査およびトレース機能の適切な設定を入力します。別の名前でファイルを保存します。
サーバーで使用可能なポート・レベルと操作レベルの監査およびトレース機能は、「サーバー・サイドの監査構成要素」および「サーバー・サイドのトレース構成要素」で説明されています。
適切な*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サービスに監査およびトレース構成をアセンブルする方法を説明します。
有効化する監査およびトレース機能の設定を指定するXMLファイルを作成します。これを実行する方法は2つあります。
監査およびトレースの設定を含むXMLファイルを手動で記述します。例6-8に、監査およびトレース設定を含むXMLファイルのサンプルを示します。
WebServicesAssemblerツールのtopDownAssemble
コマンドを実行します。作成されるファイルの1つは、ポートおよび操作のスケルトンを含むoracle-webservices.xml
ファイルです。たとえば、このファイルを取得するためのddFileName
引数なしで、例6-9のAntタスクを実行できます。oracle-webservices.xml
ファイルを編集して、監査およびトレース機能の適切な設定を入力します。別の名前でファイルを保存します。
サーバーで使用可能なポート・レベルと操作レベルの監査およびトレース機能は、「サーバー・サイドの監査構成要素」および「サーバー・サイドのトレース構成要素」で説明されています。
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タスクを示します。
次に示す一般的な手順では、J2SE Webサービス・クライアント・プロキシに監査構成をアセンブルする方法を説明します。Webサービス・クライアントではトレースは使用できません。
XMLファイルで有効にする監査機能の設定を指定します。
クライアントに設定できる操作レベルの監査機能は、「2EEクライアントにおける監査の構成方法」で説明されています。
genProxy
コマンドを使用して、Webサービス・プロキシをアセンブルします。ddFileName
引数を使用してコマンドに監査構成を渡します。
これにより、XMLファイルが生成されます。例6-10に示されているgenProxy
コマンドの場合、ファイルoracle\generated\runtime\BankPortBinding_Stub.xml
がtest\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>
タグで囲まれていることに注意してください。
J2EE Webサービス・クライアントは、監査を実行するように構成できます。Webサービス・クライアントではトレースは使用できません。次に示す一般的な手順では、J2EE Webサービス・クライアントに監査構成を追加する方法を説明します。クライアント・コードを生成するだけでなく、標準とOracle独自のWebサービス・デプロイメント・ディスクリプタの両方を編集する必要もあります。
WSDLおよびgenInterface
コマンドへの入力としてサービス・エンドポイント・インタフェースを指定して、J2EEクライアント・コードを生成します。
WebServicesAssemblerを使用してJ2EEクライアント・コードをアセンブルする方法の詳細は、『Oracle Application Server Web Services開発者ガイド』の「J2EE Webサービス・クライアントのアセンブル方法」を参照してください。
J2EEコンポーネントのデプロイメント・ディスクリプタ(web.xml
、ejb-jar.xml
またはapplication-client.xml
のいずれか)を編集し、コンポーネントによるWebサービス・エンドポイントへのアクセスを可能にするコードを<service-ref>
要素に追加します。監査やその他のWebサービス管理情報を標準のJ2EE Webサービス・クライアントのデプロイメント・ディスクリプタに追加する方法は、次の例を参照してください。
<service-ref>
要素およびそのコンテンツの詳細は、『Oracle Application Server Web Services開発者ガイド』の「J2EE Webサービス・クライアント情報のデプロイメント・ディスクリプタへの追加方法」を参照してください。
J2EEコンポーネントのOracle独自のデプロイメント・ディスクリプタ(orion-web.xml
、orion-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を使用すると、次のタスクを実行できます。
監査するWebサービス操作およびメッセージのデプロイ時における変更
監査するWebサービス操作およびメッセージの実行時における制御
サービスおよびJ2EEクライアントの監査ログに含まれるメッセージの表示
同様に、デプロイ時および実行時に異なるトレース・オプションを有効化および構成できます。Application Server Controlを使用すると、次のタスクを実行できます。
抽出およびロギングする情報の種類のデプロイ時における変更
抽出およびロギングする情報の種類の実行時における制御
ログに含まれるメッセージの表示
Oracle JDeveloperのウィザードを使用すると、デプロイ・モジュールのWebサービスに監査およびトレース(JDeveloperではロギングと呼ばれます)を構成できます。監査およびロギングの構成は、Oracle独自のデプロイメント・ディスクリプタoracle-webservices.xml
に保存されます。
Oracle JDeveloperでWebサービス・モジュールの最後のパッケージ化が実行される際、Webサービスのランタイムが要求する場所にデプロイメント・ディスクリプタが含まれます。Oracle JDeveloperがWebサービスをデプロイするためのデプロイ・ツールとして使用される場合は、パッケージ化される際に設定された任意の監査およびロギング構成を上書きするオプションを使用できます。
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機能および |
oracle
ログ出力とも呼ばれるj2ee-logging.xml
ファイルにより、診断ログ・ハンドラが構成されます。ファイルには2つのセクションがあります。ログ・ハンドラ・セクションでは、特定のログ出力の出力プロパティを定義できます。ログ出力セクションは、特定のログ出力をハンドラにリンクします。
ログ・ハンドラでは、特定のログ出力の出力プロパティを指定します。j2ee-logging.xml
ファイルで、<log_handler>
要素によりハンドラが定義されます。最大ログ・ファイル・サイズおよび文字コードなどの属性は、<property>
サブ要素で指定されます。OC4Jログ・ファイル以外のファイルに出力するよう変更することもできます。
表6-4に、ログ・ハンドラに対して構成されるプロパティを説明します。
表6-4 ログ・ハンドラのプロパティ
プロパティ名 | 説明 |
---|---|
エンコーディング |
ログ・ファイルの文字コードを指定します。デフォルトはUTF-8です。 |
maxFileSize |
ディレクトリ内のログ・ファイルに許可される最大サイズをバイト単位で設定します。デフォルトは104857600バイトです。 |
maxLogSize |
ログ・ファイルの最大サイズをバイト単位で設定します。デフォルトは104857600バイトです。 |
path |
ハンドラがログ・ファイルを生成するディレクトリを指定します。たとえば、監査の診断ログ・ファイルのデフォルトは、次の場所です。
トレースの診断ログ・ファイルのデフォルトは、次の場所です。
このプロパティに値を指定しない場合は、メッセージはデフォルト・ログ・ファイルに送信されます。
|
supplementalAttributes |
Application Server Controlのログ・ビューアで特定のWebサービスのログ・レコードを検索する際に、この値を使用します。この値は、デプロイ時に決定されます。デフォルトは、次の値です。
|
例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を再起動してください。 |
関連資料:
|
「診断ログ出力の概要」で説明したとおり、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プロセスの間のみ有効です。
注意:
|
関連資料:
|
例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>
セクションでそのログ出力に対するハンドラを定義します。
例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では、各Webサービス・ポートの診断ロギング・レベルを設定できます。ロギング・レベルを設定するには、Application Server ControlのWebサービス管理ページの「診断ログ出力の構成」リンクをクリックします。リンク先を参照して、Webサービス・ポートのロギング・レベルを設定します。
Application Server Controlで設定するレベルは、「FINER」レベルを設定した場合にかぎり、個別のログ出力oracle.webservice.*
のレベルを上書きします。
次に例を示します。
ログ出力oracle.webservice.security
をINFO
に設定し、各ポートのレベルをFINE
に設定すると、そのポートに対するSEVERE-FINE
であるログ出力oracle.webservice.security
のすべての診断メッセージがロギングされます。
各ポートのレベルをWARNING
に設定し、ログ出力webservice.oracle.security
をINFO
に設定すると、レベルSEVERE-WARNING
であるポートに対するログ出力oracle.webservice.security
のすべての診断メッセージがロギングされ、レベルSEVERE-INFO
のすべてのoracle.webservice.security
診断メッセージがポートを問わずロギングされます。
関連資料:
|
詳細は、次を参照してください。
Webサービス管理構成を含むoracle-webservices.xml
デプロイメント・ディスクリプタの内容については、『Oracle Application Server Web Services開発者ガイド』の「Webサービスのパッケージ化およびデプロイ」を参照してください。
Webサービスにセキュリティを含むWebサービス管理情報を追加する場合は、第3章「Webサービスの管理」を参照してください。
Webサービスにセキュリティ情報を追加する場合は、第4章「Webサービスのセキュリティの確保」および『Oracle Application Server Web Servicesセキュリティ・ガイド』を参照してください。
Webサービスに信頼性のある情報を追加する場合は、第5章「Webサービスの信頼性の確保」を参照してください。
セキュリティ構成を含むwsmgmt.xml
ファイルの内容については、付録A「Webサービス管理スキーマの概要」を参照してください。
Webサービスをトップダウン方式でアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「WSDLからのWebサービスのアセンブル」を参照してください。
Javaクラスを使用してWebサービスをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「Javaクラスを使用したWebサービスのアセンブル」を参照してください。
EJBを使用してWebサービスをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「EJBを使用したWebサービスのアセンブル」を参照してください。
JMSトピックおよび宛先を使用してWebサービスをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「JMS宛先を使用したWebサービスのアセンブル」を参照してください。
PL/SQLパッケージ、SQL問合せ、DML文、Oracle Streams AQまたはサーバー・サイドJavaクラスなどのデータベース・リソースを使用してWebサービスをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「データベースWebサービスのアセンブル」を参照してください。
J2EE Webサービス・クライアントをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「J2EE Webサービス・クライアントのアセンブル」を参照してください。
J2SE Webサービス・クライアントをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「J2SE Webサービス・クライアントのアセンブル」を参照してください。
WebServicesAssemblerコマンドを使用してWebサービス・アーティファクトをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「WebServicesAssemblerの使用方法」を参照してください。
Webサービス管理構成を含むoracle-webservices.xml
デプロイメント・ディスクリプタの内容については、『Oracle Application Server Web Services開発者ガイド』の「Webサービスのパッケージ化およびデプロイ」を参照してください。