websphere mq v7.0.1 機能検証 -...

68
ISE エンタープライズ・ミドルウェア 2009年11 WebSphere MQ V7.0.1 WebSphere MQ V7.0.1 機能検証 機能検証

Upload: others

Post on 15-Jul-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

ISE エンタープライズ・ミドルウェア

2009年11月

WebSphere MQ V7.0.1WebSphere MQ V7.0.1

機能検証機能検証

Page 2: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

2

分散系

Page 3: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

3

分散系

マルチ・インスタンス・キュー・マネージャー

自動再接続クライアント

イベントの追加�構成イベント

�コマンド・イベント

その他の拡張�IBM Message Service Client for .NET (XMS for .NET)

�WCFのMQ用カスタム・チャネルのサポート

�OCSPサポートの追加

�サービス定義ウィザード(MQ Explorer)

�パブリッシュEXITの追加

�Pub/Subの拡張

トピック

この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておらず、当資料に記載された内容に関して当ワークショップの主催者である日本アイ・ビー・エム システムズ・エンジニアリング株式会社は何ら保証するものではありません。従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても一切の保証をするものではありません。当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。

Page 4: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

4

マルチ・インスタンス・キュー・マネージャー

Page 5: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

5

マルチ・インスタンス・キュー・マネージャーとは

WebSphere MQ V7.0.1(以下MQ V7.0.1)の新しい可用性ソリューション機能の1つ

HAコーディネーター製品(ex. HACMP など)を使用せずに同一キュー・マネージャーを複数マシンで稼動させることが可能(Active-Standby構成)

共有キュー・マネージャー・データを外部(NFSや別サーバなど)に配置することで可用性が向上

自動フェール・オーバーが可能

アクティブ・インスタンスで障害が発生した場合、ネットワーク障害で共有キュー・マネージャー・データに接続されていない場合など、自動でスタンバイ・インスタンスへフェールオーバー

2つ以上のキュー・マネージャー・インスタンスを構成することが可能

3つ目以降のキュー・マネージャー・インスタンスはスタンバイとして開始しておくことは不可

z/OS以外の全プラットフォーム(*)で対応

併せてMQ V7.0.1より strmqm、endmqm、dspmq などにオプションが追加

� strmqm -x : マルチ・インスタンスとしてキュー・マネージャーの開始

� endmqm -s : アクティブ・インスタンスを停止し、スタンバイ・インスタンスへフェールオーバー

� dspmq -x : キュー・マネージャー・インスタンスについての情報を表示 など

(*) i5/OSとSolarisは現時点(2009.11月)では未対応。詳細は以下参照。http://www-01.ibm.com/support/docview.wss?uid=swg21398427&myns=swgws&mynp=OCSSFKSJ&mync=R

Page 6: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

6

ネットワーク・ファイル・システム

動作イメージ

MQクライアント

マシン A マシン B

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

アクティブアクティブアクティブアクティブ・・・・インスタンスインスタンスインスタンスインスタンス

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー・・・・データデータデータデータをををを所有所有所有所有

MQクライアント

マルチ・インスタンス・キュー・マネージャー通常稼動時

マシンAのキュー・マネージャーがアクティブ・インスタンスとして、マシンBのキュー・マネージャーがスタンバイ・インスタンスとして稼動

クライアントはマシンAへのCONNAMEで接続

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

スタンバイスタンバイスタンバイスタンバイ・・・・インスタンスインスタンスインスタンスインスタンス

キューマネージャー・データ

<QMGRS>/data

<QMGRS>/log

Page 7: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

7

Client connections broken

アクティブ・インスタンスがダウンし、スタンバイ・インスタンスへフェール・オーバー開始

マシンBのキュー・マネージャー・インスタンスがキュー・マネージャー・データの所有処理を開始する

クライアントからの接続は切断

アプリケーションにはBrokenは返らない

動作イメージ

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー・・・・データデータデータデータのののの所有処理所有処理所有処理所有処理のののの開始開始開始開始

MQクライアント

マシン B

MQクライアント

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

スタンバイスタンバイスタンバイスタンバイ・・・・インスタンスインスタンスインスタンスインスタンス

マシン A

キュー・マネージャー:QM1

アクティブ・インスタンスフェールフェールフェールフェール・・・・オーバーオーバーオーバーオーバー開始開始開始開始

ネットワーク・ファイル・システム

Page 8: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

8

Client connections reconnect

スタンバイ・インスタンスがアクティブ・インスタンスとして稼動開始

キュー・マネージャー・データの所有

クライアントはマシンBへのCONNAMEで再接続

動作イメージ

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー・・・・データデータデータデータをををを所有所有所有所有

MQクライアント

マシン B

MQクライアント

マシン A

キュー・マネージャー:QM1

ネットワーク・ファイル・システム

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

アクティブアクティブアクティブアクティブ・・・・インスタンスインスタンスインスタンスインスタンス

Page 9: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

9

前提条件

ログ・ディレクトリとデータ・ディレクトリを配置するための共用ネットワーク・ファイルシステムに配置AIX : NFS v4以上

Windows : Windows共有、CIFS(Common Internet File System)など

ファイル・システムの要件 (InfoCenter)http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.amqzag.doc/fa70111_.htm

同一IDのmqmユーザ/グループを使用AIXでは同一UID、GIDのmqmユーザ/グループ

Windowsではmqmドメイン・ローカル・グループ

注意:Windowsでドメイン・ローカル・グループを使用する理由� ドメイン・ローカル・グループ

– ドメイン、およびフォレストのユーザおよびグループを同一メンバーとして所有することができる

– ドメイン内のアクセス許可のみに使用することができる~InfoCenterより~ドメイン・ローカル・グループの場合 ローカル・グループの場合

Page 10: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

10

ネットワーク・ファイル・システム

設定の流れ(AIXの場合)

マシン A マシン B

① キュー・マネージャー・データ用の共用ファイル・システムのセットアップ

dataとlogディレクトリ作成

同一UID、GIDのmqmユーザ/グループを作成

作成したディレクトリにアクセス権限(変更可能レベル)を付与

作成したファイルシステムの共有設定(export)

キューマネージャー・データ

<QMGRS>/data

<QMGRS>/log

①①①①

Page 11: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

11

ネットワーク・ファイル・システム

設定の流れ(AIXの場合)

マシン A マシン B

② 共用ファイル・システムへのアクセス

キュー・マネージャーを稼動させる両マシンに①で作成したUID、GIDのmqmユーザとmqmグループの作成

両マシンから共用ファイル・システムをマウント

ファイル・システムの検査/usr/mqm/bin/配下のamqmfsckを実行

例) ./amqmfsck -v マウントしたパス

③ MQ V7.0.1の導入

②②②②、、、、③③③③ ②②②②、、、、③③③③

Page 12: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

12

設定の流れ(AIXの場合)

④ アクティブ・インスタンス・キュー・マネージャーの作成と開始

crtmqm -ld ログパス -md QMGRデータ・パス QMGR名

