Comments
Description
Transcript
WebSphereMQ V6 キュー共用環境 トピック
WebSphereMQ V6 キュー共用環境 Copyright ISE Co.,Ltd <6章-3:キュー共用環境> トピック キュー共用環境 前提 各バージョンにおける機能の拡張 共用キューにおける63KBを超えるのメッセージ長のサポート 構成 コマンドの拡張 IGQ Double Hoppingの抑制 2 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> キュー共用環境の前提 MQ V6.0における前提 必須 z/OS V1.4以上 DB2 V7.1+PTF データ共用環境 CF LEVEL 9以上 RRS CF 必要に応じて: zSeries Server Network関連 キュー共用環境 MQ V6.0 DB2 V7.1+PTF TCPIP RRS z/OS 3 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> キュー共用環境 Local Page Set WMQA Queue Sharing Group WMQA Local Log Local Page Set Local Log GBP DB2A Data Sharing Group BP DB2B BP Shared Data Base 4 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> キュー共用の構成 Catalog Directory Table Index IRLM IRLM CF DB2A Log BSDS MQMA DB2データ共用 DB2B ロック・ストラクチャー RRS MQMB Log BSDS RRS リスト・ストラクチャー MQGET MQMAMSTR SCA MQMBMSTR SQL MQGET SQL キャッシュ・ストラクチャー MQPUT MQPUT グループBP Page Set Page Set MQキュー共用 リスト・ストラクチャー MQMACHIN 管理 Log BSDS MQMBCHIN Log BSDS リスト・ストラクチャー アプリケーション TCPIP / VTAM TCPIP / VTAM CFRMポリシー CFRM CDS 5 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> キュー共用の構成 キュー共用グループ関連 共用レポジトリ オブジェクト定義,チャネル・ステータスなどの制御情報を各キュー・マネージャーで共用するためのDB2共用データ・ベース ストラクチャー 管理ストラクチャー 同期点やキュー・マネージャー間で共有する制御情報を保持.キュー共用グループにつき1つ必要. アプリケーション・ストラクチャー 共用キューとメッセージを保持.キュー共用グループにつき1つ以上必要. 新しい内部タスク CFマネージャー リスト・ストラクチャー上の資源に対するアクセス,管理を行う. DB2マネージャー DB2資源に対するアクセスを行う. IGQエージェント(Intra Group Queuing Agent) 共用キュー経由でメッセージを受信する ログ,BSDS,ページセット 共用チャネル関連 Generic Address ネットワークレイヤーのSysplex対応機能(VTAM GR、TCPIP WLM/DNS、Neterok Dispatcherなど)により提供される単一宛先 Generic Port Generic Addressに対してMQがlistenしているポート グループ・リスナー Generic Portをlistenしているリスナー CFRM CDS(Couple Data Set) CF上にストラクチャを定義するためのデータ・セット. CFRMポリシー キャッシュ,ロック,リストの各ストラクチャーを管理するための総称. 6 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> キュー共用の価値 可用性の向上 同一キュー共用グループ内の全てのキュー・マネージャーが共用キューにアクセス可能 グループアタッチ:キュー・マネージャー名ではなく、共用グループ名により接続が可能 ピア・リカバリー:Indoubtでないメッセージは他キュー・マネージャーによりバックアウト処理が 可能 ネットワーク・レイヤー製品の併用によりシングル・システムイメージの提供 ワーク・ロード・バランシング PULL型のワーク・ロード・バランシングの実現 共用チャネルによる接続負荷の分散 パフォーマンス・メリット 同一キュー共用グループ内に属するキュー・マネージャー間接続 拡張性 クローン化されたシステムの動的追加が可能 7 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 各バージョンにおけるキュー共用環境 各バージョンにおける機能比較 CFLEVEL:MQSCコマンド“DEFINE CFSTRUCT”コマンドを用いて機能レベルを設定 バージョン CFLEVEL 機能レベル パーシステント・メッセージ サポート 最大メッセージ長 V5.2 明示指定なし V5.2 NA 63KB V5.3&V5.3.1 CFLEVEL(1) CFLEVEL(2) V5.2 NA 63KB CFLEVEL(3) V5.3 RECOVER(YES)でサポート 63KB CFLEVEL(1) CFLEVEL(2) V5.2 NA 63KB CFLEVEL(3) V5.3 RECOVER(YES)でサポート 63KB CFLEVEL(4) V6.0 RECOVER(YES)でサポート 100MB V6.0 グループメッセージ:CFLEVEL3以降にてサポート INDXTYPEの指定が必要 8 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 共用キューにおけるパーシステント・メッセージのサポート MQ V5.3から CFLEVEL(3以上) RECOVER(YES)で定義されたCF STRUCTURE上のキュー LOGはキュー共用グループに存在する全てのキュー・マネージャーで個別に取得 キュー共用グループ CEC1 CEC2 MQPUT Log-A MQGET QmgrA QmgrB CHINIT Log-B CHINIT 共用キュー 障害時は一つのキュー・マネージャーが代表して復旧 管理ストラクチャーが存在するCF障害時には一旦全てのキュー・マネージャーの立ち上げが必要 RECOVER CFSTRUCT コマンド Log-A キュー共用グループ CEC1 CEC2 QmgrA QmgrB CHINIT Log-B CHINIT 共用キュー 9 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 共用キューにおける 63KB超メッセージのサポート 10 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 共用キューでの63KB超メッセージのサポート MQ V6.0にてサポート CFLEVEL(4)よりサポート コマンドレベルV6(MQ V6.0)が前提 63KB超のメッセージ本体は共用データベースに保存 CFストラクチャーには参照情報(PLEID)を保持:4KB MQ HDRはCF上にも保管 メッセージ本体は共用データベースに保存 CSQ.ADMIN_B_MESSAGES →BLOB:511KBのセグメント化 MQPUT,MQGETのAPIは変更なし 63KB以下のメッセージはCF上に保存 CFLEVEL(3)と同じ MQのログにはメッセージ全体が書き出される(パーシステント・メッセージ) DB2 BLOB TSはLOG NOを指定 メッセージの復旧はMQのログを用いて実施 11 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 参考:DB2 LOB処理(1) BASEテーブルとAuxiliaryテーブル LOBの扱い Baseテーブル:LOBカラム定義のみ (LOBインディケーター:6Bytes) Auxiliaryテーブル:LOBはAuxiliaryカラムとしてAuxiliaryテーブルに保持 Baseテーブルに複数LOBカラムが存在する場合、カラム毎にAuxiliaryテーブルが存在する Baseテーブルを分割(区分化)可能 →クラスター・インデックスで割振りを定義 (V7) ROWID Base テーブルとAuxiliaryテーブルの各行は型:ROWIDにて関連付けられる ROWIDは19Bytes ROWIDカラムは一つに定義されている必要がある 行単位にROWIDカラムの値はユニークになる必要がある 同一行の複数LOBカラムは同じROWIDを持つ ROWID GENERATED ALWAYSにてDB2が値を生成 12 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 参考:DB2 LOB処理(2) Auxiliaryテーブル 各AuxiliaryテーブルにIndexが必要 ROWID(19 Bytes)とRID(5 Bytes)により構成 Createステートメントでカラム指定不要 CREATE INDEX MAUX1IND ON MSG_AUX1 CREATE TABLE BASETBL (TITLE CHAR(10), IDCOL ROWID GENERATED ALWAYS BLOBMSG BLOB(512M)); TITLE IDCOL BLOBMSG 10 Bytes 19 Bytes 6 Bytes ROWID RID 外部表の行を特定 CREATE AUX TABLE MSG_AUX1 IN aux_ts STORES BASETBL COLUMN BLOBMSG BLOBMSG本体 512M Bytes Auxiliaryテーブル個別にテーブルスペースが必要 13 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 参考:DB2 LOB処理(3) 区分化 Baseテーブルを区分化 Auxiliaryテーブルは区分単位に対応 V7ではTYPE 2 CLUSTER INDEXに分割に用いるカラムを定義 V8ではテーブル定義時に分割を指定 ログ Auxiliaryテーブルはログ取得の選択が可能 Auxiliaryテーブルスペースで定義 14 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CFLEVEL(4)での63KB超のメッセージ メッセージの本体は、BLOBとして保持 アプリケーション・ストラクチャーからはPLEIDでポイントされる BLOBサイズは各511KB 511KBを超えるメッセージは複数にスプリットされる Baseテーブルは4つに区分化 サンプルでは同一STORGROUP BASEPARTの値により区分、AUXILIALRY TABLEが決定 CSQ.ADMIN_MSGS_BAUX1 CSQ.ADMIN_B_MESSAGES PLEID QSG1.APLSTR QSGNAME SEGNO ROWID BASEPART PLEID CSQ.ADMIN_MSGS_BAUX2 CF 区分1 PLEID QSGNAME SEGNO ROWID BASEPART 区分2 PLEID QSGNAME SEGNO ROWID BASEPART 区分3 PLEID QSGNAME SEGNO ROWID BASEPART 区分4 PLEID QSGNAME SEGNO ROWID BASEPART BASEPART Cluster Index (V7) 15 CSQ.ADMIN_MSGS_BAUX3 CSQ.ADMIN_MSGS_BAUX4 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CFLEVEL(4)でのメッセージの保持方法(1) BLOB用テーブル定義 Base テーブル:CSQ.ADMIN_B_MESSAGES 4区分 ベース表のカラム:BASEPARTによりクラスター化 AUXILIARLY テーブル:CSQ.ADMIN_MSGS_BAUXn 番号n:1-4 4区分に対応 INDEX:CSQ.ADMIN_MSGSn TSはLOG(NO) CLUSTER INDEX:CSQ.CLUS_INDEX BASEPARTの値によりAUXILIARLY テーブルを決定 PART1:x’0000’-x’3FFF’ PART2:x’4000’-x’7FFF’ PART3:x’8000’-x’BFFF’ PART4:x’C000’-x’FFFF’ BASEPARTはメッセージのSTCK末尾2BYTEにより決定される 同一メッセージは同一BASEPARTが振られる 16 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CFLEVEL(4)でのメッセージの保持方法(2) メッセージ、アプリケーション・ストラクチャー、ベース・テーブル、AUXILIARLY表の関係 MSG MSG長 分割数 MSG1 MSG2 MSG3 400KB 600KB 1200KB 1 2 3 CSQ.ADMIN_MSGS_BAUX1 LOB Msgs MSG1-1 MQPUT CSQ.ADMIN_B_MESSAGES PLEID QSG1.APLSTR PLEID ID1 ID2 ID3 メッセージ単位に PLEIDをアサイン QSGNAME SEGNO CSQ.ADMIN_MSGS_BAUX2 MROWID BASEPART ID1 QSG1 1 ROWID1 0020 ID2 ID2 QSG1 QSG1 1 2 ROWID2 ROWID3 4001 4001 ID3 ID3 ID3 QSG1 QSG1 QSG1 1 2 3 ROWID4 ROWID5 ROWID6 8010 8010 8010 メッセージ長に 合わせて分割 分割単位に MROWIDをアサイン 同一メッセージは 同一BASEPART 17 LOB Msgs MSG2-1 MSG2-2 CSQ.ADMIN_MSGS_BAUX3 LOB Msgs MSG3-1 MSG3-2 MSG3-3 CSQ.ADMIN_MSGS_BAUX4 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 共用キューでの63KB超メッセージのサポート(続き) PLEID(CF)と共用DBの不一致 MQGET時にPLEIDに該当するDBのエントリーが見つからない Sturcture Failureと判断:Reason 2373 MQRC_CF_STRUC_FAILED キュー共用環境に存在する他キュー・マネージャーに通知 ストラクチャーの復旧はRECOVER CFSTRUCTコマンドにて実施 メッセージ表示例: CSQE035E M60B CSQEQSR1 STRUCTURE APLC4 IN FAILED STATE, RECOVERY NEEDED CSQE007I M60B EEPLSTRFAILURE EVENT RECEIVED FOR 214 STRUCTURE APLC4 CONNECTION NAME CSQEQSG6M60B02 CSQE006I M60B STRUCTURE APLC4 CONNECTION NAME 215 CSQEQSG6M60B02 DISCONNECTED 18 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CF関連障害 管理ストラクチャー障害時にV6 QMgrはABENDしない CONNECTION Failureは今まで通りTerminate 他QmgrでPeerRecoveryを実行させるため 障害内容 アプリケーション・ ストラクチャー 管理ストラク チャー 障害時のQmgrの挙動 MQ V5.2 MQ V5.3 V5.3.1 MQ V6 CFLEVEL(1,2) ABEND ABEND ABEND CFLEVEL(3) - エラー表示 エラー表示 CFLEVEL(4) - - エラー表示 リンク障害 ABEND ABEND ABEND ストラクチャー障害 ABEND ABEND エラー表示 リンク障害 ABEND ABEND ABEND ストラクチャー障害 19 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> (参考):63KB超のメッセージのパフォーマンス(1) SupportPac:MP1Eより 共用キューのメッセージ:63KB前後でパフォーマンスに変異点が存在する 共用キューのメッセージ: 511KB超でパフォーマンスに影響 (抜粋:SupportPac MP1Eより) 20 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> (参考):63KB超のメッセージのパフォーマンス(2) *1SupportPacは以下のURLから入手可能 http://www-306.ibm.com/software/integration/support/supportpacs/product.html#wmq *2:SupportPacに示された数値はIBMにて保障された訳ではありません 21 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 構成 22 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DB2資源の計画 DB2定義資源 GPB名(シンボル名)* テーブル・スペース名(シンボル名)* テーブル名 DB2BPQMGR4K DB2TBLSPCQMGR4K CSQ.ADMIN_B_QSG CSQ.ADMIN_B_QMGR CSQ.EXTEND_B_QMGR CSQ.ADMIN_B_STRUCTURE CSQ.ADMIN_B_STRBACKUP CSQ.OBJ_B_QUEUE CSQ.OBJ_B_PROCESS CSQ.OBJ_B_STGCLASS CSQ.OBJ_B_AUTHINFO DB2BPQMGR32K DB2TBLSPCQMGR32K CSQ.OBJ_B_NAMELIST CSQ.OBJ_B_CHANNEL DB2BPCHIN DB2TBLSPCCHIN CSQ.ADMIN_B_SCST CSQ.ADMIN_B_SSKT DB2BPQMGR4K DB2TBLSPCBLOBMSGBASE4K CSQ.ADMIN_B_MESSAGES DB2BPBLOB32K DB2TBLSPCLOB1-32K CSQ.ADMIN_MSGS_BAUX1 DB2BPBLOB32K DB2TBLSPCLOB2-32K CSQ.ADMIN_MSGS_BAUX2 DB2BPBLOB32K DB2TBLSPCLOB3-32K CSQ.ADMIN_MSGS_BAUX3 DB2BPBLOB32K DB2TBLSPCLOB4-32K CSQ.ADMIN_MSGS_BAUX4 DB2 *GBP、TableSpace名は変更対象としてのサンプルJCL内のシンボル名です 23 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> MQ V6での共用環境DB2テーブル構成 テーブル名 行サイズ 行追加単位 V5.3.1からの変更 CSQ.ADMIN_B_QSG 252Bytes キュー共用グループ追加時 サイズ増加 サイズ増加 CSQ.ADMIN_B_QMGR 3828 Bytes *1 キュー・マネージャー追加時 CSQ.ADMIN_B_STRUCTURE 329 Bytes アプリケーション・ストラクチャー追加時 CSQ.ADMIN_B_SCST 342 Bytes 共用チャネル開始時 CSQ.ADMIN_B_SSKT 254 Bytes NPMSPEED(NORMAL)の共用チャネル開始時 (もしくはパーシステント・メッセージ転送時 *1) CSQ.ADMIN_B_STRBACKUP 507 Bytes アプリケーション・ストラクチャー追加時 CSQ.OBJ_B_AUTHINFO 3400 Bytes AUTHINFO DISP(GROUP)定義時 CSQ.OBJ_B_QUEUE 3707 Bytes *1 オブジェクト定義時 CSQ.OBJ_B_NAMELIST 15127 Bytes *1 オブジェクト定義時 CSQ.OBJ_B_CHANNEL 14127 Bytes *1 オブジェクト定義時 CSQ.OBJ_B_STGCLASS 2865 Bytes *1 オブジェクト定義時 CSQ.OBJ_B_PROCESS 3347 Bytes *1 オブジェクト定義時 CSQ.EXTEND_B_QMGR 430 Bytes *1 キュー・マネージャー追加時(内容:XPARM) テーブル追加 CSQ.ADMIN_B_MESSAGE 87 Bytes メッセージPUT時:511KB単位に追加 テーブル追加 同上 テーブル追加 CSQ.ADMIN_MSGS_BAUX1 CSQ.ADMIN_MSGS_BAUX2 CSQ.ADMIN_MSGS_BAUX3 CSQ.ADMIN_MSGS_BAUX4 サイズ増加 サイズ増加 *1:幕張テスト環境での確認 24 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DB2環境の構築 DB2環境の構築 サンプルJCL:SCSQPROCに提供 JOB名 定義 事前確認事項 CSQ45CSG DB2ストレージグループ作成 DB2SSID, DB2STGRP,DB2VOLUME,DB2VCAT CSQ45CDB DB2データベース作成 DB2DBNAME, GBP32K CSQ45CTS テーブルスペース作成 TableSpace名、該当GBP 容量 CSQ45CTB テーブル作成 容量 CSQ45BPL プランのバインド CSQ45GEX グラント 25 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> MQ ログ容量の計画 共用キューでのパーシステント・メッセージ CFLEVEL(3)以上+RECOVER(YES) パーシステント・メッセージはログに活動を取得 MQPUT時にはメッセージ本体もログに取得 アプリケーション・ストラクチャーのバックアップ バックアップイメージはログに取得される ストラクチャー障害時には各キュー・マネージャy-のログより復旧 静止点イメージを取得することにより、ログ適用量の削減 CFLEVEL(3)およびCFLEVEL(4)のストラクチャーが対象 イメージサイズは滞留メッセージ数x平均メッセージ長に比例 CFLEVEL(4)のストラクチャー上に、大量のメッセージが滞留する場合はイメージ・サイズに 注意が必要 26 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CFストラクチャーの計画・定義 CFRM ポリシーの計画 管理ストラクチャーとアプリケーション・ストラクチャー サンプルJCL:SCSQPROC(CSQ4CFRM) 各ストラクチャー名の先頭4文字はキュ共用グループ名でなければならない キュー共用グループ毎に最大64ストラクチャーを定義可能 →一つは管理ストラクチャー 管理ストラクチャー: ストラクチャー名は:キュー共用グループ名+”CSQ_ADMIN” 最低10MB キュー・マネージャー単位に1000エントリー確保する アプリケーション・ストラクチャー ストラクチャー毎に512共用キューを定義可能 ストラクチャー当たり最大800万メッセージを保持可能 平均メッセージ長から必要ストラクチャーサイズを見積もる →CFLEVEL(4)上の63KB超のメッセージは4KBで見積もる 27 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CFストラクチャーの計画・定義:管理ストラクチャー Admin Structure: 1Qmgr当たり最低1000 LIST Entriesを確保 製品提供サンプルでは10MBをINITSIZEに指定 キュー・マネージャー数との比較は以下の数値を参照 ( GC34-6582:WMQ V6 for z/OS Concepts and Planning Guideより) キュー・マネージャー数 必要ストレージ 1 2560KB 2 3328KB 4 4608KB 8 7680KB 16 13568KB 31 24832KB 28 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> CFストラクチャーの計画・定義:アプリケーション・ストラクチャー アプリケーション・ストラクチャー: 平均メッセージ長より以下のグラフを参考に見積もりを実施 CFLEVEL(4)での63KB超のメッセージは4KBとして見積もる 出典:GC34-6582 WMQ V6 for z/OS Concepts and Planning Guideより 29 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DB2リポジトリーへの登録 キュー共用グループの登録 サンプルJCL:SCSQPROC(CSQ45AQS) //ADDQSG EXEC PGM=CSQ5PQSG // PARM=‘ADD QSG,キュー共用グループ名,DB2共用グループ名,DB2接続名' キュー・マネージャーの登録 サンプルJCL:SCSQPROC(CSQ45AQM) //ADDQSG EXEC PGM=CSQ5PQSG // PARM=‘ADD QMGR,キュー・マネージャー名,キュー共用グループ名,DB2共用グループ名,DB2接続名' 30 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> QSG VERIFY (参考) 非同期に更新されてしまったDB2 Repositoryの妥当性チェック ユーティリティー・プログラム:CSQ5PQSGの拡張機能 DB2リポジトリー・テーブルの内容とCFストラクチャー情報を相互にチェック CSQU000I CSQ5PQSG IBM WEBSPHERE MQ FOR Z/OS VD13JAN05 CSQU500I CSQ5PQSG QUEUE-SHARING GROUP UTILITY - 2005-06-01 20:35:23 CSQU501I VERIFY QSG FUNCTION REQUESTED CSQU503I QSG=QSG6, DB2 DSG=D71SGRP, DB2 SSID=D7S1 CSQU517I XCF GROUP CSQGQSG6 ALREADY DEFINED CSQU520I SUMMARY INFORMATION FOR XCF GROUP CSQGQSG6 CSQU522I MEMBER=M60A, STATE=ACTIVE, SYSTEM=ZOS1 CSQU523I USER DATA=E9D6E2F1D4F6F0C140404040C4F7E2F1E00000000505050000010100F6F CSQU526I CONNECTED TO DB2 D7S1 CSQU572E USAGE MAP T03_LH_ARRAY AND DB2 TABLE CSQ.OBJ_B_QUEUE INCONSISTENT CSQU578E QUEUE 2 IN USAGE MAP FOR STRUCTURE APLC4 HAS NO ENTRY IN TABLE CSQU528I DISCONNECTED FROM DB2 D7S1 CSQU148I CSQ5PQSG UTILITY COMPLETED, RETURN CODE=12 31 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 構成パラメーターの変更 CSQ6SYSP-QSGDATA 共用グループ名、接続先DB2を指定 DB2BLOBパラメーターの追加 BLOBメッセージの処理タスク数を指定 指定方法 CSQZPARM:CSQ6SYSPスタンザ、QSGDATAに指定 QSGDATA(Qsgname,Dsgname,DB2name,DB2Serv,DB2BLOB) 追加パラメーター パラメーター 意味 指定値 初期値 Qsgname キュー共用グループ名 1-4文字で指定 - Dsgname データ共用グループ名 1-8文字で指定 - DB2name DB2サブシステム名 or グループ・アタッチ名 1-4文字で指定 - DB2Serv DB2アクセススレッド数 4-10 4 DB2BLOB : 新規 BLOB処理Thread数 4-10 4 32 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> MQストラクチャーレベルの定義 ストラクチャー・レベルの定義 初期状態はCFLEVEL(1):MQ V5.2レベル V5.3以降の機能を利用する場合はキューマネージャー起動後、DEFINE/ALTER CFSTRUCTコマンドにて変更 V5.3レベル:CFLEVEL(3) V6.0レベル:CFLEVEL(4) 共用キューの定義 パラメーター:QSGDISP(SHARED) および CFSTRUCTを指定して定義 DEFINE QL(キュー名) QSGDISP(SHARED) CFSTRUCT(ストラクチャー名) 33 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> キュー共用環境におけるV5.3&V5.3.1との共存 前提のPTF適用 V5.3.0/V5.3.1のキュー・マネージャーでCO-EXISTENCE PTFの適用が前提 APAR:PQ81627 (FALL BACK PTFとは別) PTF R5.3.0:UQ96901、 PTF R5.3.1:UQ96902(BASE)、UQ96903(FULL FUNCTION) V6 PLANが提供 既存DB2テーブルの移行 CSQ45ATBサンプルJOBの実行 キュー共用環境の全てのキュー・マネージャーがV6対応の必要有り CFLEVEL(4)への接続は不可 次のキューはCFLEVEL(3)以下に配置 SYSTEM.QSG.TRANSMIT.QUEUE SYSTEM.QSG.CHANNEL.SYNCQ 共用チャネル用の転送キュー V5.2はSupport終了のため共存不可能 34 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> コマンドの拡張 35 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 追加・変更コマンド キュー共用関係 コマンドの拡張 DISPLAY GROUP SUSPEND QMGR FACILITY(DB2) DB2 Table変更のWindow APIはSuspendされる DISPLAY SYSTEMで確認可能 WTO出力 DISPLAY CFSTATUS TYPE(BACKUP) 36 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DISPLAY GROUPコマンドの拡張 Orphaned Message(DB2)の表示が追加 DISPLAY GROUP Orphaned Message(DB2)の情報表示が追加 CFとDBの不一致:CF:PLEIDが無く、DB2にエントリーが残っている場合 表示例: CSQ5100I M60A DISPLAY GROUP REPORT ... CSQ5102I M60A QUEUE MANAGERS IN GROUP QSG6 ---------------------------------------------------------NAME NUM PREFIX STATUS VER DB2 CONNECTION ---- --- -------- ---------- --- ---- ---------M60A 1 M60A ACTIVE 600 D7S1 ACTIVE ---------------------------------------------------------END OF QUEUE MANAGERS REPORT 37 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> SUSPEND QMGRコマンドの拡張 Suspend:FACILITYパラメーターの追加 CMDSCOPE(‘ ’) SUSPEND QMGR CLUSTER(cluster name) CLUSNL(nl name) FACILITY( CMDSCOPE(qmgr-name) ) DB2 IMSBRIDGE 追加パラメーター LOG MODE(QUIESCE) MODE(FORCE) DB2(共用環境)接続、IMS BRIDGEの停止が可能 実行例: *CSQ5032I M60A D71SGRP CONNECTION TO DB2 IN 755 DATA-SHARING GROUP D7S1 IS SUSPENDED CSQ9022I M60A CSQMCCLU ' SUSPEND QMGR' NORMAL COMPLETION CSQ5019I M60A CSQ5DISC DISCONNECTED FROM DB2 D7S1 38 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> RESUME QMGRコマンドの拡張 Resume CMDSCOPE(‘ ’) RESUME QMGR CLUSTER(cluster name) CLUSNL(nl name) FACILITY( CMDSCOPE(qmgr-name) ) DB2 IMSBRIDGE 追加パラメーター LOG Suspend状態のDB2(共用環境)接続、IMS BRIDGEの開始が可能 実行例: M60A RESUME QMGR FACILITY(DB2) CSQ5033I M60A D71SGRP CONNECTION TO DB2 IN 865 DATA-SHARING GROUP D7S1 IS RESUMED CSQ9022I M60A CSQMCCLU ' RESUME QMGR' NORMAL COMPLETION 39 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DISPLAY CFSTATUSコマンドの拡張 DISPLAY CFSTATUS DISPLAY CFSTATUS(cf-name) WHERE(Filter Condition) 追加パラメーター TYPE(SUMMARY) TYPE(CONNECT) TYPE(BACKUP) 表示属性追加 CFのStatusを表示 TYPE(BACKUP)のオプション指定が追加 バックアップ状況の表示が可能に WHERE句によるフィルターが可能 40 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DISPLAY CFSTATUSコマンドの拡張(続き) 表示例: M60A DIS CFSTATUS(*) TYPE(BACKUP) WHERE(BKUPSIZE LT 4) CSQM293I M60A CSQMDRTC 1 CFSTATUS FOUND MATCHING REQUEST CRITERIA CSQM201I M60A CSQMDRTC DIS CFSTATUS DETAILS 284 CFSTATUS(APLC4) TYPE(BACKUP) STATUS(ACTIVE) QMNAME(M60A) BKUPTIME(15.56.15) BKUPDATE(2005-06-01) BKUPSIZE(3) BKUPSRBA(000000529193) BKUPERBA(00000089C1E1) LOGS( M60A ) FAILTIME( ) FAILDATE( ) END CFSTATUS DETAILS 41 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> IGQ Double Hoppingの抑制 42 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> IGQ Double Hopping 共用環境におけるRequest-Replyの返答 現状(V5.3.1まで) QSG:QSG1 クライアント・アプリケーション QSG1:QM1 MQCONN(QM1) MQPUT(RequestQ MQMD ReplyToQ Reply Q ReplyToQmgr QM1 MQMD ReplyToQ Reply Q ReplyToQmgr サーバー・アプリケーション QSG1:QM2 MQGET ( Request Q) Request Q MQPUT (QM1.ReplyQ) IGQ ) MQGET(ReplyQ) Reply Q 共用環境では、キューに書き込むキュー・マネージャーと処理を実施するキュー・マネー ジャーが必ずしも同一ではない ReplyToQmgrがブランクの場合、メッセージを受け付けたキュー・マネージャー名がセットされる 回避策: ReplyToQMgrにキュー共用グループ名を明示指定する →アプリケーションでReplyToQmgr:QSG1と指定 43 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> IGQ Double Hopping(続き) MQ V6 ReplyToQmgr:QM1が同一キュー共用グループに属していて、ReplyToQが共用キューの場合 クライアント・アプリケーション MQCONN(QM1) MQPUT(RequestQ MQMD ReplyToQ Reply Q ReplyToQmgr QSG:QSG1 QSG1:QM1 QSG1:QM2 (SQQNMANE= IGNORE) MQMD ReplyToQ Reply Q ReplyToQmgr QM1 Request Q IGQ ) MQGET(ReplyQ) サーバー・アプリケーション MQGET ( Request Q) MQPUT (QM1.ReplyQ) Reply Q QM2は直接ReplyToQueueにReply Messageを書き込む事が可能 新Qmgr属性:SQQMNAME 値 動作 USE (初期値) 一旦宛先のキュー・マネージャーに転送 IGNORE 宛先キューが共用キューの場合、直接書き込む 44 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> 参考資料 45 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DB2テーブル・スペース定義体:(抜粋、メッセージ保持関連) CREATE TABLESPACE ベーステーブル用テーブルスペース名 USING STOGROUP DB2ストレージグループ名 BUFFERPOOL GBP名(4K) NUMPARTS 4 LOCKSIZE ANY CLOSE NO IN DB2データベース名; CREATE LOB TABLESPACE Auxiliarly表区分1用テーブルス ペース名 IN DB2データベース名 USING STOGROUP DB2ストレージグループ名 PRIQTY 一次割振り量 SECQTY 二次割振り量 LOCKSIZE LOB GBPCACHE SYSTEM BUFFERPOOL BLOB用GBP名(32K) LOG NO CLOSE NO; (Auxiliarlyテーブルスペース2-3も同様に定義) 46 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DB2テーブル定義体:(抜粋、メッセージ保持関連) CREATE TABLE CSQ.ADMIN_B_MESSAGES ( LEID CHAR(12) NOT NULL , QSGNAME CHAR(4) NOT NULL , SEGMENTNUM SMALLINT NOT NULL , MROWID ROWID NOT NULL GENERATED ALWAYS, STRUCNUM SMALLINT , LHNUMBER SMALLINT , MVERSION INT , BASEPART CHAR(2) , MESSAGE BLOB(512K) , DELCOMMIT CHAR(1) WITH DEFAULT 'N' , RECON_STAMP CHAR(8) WITH DEFAULT X'00' , PERSISTENT CHAR(1), MSG_STAMP CHAR(8), PRIMARY KEY (LEID, QSGNAME, SEGMENTNUM) ) IN DB2データベース名.ベース・テーブル用テーブルスペース名; CREATE TYPE 2 UNIQUE INDEX CSQ.ADMIN_MESSAGES_IX1 ON CSQ.ADMIN_B_MESSAGES (LEID ASC, QSGNAME ASC, SEGMENTNUM ASC) USING STOGROUP DB2ストレージグループ名 PRIQTY 一次割振り量 SECQTY 二次割振り量 CLOSE NO; 47 Copyright ISE Co,.Ltd <6章-3:キュー共用環境> DB2テーブル定義体:(抜粋、メッセージ保持関連 続き) CREATE AUX TABLE CSQ.ADMIN_MSGS_BAUX1 IN DB2データベース名.Auxiliarly表区分1用テーブルスペース名 STORES CSQ.ADMIN_B_MESSAGES COLUMN MESSAGE PART 1; CREATE INDEX CSQ.ADMIN_MSGS1 ON CSQ.ADMIN_MSGS_BAUX1 USING STOGROUP DB2ストレージグループ名 PRIQTY 一次割振り量 SECQTY 二次割振り量 CLOSE NO; (Auxiliarlyテーブル2-3も同様に定義) CREATE TYPE 2 INDEX CSQ.CLUS_INDEX ON CSQ.ADMIN_B_MESSAGES (BASEPART ASC) USING STOGROUP DB2ストレージグループ名 PRIQTY 一次割振り量 SECQTY 二次割振り量 CLUSTER (PART 1 VALUES(X'3FFF'), PART 2 VALUES(X'7FFF'), PART 3 VALUES(X'BFFF'), PART 4 VALUES(X'FFFF')) CLOSE NO; 48 Copyright ISE Co,.Ltd