Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(コンテナ共通機能)

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k80s繝ェ繝シ繝舌う繧ケOLD繝繝九Β繧ク繝」繧ア繝繝 80's1980蟷エ莉」繧「繝。繝ェ繧ォ蜿、逹繧「繝。繧ォ繧ク蜿、逹繝。繝ウ繧コ蜿、逹繝ヲ繝シ繧コ繝鵜繧オ繧、繧コG繧ク繝」繝ウLEVISUSA陬ス繧「繝。繝ェ繧ォ陬ス 繝励Ξ繧シ繝ウ繝 繧ョ繝輔ヨ 陦」陬bgyIY6vf7m2197126Theo 繝繧ェlamy 63 豎壹l繧繝繝。繝シ繧ク縺梧ー励↓縺ェ繧峨↑縺縲√∪縺溘ッ縺ゅ▲縺ヲ繧ら岼遶九◆縺ェ縺濶ッ蜩「sed蜩√VsxBdeWrCo繧ウ繝ウ繧サ繝励ヤ 繧ケ繝昴シ繝 繝ャ繝繧」繝シ繧ケ 繧ォ繧ク繝・繧「繝ォ繝代Φ繝 繝懊ヨ繝繧ケ Chicago Bears Concepts Sport Women's Knit Capri Pants Charcoalm0wN8vOn繝繝ウ繝偵Ν 繝懊せ繝医Φ繝舌ャ繧ー 繝。繝ウ繧コ DunhillSpzUMV

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

Pub/Subメッセージングモデルは,パブリッシュ・サブスクライブ(Publish-Subscribe)方式でメッセージを送受信するためのモデルです。

<この項の構成>
繝ヲ繝翫う繝繝繝峨い繝ュ繝シ繧コUNITED ARROWS 繧ウ繝シ繝 繧「繧ヲ繧ソ繝シ 繧ケ繧ソ繝ウ繝 逋ス繝帙Ρ繧、繝 繧オ繧、繧コ L USED蜿、逹doCBex
GERVE繧ク繧ァ繝ォ繝吶が繝ォ繧ャ繝ャ繝シ繧ケ繝弱シ繧ケ繝ェ繝√Η繝九ャ繧ッ 85161TPXiOkZwu
繧オ繝九シ繧ケ繝昴シ繝 SUNNY SPORTS 繧、繝シ繧ク繝シ繝代Φ繝 繧オ繧、繧コM 繝。繝ウ繧コ TRAIL 3D PANTS 繝医Ξ繧、繝ォ繝代Φ繝 繝悶Λ繝ウMVpqUzSG
シォシ托シ假シキシァ 繝上シ繝 繝繧、繝、繝「繝ウ繝峨ロ繝繧ッ繝ャ繧ケP8ZOXNn0wk

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

Pub/Subメッセージングモデルでは,メッセージを作成して送信する送信側のクライアント(プロデューサー)をパブリッシャーといいます。また,メッセージを受信する側のクライアント(コンシューマー)をサブスクライバーといいます。

パブリッシャーから送信されたメッセージは,トピックという送信先に登録されます。トピックに登録されたメッセージは,そのトピックに対して配信を申し込んでいた一つまたは複数のサブスクライバーに配信されます。

Pub/Subメッセージングモデルでのメッセージの流れを次の図に示します。

Alegria 繧「繝ャ繧ー繝ェ繧「 繧キ繝・繝シ繧コ 荳闊ャ Debra Professional29IEDHW 図7-6 Pub/Subメッセージングモデルでのメッセージの流れ

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

メッセージは,パブリッシャーから送信され,トピックに登録されます。図の場合,トピック1にはサブスクライバー1,トピック2にはサブスクライバー2とサブスクライバー3が登録されています。このとき,トピック1に登録されたメッセージ1とメッセージ2はサブスクライバー1に配信されます。トピック2に登録されたメッセージ3はサブスクライバー2とサブスクライバー3に配信されます。

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

Pub/Subメッセージングモデルの特徴を次に示します。

メッセージの送信〜処理実行までの特徴
  • 一つまたは複数のパブリッシャーから,メッセージをトピックに登録できます。
  • 一つまたは複数のサブスクライバーが,トピックからメッセージを取り出して処理できます。
  • サブスクライバーは,配信を申し込んだトピックに登録されたすべてのメッセージについて,受信して処理できます。ただし,メッセージセレクターで設定した基準に該当しないメッセージ,または受信する前にメッセージの有効期限が過ぎたメッセージについては受信できません。
  • メッセージは,パブリッシャーが送信した順序でトピックに登録されます。ただし,サブスクライバーで処理される順序は,それぞれのメッセージの有効期限,優先順位,またはサブスクライバーで設定されたメッセージセレクターの内容によって決まります。
  • パブリッシャーとサブスクライバーが処理を実行するタイミングには依存性があります。トピックに登録されたメッセージは,メッセージが登録される前に開始されていたサブスクライバーだけに配信されます。
  • CLASSIC CELLULOIDMADE IN JAPANJINS 繧ク繝ウ繧コFKl1Jc 繝ゥ繝ォ繝輔Ο繝シ繝ャ繝ウ POLO JEANS CO 5繝昴こ繝繝 豼邏コ 繝繝九Β 繝代Φ繝逕キ諤ァ 繝。繝ウ繧コ 34 34蜿、逹 繧ク繝シ繝代Φcj5SAR4Lq3
  • サブスクライバーの属性に「NoLocal」を指定した場合,サブスクライバーが使用しているコネクションと同じコネクションで送信されたメッセージの受信を抑止できます。この属性のデフォルトは「false」です。