strmqm -x QMGR名

⑤ スタンバイ・インスタンス・キュー・マネージャー定義の出力

アクティブ・インスタンスにてdspmqinf コマンドの実行結果としてスタンバイ・インスタンス作成用のaddmqinfが出力される

dspmqinf -o command QMGR名

⑥ スタンバイ・インスタンス・キュー・マネージャーの作成と開始

⑤の実行結果のaddmqinfコマンドを使用してスタンバイ・インスタンス作成

例:addmqinf -s QueueManager -v Name=MQ701 -v Directory=MQ701 -v Prefix=/var/mqm -v DataPath=/mnt/NFS4FileSystem/mq701/data/MQ701

②②②②

ネットワーク・ファイル・システム

マシン A マシン B

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

アクティブアクティブアクティブアクティブ・・・・インスタンスインスタンスインスタンスインスタンス

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

スタンバイスタンバイスタンバイスタンバイ・・・・インスタンスインスタンスインスタンスインスタンス

④④④④、、、、⑤⑤⑤⑤ ⑥⑥⑥⑥

Page 13: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

13

ネットワーク・ファイル・システム

設定の流れ(Windowsの場合)

マシン A マシン B

① MQ V7.0.1の導入

Windows環境ではこのタイミングでmqmドメイン・ローカル・グループが作成されるため、

事前にサーバーの役割を「ドメイン・コントローラー」にしておく

② キュー・マネージャー・データ用の共用ファイル・システムのセットアップ

dataとlogディレクトリ作成

作成したディレクトリにアクセス権限(変更可能レベル)を付与Windows環境ではmqmドメイン・ローカル・グループをアクセス許可(変更権限)

作成したファイルシステムの共有設定(Windows共有など)

キューマネージャー・データ

<QMGRS>/data

<QMGRS>/log

②②②②①①①① ①①①①

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

アクティブアクティブアクティブアクティブ・・・・インスタンスインスタンスインスタンスインスタンス

Page 14: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

14

③ アクティブ・インスタンス・キュー・マネージャーの作成と開始

crtmqm -ld ログパス -md QMGRデータ・パス QMGR名

strmqm -x QMGR名

④ スタンバイ・インスタンス・キュー・マネージャー定義の出力

アクティブ・インスタンスにてdspmqinf コマンドの実行結果としてスタンバイ・インスタンス作成用のaddmqinfが出力される

dspmqinf -o command QMGR名

⑤ スタンバイ・インスタンス・キュー・マネージャーの作成と開始

⑤の実行結果のaddmqinfコマンドを使用してスタンバイ・インスタンス作成

例:addmqinf -s QueueManager -v Name=MQ701 -v Directory=MQ701 -v Prefix="C:¥Program Files¥IBM¥WebSphere MQ" -v

DataPath=¥¥MQFileServer¥WinShareDir¥mq701¥data¥MQ701

②②②②

ネットワーク・ファイル・システム

マシン A マシン B

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

アクティブアクティブアクティブアクティブ・・・・インスタンスインスタンスインスタンスインスタンス

キューキューキューキュー・・・・マネージャーマネージャーマネージャーマネージャー::::QM1

スタンバイスタンバイスタンバイスタンバイ・・・・インスタンスインスタンスインスタンスインスタンス

⑤⑤⑤⑤ ⑥⑥⑥⑥

設定の流れ(Windowsの場合)

Page 15: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

15

考慮点・制約

2つ以上のキュー・マネージャー・インスタンスを構成することが可能

可用性を考慮しても3つ目以降はスタンバイとして開始しておくことができないため手動での起

動が必要

IPアドレスは引き継がないため、接続するチャネルにはCONNAMEには両ホストの情

報登録が必要

最初に起動したキュー・マネージャー・インスタンスがアクティブとして稼動

運用にて起動順序を決めておく方が良い

マルチ・インスタンス・キュー・マネージャーの情報は、共用キュー・マネージャー・データ・ディレクトリーにある qm.ini および qmstatus.ini ファイルに保管

Windowsもレジストリではない

同一マルチ・インスタンス・キュー・マネージャーは同一バージョン(MQ V7.0.1以上)であ

ることが必須

Page 16: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

16

考慮点・制約

ログおよびデータ・ディレクトリーは、FATファイル・システムには格納できない(Windows)

Windows環境でマルチ・インスタンス・キュー・マネージャーを稼動させる場合、ドメイン・

コントローラ上に作成しなくてはいけない

通常、業務サーバ(MQやWASなどが稼動)と、管理サーバ(ユーザ情報を管理するドメイン・

コントローラなど)を同一ネットワークセグメントに配置することはないため、セキュリティへの対応も考慮する必要がある

Windows環境でのマルチ・インスタンス・キュー・マネージャーの起動オプションは「手動」に設定

起動オプションを「自動」で起動すると、-xオプションなし(STANDBYを許可しない)でキュー・マネージャーが開始されてしまうため

Page 17: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

17

参考

以下のディレクトリにキュー・マネージャー情報、アクティブ/スタンバイのホスト名を保持

場所

�AIX:/{NFSマウント・ルート名}/{キュー・マネージャー名}/data/MQ701

�Windows:¥¥{共有ルート名}¥data

各ファイル

�Active (WindowsではActive.dat)

–現在アクティブ・インスタンスを稼働させているホストの情報を保持

�Master (WindowsではMaster.dat)

–現在アクティブ・インスタンスを稼働させているホストの情報を保持

–スタンバイ・インスタンスのAmqzxma0(実行コントローラ)が数秒間隔で定期的に当ファイルのロックを確認

�Standby (WindowsではStandby.dat)

–キュー・マネージャーをstandbyモードで稼働させているホストの情報を保持

Page 18: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

18

参考

MQエクスプローラでのマルチ・インスタンス・キュー・マネージャーの表示例

[アクティブ・インスタンス]

[スタンバイ・インスタンス]

Page 19: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

19

参考

MQエクスプローラでのマルチ・インスタンス・キュー・マネージャーの表示例

リモート・キュー・マネージャーとして登録した場合

Page 20: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

20

クライアント自動再接続

Page 21: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

21

概要

クライアント自動再接続機能とは

クライアント・ライブラリーが障害を検知して、再接続を行う機能

同一、または異なるキュー・マネージャーへの再接続が可能

ライブラリー・レベルでの再接続。アプリケーションはキュー・マネージャーの再接続を検知しない

� 自動でコネクション・ハンドルが入れ替わるため、アプリケーションでの考慮が必要

再接続間隔は徐々に長くなる [幕張でのテスト結果より]

再接続タイムアウトを設定することが可能

ネットワーク・ファイル・システム

MQクライアント

マシン A マシン B

キューマネージャーキューマネージャーキューマネージャーキューマネージャー::::QM1QM1QM1QM1マルチマルチマルチマルチ・・・・インスタンスインスタンスインスタンスインスタンス

フェール・オーバー

MQクライアント

