この付録では、信頼性スキーマoracle-webservices-reliability-10_0.xsd
で定義されるOracle Application Server Web Servicesの信頼性構成要素を説明しています。このスキーマは、oc4j-schemas.jar
ファイルにあります。
OC4J_HOME
\j2ee\home\lib\oc4j-schemas.jar
OC4J_HOME
は、Oracle Containers for J2EE(OC4J)をインストールしたディレクトリを表します。
通常、信頼性要素は大きなWebサービス管理構成の部分として使用します。信頼できるメッセージング機能を有効化するには、サーバー・サイドのWebサービスおよびクライアントにその機能を構成する必要があります。構成は、アセンブルしてWebサービスまたはクライアントに渡されるXML構成ファイルの部分です。
サーバーでは、構成はoracle-webservices.xml
デプロイメント・ディスクリプタ・ファイルに保存されています。このファイルは、oracle-webservices-10_0.xsd
スキーマに基づいています。
クライアントでは、構成は<
generated_name
>_Stub.xml
デプロイメント・ディスクリプタ・ファイルに保存されています。このファイルは、oracle-webservices-client-10_0.xsd
スキーマに基づいています。
必須とされる特定の信頼性プロパティ(重複の排除や保証付き配信など)がサーバー・サイドにある場合は、クライアントでもそれらのプロパティを指定する必要があります。
信頼性要素は、ポート・レベルおよび操作レベルで設定できます。
Webサービスおよびクライアントへの信頼性のアセンブルの詳細は、第5章「Webサービスの信頼性の確保」で説明されています。
次に、oracle-webservices-reliability-10_0.xsd
スキーマ・ファイルで信頼性に定義される信頼性要素の要素階層の概要を示します。異なる要素がポートおよび操作レベルで表示されます。
注意: oracle-webservices-reliability-10_0.xsd スキーマ・ファイルは、信頼性要素を順序として定義します。信頼性構成では、信頼性要素は順番に出現する必要があります。 |
サーバー・サイドのポート・レベル階層
<reliability> <repository> <ack-interval> <order-interval> <cleanup-interval> <ack-limit> <max-age>
サーバー・サイドの操作レベル階層
<reliability> <duplication-elimination-required> <guaranteed-delivery-required>
クライアント・サイドのポート・レベル階層
<reliability> <repository> <retry-interval> <retry-limit> <poll-interval> <cleanup-interval> <max-age> <standalone-listener-port> <async-poll-reply-to-url>
クライアント・サイドの操作レベル階層
<reliability> <guaranteed-delivery> <duplicate-elimination> <group-max-idle-time> <group-expiry-time> <expiry> <reply-pattern> <reply-to-url>
この項では、Webサービス管理構成の部分として指定される信頼性要素をアルファベット順に並べます。信頼性要素は、サーバーおよびクライアントに対して、ポート・レベルおよび操作レベルで構成できます。階層の詳細は、前述の項、「信頼性構成の階層」を参照してください。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: サーバー・サイド
レベル: ポート・レベル
非同期に処理されたメッセージに対する承認または障害の送信が試行される間隔が秒単位で指定されます。デフォルト値は60秒です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: サーバー・サイド
レベル: ポート・レベル
value
属性により、メッセージ承認の試行回数に制限が指定されます。デフォルト値は-1です。これは制限がないこと、または承認の試行回数が無制限であることを示します。値が0の場合は、承認が試行されないことを意味します。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
レベル: ポート・レベル
value
属性により、非同期ポーリングを実行する場合に、承認および障害が送信されるURLが指定されます。通常、このURLは、リスナーがリスニングするポートとクライアントのホスト名です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: サーバーおよびクライアント・サイド
レベル: ポート・レベル
サーバー:
value
属性により、期限切れまたは無効なメッセージのストアの削除が試行される間隔が秒単位で指定されます。デフォルトは3600秒(60分)です。
クライアント:
value
属性により、期限切れまたは無効なメッセージのストアの削除が試行される間隔が秒単位で指定されます。デフォルトは3600秒(60分)です。
親要素: <reliability>
子要素: なし
必須かどうか: 必須
サイド: クライアント・サイド
レベル: 操作レベル
enabled
属性がtrue
の場合、メッセージの重複の排除が有効化されます。デフォルト値はtrue
です。
親要素: <reliability>
子要素: なし
必須かどうか: 必須
サイド: サーバー・サイド
レベル: 操作レベル
true
に設定されている場合、信頼できないクライアントはこの操作を起動できないことを示します。具体的には、重複の排除のSOAPヘッダーがないメッセージは拒否されます。デフォルトはfalse
です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
レベル: 操作レベル
value
属性により、グループ内の1つのメッセージの有効期限が指定されます。たとえば、メッセージが有効期限よりも長い期間に渡って承認されていない場合は、メッセージ配信はそれ以上試行されません。クライアントには障害が通知されます。
<group-expiry-time>
に値が設定されている場合、その値は<expiry>
よりも大きい値である必要があります。デフォルトは3600秒(60分)です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
レベル: 操作レベル
value
属性により、グループ内のすべてのメッセージに対して有効期限が秒単位で指定されます。<group-expiry-time>
の値は、<expiry>
に設定されている値よりも大きい必要があります。デフォルト値は84600秒(1日)です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
レベル: 操作レベル
value
属性により、一連のメッセージに対して最大のアイドル時間が秒単位で指定されます。この要素は必須ではありません。
親要素: <reliability>
子要素: なし
必須かどうか: 必須
サイド: クライアント・サイド
レベル: 操作レベル
enabled
属性がtrue
の場合、メッセージの保証付き配信が有効化されます。デフォルト値はtrue
です。
親要素: <reliability>
子要素: なし
必須かどうか: 必須
サイド: サーバー・サイド
レベル: 操作レベル
true
に設定されている場合、信頼できないクライアントはこの操作を起動できないことを示します。具体的には、保証付き配信のSOAPヘッダーがないメッセージは拒否されます。デフォルトはfalse
です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: サーバーおよびクライアント・サイド
レベル: ポート・レベル
サーバー:
value
属性により、メッセージが保存される最大時間が指定されます。デフォルト値は86400秒(1日)です。
クライアント:
value
属性により、メッセージが保存される最大時間が指定されます。デフォルト値は86400秒(1日)です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: サーバー・サイド
レベル: ポート・レベル
value
属性により、順序付けされていないメッセージが処理される間隔が秒単位で指定されます。デフォルトは60秒です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
レベル: ポート・レベル
value
属性により、承認を受信していない信頼できるメッセージのために、ポーリング・メッセージがサーバーに送信される間隔が秒単位で指定されます。デフォルト値は60秒です。
親要素: 信頼性構成のルート要素
子要素:
サーバー、ポート・レベル: <ack-interval>、<ack-limit>、<cleanup-interval>、<max-age>、<order-interval>、<repository>
サーバー、操作レベル: <duplication-elimination-required>、<guaranteed-delivery-required>
クライアント、ポート・レベル: <async-poll-reply-to-url>、<cleanup-interval>、<max-age>、<poll-interval>、<repository>、<retry-interval>、<retry-limit>、<standalone-listener-port>
クライアント、操作レベル: <duplicate-elimination>、<expiry>、<group-expiry-time>、<group-max-idle-time>、<guaranteed-delivery>、<reply-pattern>、<reply-to-url>
必須かどうか: 信頼性構成を区切る場合、必須。
サイド: サーバーおよびクライアント・サイド
この要素は信頼性構成の開始および終了を区切ります。
親要素: <reliability>
子要素: なし
必須かどうか: 必須
サイド: クライアント・サイド
value
属性は、Callback
(非同期承認/障害)、Response
(同期承認/障害)またはPolling
(承認または障害のポーリング)のいずれかです。デフォルト値はPolling
です。
Callback
を使用する場合は、リスナーを構成する必要があります。これは、J2SEクライアントではできません。
<reply-pattern>
要素を設定する必要があるのは、<guaranteed-delivery>
がtrue
の場合のみです。<guaranteed-delivery>を参照してください。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
value
属性により、非同期承認が必要なメッセージに対して承認および障害が送信されるURLが指定されます。通常、このURLは、リスナーがリスニングするポートとクライアントのホスト名です。
<reply-to-url>
要素を設定する必要があるのは、<guaranteed-delivery>
がtrue
の場合のみです。<guaranteed-delivery>を参照してください。
親要素: <reliability>
子要素: なし
必須かどうか: 必須
サイド: サーバーおよびクライアント・サイド
サーバー:
サーバーがメッセージの保存に使用するストアの種類が指定されます。
メモリー・ストア(memory
)の場合、name
は必須属性です。その名前のストアがサーバーの別のアプリケーションに構成されている場合は、そのストアが使用されます。それ以外の場合は、新しいストアが構成されます。
データベース・ストア(jdbc
)の場合、サーバーにデータソースが構成され、その場所がjndiLocation
で指定されている必要があります。
表C-1 <repository>属性、サーバー・サイド
名前 | 説明 |
---|---|
jndiLocation |
値: string デフォルト: n/a( サーバーのデータソースのJNDI名を指定します。メッセージをデータベースに保存する場合にのみ必要です。 |
name |
値: string デフォルト: n/a リポジトリの名前を指定する |
type |
値: デフォルト: 構成するストアの種類を決定します。 |
クライアント:
メッセージの保存に使用するストアの種類を説明します。
表C-2 <repository>属性、クライアント・サイド
名前 | 説明 |
---|---|
connection-driver |
値: string デフォルト: n/a このデータソースのJDBCドライバ・クラス名で、 |
jndiLocation |
値: string デフォルト: n/a サーバーのデータソースのJNDI名を指定します。メッセージをデータベースに保存する場合にのみ必要です。 |
name |
値: string デフォルト: n/a リポジトリの名前を指定する |
password |
値: string デフォルト: n/a リポジトリのユーザーのパスワードを指定します。 |
type |
値: デフォルト: 構成するストアの種類を決定します。
|
url |
値: string デフォルト: n/a データベース接続のURLを指定します。 |
username |
値: string デフォルト: n/a リポジトリにアクセス可能なユーザー名を指定します。 |
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
value
属性により、承認または障害を受信していないメッセージの再送信が試行される間隔が指定されます。デフォルト値は60秒です。
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
value
属性により、メッセージが再試行される回数に制限が指定されます。デフォルト値は10です。-1は制限がないこと、または再試行回数が無制限であることを示します。
注意: value 属性が0に設定されている場合、クライアントはメッセージの再送信を試行しません。これにより、保証付き配信のサービスのクオリティは事実上無効になります。value 属性が0に設定されている場合、最適化として、信頼性スタックによりデータベース内にメッセージが保持されます。メッセージが宛先に到達し承認が戻されるという保証を作成できないため、これらのメッセージに対するポーリングは実行されません。 |
親要素: <reliability>
子要素: なし
必須かどうか: オプション
サイド: クライアント・サイド
value
属性により、承認または障害を受信するためにリスナーが起動されるポートが指定されます。これは、承認を送信するインフラストラクチャがないJ2SEクライアントに使用されます。クライアントがJ2EEアプリケーションに存在する場合は、指定されたサーブレットが使用されます。