分散 nonce キャッシュ
WebSphere® Application Server の以前のリリースでは、nonce は ローカルにキャッシュされました。WebSphere Application Server バージョン 6 以降では分散 nonce キャッシングを使用します。分散 nonce キャッシュにより、WebSphere Application Server クラスターのサーバー間で nonce データを複製できるようになりました。
nonce エレメントが SOAP ヘッダーにあれば、すべての nonce 値は、クラスター内のサーバーによってキャッシュされます。 分散 nonce キャッシュが使用可能になっていると、キャッシュされた nonce 値は同じクラスター内の別のサーバーにコピーされます。 次に、同じ nonce 値を持つメッセージが他のサーバー (の 1 つ) に送信されると、そのメッセージは拒否されます。 受信された nonce キャッシュ値は、同じ複製ドメインを持つクラスター内の他のサーバー間で、プッシュでキャッシュされ、複製されます。 複製は、処理外の呼び出しであり、場合によってはリモート呼び出しになります。 そのため、クラスター内のキャッシュの内容が更新される場合は、遅延が生じます。
例えば、クラスター C にアプリケーション・サーバー A とアプリケーション・サーバー B があるとします。
- SOAP クライアントが nonce abc を持つメッセージをアプリケーション・サーバー A に送信します。
- サーバーはこの値をキャッシュし、もう 1 つのアプリケーション・サーバー B にそれをプッシュします。
- クライアントが nonce abc を持つメッセージを一定時間後にアプリケーション・サーバー B
に送信すると、そのメッセージは拒否され、アプリケーション・サーバー
B が、指定した時間内に同じ値を持つ nonce を受信すると、アプリケーション・サーバー
B から SoapSecurityException がスローされます。
詳しくは、トークン生成プログラム構成の設定の nonce キャッシュ・タイムアウト、nonce 最大経過時間、および nonce クロック・スキューを説明している情報を参照してください。
- クライアントが別の nonce 値 xyz を持つメッセージを送信すると、メッセージは受け入れられ、その値はアプリケーション・サーバー B によってキャッシュされて、同じクラスター内の別のアプリケーション・サーバーにコピーされます。
重要: 分散 nonce キャッシング・フィーチャーは、WebSphere Application
Server データ複製サービス (DRS) を使用します。ローカル・キャッシュ内のデータは、
同じ複製ドメイン内の他のサーバー内のキャッシュにプッシュされます。
複製は、処理外の呼び出しであり、場合によってはリモート呼び出しになります。
そのため、クラスター内の各アプリケーション・サーバー内のキャッシュの内容が更新されている間に、
複製に遅延が生じる可能性があります。
この遅延は、ネットワーク・トラフィック、ネットワーク・ワークロード、
マシン・ワークロードなどが原因となります。