キューマネージャーキューマネージャーキューマネージャーキューマネージャー::::QM1QM1QM1QM1アクティブアクティブアクティブアクティブ・・・・インスタンスインスタンスインスタンスインスタンス

自動再接続例

Page 22: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

22

設定方法

クライアント自動再接続を使用するための設定項目

自動再接続のON/OFF�MQCONNXのMQCNOオプション、mqclient.ini

接続先キュー・マネージャーの登録�MQSERVER環境変数、チャネル定義テーブル

タイムアウト時間、自動再接続までの待機時間�mqclient.ini、コールバック関数コンテキスト(MQCBC)

Page 23: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

23

設定方法

クライアント自動再接続のON/OFFデフォルトでは自動再接続されないため、MQCONNX、mqclient.iniでの設定が必要

�基本的にはMQCONNXの設定が優先–mqclient.iniにDefRecon=DISABLEDが設定されている場合はこちらが優先

�MQCONNX、mqclient.iniのいずれにも設定がない場合は、無効

MQCONNX

�MQCNOオプションに以下のMQCNOオプションを設定

�自動再接続可能なのはクライアント接続のみ(ローカル接続で設定すると MQRC_OPTIONS_ERROR エラーが返る)

–MQCNO_RECONNECT_AS_DEF

�mqclient.ini の設定に従う

�mqclient.ini に設定がない場合はDISABLED

–MQCNO_RECONNECT

�QmgrName パラメーターの値 MQCONNX と整合する任意のキュー・マネージャーに自動再接続

–MQCNO_RECONNECT_Q_MGR

�最初に接続されていたキュー・マネージャーにのみ自動再接続可能

�複数インスタンス・キュー・マネージャーを使用している場合、スタンバイ・キュー・マネージャーへの自動再接続可能

–MQCNO_RECONNECT_DISABLED

�自動再接続なし

Page 24: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

24

設定方法

(続き)

mqclient.iniのCHANNELSスタンザで以下を設定�DefRecon=NO|YES|QMGR|DISABLED

–NO

�MQCONNX でオーバーライドされない限り、 クライアントは自動再接続されない

–YES

�MQCONNX でオーバーライドされない限り、 クライアントは自動再接続する

–QMGR

�MQCONNX でオーバーライドされない限り、 クライアントは、同じキュー・マネージャーに対してのみ自動再接続する。QMGR オプションは MQCNO_RECONNECT_Q_MGR と同じ

–DISABLED

�クライアント・プログラムが MQCONNX MQI 呼び出しを使用して要求しても、 再接続は無効

Page 25: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

25

接続先キュー・マネージャーの登録

MQSERVER環境変数

�アプリケーションの起動環境に設定

–AIXの場合:export MQSERVER='SYSTEM.AUTO.SVRCONN/TCP/HostA (1414),HostB(1414)‘

–Windowsの場合:SET MQSERVER='SYSTEM.AUTO.SVRCONN/TCP/HostA (1414),HostB(1414)‘

�通常のクライアント接続と同様に「チャネル名」、「プロトコル」、「アドレス情報」を‘/’(スラッシュ)区切りで指定

–アドレス情報はコンマ( , )区切りで複数リストすることが可能

チャネル定義テーブル

�キュー・マネージャー側でクライアント接続チャネルを定義

�チャネル定義テーブルに複数のエントリを事前に定義しておく

�チャネル定義はチャネル定義テーブル・ファイルに保存されるので、アプリケーション側に配布

–ファイル転送を行う場合は、バイナリ・モードで転送

設定方法

MQSERVER=クライアント接続チャネル名/プロトコル/アドレス情報 #1,アドレス情報 #2

DEFINE CHANNEL(チャネル名) CHLTYPE(CLNTCONN) TRPTYPE(プロトコル)