システムの特徴
  • パブリッシャーとサブスクライバーは動的に追加・削除できます。これによって,使用状況に応じてシステムを拡張,縮小できます。
  • Cosminexus JMSプロバイダとの接続で使用するコネクションは,複数のプロデューサーで共有できます。なお,コネクションを共有しているかどうかに関係なく,複数のプロデューサーから同じのトピックにメッセージを送信できます。
  • Cosminexus JMSプロバイダとの接続で使用するコネクションは,複数のサブスクライバーで共有できます。なお,コネクションを共有しているかどうかに関係なく,複数のサブスクライバーから同じトピックに接続できます。

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

トピックに登録されたメッセージは,メッセージ登録時に開始されていたサブスクライバーだけが受信できます。通常のサブスクライバーは,停止していた期間に登録されたメッセージは受信できません。

これに対して,サブスクライバーを永続化することで,停止していた期間に登録されたメッセージも受信できるようになります。永続化したサブスクライバーを永続化サブスクライバーといいます。

永続化サブスクライバーが登録されたトピックのメッセージは,次のどちらかの状態になるまで削除されません。

永続化サブスクライバーを利用する場合,そのサブスクライバーに固有の識別子と名称を登録します。登録した情報は,CJMSPブローカーによって保持されます。永続化サブスクライバーが停止しているときに登録されたメッセージは,登録した識別子および名称のサブスクライバーが再開されたときに,そのサブスクライバーに配信されます。

永続化サブスクライバーを利用した場合のメッセージの送受信の流れを次の図に示します。

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k 繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

図7-7 永続化サブスクライバーを利用した場合のメッセージの送受信の流れ

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

永続化サブスクライバーを利用した場合のメッセージの送受信の流れについて説明します。なお,説明の番号は図中の番号と対応しています。

  1. サブスクライバー1を永続化サブスクライバーとしてトピックに登録します。
    識別子(ClientID)は,「1」とします。
  2. パブリッシャー1が,メッセージ1をトピックに登録します。
  3. サブスクライバー1は,メッセージ1をトピックから受信します。
  4. サブスクライバー1を停止します。
    停止した状態になると,トピックに登録されたメッセージは受信できません。
  5. パブリッシャー2が,メッセージ2をトピックに登録します。サブスクライバー1は停止中のため,メッセージ2を受信できません。ただし,サブスクライバー1は永続化サブスクライバーとして登録されているため,このメッセージは登録された永続化サブスクライバーがメッセージを受信するまでトピックで保管されます。
  6. サブスクライバー2を永続化サブスクライバーとしてトピックに登録します。このとき,識別子(ClientID)を「1」として,サブスクライバーの名称はサブスクライバー1と同じ値にします。
    永続化サブスクライバーの情報を保持しているCJMSPブローカーは,識別子と名称からサブスクライバー2は登録済みの永続化サブスクライバーが再開したものと判断します。
  7. ALESSANDRA RICH Pumps 繝ャ繝繧」繝シ繧ケkiuTOPXZ
  8. トピックに保管されていたメッセージ2がサブスクライバー2に配信されます。

永続化サブスクライバーの指定を解除する場合は,次のどちらかの方法で解除してください。

cjmsicmd destroy durコマンドについては,マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cjmsicmd destroy dur(永続化サブスクライバーの破棄)」を参照してください。

繝上Φ繝峨Γ繧、繝 繧キ繝ォ繝舌シ繝舌ャ繧ッ繝ォ繝サ繧ソ繝シ繧ウ繧、繧コ 繧ェ繝シ繝舌Νテ励が繝シ繝舌Ν騾∵侭辟。譁吶す繝ォ繝舌シ繧「繧ッ繧サ繝サ繧キ繝ォ繝舌シ繧ク繝・繧ィ繝ェ繝シ繝サ繧キ繝ォ繝舌シ92OnX8wP0k

unsubscribeメソッドを使用すると,サブスクライバーのために保持されたトピックの状態を解除できます。ただし,このメソッドは,次のタイミングでは使用しないでください。

なお,確認応答モードが「CLIENT_ACKNOWLEDGE」のセッションによって永続化サブスクライバーが作成された場合に,メッセージ受信が確認されていない状態でunsubscribeメソッドが実行されたときには,メッセージは送信先に残ってしまいます。この状況を避けるため,unsubscribeメソッドを使用する場合,事前にcjmsicmd purge durコマンドを実行して,永続化サブスクライバーに関連づけられているすべてのメッセージを削除してください。

注意
一時的な送信先として作成したトピックに対して,永続化サブスクライバーは登録できません。作成しようとすると,例外がスローされます。

[目次][前へ][次へ]


[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.