Web メッセージング・サービスは WebSphere® Application Server V6.1.x 以降で、製品の一部として提供されているサービス統合バスを使用して、Bayeaux クライアントのサポートに必要な基本的なパブリッシュ/サブスクライブ機能を提供します。Bayeaux のパブリッシャーおよびサブスクライバーがどのようにサービス統合バスと対話するかを決定するためには、 Bayeaux 機能を提供するアプリケーションをデプロイする際にいくつかの構成パラメーターを指定する必要があります。
Bayeaux サブスクリプション・チャネルの概念は、関連グループ (例えば、/sports/football または /weather) へのイベントの分類を可能にするという意味で、サービス統合バスのトピックと同等です。 サービス統合バスでは、トピックは、 プロデューサーおよびコンシューマーが接続しているトピック・スペース宛先内に 存在します。1 つのトピック・スペースにあるトピックは、別のトピック・スペースに存在するトピックからは、たとえ同じ名前であっても完全に独立しています。 このため、Web メッセージング・サービスの構成の一部では、Bayeaux アプリケーションで使用されるサービス統合バスのトピック・スペースをアプリケーション開発者が指定できるようになっています。
さらに、サービス統合バスのトピック・スペースにパブリッシュされるイベント (メッセージ) には、バス内でメッセージがどのように処理されるかを決定する信頼性が適用されています。 これには、メッセージング・インフラストラクチャーによってメッセージが破棄できる条件が含まれています。 例えば、作業負荷が高いためにサーバーのリソースが制限されるようになった場合に、 メッセージが破棄されることを許容するシナリオもあれば、 サーバーに過負荷がかかるリスクを犯してもメッセージを保持しようとする シナリオもあります。
ワークロード管理やセキュリティーのような概念を含む、拡張シナリオを構成する際には、サービス統合バスに対するそうした条件の影響を考慮する必要もあります。 これらの概念をそれぞれ、以下に詳しく説明します。
Bayeaux アプリケーションがサービス統合バスと対話する方法を構成するために、次のオプションが使用可能です。
Web メッセージングの操作にはサービス統合バスが必要です。クライアントは、単一の着信 URI により単一のサービス統合バスにのみ接続できます。複数バスへの接続は、別の Web メッセージング構成定義を作成し、別のバス名を指定することによりのみ可能ですが、クライアントは別の URI を使用して接続し、複数の接続を使用する必要があります。Ajax クライアントを使用する場合、単一の Web ページ上にある単一サーバーに対して 1 つの Bayeux 接続を確立することだけが可能です。ページごとにそれぞれ異なる URI を指定し、異なるバスに接続する必要があります。
名前: | busName |
---|---|
必須またはオプション: | 必須 |
データ型: | ストリング |
サポートされる値: | 任意のサービス統合バスの名前 |
デフォルト値: | デフォルトなし |
説明: | 着信 Web メッセージング・クライアントがパブリッシュ操作またはサブスクライブ操作に使用するサービス統合バス。 |
ほとんどのシナリオでは、Bayeaux アプリケーションは単一のサービス統合バスのトピック・スペースからメッセージを消費、または作成する必要があります。 この宛先プロパティーによってアプリケーション開発者は、サービス統合バスとのすべての対話に使用されるトピック・スペースを指定することができます。
名前: | destination |
---|---|
必須またはオプション: | オプション |
データ型: | ストリング |
サポートされる値: | 任意のサービス統合バスのトピック・スペースの名前 |
デフォルト値: | Default.Topic.Space |
説明: | これは、サービス統合バスの トピック・スペースで、アプリケーションはここからメッセージを消費し、 ここにメッセージを作成します。 宛先は、実際のトピック・スペースとして指定することも、トピック・スペースの別名 (別名宛先を参照) として指定することもできます。別名を使用することにより、アプリケーションをトピック・スペースの実際の名前と分離することができます。 このプロパティーを使用して Bayeaux アプリケーションで使用されるトピック・スペースを指名する場合、 トピック・スペース内のトピックの名前は、Bayeaux サブスクリプション・チャネル名から 先頭のスラッシュを除いたものになります。例えば、 「/sports/football」というチャネル名がサービス統合バスのトピックにマップされると、 「sports/football」になります。 どのトピック・スペースを使用するかをアプリケーション開発者が気にしない場合は、このプロパティーを省略してデフォルトのトピック・スペースを使用します。 次のセクションで説明するように、このプロパティーは multipleDestinations プロパティーによってオーバーライドされますので、気をつけてください。 |
拡張シナリオでは、複数のサービス統合バスのトピック・スペースで Bayeaux アプリケーションが作成や消費を行うことが必要になる場合があります。例えば、ポートレット環境の一部として幅広い異種のソースからデータを表示するような場合です。 この場合、アプリケーション開発者は multipleDestinations プロパティーを使用可能にします。このプロパティーは destination プロパティーをオーバーライドし、開発者が必要なトピック・スペース (または別名) 宛先の名前を Bayeaux サブスクリプション・チャネル名の一部として指定できるようにします。
名前: | multipleDestinations |
---|---|
必須またはオプション: | オプション |
データ型: | ブール |
サポートされる値: | true または false |
デフォルト値: | false |
説明: | 代替 Bayeaux サブスクリプション・チャネル構文を使用可能にします。この構文は、対象のサービス統合バスのトピック・スペースの名前を、チャネル名の一部として指定することをサポートします。 使用可能にした場合、このプロパティーによって、最初のチャネル・セグメントを使用してトピック・スペースの名前を指定するようになります。 例えば、トピック・スペース「OlympicResults」のトピック「track/relay4x100」を 公開するには、アプリケーションで次の Bayeaux サブスクリプション・チャネルを 指定します。 /OlympicResults/track/relay4x100 multipleDestinations が使用可能になっていると、 「destination」プロパティーの値は無視されます。 |
サービス統合バスのトピック・スペースにパブリッシュされるイベント (メッセージ) には、バス内でメッセージがどのように処理されるかを決定する「信頼性」が適用されています。 これには、メッセージング・インフラストラクチャーによってメッセージが破棄できる条件が含まれています。 例えば作業負荷が高いために サーバーのリソースが制限されるようになった場合に、 メッセージが破棄されることが許容するシナリオもあれば、 サーバーに過負荷がかかるリスクを犯してもメッセージを保持しようとする シナリオもあります。
名前: | reliability |
---|---|
必須またはオプション: | オプション |
データ型: | ストリング |
サポートされる値: |
|
デフォルト値: | ExpressNonPersistent |
説明: | Bayeaux アプリケーションによってパブリッシュされたイベント (メッセージ) がサービス統合バスに送信される信頼性のレベルを指定します。 これらのオプションの振る舞いについて詳しくは、次のメッセージ信頼性レベルのセクションを参照してください。 非永続サブスクリプションの場合、 サーバーの再始動後にメッセージを使用することはできません。サブスクリプションが もはや存在していないからです。これは、2 つのパーシスタント信頼性レベルのうち 1 つを選択した場合のメリットに制限があることを意味します。 たいていの場合、非パーシスタントの値のいずれかが使用されます。 |
Bayeux プロトコルはサービス統合バスに対するクライアントのパブリッシュをサポートしています。開発するアプリケーションによっては、メッセージがサーバーから Web メッセージング・クライアントに流れるだけは不十分な場合があります。例えば、クライアントに対し、Web アプリケーション (サーブレット) を使用してパブリッシュをさせたり、サービス統合バスにメッセージをパブリッシュする前のメッセージ内容の検査を、より厳しく制御するようにしたい場合があります。 デフォルトでは、クライアントは Bayeux プロトコルを使用してパブリッシュできません。
名前: | clientCanPublish |
---|---|
必須またはオプション: | オプション |
データ型: | ブール |
サポートされる値: | true または false |
デフォルト値: | false |
説明: | Web メッセージング・クライアントがパブリッシュを許可されているかどうかを示します。デフォルトでは、クライアントはパブリッシュできません。 クライアントのパブリッシュをサポートするには、clientCanPublish を明示的に true に設定する必要があります。 |
バス・セキュリティーが有効な場合にサービス統合バスに接続するためには、着信 Web メッセージング・クライアントが認証され、許可される必要があります。詳しくは、Web メッセージング機能付きアプリケーションの保護を参照してください。
名前: | authType |
---|---|
必須またはオプション: | オプション |
データ型: | ストリング |
サポートされる値: |
|
デフォルト値: | none |
説明: | バス・セキュリティーが有効な場合、着信 Web クライアントには、サービス統合バスに対する 許可を得るための ID が必要です。この構成パラメーターを指定して、 サービス統合バスへのログインに必要な認証情報の取得先を 判別できるようにします。
いずれのオプションもクレデンシャルの取得に失敗した場合は、 サービス統合バスへのログインは、ユーザー ID とパスワードが空白のままで 実行されます。サービス統合バスのセキュリティーが有効な場合、 Web クライアントは Web メッセージング操作を行うために接続することができません。 |
useDurable 構成プロパティーが true に設定されていると、Bayeux サブスクライブ要求に対して、 サービス統合バスへの永続サブスクリプションが使用されます。 永続サブスクリプションを使用すると、サブスクライバーが非アクティブの間にトピック上に公開されたメッセージを 保存できます。
名前: | useDurable |
---|---|
必須またはオプション: | オプション |
データ型: | ブール |
サポートされる値: | true または false |
デフォルト値: | false |
説明: | Web メッセージングで永続サブスクリプションを使用すると、Web クライアントのサービス統合バスへのサブスクリプションが非アクティブになっても、Web クライアントは短時間で操作を再開でき、メッセージも消失しません。サブスクリプションは、サーバーの障害、メッセージング・エンジンの障害、メッセージング・エンジンへの接続の失敗などの理由で非アクティブになることがあります。 Web メッセージング機能付きアプリケーションをクラスター環境で実行する場合は、フェイルオーバーが適切に行われるように、useDurable および useDistributedSession 構成プロパティーを true に設定することを検討してください。この両プロパティーを true に設定すると、Web メッセージング・クライアントが、あるサーバーから別のサーバーへフェイルオーバーして、永続サブスクリプションを再開することができます。 永続サブスクリプションを Web メッセージングで使用する場合、Web メッセージング・クライアントは、それぞれ最初に接続したメッセージング・エンジンをその後も使用します。Web メッセージング・クライアントがトピックをアンサブスクライブする場合、それが特定の Bayeux アンサブスクライブ操作または Bayeux 切断操作の結果であっても、Bayeux セッションの有効期限が切れた結果であっても、アンサブスクライブ操作を完了するためには、メッセージング・エンジンが稼働していなければなりません。Web メッセージング・サービスは、永続サブスクリプション情報を追跡して、可能であればその有効期限を終了させますが、それができない場合もあります。その場合には、管理プロシージャーを介して永続サブスクリプションを手動で削除する必要があります。 Web メッセージング・クライアントの永続サブスクリプションを再開できるまでには、多くの場合、しばらく時間がかかります。これらの永続サブスクリプションを復元するために、しばらくしてから再接続するように Web メッセージング・クライアントに指示するには、Bayeux 再接続試行通知メカニズムが使用されます。再接続の間隔は、reinitInterval 構成プロパティーで制御されます。再接続を試行する最大回数は、MaxReinitDuration 構成プロパティーで制御されます。 永続サブスクリプションを使用する場合は余分なオーバーヘッドが発生するので、このプロパティーを設定する前には十分な計画を立てる必要があります。詳しくは、サービス統合バスの資料を参照してください。 |
autoReinit 構成プロパティーが true に設定されている場合にサービス統合バスとの通信に問題が発生すると、Web メッセージング・クライアントは、サービス統合バスに再接続してすべてのトピックに再サブスクライブします。
名前: | autoReinit |
---|---|
必須またはオプション: | オプション |
データ型: | ブール |
サポートされる値: | true または false |
デフォルト値: | false |
説明: | Web メッセージング・クライアントがサービス統合バスと通信しているときにエラーが発生した場合は、autoReinit プロパティーを設定して、サービス統合バスへの接続を自動的に再初期化し、以前にサブスクライブしていたすべてのトピックに再サブスクライブしてください。サブスクリプションの損失から再初期化までの間にトピックに公開されたメッセージは、Web メッセージング・クライアントに届きません。 useDurable プロパティーと autoReinit プロパティーの両方が true に設定されている場合は、useDurable プロパティーが有効になります。 Web メッセージング機能付きアプリケーションをクラスターで実行する場合は、autoReinit および useDistributedSession 構成プロパティーを true に設定するようにしてください。この両プロパティーを true に設定すると、サーバーに障害が発生した場合に Web メッセージング・クライアントが操作を再開することができます。Web メッセージング操作は別のサーバーで再開されます。autoReinit プロパティーと useDurable プロパティーがどちらも false に設定されている場合は、クライアントに Bayeux 再ハンドシェーク通知が送信されます。すなわち、クライアントは新規 Bayeux セッションの再ハンドシェークと初期化を行う必要があります。 Web メッセージング・クライアントの接続およびサブスクリプションが再初期化されるまでには、 多くの場合、しばらく時間がかかります。クライアントのサブスクリプションを 再初期化するために、しばらくしてから再接続するように Web メッセージング・クライアントに指示するには、 Bayeux 再接続試行通知メカニズムが使用されます。この再接続の間隔は、 reinitInterval 構成プロパティーで制御されます。再接続を試行する最大回数は、MaxReinitDuration 構成プロパティーで制御されます。 |
autoReinit 構成プロパティーまたは useDurable 構成プロパティーのどちらかが true で、サービス統合バスとの通信中にエラーが発生する場合、Web メッセージング・クライアントには、定期的に再接続して、reinitInterval 構成プロパティーで指定した操作を再開するようにという指示が出されます。
名前: | reinitInterval |
---|---|
必須またはオプション: | オプション |
データ型: | 整数 |
サポートされる値: | 1 から 300 までの秒数で指定される値 |
デフォルト値: | 10 |
説明: | Web メッセージング・クライアントがサービス統合バスと通信しているときにエラーが発生した場合、Web メッセージング・クライアントがサービス統合バスとの通信を再開できるまでに少し時間がかかることがあります。この場合には、Bayeux の一定間隔での再接続試行通知がクライアントに送信され、reinitInterval 構成プロパティーで指定された間隔で再接続するように指示します。. Web メッセージング・クライアントは、maxReinitDuration 構成プロパティーで指定した最大回数まで、再接続を試みます。 |
maxReinitDuration 構成プロパティーは、Web メッセージング・クライアントがサービス統合バスによる操作再開を試行する最大回数を指定します。
名前: | maxReinitDuration |
---|---|
必須またはオプション: | オプション |
データ型: | 整数 |
サポートされる値: | 10 から 600 までの秒数で指定される値 |
デフォルト値: | 60 |
説明: | autoReinit 構成プロパティーまたは useDurable 構成プロパティーが true に設定されている場合、 Web メッセージング・クライアントは、サービス統合バスによる操作を再開しようとします。場合によっては、タイムリーに操作を再開できないことがあります。maxReinitDuration で指定した時間が経過したら、Web メッセージング・クライアントはサービス統合バスによる操作を再開しようとしなくなり、Bayeux セッションの有効期限が切れます。 |