CONNAME(アドレス情報#1,アドレス情報#2) QMNAME(キュー・マネージャー名)

Page 26: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

26

設定方法

タイムアウト時間、自動再接続までの待機時間自動再接続タイムアウト時間

�mqclient.iniのCHANNELSスタンザで以下を設定

MQReconnectTimeout = n(秒)–クライアント自動再接続のタイムアウト時間を設定

–デフォルトは1800(30分)

自動再接続までの待機時間�コールバック関数コンテキスト(MQCBC)のReconnectDelayフィールドにミリ秒単位で設定

–自動再接続までの待機時間を変更することが可能

–MQCBCのReasonフィールドの値がMQRC_RECONNECTINGである場合のみ使用

Page 27: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

27

前提環境・条件

前提環境

MQサーバー、MQクライアント共にMQ V7.0.1以上の環境

アプリケーションがスレッド化されている

チャネルのSHARECNV属性は0よりも大きい

� デフォルトは“10”

接続先のキュー・マネージャーで下記事象が発生した場合のみ、クライアントは自動再接続を開始することが可能

通信障害

キュー・マネージャー、リスナーの障害

endmqm –s、またはendmqm –r でキュー・マネージャーが停止した場合

� その他のオプションでのendmqm 、STOP CHANNEL 、STOP CONN は該当しない

Page 28: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

28

アプリケーションの考慮点

クライアント自動再接続機能は、ライブラリ・レベルで行われるため、クライアント・アプリケーションは再接続の検知ができない

コールバック機能のイベント・ハンドラーを用いて、接続が再試行されているかどうかを検出することが可能

�再接続の試行を開始した時には MQRC_RECONNECTING、再接続が正常に行われた後にはMQRC_RECONNECTED を使用してイベント・ハンドラーに通知が行われる

グループメッセージでの論理的な順序保証のオプションはサポートされない

MQPMO_LOGICAL_ORDER

MQGMO_LOGICAL_ORDER

同期点なしのパーシステントメッセージの書き込み(MQPUT) は、取り消される可能性がある

仕掛かり中のトランザクションはバックアウトされる

拡張トランザクション・クライアントはクライアント自動再接続機能をサポートしない

Page 29: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

29

イベントの追加

Page 30: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

30

イベントの追加

以下のイベントが新規追加

構成イベント

�MQオブジェクトを操作する際に、生成されるイベント

�変更前後のオブジェクト属性、変更操作したユーザーのID等を取得することが可能

コマンド・イベント

�MQSCコマンドなど、キュー・マネージャーに対して操作を行う際に、生成されるイベント

�発行されたコマンドのタイプ、MQSCコマンドのテキスト、実行したユーザーのID等を取得可能

キュー・マネージャー

イベント・キュー

コマンド・イベント・メッセージ

MQSCコマンドの発行

オブジェクト作成、変更

構成イベント・メッセージ

Page 31: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

31

構成イベント

MQオブジェクトを操作する際、生成されるイベント

下の4種のイベントを生成

�オブジェクト作成イベント

�オブジェクト変更イベント

�オブジェクト削除イベント

�オブジェクト・リフレッシュ・イベント

監査証跡に利用可能

�オブジェクトが予期せずに変更された場合、変更したユーザーおよび時刻などを保管するなど

イベント・スイッチ

キュー・マネージャー属性でイベント生成のON/OFFを指定

�CONFIGEV(DISABLED|ENABLED)

イベント・キュー

SYSTEM.ADMIN.CONFIG.EVENT

イベント・データに含まれる情報

コマンド・メッセージからのメッセージ・データ内のコンテキスト情報コンテキスト情報計

オブジェクト内のすべての属性値オブジェクト属性

オブジェクトの名前、タイプオブジェクト識別

変更が行われたキュー・マネージャー、変更を行ったユーザーの ID、および行われた変更方法発生元情報

説明種別

Page 32: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

32

<参考>イベント発生条件

以下のいずれかのMQSCコマンド、または PCF でこれらに相当するコマンドが発行された場合DEFINE/ALTER AUTHINFO

DEFINE/ALTER CFSTRUCT

DEFINE/ALTER CHANNEL

DEFINE/ALTER NAMELIST

DEFINE/ALTER PROCESS

DEFINE/ALTER QMODEL/QALIAS/QREMOTE

DEFINE/ALTER STGCLASS

DEFINE/ALTER TOPIC

DEFINE MAXSMSGS

ALTER QMGR (CONFIGEV 属性が DISABLED であり、ENABLED に変更されない場合を除く)

以下のいずれかのMQSCコマンド、または PCF でこれらに相当するコマンドが発行された場合DELETE AUTHINFO

DELETE CFSTRUCT

DELETE CHANNEL

DELETE NAMELIST

DELETE PROCESS

DELETE QMODEL/QALIAS/QREMOTE

DELETE STGCLASS

DELETE TOPIC

REFRESH QMGR

以下のいずれかのコマンド、または PCF でこれらに相当するコマンドが、ローカル・キューに対して発行された場合DELETE QLOCAL(一時動的キューは対象外)

DEFINE/ALTER QLOCAL(一時動的キューは対象外)

一時動的キュー以外に対して MQSET 呼び出しが発行された場合

Page 33: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

33

構成イベントの注意点

すべてのオブジェクトに対する構成イベントを生成することが可能

MQオブジェクトの構成などを一度に取得したい場合などに利用可能

REFRESH QMGR、または PCF コマンドで生成

�生成されるイベントのフィルタリングが可能– オブジェクト名

– オブジェクト・タイプ

– リフレッシュ間隔

構成イベント・メッセージが生成されないケース

コマンドまたは MQSET 呼び出しが失敗した場合

イベント・キューへのイベント・メッセージの書き込みが失敗した場合

一時動的キューに対する操作

TRIGGER キュー属性に対して内部変更が行われた場合

構成イベント・キュー SYSTEM.ADMIN.CONFIG.EVENTに対する操作

�(ただし、REFRESH QMGR コマンドによる場合は除く)

クラスタリングを変更するREFRESH/RESET CLUSTER コマンドと RESUME/SUSPEND

キュー・マネージャーの作成/削除

Page 34: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

34

コマンド・イベント

MQSC または PCF コマンドが正常に実行された際に、生成されるイベント

実行されたコマンドの監査証跡に利用可能

�オブジェクトが予期せずに変更された場合、変更したユーザーおよび時刻などを保管することが可能

イベント・スイッチ

キュー・マネージャー属性でイベント生成のON/OFFを指定

CMDEV (ENABLED | DISABLED | NODISPLAY )

�ENABLED :MQSC コマンドまたは PCF コマンドが正常に実行された場合イベント生成

�NODISPLAY :MQSC コマンドまたは PCF コマンドが正常に実行された場合(DISPLAY コマンド (MQSC) および照会コマンド (PCF)を除く)

�DISABLED :オフ

イベント・キュー: SYSTEM.ADMIN.COMMAND.EVENT

イベント・データに含まれる情報

コマンド・メッセージからのメッセージ・データ内のコンテキスト情報コンテキスト情報

PCF コマンドでは、コマンド・データ

MQSC コマンドでは、コマンド・テキスト

コマンド・データ

発行されたコマンドのタイプコマンド情報

キュー・マネージャー、コマンドを発行したユーザー ID、およびコマンドの 発行方法 (例えばコンソール・コマンドによるものなど)

発生元情報

説明種別

Page 35: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

35

コマンド・イベントの注意点

ALTER QMGR、または PCF コマンド Change Queue Manager実行時のイベント

実行前、もしくは、実行後に、CMDEV(ENABLED)が指定されてる場合、イベントが生成

コマンド・イベントが生成されないケース

コマンドが失敗した場合

イベント・キューへのイベント・メッセージの書き込みが失敗した場合

Page 36: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

36

その他の拡張

Page 37: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

37

IBM Message Service Client for .NET (XMS for .NET)

サポート・パックIA9Hの統合

IA9H IBM Message Service Client for .NETが製品に統合

IBM Message Service Client for .NETの特徴

Java以外の言語で使用可能なメッセージングAPI

�C, C++, .NET版を提供

JMS 1.1に準拠

�2つのメッセージング・モデル

–Point to point(PTP)

–Publish/Subscribe(Pub/Sub)

�主要なクラス–Connection, Session, Destination, Producer, Comsumer…

�5タイプのメッセージ

–TextMessage, BytesMessage, ObjectMessage, StreamMessage, MapMessage

MQ v7.0新機能を使用可能

�非同期PUT/GET、共用会話、Pub/Sub…

JMSプロバイダー

メッセージング・サービス

MQ

XMSアプリケーション

C/C++/C#

他社メッセージング製品

他社メッセージング製品

JMSクライアント

JMS JMS

Page 38: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

38

IBM Message Service Client for .NET (XMS for .NET)

前提

Microsoft® Windows® XP (Service Pack 1 適用済み) or Microsoft Windows 2003 Server.NET Framework v2.0

v7.0.1.0 or later

�MQクライアント・ライブラリ、キュー・マネージャー

�クライアント接続の場合、MQ v7.0, v6.0, v5.3キュー・マネージャーへ接続可能

�ローカル接続の場合、MQ v7.0.1のみ接続可能

.NET Framework v2.0

提供サンプル

配置ディレクトリー

�C:¥Program Files¥IBM¥WebSphere MQ¥Tools¥dotnet¥samples¥cs配下

– SampleProducer

– SampleComsumer

– SampleCommon

Page 39: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

39

WCFのMQ用カスタム・チャネルのサポート

WCFは、.NET上の新しいサービス指向のプログラミング・モデル

WCFアプリケーションはカスタム・チャネル・スタックを通じて、様々な通信プロトコルを利用できる

�HTTP、TCPIP、MSMQなど

MQ用のカスタム・チャネルにより、WCFアプリケーションとMQアプリケーションの連携が可能

.NET Framwork 3.0または3.5のサポート

XMS .NETの機能を利用

�MQ V7.0.1は、このWCFプログラム・モデルにおけるえMQ用カスタム・スタック・チャネルを提供

MQを意識せずにWCFクライアント、サービス間でデータ送受信が可能

WMQ

Q

Message Encoder

WMQ Transport

Protocols..

WCF Client Application

WCF Channel Stack

WCF Services Layer

Message Encoder

WMQ Transport

WCF ServiceApplication

WCF Channel Stack

WCF Services Layer

Protocols..

Native WMQApplication

WMQ SOAP/JMS

SOAPLayer

WebService

MQアプリケーションSOAP/JMSアプリケーション

WCFアプリケーション

Page 40: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

40

WCFのMQ用カスタム・チャネルのサポート

前提�MicrosoftR .NET Framework v3.0 以降

�XMS.NETの機能を利用

開発環境�Microsoft Visual Studio 2008 または Windows Software Development Kit for .NET 3.0 以降

�Microsoft .NET Framework V3.5 以降を、ソリューション・ファイルを作成するマシンに導入することが必要

主要クラス

Namespace: IBM.XMS.WCF 以下

�Transport Binding Name: IBM.XMS.WCF.SoapJmsIbmTransportBindingElement

�Transport Binding Importer: IBM.XMS.WCF.SoapJmsIbmTransportBindingElementImporter

�Transport Binding Config: IBM.XMS.WCF.SoapJmsIbmTransportBindingElementConfig

提供サンプル

配置ディレクトリー

�MQInstallDir¥tools¥wcf¥samples¥

�MQInstallDir¥tools¥wcf¥docs¥examples

– svcutil.exe.config:Microsoft WCF svcutil クライアント・プロキシー生成ツールで カスタム・チャネルを認識できるようにするために必要な構成設定

Page 41: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

41

OCSPサポートの追加

SSLで使用するX.509デジタル証明書の有効期限切れを検知するためのプロトコルとしてOCSPプロトコルを新たにサポート

OCSPとは

オンラインで証明書の失効情報を確認するためのプロトコル( RFC2560で規定)

証明書利用者(OCSP リクエスタ)は、OCSP レスポンダ(OCSP サーバーとも呼ばれる)に失効情報を問い合わせる

OCSP レスポンダは、問い合わせに対して証明書の状態を返す

�良好/ 失効/ 不明

OSCPのリクエスト、レスポンスはHTTP/HTTPSプロトコル上で行われる

CA認証局

証明書発行

OCSPリクエスタ

失効情報の問い合わせ

証明書の状態有効/失効/不明OCSPレスポンダ

証明書失効情報の伝達

Page 42: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

42

OCSP設定

OCSPレスポンダが以下のいずれかで設定されている場合、失効確認が有効となる

検査対象の証明書内の AuthorityInfoAccess (AIA) 証明書拡張

認証情報オブジェクト

MQクライアント・アプリケーション

※CA証明書を使用する場合のみ、OCSP設定は有効

認証情報オブジェクトでのOCSPレスポンダの指定

AUTHINFOオブジェクトの作成

�AUTHTYPE:OCSP

�OCSPURL:OCSPレスポンダのURLを指定

NAMELISTに作成したAUTHINFOを指定

キュー・マネージャーのSSLCRLNL属性に作成したNAMELISTを指定

MQクライアントでOCSPレスポンダを指定

MQCONNX: MQAIR構造体にOCSP情報を設定し、MQAIR構造体のアドレスをMQSCO構造体に引き渡す.さらにMQSCO構造体のアドレスをMQCONNX実行時に引数としてわたす

�SSLサーバ側で上記の設定がされている状態でクライアント接続チャネルを作成

ALTER QMGR SSLCRLNL( namelist_name)

DEFINE NAMELIST( namelist_name) names( authinfo_name)

DEFINE AUTHINFO( authinfo_name ) AUTHTYPE( OCSP ) OCSPURL ( string )

Page 43: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

43

OCSPからのレスポンス

OCSPからのレスポンス

OCSPレスポンダへの問い合わせに対して、以下のいずれかが返る

� 良好:証明書は有効です。

� 失効:証明書は失効しています。

� 不明:この結果になるのは、次の 3 つのうちのいずれかが原因である可能性があります。

–WebSphere MQ が OCSP 応答側にアクセスできない。

–OCSP 応答側が応答を送信したが、WebSphere MQ が応答のデジタル署名を検証できない。

–OCSP 応答側が、その証明書に関する失効データを保持していないことを示す応答を送信した。

レスポンスへの対応

OCSP応答「不明」を受信した場合、OCSPAuthentication設定値(qm.ini, SSLスタンザ)により動作が異なる

OCSPAuthentication=REQUIRED (デフォルト)| OPTIONAL | WAR

�REQUIRED: 接続を拒否し、AMQ9716エラーを返す

�OPTIONAL: チャネルの開始を許可

�WARN: チャネルは開始されるが、AMQ9717 警告をエラー・ログに出力

Page 44: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

44

サービス定義ウィザード

WSDL記述を生成可能なGUIウィザード

Eclipse プラグインとして提供

ナビゲータ・ビューからサービス定義ウィザードを開始

生成されたWSDL

Page 45: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

45

パブリッシュEXITの追加

パブリッシュされたメッセージがサブスクライバーによって受信される前に、任意のロジックを呼び出すことが可能

z/OSはサポート外

以下の操作を行うことが可能

�各サブスクライバーにパブリッシュされるメッセージの内容を検査

�各サブスクライバーにパブリッシュされるメッセージの内容を変更

�メッセージのPUT先キューを変更

�メッセージをサブスクライバーに送信しないことを選択

パブリッシュ出口は、以下の操作時、キュー・マネージャー・プロセスで実行

1 つ以上のサブスクライバーへのパブリッシュ操作

1 つ以上のリテイン・メッセージが送信されるサブスクライブ操作(MQSUB)

1 つ以上のリテイン・メッセージが送信されるサブスクリプション要求操作(MQSUBRQ)

Page 46: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

46

パブリッシュEXITの追加

構文

各パラメーターの説明

コンパイル方法は、チャネル出口と同様

記述例

MQ_PUBLISH_EXIT(ExitParms, PubContext, SubContext)

MQSBC 入出力

MQPBC 入力

MQPSXP 入出力

タイプ

パブリケーション・コンテキストの構造。この構造には、パブリケーションのパブリッシャーに関するコンテキスト情報が含まれます。

PubContext

サブスクリプション・コンテキストの構造。この構造には、パブリケーションを受信するサブスクライバーに関するコンテキスト情報が含まれます。

SubContext

出口パラメーターの構造。この構造には、出口の呼び出しに関する情報が含まれます。

ExitParms

説明パラメータ

#include “cmqc.h”#include “cmqxc.h”

MQ_PUBLISH_EXIT MyPublishExit;void MQENTRY MyPublishExit( PMQPSXP pExitParms,

PMQPBC pPubContext,PMQSBC pSubContext )

{/* C language statements to perform the function of the exit */

}

Page 47: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

47

パブリッシュEXITの追加

キュー・マネージャー構成ファイルで設定

qm.ini ファイルのPublishSubscribe スタンザを設定

�PublishExitPath=[path]│module_name

�パブリッシュ出口コードを含むモジュールの名前とパス

PublishExitFunction=function_name

�パブリッシュ出口コードを含むモジュールへの関数エントリー・ポイントの名前

PublishExitData=string

�キュー・マネージャーがパブリッシュ出口を呼び出している場合、入力として MQPSXP 構造が渡されます。PublishExitData 属性を使用して指定されたデータは、構造の ExitData フィールドに入ります

Windowsの場合は、MQ Explorerから設定

設定後、キュー・マネージャーの再起動が必要

Page 48: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

48

Pub/Subその他の拡張

MQPMOオプションの追加

MQPMO_WARN_IF_NO_SUBS_MATCHED

�パブリケーションと一致するサブスクリプションがない場合、MQCC_WARNING およびMQRC_NO_SUBS_MATCHED 理由コードを戻す

WMBv7からPubSubエンジンをMQv701に統合

Publicationノードから、WMBではなくMQのPubSubエンジンをMQAPI経由で呼び出す

WMB

MQ

インターフェース

Contents Based Filtering

Contents Based Filtering

Page 49: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

49

z/OS

Page 50: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

50

z/OS

64bitストレージの活用

ログ圧縮書き出し

GROUP UR

LE バッチ・アプリケーションの構築

移行

トピック

この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておらず、当資料に記載された内容に関して当ワークショップの主催者である日本アイ・ビー・エム システムズ・エンジニアリング株式会社は何ら保証するものではありません。従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても一切の保証をするものではありません。当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。

Page 51: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

51

64bitストレージの活用

Page 52: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

52

64bitストレージの活用

V7.0.1より以下のコンポーネントも64bitストレージ(Above 2GB)を使用する

ロック�未解決のUOWでのメッセージに対するロック、キューのオープン・ハンドルなど

キューのインデックス�インデックス指定されたキューに保持できるメッセージ数の増加が可能

セキュリティ�セキュリティ情報に関するコントロール・ブロック

Pub/Subエンジン(V7.0.0より対応)

�トピック・ツリー、サブスクリプションに関するコントロール・ブロック

MEMLIMITの設定MEMLIMITとは

各アドレス・スペースにおけるAbove 2GBの使用量を制限するOSのパラメーター

�z/OS V1.9のデフォルト:MEMLIMIT=0GB ⇒2GB aboveが使えない

�z/OS V1.10のデフォルト:MEMLIMIT=2GB

MEMLIMITの設定値を確認し、変更が必要な場合はMQ開始プロシージャーに設定する例) z/OS V1.9のデフォルト:MEMLIMIT=0GBの場合⇒ MEMLIMIT=2GをssidMSTRに設定

