Web メッセージング・サービスは、パブリッシュ・サブスクライブ通信用に Bayeux プロトコルを使用します。Bayeux のロング・ポーリングのトランスポート・オプションのみがサポートされています。Web メッセージング構成ファイルには、Bayeux 通信のいくつかの特徴が構成されています。これらの構成オプションを以下にリストします。
Bayeux プロトコルでは、サーバーはメッセージが使用可能になるまで HTTP 要求を完了しません。longPollTimeout 構成オプションは、サーバーが要求を完了する前に、どれだけの間要求をオープンにしておくかを指定します。要求が完了すると、Bayeux クライアントは clientPollInterval が設定されていない限り、直ちにサーバーに再接続されます。これらの値を設定する際には注意が必要です。Bayeux の接続要求が繰り返されることによるサーバーでのフラッディングを回避するため、longPollTimeout が 0 に設定されている場合は、clientPollInterval の値を妥当な値に設定する必要があります。
名前: | longPollTimeout |
---|---|
必須またはオプション: | オプション |
データ型: | 整数 |
有効な値: | 値は、0 から 300 までの秒数で指定します |
デフォルト値: | 30 秒 |
説明: | サーバーがメッセージを待つために、どれだけの間 HTTP 要求をオープンにしておくかを示します。 ロング・ポーリングでは、その名のとおり、適当な時間をかけて要求を完了する 必要があります。クライアントは一般に、要求がクローズすると直ちに再接続します。 |
clientPollInterval は、Bayeux の接続要求から次の接続要求の間にどれだけ長くクライアントが待機するかを指定します。 clientPollInterval が設定されている場合は、Bayeux の通知メカニズムを使用して、クライアントが再接続をどのくらい頻繁に行うかについて、クライアントに指示します。 longPollTimeout をゼロに、clientPollInterval を正の値に設定すると、サーバーへの接続に従来のポーリングを使用することになります。 開発中のアプリケーションのタイプによっては、従来のポーリングでサーバーに接続する方が望ましい場合があります。 従来のポーリングを構成すると、メッセージを配信するためのサービス統合バスへの接続が簡単になります。
名前: | clientPollInterval |
---|---|
必須またはオプション: | オプション |
データ型: | 整数 |
有効な値: | 0 以上の値 (秒数)。値は bayeuxSessionTimeout 未満である必要があります。 |
デフォルト値: | 0 |
説明: | 指定した間隔で再接続するよう、クライアントに指示します。Bayeux の再接続間隔通知メカニズムを使用して、クライアントに対して再接続する頻度を指示します。 この機能が動作するためには、このクライアント接続が Bayeux 再接続間隔通知メカニズムをサポートしている必要があります。 また、クライアントは独自の間隔で接続することもできます。 |
bayeuxSessionTimeout は、サーバーがクライアントの再接続をどのくらい長く待ってから、クライアントのセッション情報を破棄するかを示します。クライアントは Bayeux 切断操作を明示的に呼び出しますが、クライアントが切断を呼び出すという保証はありません。90 秒というデフォルト値は、Bayeux のセッションが短期型であることを反映しています。この値は、クライアントが正常に再接続し、メッセージの受信を確実に続けられるために、clientPollInterval よりも十分に大きく設定する必要があります。
名前: | bayeuxSessionTimeout |
---|---|
必須またはオプション: | オプション |
データ型: | 整数 |
有効な値: | 10 よりも大きい値 (秒数)。 |
デフォルト値: | 90 秒 |
説明: | サーバーが、クライアントの情報を破棄する前に、クライアントの再接続をどのぐらい長く待つかを示します。Bayeux セッションの有効期限が切れた後にクライアントが同じクライアント ID で再接続した場合は、新しい Bayeux セッションを開始するために Bayeux の再ハンドシェーク通知メカニズムが使用されます。 |
useDistributedSession は、Web メッセージング・セッション情報をクラスターの全メンバーで共有する場合に使用します。useDistributedSession プロパティーを true に設定し、autoReinit または useDurable 構成プロパティーを true に設定していると、Web メッセージング操作を別のサーバーで再開することができます。
名前: | useDistributedSession |
---|---|
必須またはオプション: | オプション |
データ型: | ブール |
有効な値: | true または false |
デフォルト値: | false |
説明: | Web メッセージング・セッション情報をクラスターのすべてのメンバーで共有するように指定します。サーバーがフェイルオーバーしたり、セッション・アフィニティーに障害が発生したりした場合は、新しいサーバーで Web メッセージング操作を再開することができます。useDurable 構成プロパティーを true に設定して分散セッションを使用すると、サブスクリプションを新規サーバー上で再開でき、メッセージの損失を最小限にとどめることができます。autoReinit 構成プロパティーを true に設定して分散セッションを使用すると、サブスクリプションは再初期化されますが、サブスクリプションの損失から再初期化までの間にメッセージの損失が生じる可能性があります。クラスター・メンバー全員で共有するセッション情報とは、サブスクライブされるトピックのリスト、セッション ID、Bayeux セッション・プロパティー、サービス統合バス・プロパティーなどです。 |