Comments
Description
Transcript
接続性と提供機能の強化 目次 接続性の強化 提供機能の強化
接続性と提供機能の強化 目次 接続性の強化 SCAノードの提供 WSRRとの連携強化 Fileノードの拡張 SAPノードの拡張 IMSRequestノードの提供 提供機能の強化 PHPのサポート Sequenceノード-Resequenceノードの提供 PubSub機能の追加 その他 2 接続性の強化 3 SCAノードの提供 WebSphere Process Serverとの相互接続をサポート (V7から) WPS v6.2との相互接続をサポート WPSのサービス・コンポーネントからWMBに要求を送信 (インバウンド) (アウトバウンド) WMBのメッセージ・フローからWPSに同期または非同期要求を送信 新規SCAノードを提供 SCA Input/ SCA Replyノード Request ノード SCA AsyncRequest/Response ノード :インバウンド接続用 :同期アウトバウンド接続用 :非同期アウトバウンド接続用 SCA -Failure -Out -Failure -Out -Fault -Failure -Out -Failure -Out -Fault -Catch -Failure -Out 以下のバインディングをサポート MQ SOAP HTTP (SOAP1.1 JAX-RPCのみサポート) 応答メッセージの送信 WPS WMB インバウンド・メッセージの受信 4 SCAノードの提供 ブローカーSCA定義を使用してSCAノードを構成 ブローカーSCA定義は以下のいずれかを元に生成 WIDv6.2で定義し、エクスポートされたSCAインポート・コンポーネントまたはSCAエクスポート・コンポーネント –事前にWIDでアプリケーションを作成し、プロジェクト交換(PIファイル)としてエクスポート –WMBでPIファイルをインポートするとメッセージ定義ファイルとブローカーSCA定義ファイルが生成される 【PIファイルのインポート方法】 ①クイックスタート・ウィザード「SCAインポートまたはエクスポートから開始」 ②「新規メッセージ定義ファイル」ウィザード WMBメッセージ・セット –メッセージ定義を元にブローカーSCA定義を作成 –ブローカーSCA定義をエクスポートし、WIDでインポートするとWPSアプリケーションの入出力コンポーネントが生成される 【「ブローカーSCA定義の生成」ウィザード】 【「ブローカーSCA定義からのSCAインポート/エクスポートのエクスポート」ウィザード】 メッセージ・セットを選択し、右クリックし、「生成」 SCA定義が含まれるフォルダーを 右クリックし、「エクスポート」 5 SCAノードの提供 ブローカーSCA定義 インバウンド/アウトバンドそれぞれに応じたブローカーSCA定義を作成 インバウンド用 拡張子.insca –SCAInputノードを構成 アウトバウンド用 拡張子.outsca –SCARequestノードまたは SCAAsyncRequest/SCAAsyncResponseノードを構成 以下の情報を含む SCAインポートまたはSCAエクスポート・コンポーネント内にあるバインディング・タイプおよびインターフェース情報 インターフェースを定義するWSDL メッセージ形式を定義するXSDファイル メッセージ・フロー・エディタにドラッグ&ドロップでフローの雛形を生成 必要なノードとノード・プロパティはブローカーSCA定義から自動生成 6 アウトバウンド用の場合は、ドラッグ&ドロップ時に、 同期/非同期呼び出しを選択可能 ブローカーSCA定義をドラッグ&ドロップ SCAノードの提供 SCAInput / SCAReplyノードの主なプロパティ SCAInputノード タブ 説明 説明 ノード名、ノードの説明 基本 ブローカーSCA定義の名前、メッセージ・ルーティングの有無を設定 バインディング Bindingに応じたプロパティ設定 入力メッセージの構文解析 入力メッセージのパースに使用するメッセージ定義 ・パーサー・オプション 構文解析のタイミングやパーサー・オプションを指定 妥当性検査 妥当性検査の有無 セキュリティー ID、パスワードなどのセキュリティ情報に関する設定 インスタンス フローの実行インスタンス数の設定 再試行 エラー発生時の再試行方法を設定 トランザクション性 トランザクション・モード モニター ノードで生成するモニター・イベント SCAReplyノード タブ 説明 説明 ノード名、ノードの説明 妥当性検査 妥当性検査の有無 モニター ノードで生成するモニター・イベント 7 SCAノードの提供 SCARequestノードの主なプロパティ 要求が要求-応答型の場合は応答を受け取るかタイムアウト期間が超過するまで、処理をブロック 要求が片方向の場合は、要求の送信のみ実施 タブ 説明 説明 ノード名、ノードの説明 基本 ブローカーSCA定義の名前 バインディング Bindingに応じたプロパティ設定や要求タイムアウトを指定 応答メッセージの構文解析 応答メッセージのパースに使用するメッセージ定義 ・パーサー・オプション 構文解析のタイミングやパーサー・オプションを指定 妥当性検査 妥当性検査の有無 モニター ノードで生成するモニター・イベント 8 SCAノードの提供 SCAAsyncRequest / SCAAsyncResponseノードの主なプロパティ SCAAsyncRequestノードがWPSに要求を送信 SCAAsyncResponseノードがWPSからの応答を受信 両ノードは別フローに配置してもよいが、同一実行グループ内で稼動する必要がある SCAAsyncRequestノード タブ 説明 説明 ノード名、ノードの説明 基本 固有ID、ブローカーSCA定義の名前を設定 バインディング Bindingに応じたプロパティ設定 トランザクション性 トランザクション・モード モニター ノードで生成するモニター・イベント SCAAsyncResponseノード タブ 説明 説明 ノード名、ノードの説明 基本 固有ID、ブローカーSCA定義の名前を設定 バインディング Bindingに応じたプロパティ設定 応答メッセージの構文解析 応答メッセージのパースに使用するメッセージ定義 ・パーサー・オプション 構文解析のタイミングやパーサー・オプションを指定 妥当性検査 妥当性検査の有無 セキュリティー ID、パスワードなどのセキュリティ情報に関する設定 インスタンス フローの実行インスタンス数の設定 モニター ノードで生成するモニター・イベント 9 blank 10 WSRRとの連携強化 WSRR(WebSphere Registry and Repository) v6.1との連携をサポート EndpointLookupノード: WSRRからサービスのエンドポイント情報を取得 RegistryLookupノード: WSRRに登録されたサービス文書を取得 サービスB Webサービス・ リクエスター サービスA WebSphere Message Broker Endpoint Lookup Registry Lookup SOAP Request WSRR 宛先情報や、登録文書をWSRRから 取得し、動的なルーティングやメディエーション処 理を実現 接続タイムアウトのサポート WSDL 定義 宛先用 XSL ファイル (v6.1.0.4から) WMBはWSRR client jar v6.2.0.2を同梱 クライアント側の接続タイムアウトを設定可能 (デフォルト180秒) mqsichangepropertiesコマンドのtimeoutConnectionパラメータで設定 WSRRがダウン時にメッセージ・フローのハングを回避 11 WSRRとの連携強化 検索時に照会の深さを指定可能 (v6.1.0.4から) RegistryLookupノードでWSRR照会の深さを指定し、返されるエンティティ・データの内容を指定可能 【WSRRグラフ】 「拡張」タブの「深さのポリシー」プロパティで指定 「ConceptA2」 で検索 ConceptA2 ContainsChildren ContainsChildren ConceptB2 ContainsChildren ConceptC2 UsedIn 4つのタイプを指定可能 ReferTo ConceptB3 ReferTo ConceptZa ContainsChildren ConceptD1 深さ 返されるエンティティ・データ 上記WSRRグラフの照会結果 (名前「ConceptA2」で照会) 0 一致したエンティティーのみ返す (デフォルト) ConceptA2 1 一致したエンティティーおよび直接の関連子エンティティーを返す ConceptA2, ContainesChildren: ConceptB2,ConceptB3, ReferTo: ConceptZa -1 一致したエンティティーおよびすべての関連子エンティティーを返す ConceptA2, ContainesChildren: ConceptB2,ConceptB3, ReferTo: ConceptZa ConceptB3のContainsChildren: ConceptC2 ConceptB3のRegerTo: ConceptZa ConceptC2のContainsChildren: ConceptD1 ConceptD1のUsedIn: ConceptC2 hybrid 前バージョンとの互換性のため提供 (非推奨) 前バージョンからのマイグレーション時は「0」か「1」を使用 一致したエンティティーと関連子エンティティーの情報(bsrURIのリスト)を返す ConceptA2, ContainesChildren: ConceptB2,ConceptB3のbsrURI ReferTo: ConceptZaのbsrURI 12 Fileノードの拡張 SFTP(Secure File Transfer Protocol)のサポート (v6.1.0.4から) SSH (Secure Shell) プロトコルを使用してファイルをセキュアに転送 ポートはデフォルトで22 (FTPは21) FileInputノード、FileOutputノードの「FTP」タブで設定 転送プロトコル: FTPかSFTPを選択可能 サーバおよびポート: FTPと同様にIPアドレスまたはブローカーに登録したサーバーID情報を指定 セキュリティーID: FTPと同様にブローカーに登録したセキュリティIDを指定 FILEノードの「FTP」タブ 13 Fileノードの拡張 「FtpServer」構成可能サービスを構成し、ブローカーへ宛先サーバー情報を登録 宛先サーバーのIPアドレス/ホスト名:ポート番号をサーバIDとして登録 新たにFTP/SFTPを指定するための「protocol」プロパティを追加 構成可能サービスを使用すると以下のSFTP属性の設定も可能 SSH/SFTP通信に使用する暗号(cipher): blowfish-cbc / 3des-cbc / aes128-cbc 0~9 : 0はno compression 既知のホストの厳密な検査(strictHostKeychecking): ブローカーが接続するホストを制御 既知のhostsファイルの場所(knownHostsFile): strictHostKeyCheckingが有効な場合に必要 接続するホストとキーの情報を保管 メッセージ認証コード(mac): hmac-md5 / hmac-sha1 圧縮レベル(compression): コマンド例: mqsicreateconfigurableservice MyBroker –c FtpServer –o MySFTPcfgsvc –n serverName,protocol,securityIdentity,cipher,mac -v mysftpserver, SFTP, mysftpid, blowfish-cbc+3des-cbc, hmac-sha1 cipherやmacの設定値は+記号を 使用することで、1つ以上の値を リストとして登録することが可能 mqsisetdbparmsコマンドを使用し、セキュリティID情報をブローカーに登録 SFTPは2つの認証方法をサポート ユーザー名 / パスワード mqsisetdbparms MyBroker –n sftp::mysftpid –u <usernemae> -p <password> SSHキーファイル(OpenSSH format identity files) mqsisetdbparms MyBroker –n sftp::mysftpid –u <usernemae> -i <identity file> -r <passphrase> 14 SAPノードの拡張 インバウンドでの単純BAPIインターフェース(同期呼び出し)をサポート (V7から) 新規にSAPReplyノードを提供 メッセージフローをRFC サーバー(外部システム)としてSAP から呼び出すことが可能 WMB BAPI呼び出し SAPシステム SAPInput SAPReply -Failure -Out 15 (参考) WMBのSAP接続インターフェース アウトバウンド処理インターフェース カテゴリ インターフェイス 概要 BAPI (同期) 単純BAPI 単一BPAIを同期で送る BAPI作業単位 複数BAPIを1UOWで送る BAPI結果セット GetListとGetDetailの組み合わせ BAPI (非同期) 単純BAPI(tRFC) tRFCを利用した非同期の単純BAPI。結果を待たない 単純BAPI(qRFC) qRFCを利用した非同期の単純BAPI。結果を待たない Query Interface for SAP Software (QISS) RFC 関数または BAPI を使用しないで SAP テーブルからデータを取り出す ALE IDoc形式 ALE ALEパススルー 変換なしのIDoc形式 ALE(qRFC) qRFCを利用したIDoc形式 拡張イベント処理(AEP) データをSAPサーバーに送信し、データがSAPサーバー上のABAPハンドラーによって処理される インバウンド処理インターフェース カテゴリ インターフェイス 概要 Synchronous Callback Interface (SCI) イベントをlisten し、RFC対応関数呼び出しの通知をSAPサーバーから受信。要求を事前定義 アプリケーションに送信し、応答をSAPサーバーに戻す BAPI (同期) 単純BAPI 単一BAPIを同期で送る BAPI (非同期) 単純BAPI(tRFC) tRFCを利用した非同期の単純BAPI。結果を待たない 単純BAPI(qRFC) qRFCを利用した非同期の単純BAPI。結果を待たない ALE ALE IDoc形式 ALEパススルー 変換なしのIDoc形式 ALE(qRFC) qRFCを利用したIDoc形式 拡張イベント処理(AEP) New SAP サーバーをポーリングしてイベントを発見、そのイベントを処理し、それをエンドポイントに送信 16 SAPノードの拡張 可用性の向上 (V7から) SAPとWMBの間のIDocとtRFC BAPI呼び出しは1回きりという動作をtRFCプロトコルにより保証 各送信にトランザクションID(TID)が振られ、ブローカーはその情報をTIDストアに保持し、重複送信を回避 V6.1まで複数ブローカーで同じプログラムIDを持つフローが稼動していると、片側ダウンの際に、他方にリルー ト ブローカーごとにTIDストアを持つため、もう一方で既に処理されたリルートデータも重複して処理してしまう。 v7からリモート・キューマネージャーにTIDストアを持たせ、2つのブローカーで同じTIDストアを共有可能に リモート・キューマネージャーはマルチインスタンス・キューマネージャー構成にするなど可用性の考慮は必要 WMB リモート・キュー・マネージャー SAPシステム TIDの保管 クライアント接続 TIDストア WMB 17 IMSRequestノードの追加 IMSに接続するためのIMSRequestノードを提供 (V6.1.0.3から) IMS TM Resource Adapterを使用してIMS Connect経由でIMSに接続 -Failure -Out -タイムアウト IMSConnectがIMSシステム上で構成されていることが前提 IMSシステム上でのトランザクション実行要求を送信し、応答を待つ 【IMSノードからIMSを呼び出す】 File ホスト WMB TCP/IP MQ IMS Connect IMSノード SOAP OTMA IMS APL IMS DB IMS TM Resource Adapter 接続先IMS情報の登録 「基本」タブの「ノードで定義された接続プロパティーを使用します」のチェックボックスを設定 チェックする場合: 「ノード接続の詳細」に設定されたプロパティ値を利用してIMSに要求を送信 「ブローカー接続の詳細」に設定された構成可能サービスを利用してIMSに要求を送信 チェックしない場合: 18 IMSRequestノードの追加 IMSRequestノードの主なプロパティ タブ 説明 説明 ノード名、ノードの説明 基本 「ノードで定義されている接続プロパティーを使用」 ノードの設定値を使用するか構成可能サービス を使用するかを選択 ノードの設定値を使用する場合は、「ホスト名」、「ポート番号」、「データ・ストア名」、「トランザクション が実行される待機タイムアウト」を設定 構成可能サービスを使用する場合は、「構成可能サービス」を設定 「セキュリティーID」 使用するユーザー名、パスワード情報 拡張 IMSトランザクションのコミット・モードや同期レベルを設定 結果 応答メッセージの出力メッセージ・ツリー内での扱いを設定 応答メッセージの構文解析 応答メッセージのパースに使用するメッセージ定義 ・パーサー・オプション 構文解析のタイミングやパーサー・オプションを指定 妥当性検査 妥当性検査の有無 モニター ノードで生成するモニター・イベント 19 IMSRequestノードの追加 構成可能サービスを使用した接続定義の設定 mqsicreateconfigurableserviceコマンドを使用して定義を作成 mqsicreateconfigurableservice WMB_BROKER_NAME –c IMSConnect –o myIMSConnectService –n Hostname,PortNumber,DataStoreName –v test.ims.ibm.com,9999,IMSA mqsireportpropertiesコマンドで定義済みのサービスを表示 mqsireportproperties WMB_BROKER_NAME –c IMSConnect –o AllReportableEntityNames -r IMS側でRACFなどを使用したユーザー認証を行なう場合は、mqsisetdbparmsコマンドを使用してユーザー IDとパスワードを設定 mqsisetdbparms WMB_BROKER_NAME –n ims::mySecurityIdentity –u myuserid –p mypassword 20 提供機能の強化 21 PHPのサポート 新たな実装言語としてPHPスクリプト言語をサポート 既存のESQL,Java、GUIマッピング、XSLTに加えてPHPをサポート PHPスクリプトでメッセージ変換やルーティング処理を実装可能 PHPComputeノードを新規提供 一部のプラットフォームではV6.1.0.3 -Failure -Out で提供済み Solaris(X86-64)以外のWMBがサポートするすべてのOSでサポート PHPComputeノードで呼び出すPHPスクリプト・ファイル(.php)を指定 既存のPHPスクリプト・ファイルを呼び出す場合は事前にワークスペースにインポート 新規作成の場合は、「ブローカー・アプリケーション開発」パースペクティブから新規作成 PHPスクリプト・ファイル内にPHPコードを実装 PHPコードは自動的にデプロイされる BARファイルにメッセージ・フローを追加する際に、PHPコードも自動的にBARファイルにパッケージ 22 PHPのサポート PHPスクリプト・ファイルの新規作成手順 ①「ブローカー・アプリケーション開発」パースペクティブで、 「ファイル」→「新規作成」→「その他」を選択 ③スクリプト・ファイルを格納する プロジェクトを選択し、 新規PHPスクリプト・ファイル名を 「ファイル名」に入力 ②リソースのリストから 「ファイル」を選択 ④Eclipseテキスト・エディターを使 用して、PHPコードを実装 23 PHPのサポート PHPコードの実装 <?php …?>の間にPHPコードを記述 2種類のスクリプト・スタイル クラス構造をもつスタイル – ファイル名と同一のクラスを実装し、クラス内でevaluateメソッドを呼び出す – アノテーションの使用が可能 (コーディングの軽減) クラス構造をもたないスタイル – 入力用のメッセージとメッセージ・アセンブリーは読み取り専用のため、メッセージを操作する場合は、明示的に出力用のメッセージとメッ セージ・アセンブリー・オブジェクトを作成する必要がある – 明示的にメッセージ・アセンブリーを出力ターミナルにPropagateする必要がある – PHPComputeノードの「evaluateメソッドの呼び出し」プロパティーの選択を解除 【クラス構造を持つスタイル】 <?php class Hello { /** * @MessageBrokerSimpleTransform */ function evaluate ($output, $input) { $output->XMLNSC->doc->greeting = 'Hello'; } } ?> 【クラス構造を持たないスタイル】 <?php $output_message = new MbsMessage(); $output_message->XMLNSC->doc->greeting = 'Hello'; $output_assembly = new MbsMessageAssembly($assembly,$output_message); $output_assembly->propagate('out'); ?> 【出力されるメッセージ】 <doc><greeting>Hello</greeting></doc> 24 PHPのサポート アノテーションの利用 コーディングの負荷を軽減 提供されるアノテーション 新規出力用メッセージの作成 入力メッセージの変更 @MessageBrokerRouter ルーティング処理の実施 @MessageBrokerLocalEnvironmentTransform LocalEnvironmentツリーの変更 @MessageBrokerSimpleTransform @MessageBrokerCopyTransform 複数のアノテーションを指定可能 エレメントへのアクセス ツリー内の各エレメントはMbsElement オブジェクトとして表される Path syntaxでのアクセス $output->MRM->bin->item = $input->XMLNSC->doc->ref->item; APIメソッドでのアクセス getParent(), $value getPreviousSibling(), getNextSibling(), getChild(), getFirstChild() ……など = $item->getFirstChild()->getValue() XPath 1.0もサポート 25 PHPのサポート PHPComputeノードの設定 「基本タブ」で使用するPHPスクリプトを指定 別プロジェクト内のPHPスクリプト・ファイルを選択する場合は、事前にプロジェクト参照の設定を行う PHPComputeノードの主なプロパティ タブ 説明 説明 ノード名、ノードの説明 基本 「PHPスクリプト」 PHPスクリプト・ファイル名を指定 「PHPクラス定義の’evaluate()’メソッドの呼び出し」 PHPスクリプト・ファイル内のコードにevaluateメ ソッドが 含まれている場合は、プロパティーを選択 妥当性検査 妥当性検査の有無 モニター ノードで生成するモニター・イベント ※必須プロパティは太字で表記 26 Sequence-Resequenceノードの提供 複数メッセージの順序を制御するノードを新規提供 (V7から) メッセージを特定の順序で処理したり、特定の順序で受信側アプリケーションに送信 メッセージに順番を付与するSequenceノードと、メッセージを順番に基づいて再配列するResequence ノードを提供 【複数入力元からのメッセージを順序制御】 WMB TCPIP Sequenceノード MQ ① JMS ② ③ ③ ② ① Resequenceノード Sequenceノード 入力メッセージに対してシーケンス番号を付与 メッセージ内の情報からシーケンス・グループを分けることが可能 (グループ単位に番号を付与) マルチスレッドで稼動する場合もグループごとにシーケンス番号の制御が可能 ブローカーの再起動をまたがってシーケンス情報を保持することも可能 -Failure -Out Resequenceノード 受信したメッセージをメッセージ内の順序番号に従ってoutターミナルに出力する メッセージが未着の場合は、タイムアウトを設定したり、後続のメッセージの処理方法を指定可能 Resequenceノードの前後でトランザクションは分かれる (Collectorノードと同じ実装) -Failure -Out -Expire -Missing -Catch 27 Sequence-Resequenceノードの提供 シーケンス・グループの使用 シーケンス・グループIDを使用して、シーケンス・グループごとに順序性の制御が可能 シーケンス・グループは1つのSequenceノードのみに関連付け 異なるノードで同一のシーケンス・グループIDを使用しても別のグループとして扱われる 頻繁に同一名のシーケンス・グループIDを再利用しない 同時に複数のシーケンス・グループを処理可能 ノード・プロパティでメッセージ・シーケンスの開始条件/終了条件をユーザーが定義可能 SequenceノードとResequenceノードはペアで使う必要はない シーケンスノードで付与されたシーケンス番号もメッセージ内にセットされたシーケンス番号も対応可能 シーケンス番号情報はキューに保持 Sequenceノード SYSTEM.BROKER.SEQ.GROUP SYSTEM.BROKER.SEQ.NUMBER SYSTEM.BROKER.SEQ.EXPIRY Resequenceノード SYSTEM.BROKER.EDA.EVENTS SYSTEM.BROKER.EDA.COLLETIONS ノード・プロパティでシーケンス情報をパーシステント/ノンパーシステントどちらで保持するか選択が可能 28 Sequence-Resequenceノードの提供 Resequenceノードであるメッセージが未着で、タイムアウトが発生した場合の動作はExpiryター ミナルとMissingターミナルで制御 タイムアウト発生時に保持していたメッセージやタイムアウト発生後に届いた後続メッセージはExpireターミ ナルから出力 タイムアウト発生原因となった抜けたメッセージはMissingターミナルから出力 業務の要件に応じてOut、Expiry、Missingの出力ターミナルを実装 メッセージは完全に順序番号を維持する必要がある場合 →Outターミナルの先にメインフローを実装。ExpireとMissingターミナルの先にエラー処理を実装 メッセージの抜けは許容されるが、順序性を維持する必要がある場合 →OutとExpireターミナルの先にメインフローを実装。Missingターミナルの先にエラー処理を実装 できるだけ順序番号が維持されていてほしい(多少の追い越しは許容)場合 →すべての出力ターミナルの先にメインフローを実装 29 Sequence-Resequenceノードの提供 Sequenceノードの主なプロパティ タブ 説明 説明 ノード名、ノードの説明 基本 「保管シーケンス番号へのパス」 シーケンス番号を保存する場所をXPathで指定 「シーケンス・グループIDへのパス」 シーケンス・グループID保管場所をXPathで指定 「シーケンス定義の開始」 各シーケンス・グループの最初のシーケンス番号を指定 「シーケンス定義の終了」 各シーケンス・グループの完了条件を指定 「リテラル」 シーケンス番号で判断 「述部」 XPath式の評価結果(True/False)で判断 「自動」 空のキューにメッセージが到着するまでの待機時間(秒単位)で判断 拡張 「持続モード」 シーケンス・グループの状態を永続的に保管するかどうか モニター ノードで生成するモニター・イベント ※必須プロパティは太字で表記 Resequenceノードの主なプロパティ タブ 説明 説明 ノード名、ノードの説明 基本 「シーケンス番号へのパス」 シーケンス番号の保管場所をXPathで指定 「シーケンス・グループIDへのパス」 シーケンス・グループIDの保管場所をXPathで指定 「欠落しているメッセージ・タイムアウト」 シーケンス内の次のメッセージを待機する長さ(秒単位) 「シーケンス定義の開始」 各シーケンス・グループの最初のシーケンス番号を判断 「リテラル」 シーケンス番号で指定 「述部」 XPath式の評価結果(True/False)で判断 「自動」 指定した時間(秒単位)に届いたメッセージの中で最小のシーケンス番号で判断 「シーケンス定義の終了」 各シーケンス・グループの完了条件を指定 「リテラル」 シーケンス番号で判断 「述部」 XPath式の評価結果(True/False)で判断 「自動」 空のキューにメッセージが到着するまでの待機時間(秒単位)で判断 拡張 「持続モード」 メッセージの不完全なシーケンスを永続的に保管するかどうか 「構成可能サービス」 利用するResequence構成可能サービスを指定 インスタンス フローの実行インスタンス数の設定 モニター ノードで生成するモニター・イベント 30 ※必須プロパティは太字で表記 Sequence-Resequenceノードの提供 Sequenceノードに関連するLocalEnvironment タブ 説明 LocalEnvironment.Sequence.StartOfSequenceNumber Sequenceノード・プロパティのシーケンス定義の開始条件を上書き LocalEnvironment.Sequence.Number Sequenceノードの出力時にシーケンス番号がセットされる LocalEnvironment.Sequence.Group Sequenceノードの出力時にシーケンス・グループIDがセットされる LocalEnvironment.Sequence.Start Sequenceノードの出力時にシーケンス・グループの最初のシーケンス・ データかどうかの情報がセットされる (TRUE/FALSE) LocalEnvironment.Sequence.End Sequenceノードの出力時にシーケンス・グループの最後のシーケンス・ データかどうかの情報がセットされる (TRUE/FALSE) Resequenceノードに関連するLocalEnvironment タブ 説明 LocalEnvironment.Sequence.Number Sequenceノードの出力時にシーケンス番号がセットされる LocalEnvironment.Sequence.Group Sequenceノードの出力時にシーケンス・グループIDがセットされる LocalEnvironment.Sequence.End Sequenceノードの出力時にシーケンス・グループの最後のシーケンス・ データかどうかの情報がセットされる (TRUE/FALSE) 31 Sequence-Resequenceノードの提供 Sequenceノード/Resequenceノードを使用したフロー例 0 1 2 【このノードでの設定内容】 ・入力メッセージのBody部(XMLNSC>xml>sec)にシーケンス番 号をセット ・シーケンス番号は入力メッセージのBody部 (XMLNSC>xml>group)のシーケンス・グループごとに割りふられる ・シーケンス番号は0から始まり、10でグループを閉じる 0 2 1 2 1 0 【このノードでの設定内容】 ・入力メッセージのBody部(XMLNSC>xml>sec)のシーケンス番 号を元にメッセージを再配列 ・メッセージ順序は入力メッセージのBody部 (XMLNSC>xml>group)のシーケンス・グループごとに制御 ・次のメッセージが未着の場合は10秒待ち、タイムアウトする ・シーケンス番号は0から始まり、キューが空になって60秒経っても メッセージが到着しなければグループを閉じる 32 PubSub機能の追加 WMBv7からPubSub機能をWMQv701に統合 Publicationノードから、WMBではなくWMQのPubSubエンジンをMQAPI経由で呼び出す WMBで実装できたPubSubの機能はすべて使用可能 WMB ContentsベースのフィルタリングはWMBとWMQで連携して実装 WMBがパースして、WMQでコンテンツベース・フィルタリング Contents Based Filtering インターフェース WMBのContent Based Filtering support機能がフローを デプロイした実行グループで動く MQ Contents Based Filtering PublicationノードでOutターミナルにno matchターミナルが追加 WMQv701で追加されたPUT メッセージ・オプション(PMO)に対応 MQPMO_WARN_IF_NO_SUBS_MATCHED パブリケーションと一致するサブスクリプションがない場合、MQCC_WARNING および MQRC_NO_SUBS_MATCHED 理由 コードを戻す -Out -NoMatch 33 その他 ノードが内部的に使用するキューをユーザー定義可能に いくつかのノードでは状態情報をキューに保管 各キューはブローカーごとにデフォルト作成されるため、複数のフロー間で共用 Aggregation、Timeout、Collector、Resequence、Sequence アプリケーションの可用性、独立性の観点でV7から構成可能サービスを使用してキューをユーザー定義可能 但し、固定のPrefixはつく –例:Aggregationノード → SYSTEM.BROKER.AGGRというPrifixは固定。その後ろに自由にネーミング 34