参照テクニカルフラッシュ「z/OS V1.10: PARMLIB(SMFPRMxx) MEMLIMITパラメーターの省略時値変更に伴う影響とその対応」

http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-000698D5

//PROCSTEP EXEC PGM=CSQYASCP,REGION=OM,MEMLIMIT=2G

Page 53: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

53

ログ圧縮書き出し

Page 54: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

54

ログ圧縮書き出し

パーシステント・メッセージをMQPUTする際に書き出すログ・レコードの圧縮が可能

圧縮ロジックはRLE(連長圧縮)

� ブランクやPadding文字(SBCS)が連続するようなデータには有効

MQヘッダー部も圧縮対象

共用キューへのPUTは対象外

メリット/デメリット

【メリット】

ログ書き出し量の減少に伴うスループットの向上

ログ・データ・セットのサイズの縮小

【デメリット】

圧縮アルゴリズムはRLEなので、圧縮効率がよくないデータもあり得る

� DBCS文字は圧縮されない

CPUコストがかかる

Page 55: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

55

ログ圧縮書き出しの管理

ログ圧縮機能の設定

前提:ZPARM-CSQ6SYSPのOPMODE=NEWFUNC必須

CSQ6LOGPのCOMPLOGまたはSET LOGコマンドで指定

� NONE :ログ・データ圧縮を使用しない(デフォルト値)

� RLE :ログ・データ圧縮を実行

� ANY :最大限のログ・レコード圧縮を実現できる圧縮アルゴリズムをキュー・マネージャーが選択。結果的に RLE 圧縮が行われる

DISPLAY LOGコマンドで現行設定を確認可能

MQ Explorerでの指定は不可

SMF type 115-QJST(ログマネージャー統計)にログ圧縮関連のフィールドが追加

圧縮レートは、ログマネージャー統計で確認可能

Page 56: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

56

ログ圧縮レート(SMF)

ログ圧縮関連のフィールド

幕張テスト結果

SMF Dump用サンプルジョブ(CSQ4SMFJ)を使用してSMFレコードを処理

「あ」(DBCS)80バイト×100msg、「A」(SBCS)80バイト×100msg送信後のログマネージャー統計データ

(*)MQMDも圧縮対象なのでユーザーデータ部がDBCSのみのメッセージも含め、200メッセージすべてが圧縮された

圧縮後バイト数(the total of compressed bytes written to the log)qjstcmpcomp

圧縮前バイト数(the total bytes before compression)qjstcmpuncmp

圧縮ができなかった回数

(the number of times the queue manager was unable to achieve any reduction in record length)

qjstcmpfail

圧縮要求回数(number of compression requests)qjstcmpreq

説明フィールド名

説明数値フィールド

圧縮後サイズ0000000000039800qjstcmpcomp

圧縮対象サイズ0000000000102000qjstcmpuncmp

圧縮できないメッセージなし00000000qjstcmpfail

200メッセージ圧縮(*)00000200qjstcmpreq

Page 57: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

57

<参考> ログ圧縮書き出し 幕張テスト結果

PersistentメッセージをMQPUTし、ログのLAST RBAを確認

テスト方法

1. DISPLAY LOGコマンドにてLAST RBA確認

2. テストJOBにてパーシステント・メッセージ10件をMQPUT

3. DISPLAY LOGコマンドにてLAST RBA確認

ケース1:SBCS繰り返し文字列を含む100ByteをMQPUT

約30%のログ量削減

7456459980 704CC10MSG-PUT④

7556452524 6E7AC10MSG-PUT③RLE

10540444968 6CA2810MSG-PUT②

10801434428 6A0FC10MSG-PUT①

-423627 676CBTEST前NONE

差(DEC)DECLAST RBA(HEX)DISPLAY LOGコマンドログ圧縮設定

Page 58: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

58

<参考> ログ圧縮書き出し 幕張テスト結果

ケース2:SBCS繰り返し文字列を含む1024ByteをMQPUT

約60%のログ量削減

開発元での測定結果はパフォーマンス・レポート参照

“MP1G: WebSphere MQ for z/OS V7.0.1 Performance Report”http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24024589&loc=en_US&cs=utf-8&lang=en

7718147315867 8C7DC9B10MSG-PUT④RLE

7737147323604 8C7FAD410MSG-PUT⑤

7611147331215 8C8188F10MSG-PUT⑥

-147248021 8C6D395TEST前NONE

20081147268102 8C7220610MSG-PUT①

19962147288064 8C7700010MSG-PUT②

20085147308149 8C7BE7510MSG-PUT③

差(DEC)DECLAST RBA(HEX)DISPLAY LOGコマンドログ圧縮設定

Page 59: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

59

<参考> ログ印刷ユーティリティの出力結果

<<<<圧縮圧縮圧縮圧縮ログログログログ>>>>000008CBEB81 URID(000008CBEAD4) RM(DATA) LRID(00A10014.C3D4D7C8) TYPE( REDO )

SUBTYPE( INSERT ) RECORD LENGTH(0101)

**** 00DD0028 0400000C C9500000 08CBEAD4 000008CB EB59 * I& M

0000 00A10014 C3D4D7C8 01010000 000001FE 000000B3 80830008 04000011 0101F609 * CMPH c 6

0020 86000103 8300010A 84000750 00001101 01A68300 01018300 08016000 00110100 *f c d & wc c -

0040 469E0004 0160D415 83000901 C4CAB051 2E55D38F 83000150 84FF8400 04D4C440 * -M c D L c &d d MD

0060 40830001 01870001 0884FF86 00060311 0000056E 88408700 0901C3E2 D840D4F7 * c g d f >h g CSQ M7

0080 F1C18840 08C4CAB0 512E55D3 8F9C00B0 4004D4F7 F1C1AC40 06D4D8D4 F0F0F486 *1Ah D L M71A MQM004f

00A0 40A000A0 40830008 02D4D8D4 C2D7E4E3 954010F2 F0F0F9F0 F9F1F5F0 F9F5F2F0 * c MQMBPUTn 2009091509520

00C0 F8F7F784 40D0C1 *877d A

<<<<通常通常通常通常ログログログログ>>>>000008CBEB81 URID(000008CBEAD4) RM(DATA) LRID(00000004.00001101) TYPE( REDO )

SUBTYPE( INSERT ) RECORD LENGTH(01F6)**** 02140028 0400000C C9500000 08CBEAD4 000008CB EB59 * I& M0000 00000004 00001101 01F60900 00000000 00030000 000A0000 00005000 00110101 * 6 &0020 A6000000 01000000 01600000 11010046 00000000 00000000 00000000 00000000 *w -0040 00000000 00000000 00000000 00000160 D4150000 0001C4CA B0512E55 D38F0000 * -M D L0060 0050FFFF FFFF0000 0000D4C4 40400000 00010000 00000000 0008FFFF FFFF0000 * & MD0080 00000000 03110000 056E4040 40404040 40400000 00000000 0001C3E2 D840D4F7 * > CSQ M700A0 F1C14040 40404040 4040C4CA B0512E55 D38F0000 00000000 00000000 00000000 *1A D L00C0 00000000 00000000 00000000 00004040 40404040 40404040 40404040 40404040 *00E0 40404040 40404040 40404040 40404040 40404040 40404040 40404040 4040D4F7 * M70100 F1C14040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 *1A0120 40404040 40404040 40404040 4040D4D8 D4F0F0F4 40404040 40400000 00000000 * MQM0040140 00000000 00000000 00000000 00000000 00000000 00000000 00004040 40404040 *0160 40404040 40404040 40404040 40404040 40404040 40404040 40400000 0002D4D8 * MQ0180 D4C2D7E4 E3404040 40404040 40404040 40404040 40404040 4040F2F0 F0F9F0F9 *MBPUT 20090901A0 F1F5F0F9 F5F2F0F8 F7F74040 4040C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 *1509520877 AAAAAAAAAAAAAAAAAA01C0 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01E0 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1C1C1 C1C1 *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

ログ印刷ユーティリティ(CSQ1LOGP)では圧縮ログの出力も可能

Page 60: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

60

キュー共用グループ単位のURリカバリー

(GROUPUR)

Page 61: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

61

キュー共用グループ単位のURリカバリー(GROUPUR)

2フェーズコミット環境で、ピア・リカバリーが可能

障害時に in-doubtをグループ内の他のキュー・マネージャーが解消できる

トランザクション・マネージャは障害のあったキュー・マネージャーに接続しなくてもよい

トランザクション・マネージャーが拡張トランザクショナル・クライアントで接続している場合に使用可能

WASからのクライアント接続で2フェーズコミットを利用する場合など

管理

前提:ZPARM-CSQ6SYSPのOPMODE=NEWFUNC必須

CFストラクチャー:CSQSYSAPPLを定義

新規システム用の共用キューSYSTEM.QSG.UR.RESOLUTION.QUEUEを定義し、CSQSYSAPPLストラクチャーに配置

QMGR属性(GROUPUR)で制御

� ENABLED:XAクライアント・アプリケーションが、QSG名を使用してグループUR処理を開始できる

� DISABLED:XAクライアント・アプリケーションは、QMGR名を指定して接続する(グループURは使用できない)

Page 62: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

62

キュー共用グループ単位のURリカバリー(GROUPUR)

WAS

XA Client APPL

Network(GENERIC ADDRESS / PORT)

TM(ETC)

• XAOpenStringにQSG名指定

• ConnectionFactoryにQSG名指定

QSG1

CEC1

QM01MSTR

QM01CHIN

TCPIP/VTAM

CF

CSQADMIN

APPL STRUCTURE(User Queue)

CSQSYSAPPL

CEC2

QM02MSTR

QM02CHIN

TCPIP/VTAM

GROUPUR(ENABLED)

GROUPUR(ENABLED)

SYSTEM.QSG.UR.RESOLUTION.

QUEUE

• アプリケーションがGenericAddress経由でQM01に接続

• 2PC処理中にQM01がダウン

• アプリケーションは接続リトライを行いQM02に接続し、2PC処理中のトランザクション処理を継続する

Page 63: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

63

LE バッチ・アプリケーションの構築

Page 64: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

64

LE バッチバッチバッチバッチ・・・・アプリケーションアプリケーションアプリケーションアプリケーションのののの構築構築構築構築

LE環境のダイナミック・リンク・ライブラリー (DLL)を提供

従来のスタブではなく、DLL経由でMQIを発行

�31 ビット LE 呼び出しインターフェース

�31 ビット XPLINK 呼び出しインターフェース

XPLINKとは

OS/390 V2R10 からの機能

ファンクション・コールのオーバーヘッドを削減し、Cプログラムのパフォーマンスが向上

�実行パス・レングスの最適化

�小さい関数を多数コールするようなプログラミング・モデルで効果大–オブジェクト指向プログラミング→ CPUコスト削減とパフォーマンスの向上

DLL を使用するには

サイドデッキ と呼ばれるものに対してバインドまたはリンク

サイドデッキはSCSQDEFS ライブラリーで提供される

CSQBRSTBCSQBRR1XCSQBRR1RRS による2 フェーズ・コミット

(RRSVerbを使用)

CSQBRRSICSQBRI1XCSQBRI1RRS による2 フェーズ・コミット

(MQI Verbを使用)

CSQBSTUBCSQBMQ1XCSQBMQ11 フェーズ・コミット

同等のスタブ名31 ビット XPLINK DLL31 ビット LE DLL

Page 65: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

65

XPLinkを使用する場合のサンプル生成JCL

//M71BXCB JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID

//EDCXCB PROC INFILE=, < INPUT ... REQUIRED

// CREGSIZ='148M', < COMPILER REGION SIZE

// CRUN=, < COMPILER RUNTIME OPTIONS

// CPARM=, < COMPILER OPTIONS

// LIBPRFX='CEE', < PREFIX FOR LIBRARY DSN

// LNGPRFX='CBC', < PREFIX FOR LANGUAGE DSN

// BPARM='LIST=NOIMP', < BINDER OPTIONS

// BREGSIZ='20M', < BINDER REGION SIZE

// TUNIT='SYSALLDA', < UNIT FOR TEMPORARY FILES

// TSPACE='(32000,(30,30))', < SIZE FOR TEMPORARY FILES

// OUTFILE='&&GSET(GO),DISP=(NEW,PASS),UNIT=SYSALLDA,SPACE=(TRK,(7,7,

// 1)),DSNTYPE=LIBRARY'

//*-------------------------------------------------------------------

//* COMPILE STEP:

//*-------------------------------------------------------------------

//COMPILE EXEC PGM=CCNDRVR,REGION=&CREGSIZ,

// PARM=('&CRUN/XPLINK GOFF &CPARM')

//STEPLIB DD DSNAME=&LIBPRFX..SCEERUN2,DISP=SHR

// DD DSNAME=&LNGPRFX..SCCNCMP,DISP=SHR

// DD DSNAME=&LIBPRFX..SCEERUN,DISP=SHR

//SYSIN DD DSNAME=&INFILE,DISP=SHR

//SYSLIB DD DSNAME=&LIBPRFX..SCEEH.H,DISP=SHR

// DD DSNAME=&LIBPRFX..SCEEH.SYS.H,DISP=SHR

// DD DISP=SHR,DSN=MQM701B.SCSQC370

//SYSLIN DD DSNAME=&&LOADSET,UNIT=&TUNIT.,

// DISP=(MOD,PASS),SPACE=(TRK,(3,3)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)

.....

//*-------------------------------------------------------------------

//* BIND STEP:

//*-------------------------------------------------------------------

//BIND EXEC PGM=IEWL,REGION=&BREGSIZ,COND=(4,LT,COMPILE),

// PARM='AMODE=31,MAP,RENT,DYNAM=DLL,CASE=MIXED,&BPARM'

//STEPLIB DD DSNAME=&LIBPRFX..SCEERUN2,DISP=SHR

// DD DSNAME=&LIBPRFX..SCEERUN,DISP=SHR

//SYSLIB DD DSNAME=&LIBPRFX..SCEEBND2,DISP=SHR

//SYSOBJ DD DSNAME=CEE.SCEEOBJ,DISP=SHR

// DD DSNAME=MQM701B.SCSQDEFS,DISP=SHR

//SYSPRINT DD SYSOUT=*

//SYSLIN DD DSNAME=*.COMPILE.SYSLIN,DISP=(OLD,DELETE)

// DD DSNAME=&LIBPRFX..SCEELIB(CELHS003),DISP=SHR

// DD DSNAME=&LIBPRFX..SCEELIB(CELHS001),DISP=SHR

// DD DDNAME=SYSIN

//SYSLMOD DD DSNAME=&OUTFILE

//SYSDEFSD DD DUMMY

//SYSIN DD DUMMY

// PEND

//STEP1 EXEC EDCXCB,

// CPARM='OPTF(DD:OPTF)',

// BPARM='XREF,MAP,DYNAM=DLL',

// INFILE='MQM005.PGM.SRC(CSQ4BCK1)'

//COMPILE.OPTF DD *

RENT,CHECKOUT(ALL),SSCOM,DEFINE(MVS),NOMARGINS,NOSEQ,XPLINK,DLL

SE(DD:SYSLIBV)

//BIND.SYSLMOD DD DISP=SHR,DSNAME=MQM005.PGM.LOAD

//BIND.SYSIN DD *

ENTRY CEESTART

INCLUDE SYSOBJ(CSQBMQ1X)

NAME CSQ4BCK1(R)

/*

Page 66: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

66

移行

Page 67: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

67

移行

移行パス

V7.0.1では、V6.0、V7.0.0からの移行・フォールバックをサポート

�V6向けAPAR - PK95835

�V7向けAPAR - PK95837

V7.0.1では2つのモードがある

ZPARMのOPMODE=(mode,velificationLevel)パラメーターでモードで指定

�デフォルト値はOPMODE=(COMPAT,701)

�SET SYSTEMコマンドによる動的変更は不可⇒ZPARMの再生成、キュー・マネージャーのリスタートが必要

modeの指定

�COMPATモード–移行前のバージョンへのフォール・バック可

–V7.0.1の新機能(キュー共用グループUR,ログの圧縮)は利用不可

�NEWFUNCモード

–移行前のバージョンへのフォール・バック不可

–V7.0.1の新機能(キュー共用グループUR,ログの圧縮)を利用可能

–新機能で問題が見つかった場合 ⇒OPMODE=(COMPAT,701) を設定することで新規機能をオフにできる

(ただし、移行前のバージョンへのフォールバックは不可)

Page 68: WebSphere MQ V7.0.1 機能検証 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/wmq/mq701_ws/...2009/11/26  · 5 マルチ・インスタンス・キュー・マネージャーとは

68

移行

velificationLevelの指定

パラメータ・モジュールのバージョン/リリース・レベルの指定

�パラメータ・モジュールの生成時に使用するCSQ6SYSP マクロのバージョン/リリース・レベルの確認

⇒一致しない場合は、生成時にエラーが報告される

modeのCOMPAT指定と共に使用

OPMODE=(COMPAT,vrm) 指定の意味

�リリース vrm 以前に導入された機能のみが使用可能

�ただし、vrm が現在のコード・リリースと一致する場合は例外 ⇒ vrm で導入された新規機能は使用できない

VerificationLevel がキュー・マネージャーのコード・レベルと一致しない場合⇒強制的に OPMODE=COMPAT が設定される

�OPMODE=NEWFUNC を不注意に設定して取り消し不能になることを防ぐため

–旧バージョンのパラメータ・モジュールを新バージョンでそのまま使用した場合に発生する可能性がある

DISPLAY SYSTEMコマンドでフォールバック可能な移行元バージョンが表示される

MQMA DISPLAY SYSTEM

CSQJ322I MQMA DISPLAY SYSTEM report

Parameter Initial value

----------- ----------------------

OPMODE COMPAT , 700

.....

MQMB DISPLAY SYSTEM

CSQJ322I MQMB DISPLAY SYSTEM report

Parameter Initial value

----------- ----------------------

OPMODE COMPAT , 600

......