...

4章 MQクライアントの機能拡張 目次

by user

on
Category: Documents
540

views

Report

Comments

Transcript

4章 MQクライアントの機能拡張 目次
<WebSphere MQ V7 Update Workshop>
WebSphere MQ
4章 MQクライアントの機能拡張
2008/07
日本アイ・ビー・エム システムズ・エンジニアリング㈱
<WebSphere MQ V7 Update Workshop>
目次
非同期メッセージ送信
メッセージ先読み
TCP/IP ソケットの共用(共用会話)
双方向ハートビート
チャネル数の制御
チャネルの重み付け
HTTP ブリッジ
その他
MQ Explorerの機能拡張
<付録>属性及びパラメータの追加/変更
この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受け
ておらず、当資料に記載された内容に関して当ワークショップの主催者である日本アイ・ビー・エム システムズ・エンジニアリング株式会社は何ら保証
するものではありません。
従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたいかなる被害
に関しても一切の保証をするものではありません。
当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。
2
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信
3
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信
キュー・マネージャーからの応答を待つことなく、非同期にメッセージをキューに書き込む機能
MQPUTの応答時間が短縮
Îキューにメッセージが書き込まれた事をそのつど確認する必要のないアプリケーションの
パフォーマンスが向上
V6
MQクライアント・アプリ
MQクライアント・
ライブラリ
キュー・マネージャー
MQPUT
MQPUT
MQCC_OK
MQCC_OK
MQクライアント・
ライブラリ
サーバー接続チャネル
MQPUT
MQCC_OK
MQPUT
MQCC_OK
メッセージがQmgr側で書き込まれてから
MQPUTの実行結果を応答として受信(同期処理)
MQPUT
MQCC_OK
MQクライアント・アプリ
アプリケーションは、MQPUTを実行
MQCC_OK
MQPUT
V7
サーバー接続チャネル
キュー・マネージャー
MQPUT
応答コードMQCC_OKは、メッセージがキュー・マネージャ
に書き込まれる前に返される
(非同期処理)
MQCC_OK
MQPUT
MQCC_OK
PUT状況
確認
非同期メッセージ送信の処理状況を取得
(MQSTATコール)
※デフォルトではv6の動作
非同期メッセージ送信を有効にするには
明示的な設定が必要
4
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信の設定
キューのDEFPRESP属性で設定
ALTER QLOCAL() DEFPRESP( SYNC | ASYNC )
SYNC:V6と同様の動作(デフォルト)
ASYNC:非同期メッセージ送信
アプリケーションの指定(MQI、BaseJava)
以下のキューに設定が可能
• ローカル・キュー
• モデル・キュー
• エイリアス・キュー
• リモート・キュー
• クラスター・キュー
MQPMO(MQ Put Message Option)で設定
„ デフォルトではMQPMO_RESPONSE_AS_Q_DEF
Îアプリケーションを変更することなく、キュー属性を変えることで設定が可能
MQPMO_SYNC_RESPONSE
MQPMO_ASYNC_RESPONSE
MQPMO_RESPONSE_AS_Q_DEF
キューのDEFPRESP属性に従う
優先順位:MQPMOの設定 > キューのDEFPRESP属性の設定
JMSでの設定
宛先オブジェクトにPUTASYCALLOWED(YES)を設定、かつ、キュー属性DEFPRESP
(ASYNC)を設定
5
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信の動作
MQMDは以下の項目のみがクライアント・ライブラリ側で設定される
ApplIdentityData
PutApplType
PutApplName
ApplOriginData
MsgId
各クライアントで重複しないように番号が振られる
CorrelId
残りのフィールドは未定義のままMQMDが返される
MQPUT1も非同期に処理が可能
ローカル接続でも非同期メッセージ送信が可能
6
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信の制限事項
ノン・パーシステントメッセージと同期点付きのパーシステントメッセージのみ、
非同期的にメッセージが送信される
同期点なしのパーシステント・メッセージを送信する場合、メッセージは同期的に送信される
MQPUT(SYNCPOINT)
MQPUT(NO_SYNCPOINT)
パーシステント
非同期PUT可
同期(非同期PUT不可)
ノン・パーシステント
非同期PUT可
非同期PUT可
MQPUT(SYNCPOINT)、MQPUT(NO_SYNCPOINT)を混ぜて発行することが可能
LOGICAL_ORDERを用いてのグループ・メッセージの非同期メッセージ送信は不可
自動的に同期通信に切り替わる
MQクライアント側でGroupID、MsgSeqNumberを設定すれば非同期送信が可能
7
<WebSphere MQ V7 Update Workshop>
応答コードの取得
非同期MQPUTには、即座に応答コードMQCC_OKが返る
メッセージがキューに正常に書き込まれたかどうかは判別できない
キューにメッセージが書き込まれたかを確認するには、MQSTATコールを用いてキュー・マネー
ジャーから応答コードを取得することが必要
MQクライアント・
ライブラリ
MQクライアント・アプリ
MQPUT
キュー・マネージャーに処理状況を
問い合わせる
MQSTAT
・・・
実際にMQPUTが成功したかどうかは
分からない
サーバー接続チャネル
キュー・マネージャー
MQCC_OK
MQPUT
MQCC_OK
キュー・マネージャーとの接続が切れた場合はMQPUTの応答コードに
MQRC_CONNECTION_BROKENが返る
MQSTATコール(New MQI)
非同期送信したメッセージの処理結果をキュー・マネージャーから取得
MQSTAT(Hconn, Type, Stat, CompCode, Reason)
MQSTS構造体に処理結果が格納される
8
<WebSphere MQ V7 Update Workshop>
MQSTATコールの動作
MQSTATコールにより、キュー・マネージャーは非同期メッセージ送信の処理結果をMQSTS構造
体に格納してアプリケーションに返す
MQSTS構造体には、最後にMQCONN、MQSTATが呼び出された後の、非同期送信の結果
が格納される
MQCMITが呼び出された場合でもリセットされない
MQSTS構造体の応答コード
非同期メッセージ送信が正常終了した場合
„ MQCC_OK、MQRC_NONEが返される
非同期メッセージ送信に失敗した場合
„ 一番最初に起こったエラーの完了コード、理由コードがMQSTS構造体に格納される
MQクライアント・アプリ
MQクライアント・
ライブラリ
サーバー接続チャネル
キュー・マネージャー
MQPUT
成功:2回
MQCC_OK
MQCC_OK
MQPUT
失敗:2回
キュー・フル
MQCC_OK
完了コード
MQCC_
FAILED
一番最初に起こったエラーの
完了コード、理由コードが
MQSTS構造体に格納される
MQCC_FAILED
MQPUT
MQCC_OK
MQCC_OK
MQPUT
理由コード
2053
(キュー・フル)
PUT禁止
MQCC_OK
MQCC_FAILED
MQSTAT
9
<WebSphere MQ V7 Update Workshop>
MQSTATコールの動作
複数のMQクライアント・アプリケーションが1つのキューに接続している場合
MQSTS構造体には、各MQクライアントに対応する処理状況が格納される
MQクライアント・アプリ
成功:1回
MQクライアント・
ライブラリ
サーバー
接続チャネル
MQPUT
MQCC_OK
キュー・マネージャー
MQSTAT
成功:1回
MQPUT
MQCC_OK
MQSTAT
成功:1回
MQPUT
MQCC_OK
MQSTAT
MQクライアントから複数のキューに接続している場合
送信されたメッセージの処理状況が、まとめてMQSTS構造体に格納される
„ エラーが起こった場合は、最初に起こったエラーの宛先キュー名、完了コード、理由コードが格納される
MQPUT
MQCC_OK
成功:2回
MQPUT
MQCC_OK
MQSTAT
10
<WebSphere MQ V7 Update Workshop>
<参考>MQSTATコール
非同期送信したメッセージの処理状況をキュー・マネージャーから取得するために
追加されたMQI
MQSTAT(Hconn, Type, Stat, CompCode, Reason)
各パラメータの説明
フィールド名
(データタイプ)
入出力
説明
(MQHCONN) Hconn
入力
・コネクションハンドル
(MQLONG) Type
入力
・リクエストする情報のタイプを記述
MQSTAT_TYPE_ASYNC_ERROR のみ有効
入力/出力
(MQSTS) Stat
・非同期メッセージ送信の処理状況が格納される構造体
(MQLONG) CompCode
出力
・完了コード
(MQLONG) Reason
出力
・理由コード
11
<WebSphere MQ V7 Update Workshop>
<参考>MQSTS構造体
型
要素名
入出
力
説明
MQCHAR4
StrudtId
入力
構造体ID
MQLONG
Version
入力
バージョン
MQSTS_VERSION_1
MQLONG
CompCode
出力
完了コード
MQLONG
Reason
出力
理由コード
MQLONG
PutSuccessCount
出力
非同期メッセージ送信がMQCC_OK完了コードで終了した
回数
MQLONG
PutWarningCount
出力
非同期メッセージ送信がMQCC_WARNING 完了コードで
終了した回数
MQLONG
PutFailureCount
出力
非同期メッセージ送信がMQCC_FAILED 完了コードで終
了した回数
MQCHAR48
ObjectType
出力
ObjectNameで指定したオブジェクトの種類
MQCHAR48
ObjectName
出力
PUT操作で指定されたメッセージの送信先のオブジェクト名
MQCHAR48
ObjectQMgrName
出力
PUT操作で指定されたメッセージの送信先のキュー・マネー
ジャー名
MQCHAR48
ResolvedObjectName
出力
ローカル・キュー・マネージャーが名前解決したObjectName
MQCHAR48
ResolvedQmgrName
出力
ローカル・キュー・マネージャーが名前解決した送信先キュー・
マネージャー名
12
<WebSphere MQ V7 Update Workshop>
非同期送信アプリケーション設計時の考慮点
パフォーマンス
非同期に動作するMQIはMQPUTのみ
MQPUT以外の処理が頻繁に実行されると、パフォーマンス向上の妨げになる
可能性がある
同期点処理を行っている場合のMQSTATコール
MQCMITが成功すれば、それまでのMQPUT(SYNCPOINT)はすべて成功
„MQPUTが途中で失敗している場合、MQCMITはエラー・コードMQRC_BACKED_OUTを返す
ÎMQSTATで全てのMQPUTが成功しているのを確認してから、MQCMITをする必要はない
MQCMITはエラーが発生したことは検知できるが、エラーの理由はわからない
Îエラーの内容は、MQSTATコールで確認
13
<WebSphere MQ V7 Update Workshop>
非同期送信アプリケーション設計時の考慮点
MQPUTの応答コードはチャネルが異常終了した場合を除きMQCC_OKが返る
宛先キューに障害が発生していても、アプリケーションはPUTし続ける
Îチャネルの異常終了以外のエラーを検知するためには、適当なタイミングでMQSTATコール
を呼び出し、処理結果を確認
MQクライアント・アプリ
MQクライアント・
ライブラリ
キューへの書き込み
エラー
サーバー接続チャネル
キュー・マネージャー
MQPUT
クライアント側は
書き込みエラーを
検知しない
MQCC_OK
MQCC_OK
MQPUT
MQCC_OK
MQCC_FAILED
MQPUT
MQCC_OK
・・・
・・・
MQSTATで非同期PUTの
処理結果を確認
MQSTAT
14
MQCC_FAILED
キュー・フル
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信 アプリケーション・サンプル
非同期メッセージ送信を数回実行し、最後にMQSTATを呼び出す
※v7付属のサンプル・アプリケーションより
MQSTS構造体を宣言
MQSTS sts = {MQSTS_DEFAULT};
MQCONN(QMName, &Hcon, &CompCode, &CReason);
MQOPEN(Hcon, &od, O_options, &Hobj, &OpenCode, &Reason);
md.Persistence = MQPER_NOT_PERSISTENT;
pmo.Options |= MQPMO_ASYNC_RESPONSE;
非同期PUTの設定
非同期PUT
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, CompCode, &Reason);
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, CompCode, &Reason);
・
・
MQSTAT(Hcon, MQSTAT_TYPE_ASYNC_ERROR, &sts, &CompCode, Reason);
MQSTATで非同期PUTの
処理状況を参照
printf("Succeeded putting %d messages¥n", sts.PutSuccessCount);
printf("%d messages were put with a warning¥n", sts.PutWarningCount);
printf("Failed to put %d messages¥n", sts.PutFailureCount);
成功、エラーの回数
を表示
if (sts.CompCode == MQCC_WARNING){
printf("The first warning that occurred had reason code %d¥n", sts.Reason);
}
else if (sts.CompCode == MQCC_FAILED){
printf("The first error that occurred had reason code %d¥n", sts.Reason);
printf("Failing Object Type %d¥n",sts.ObjectType);
printf("Failing Object Name %s¥n",sts.ObjectName);
printf("Failing Object Qmgr Name %s¥n",sts.ObjectQMgrName);
}
MQCLOSE(Hcon, &Hobj, C_options, &CompCode, &Reason);
MQDISC(&Hcon, &CompCode, &Reason);
非同期PUTがエラーで
終了していた場合、
エラーコードを表示
15
<WebSphere MQ V7 Update Workshop>
非同期メッセージ送信 サンプル実行例
非同期メッセージ送信サンプル
amqsapt
„ /usr/mqm/samp/bin
„ <導入ディレクトリ>¥tools¥c¥Samples¥Bin¥amqsapt
C:¥>amqsapt0.exe QL KIDOC
Sample AMQSAPT0 start
target queue is QL
msg1
宛先キューを
PUT(DISABLED)
msg2
msg3
msg4
msg5
msg6
msg7
応答はMQCC_OKなので
msg8
MQPUTを継続
msg9
msg10
Succeeded putting 5 messages
0 messages were put with a warning
Failed to put 5 messages
The first error that occurred had reason code 2053 Sample AMQSAPT0 end
16
<WebSphere MQ V7 Update Workshop>
メッセージ先読み
17
<WebSphere MQ V7 Update Workshop>
メッセージ先読み
一度のMQGETで複数のメッセージをキュー・マネージャーから先読みする機能
ノン・パーシステントメッセージがメッセージ先読みの対象
先読みするメッセージの量、頻度を調節可能
ÎMQクライアントに大量のノン・パーシステントメッセージを読み込む際のパフォーマンスが向上
V6
MQクライアント・アプリ
MQクライアント・
ライブラリ
サーバー接続チャネル
キュー・マネージャー
MQGET
MQGET
V7
MQクライアント・アプリ
MQGETを一回呼び出すたびに、
キュー・マネージャーからメッセージを
読み込む
MQGET
MQGET
MQクライアント・
ライブラリ
サーバー接続チャネル
キュー・マネージャー
MQGET
MQGET
バッファ
(メモリ)
MQGET
MQGETを呼び出すと、続くメッセージを
先読みする
MQGET
メッセージは一度メモリに格納され、
MQGETはメモリからメッセージを読み
込む
18
<WebSphere MQ V7 Update Workshop>
メッセージ先読みの設定
キューのDEFREADA属性で設定
DEF DEFREADA( DISABLED ¦ ENABLED )
以下のキューに設定が可能
• ローカル・キュー
• モデル・キュー
• エイリアス・キュー
DISABLED:V6と同様の動作(デフォルト)
ENABLED:メッセージの先読み
アプリケーションの指定(MQI、BaseJava)
MQOO(MQ Open Option)で設定
„ デフォルトではMQOO_READ_AHEAD_AS_Q_DEF
Îアプリケーションを変更することなく、キュー属性を変えることで設定が可能
MQOO_NO_READ_AHEAD
MQOO_READ_AHEAD
MQOO_READ_AHEAD_AS_Q_DEF
キューのDEFREADA属性に従う
優先順位:MQOOの設定 > キューのDEFREADA属性の設定
JMSでの設定
宛先オブジェクトにREADAHEADALLOWED(YES)を設定
19
<WebSphere MQ V7 Update Workshop>
メッセージ先読みの動作設定
mqclient.iniファイルのMessageBufferスタンザで値を設定
Maximumsize (K bytes)
„
„
„
„
メッセージを読み込むバッファサイズを指定。メッセージはMaximumサイズ分先読みされる
値範囲: 1 – 999999
デフォルト値:1
特殊な値: -1 システムがバッファサイズを調整
0 メッセージ先読み無効
UpdatePercentage (%)
„
„
„
„
バッファに入っているメッセージが残り何%になったら再び先読みを行うかを指定
値範囲:1 -100
・100%だと、1メッセージをGETするごとに
デフォルト値: -1
1件づつバッファに読み出す
特殊な値:-1 システムが調整
・0%だとバッファが全部空になるまで先読みしない
PurgTime( seconds)
„
„
„
バッファに入っているメッセージを何秒で削除するか
値: 0 – 999999
デフォルト値: 0 (無効)
20
・30%だと、バッファに占めるメッセージ割合が
約3割になったら、Read aheadする
<WebSphere MQ V7 Update Workshop>
メッセージ先読みの動作設定
mqclient.iniの設置
MQクライアントアプリケーションは下の順番でmqclient.iniファイルを探す
1. 環境変数MQCLNTCFの指定
Java 1.4.2ではJavaのシステム・プロパティにMQCLNTCFを指定
2. アプリケーション作業ディレクトリの親ディレクトリ
3. MQデータディレクトリ
„
„
„
UNIX: /var/mqm
Windows: 環境変数MQ_FILE_PATHで指定されたフォルダ
Java 1.4.2ではJavaのシステム・プロパティにMQ_FILE_PATHを指定
4. ホームディレクトリ
„
„
„
UNIX: 環境変数HOMEで指定されたディレクトリ
Windows: 環境変数HOMEDRIVE, HOMEPATHで指定されたフォルダ
Javaのシステム・プロパティuser.home以下
21
<WebSphere MQ V7 Update Workshop>
メッセージ先読みの制限事項
ノン・パーシステントメッセージのみメッセージ先読みが可能
パーシステント・メッセージの場合、メッセージ先読み機能は自動的にOFFになる
同期点つきのMQGETは不可
メッセージ先読み開始前、MQGMO_SYNCPOINTを指定した場合
„ メッセージ先読み機能は自動的にOFFになる
メッセージ先読み開始後、MQGMO_SYNCPOINTを指定した場合
„ MQRC_OPTIONS_ERRORが返る
MQGET(SYNCPOINT)
MQGET(NO_SYNCPOINT)
パーシステント
不可
不可
ノン・パーシステント
不可
可
MQクライアントで接続のみメッセージ先読みが可能
ローカル接続の場合、メッセージ先読み機能は自動的にOFFになる
22
<WebSphere MQ V7 Update Workshop>
メッセージ先読み機能の動作
ブラウズオプションの指定による動作の違い
MQGMO_BROWSE_*オプションを指定しない場合
„
先読みされたメッセージはキューから除去される
MQGMO_BROWSE_*オプションを指定した場合
„
通常のブラウズ処理と同様、メッセージはキューから除去されない
同一キューのメッセージを複数のMQクライアントで先読みした場合
メッセージは、他のアプリケーションの接続状況にかかわらず、先読みされる
MQクライアント・
ライブラリ
MQクライアント・アプリ
サーバー
接続チャネル
MQGET
キュー・マネージャー
MQクライアント・アプリ
MQGET
23
<WebSphere MQ V7 Update Workshop>
メッセージ先読み機能の動作
アプリケーションが終了するとバッファの中のメッセージは破棄される
メッセージを先読みしてからGETの条件を変更すると、バッファに消費されないメッセー
ジが残ることがある
MsgIdを指定して読み込む場合など
Î 読み込まれなかったメッセージをmqclient.iniのPurgeTimeを指定し、削除する必要がある
パーシステント・メッセージとノンパーシステントメッセージが混ざっていた場合
次の先読み対象メッセージがパーシステントだったら、キューのパーシステント・メッセージが
GETされるまでメッセージ先読みは行われない
パーシステント・メッセージはv6までと同様にGETされる
MQクライアント・アプリ
MQGET
ノンパーシステント
・・・
ノンパーシステント
パーシステント・メッセージがGETされるまで
次のメッセージは先読みされない
ノンパーシステント
MQGET
パーシステント
ノンパーシステント
・・・
ノンパーシステント
ノンパーシステント
パーシステント
24
パーシステントメッセージは先読みせず
GETされる
再び先読みが始まる
<WebSphere MQ V7 Update Workshop>
メッセージ先読み機能が働いているかどうかの確認
DISPLAY CONNコマンドで確認可能
READAステータス: YES/NO/INHIBITED/BACKLOG
„ YES:メッセージ先読み機能が有効
„ NO:メッセージ先読み機能が無効
„ INHIBITED:メッセージ先読み機能が無効(MQGETで指定不可能なオプションを指定した場合)
„ BACKLOG:メッセージ先読み機能が有効(バッファに消費されないメッセージが滞留している状態)
実行例:
DIS CONN(E836EB4720003E67) type(HANDLE) READA
AMQ8276: 接続の詳細を表示します。
CONN(E836EB4720003E67)
EXTCONN(414D51434B49444F4320202020202020)
TYPE(CONN) OBJNAME(QL)
OBJTYPE(QUEUE) READA(YES)
25
<WebSphere MQ V7 Update Workshop>
MQGMOオプションの制限
制限なし
MQGMO_NO_WAIT
MQGMO_FAIL_IF_QUIESCING
MQGMO_BROWSE_FIRST
MQGMO_BROWSE_NEXT
MQGMO_BROWSE_MESSAGE_UNDER_CURSOR
メッセージ先読み機能が開始されてから変更するとMQRC_OPTIONS_CHANGEDエラー
MQGMO_SYNCPOINT_IF _PERSISTENT
MQGMO_NO_SYNCPOINT
MQGMO_ACCEPT_TRUNCATED _MSG
MQGMO_CONVERT
メッセージ先読み機能が開始されてから指定するとMQRC_OPTIONS_ERRORエラー
(メッセージ先読み機能が未開始の時指定すると、自動的にメッセージ先読み機能はOFFになる)
MQGMO_SET_SIGNAL
MQGMO_SYCPOINT
MQGMO_MARK_SKIP_BACKOUT
MQGMO_MSG_UNDER_CURSOR
MQGMO_LOCK
MQGMO_UNLOCK
MQGMO_LOGICAL_ORDER
MQGMO_COMPLETE_MSG
MQGMO_ALL_MSGS_AVAILABLE
26
<WebSphere MQ V7 Update Workshop>
MQCOオプションによる動作の違い
MQCLOSEコールでMQCO_IMMEDIATE、MQCO_QUIESCEオプションを
指定可能
MQCO_IMMEDIATEを指定した場合
バッファの中身を破棄し終了する
„ デフォルト
„
MQCO_QUIESCEを指定した場合
„
メッセージがバッファに残っていたら、MQRC_READ_AHEAD_MSGSエラーがMQCLOSEに返る
ÎMQCLOSEする前にMQGETするなどし、バッファを空にする必要がある
27
<WebSphere MQ V7 Update Workshop>
ブランク・ページ
28
<WebSphere MQ V7 Update Workshop>
TCP/IPソケットの共用
(共用会話)
29
<WebSphere MQ V7 Update Workshop>
TCP/IPソケットの共用
同一キュー・マネージャーへの複数コネクションでTCP/IPソケットを共有
MQクライアント側では各スレッドからのソケット処理を集約し、消費リソースを節約
キュー・マネージャー側においてもSVRCONNのMCAの消費リソースを大幅に節約
マルチ・スレッド・アプリケーションのみ有効
SVRCONN/CLNTCONNチャネルのSHARECNV属性
デフォルトでTCP/IPソケットの共用を行う
„ 複数チャネル・インスタンス(デフォルトは10)がTCP/IPソケットを共有
„ 従来の動作を維持したい場合、SHARECNV属性の変更(0か1を指定)が必要
SHARECNV属性はソケットの共用以外にもV7の新機能の動作を制御するので注意
V6
スレッド1
V7
クライアント
ライブラリ
キュー・
マネージャー
スレッド1
スレッド2
スレッド2
スレッド3
スレッド3
スレッド4
スレッド4
30
クライアント
ライブラリ
キュー・
マネージャー
<WebSphere MQ V7 Update Workshop>
TCP/IPソケットの共用(続き)
SHARECNV属性、アプリケーションの接続オプション(MQCNO)により動作を制御
SHARECNV属性の指定はMQCNOより優先
ただし、MQCNO_NO_CONV_SHARINGはSHARECNV属性より優先
SVRCONN/CLNTCONNチャネルのSHARECNV属性
SHARECNV (2∼999999999)
„
„
1ソケットが共用するチャネル・インスタンスの最大数を指定(ソケットの共用を行う)
V7の新機能を使う
–コールバック、メッセージ先読み、双方向ハートビート、チャネルの静止モードでの停止(※)は
動作する
※SVRCONNチャネルのSTOP CHANNEL() MODE(QUIESCE)
SHARECNV (1)
„
„
ソケットの共用を行わない
V7の新機能を使う
–コールバック、メッセージ先読み、双方向ハートビート、チャネルの静止モードでの停止は
動作する
SHARECNV (0)
„
„
ソケットの共用を行わない
V7の新機能を使わない(従来の動作を維持)
–コールバック、メッセージ先読み、双方向双方向ハートビート、チャネルの静止モードでの停止は
動作しない
31
<WebSphere MQ V7 Update Workshop>
TCP/IPソケットの共用(続き)
MQCNO構造体
MQCNO_ALL_CONV_SHARING(デフォルト)
„
ソケットの共用を行う
MQCNO_NO_CONV_SHARING
„
„
ソケットの共用を行わない
双方向ハートビート、チャネルの静止モードでの停止は行う
32
<WebSphere MQ V7 Update Workshop>
TCP/IPソケットの共用(続き)
設定方法
SHARECNV
„ デフォルト:
10
„ SVRCONNとCLNTCONNの両方で指定した場合、小さい方の値が有効となる
DEFINE CHANNEL() CHLTYPE(SVRCONN | CLNTCONN)
SHARECNV( 0 | 1 | 2∼999 999 999 )
状況確認方法
MAXSHCNV
„ 1ソケットが共用可能な最大のチャネル・インスタンス数
CURSHCNV
„ 1ソケットが現在共用しているチャネル・インスタンス数
DISPLAY CHSTATUS() CHLTYPE(SVRCONN) ALL | MAXSHCNV | CURSHCNV
[出力結果] DISPLAY CHSTATUS() CHLTYPE(SVRCONN) CURSHCNV
AMQ8417: チャネル状況の内容を表示します。
CHANNEL(TO.QM2)
CHLTYPE(SVRCONN)
CONNAME(127.0.0.1)
CURRENT
STATUS(RUNNING)
SUBSTATE(RECEIVE)
CURSHCNV(2)
AMQ8417: チャネル状況の内容を表示します。
CHANNEL(TO.QM2)
CHLTYPE(SVRCONN)
CONNAME(127.0.0.1)
CURRENT
STATUS(RUNNING)
SUBSTATE(RECEIVE)
CURSHCNV(2)
33
<WebSphere MQ V7 Update Workshop>
ブランク・ページ
34
<WebSphere MQ V7 Update Workshop>
双方向ハートビート
35
<WebSphere MQ V7 Update Workshop>
双方向ハートビート
ハートビート(検査パケット)を
キュー・マネージャー⇔MQクライアントの
双方向で送信し双方で早期に障害を検知
V6
MQクライアント
アプリ
Îゾンビ・チャネルの早期除去によるリソースの解放
CLNTCONN
チャネル
SVRCONN
チャネル
MQCONN
キュー・
マネージャー
MQOPEN
MQPUT
V6
MQGET wait
タイミング:MQGET wait中のみ
Wait
Interval
Îその他のタイミングではハートビートによる
障害検知はできない
MQCLOSE
ハートビート
MQDISC
方向:キュー・マネージャー⇒クライアントの一方向
Îクライアントは次回MQI発行のタイミングで検知
V7
V7での拡張
MQクライアント
アプリ
タイミング:チャネル接続している間
(MQCONN∼MQDISC)
Î全てのタイミングでハートビートによる
障害検知が可能
CLNTCONN
チャネル
MQCONN
キュー・
マネージャー
MQOPEN
MQPUT
MQGET wait
方向:キュー・マネージャー⇔クライアントの双方向
Îクライアントもハートビート送信エラー
による障害検知が可能
MQCLOSE
MQDISC
ハートビート
36
SVRCONN
チャネル
<WebSphere MQ V7 Update Workshop>
双方向ハートビート(続き)
SVRCONN/CLNTCONNチャネルのSHARECNV属性により動作を制御
SHARECNV (1, 2∼999999999)
„ 双方向ハートビートを行う
SHARECNV (0)
„ 双方向ハートビートを行わない(従来の動作を維持)
ハートビート送信間隔は従来通りSVRCONN/CLNTCONNのHBINT属性に指定
37
<WebSphere MQ V7 Update Workshop>
ブランク・ページ
38
<WebSphere MQ V7 Update Workshop>
チャネル数の制御
39
<WebSphere MQ V7 Update Workshop>
チャネル数の制御
SVRCONNチャネル毎にクライアントからのインスタンス数を制限可能
キュー・マネージャーが存在するマシンのリソースを制御
単一クライアントが接続を独占することを防止
„ プログラムの不具合
„ DoS(Denail
of Service)攻撃
„ 計画外MQクライアント・アプリケーションの接続
SVRCONNチャネルのMAXINST、MAXINSTC属性により動作を制御
MAXINST・・・最大チャネル・インスタンス数
MAXINSTC・・・クライアントあたりの最大チャネル・インスタンス数
„ IPアドレス単位でクライアントを認識
クライアント1
クライアント1
MQCONN(QMGRA)
①
クライアント2
MQCONN(QMGRA)
②
クライアント3
MQCONN(QMGRA)
③
クライアントX
MQCONN(QMGRA)
QMGRA
【チャネル定義】
名称:TO.QMGRA
タイプ:SVRCONN
最大インスタンス数:3
(MAXINST)
アプリA
MQCONN(QMGRB)
①
アプリB
MQCONN(QMGRB)
②
アプリC
MQCONN(QMGRB)
③
クライアント2
アプリA
MQCONN(QMGRB)
④
40
QMGRB
■
□
【チャネル定義】
名称:TO.QMGRB
タイプ:SVRCONN
最大インスタンス数:6
(MAXINST)
クライアント毎
最大インスタンス数:2
(MAXINSTC)
④
アプリB
MQCONN(QMGRB)
⑤
アプリC
MQCONN(QMGRB)
⑥
■
□:MAXINSTの
カウント対象
■:MAXINSTCの
カウント対象
<WebSphere MQ V7 Update Workshop>
チャネル数の制御(続き)
MAXINST
同時に接続可能なサーバー接続のインスタンス数
設定変更後は新規に接続するインスタンスはエラーとなる
„ キュー・マネージャーのエラー・ログにはAMQ9489が出力
„ 既に接続しているインスタンスには影響なし
キュー・マネージャーの指定(qm.iniなど)のMaxActiveChannelsの値を超えての
接続はできない
MAXINSTC
1クライアントあたり同時に接続可能なサーバー接続のインスタンス数
設定変更後は新規に接続するインスタンスはエラーとなる
„ キュー・マネージャーのエラー・ログにはAMQ9490が出力
„ 既に接続しているインスタンスには影響なし
MAXINSTの値を超えての接続はできない
いずれもインスタンス数のカウント対象にゾンビ・チャネルが含まれる
41
<WebSphere MQ V7 Update Workshop>
チャネル数の制御(続き)
設定方法
MAXINST
„ デフォルト:
999 999 999
DEFINE CHANNEL() CHLTYPE(SVRCONN) MAXINST( 0 ~ 999 999 999 )
MAXINSTC
„ デフォルト:
999 999 999
DEFINE CHANNEL() CHLTYPE(SVRCONN) MAXINSTC( 0 ~ 999 999 999 )
42
<WebSphere MQ V7 Update Workshop>
クライアント・チャネルの重み付け
43
<WebSphere MQ V7 Update Workshop>
クライアント・チャネルの重み付け
クライアント・チャネルに重み付けをし、接続先を分散することが可能
チャネル定義テーブル(CCDT: Client Channel Definition Table)でグループ化されている
CLNTCONN チャネルが対象
CLNTCONNのAFFINITY属性がNONEの場合、CLNTWGHTに指定された値の割合で
接続先を分散
内部的に作成するチャネル・リストを基にチャネルを選択
プロセス(アプリケーション)内の初回MQCONN時に、チャネル定義テーブルを参照し
チャネル・リストを作成
チャネル・リスト
TO.QMGR_2
V7
TO.QMGR_1
アプリA
MQCONN(
*ANY.QMGR)
チャネル定義テーブル
チャネル名
CLNT
WGHT
チャネル・リスト
QMNAME
TO.QMGR_1
1
ANY.QMGR
TO.QMGR_2
2
ANY.QMGR
1本
が接続(※)
キュー・マネージャー
QMGR_1
TO.QMGR_2
TO.QMGR_1
アプリB
MQCONN(
*ANY.QMGR)
チャネル・リスト
TO.QMGR_1 :
TO.QMGR_2
= 1 : 2 で接続
TO.QMGR_1
リストの上位
から接続を試行
44
TO.QMGR_2
アプリC
MQCONN(
*ANY.QMGR)
キュー・マネージャー
QMGR_2
2本
が接続(※)
※上記は AFFINITY(NONE) の場合で、
おおよそ 1:2 の割合で接続先が選択される
(幕張でのテスト結果)
<WebSphere MQ V7 Update Workshop>
クライアント・チャネルの重み付け
チャネル・リスト
アプリケーションごとに作成
CLNTCONNのAFFINITY属性によって作成されるチャネル・リストやその扱いが異なる
再配布などでチャネル定義テーブルに変更があると、チャネル・リストを再作成
„ ただし、クライアント・アプリケーションが、C、C++、.NETの場合のみ再作成
ユーザーはチャネル・リストを参照できない
CLNTCONNチャネルのCLNTWGHT属性
0(デフォルト)
„ 重み付けは行わない
1∼99
„ 指定した値に基づき、重み付けを行う(99が最も優先度が高い)
„ 0が指定されたチャネルが混在する場合、0が最も優先される
„ 指定した重みは必ずしも保証されるものではない
CLNTCONNチャネルのAFFINITY属性
NONE
„ CLNTWGHTの値を基に宛先を選択
PREFERRED(デフォルト)
„ CLNTWGHT=0
„ CLNTWGHT≠0
の場合、従来のチャネル定義テーブル使用時と同様に接続を試行
の場合、接続失敗後に優先順位が下がるので注意
45
<WebSphere MQ V7 Update Workshop>
クライアント・チャネルの重み付け
AFFINITY(NONE) 指定時の動作
MQCONNごとにCLNTWGHTの値を基に宛先を選択
使用可能でない宛先を識別しない
チャネル・リスト内のチャネルの順序
に定義されたチャネルのうち、MQCONNで*指定した名称と同じQMNAMEを持つチャネル
のみをリスト
„ CCDT
チャネル・リストの参照のされ方
0 のチャネルから、従来のロジックに従い接続試行を行う
CLNTWGHT= 0 がない場合、CLNTWGHTの値を基に接続を試みる
–CLNTWGHT の値が大きいチャネルは、使用される可能性が高い
–接続に失敗しても、リストの末尾に移動することはない
„ CLNTWGHT=
„ 接続可能な
46
<WebSphere MQ V7 Update Workshop>
クライアント・チャネルの重み付け
チャネル定義テーブル
AFFINITY(PREFERRED) 指定時の動作
チャネル名
同一マシンからの接続試行順序を保証
使用可能でない宛先に接続試行する可能性が低い
„ 接続に失敗するとリストの末尾に移動するため
CLNT
WGHT
TO.QMGR_A
5
ANY.QMGR
TO.QMGR_B
30
ANY.QMGR
TO.QMGR_C
15
ANY.QMGR
チャネル・リスト内のチャネルの順序
AFFINITY(PREFERRED)での動作
に定義されたチャネルのうち、MQCONNで
*指定した名称と同じQMNAMEを持つチャネルを
以下の優先順位でソート
–CLNTWGHT =0
»数字順、アルファベット順 (従来通り)
–CLNTWGHT ≠0
»CLNTWGHT の値を基にソート
»CLNTWGHT の値が大きいチャネルは、
リストの上位に来る可能性が高い(※)
„ クライアント・マシンで1度作成された
チャネル・リストの順序は保証される
–後続のプロセスも、初回MQCONN時に
同じ順序でチャネル・リストを作成
„ CCDT
QMGR_A
QMGR_B
LQ
QMGR_C
LQ
LQ
⑥ QMGR_Cへ
③ QMGR_Bへの接続失敗
QMGR_Cへ
①MQCONN実行
⑤MQCONN実行
MQCONN(
*ANY.QMGR)
MQCONN(
*ANY.QMGR)
TO.QMGR_B
TO.QMGR_C
TO.QMGR_C
TO.QMGR_A
TO.QMGR_A
TO.QMGR_B
②チャネル・リスト作成
④TO.QMGR_Bの
優先順位が下がる
チャネル・リストの参照のされ方
„ 作成されたチャネル・リストの上位から接続を試みる
„ CLNTWGHT≠0
QMNAME
※上記は幕張でのテスト結果
のチャネルで、接続に失敗したチャネルは、リストの末尾に移動(上図)
47
<WebSphere MQ V7 Update Workshop>
クライアント・チャネルの重み付け
設定方法
CLNTWGHT
„ デフォルト:
0 (V6と同様の動作、重み付けは行わない)
„ 1が最も優先度が低く、99が最も高い
DEFINE CHANNEL() CHLTYPE(CLNTCONN) CLNTWGHT( 0 ~ 99 )
AFFINITY
„ デフォルト:
PREFERRED
DEFINE CHANNEL() CHLTYPE(CLNTCONN) AFFINITY( PREFERRED | NONE )
48
<WebSphere MQ V7 Update Workshop>
(補足) V6でのチャネルのグループ化
V6までのチャネル定義テーブルを使用したクライアント接続の動き
CCDT内のチャネルを、数字順、アルファベット順に使用を試みる
CCDTごとに接続順序が固定となる
„ 接続順序を変更したい場合は、接続順序パターンごとに
V6
CCDT を用意するなどの工夫が必要
チャネル定義テーブル1 を使用したアプリケーション
こちらが必ず優先される
チャネル定義テーブル1
クライアント接続チャネル名
CONNAME
TO.SERVER.01
host1
ANY.QMGR
TO.SERVER.02
host2
ANY.QMGR
QMNAME
MQCONN( *ANY.QMGR )
MQOPEN( LQ )
MQPUT
MQCLOSE
MQDISC
TO. SERVER01
クライアント接続チャネル名
CONNAME
TO.SERVER.04
host1
ANY.QMGR
TO.SERVER.03
host2
ANY.QMGR
QMNAME
MQCONN( *ANY.QMGR )
MQOPEN( LQ )
MQPUT
MQCLOSE
MQDISC
キュー・マネージャー
QMGR_1
LQ
TO.SERVER.01
チャネル定義テーブル2
host1
host2
キュー・マネージャー
QMGR_2
LQ
49
<WebSphere MQ V7 Update Workshop>
ブランク・ページ
50
<WebSphere MQ V7 Update Workshop>
HTTPブリッジ
51
<WebSphere MQ V7 Update Workshop>
HTTPブリッジ
サポート・パックMA0Yの統合
MA0Y(IBM WebSphere MQ Bridge for HTTP)が製品に統合
Web2.0への対応
AJAX, RESTなどを使用したリッチ・クライアントからのMQへの容易なアクセス
クライアント・サイドではMQクライアントの導入やMQIの開発スキルは不要
HTTPブリッジ(WebSphere MQ Bridge for HTTP)の概要
HTTPプロトコルとMQIをマップ
J2EE 1.4に準拠したアプリケーション・サーバーで稼動するサーブレット
„ WMQHTTP.war
キュー・マネージャーとの接続は、アプリケーション・サーバーで設定
例) WASの場合、JMS接続ファクトリーで指定
J2EE 1.4
Application Server
WebSphere
MQ Bridge
for HTTP
HTTP
Client
HTTP
プロトコル
WebSphere
MQ
MQI
52
【HTTPプロトコルとMQIの対応表】
HTTPプロトコル
マップされるMQIコール
POST
MQPUT
GET
MQGET with browse
DELETE
MQGET
PUT
−
<WebSphere MQ V7 Update Workshop>
HTTPブリッジ(続き)
HTTPとMQIのマッピングはHTTPブリッジが実行
HTTP
MQI
URI
宛先
HTTP Verb
MQI
HTTPヘッダー
MQMD
HTTP entity body
MQメッセージ
HTTP Content-Type
メッセージ・タイプ
メッセージ属性は 'x-msg' の接頭部を持つHTTPヘッダーで設定
HTTP Request
DELETE /msg/queue/replyQ/ HTTP/1.1
Host: www.mqhttpsample.com
x-msg-wait: 10
x-msg-correlID: 1234567890
x-msg-require-headers: correlID
HTTP Response
HTTP/1.1 200 OK
Content-Length: 60
Content-Type: text/plain
x-msg-correlID: 1234567890
受信したメッセージの内容
x-msg で指定できるヘッダーは、HTTPブリッジでサポートされるMQMDのみ
使用可能なメッセージ属性
主要なMQMDフィールドをサポート
x-msg-correlId、x-msg-msgId、x-msg-expiry、x-msg-replyTo など
53
<WebSphere MQ V7 Update Workshop>
HTTPブリッジ(続き)
サポート・パックMA0Yは引き続き提供
[MA0Y: IBM WebSphere MQ Bridge for HTTP]
http://www-1.ibm.com/support/docview.wss?uid=swg24016142
サポート・パックMA94にてJ2EE環境非依存のネイティブHTTPリスナーを提供
[MA94: WebSphere MQ HTTP Native Listener]
http://www-1.ibm.com/support/docview.wss?uid=swg24017593
※AS-ISで提供(サポート・パック カテゴリー2)
54
<WebSphere MQ V7 Update Workshop>
<参考>HTTPブリッジ使用時の処理フロー例
HTTPとMQIの
マッピング
J2EE 1.4 準拠のAPサーバー
ユーザーの
開発範囲
POST
HTTP要求
http://host/msg/
queue/REQ_Q
ネームスペースを lookup
コネクション・ファクトリーを作成
宛先を作成(REQ_Q)
メッセージ送信
HTTP応答
アプリケーション
DELETE
HTTP要求
http://host/msg/
queue/REP_Q
キュー・マネージャー
HTTP.QM
WMQHTTPServlet
ネームスペース を lookup
コネクション・ファクトリーを作成
宛先を作成(REP_Q)
メッセージ受信
HTTP応答
バインディング接続 or クライアント接続
アプリケーション
JNDI ネームスペース
名前 WMQHTTPHTTPConnectionFactory(固定)
JNDI jms/WMQHTTP
Qmgr HTTP.QM
REQ_Q
REP_Q
リソース参照: jms/QueueFactory
JNDI:
jms/WMQHTTP
55
<WebSphere MQ V7 Update Workshop>
ブランク・ページ
56
<WebSphere MQ V7 Update Workshop>
MQ Explorerの機能拡張
57
<WebSphere MQ V7 Update Workshop>
キュー・マネージャーのグループ化
複数のキュー・マネージャーをグループ化し、グループ単位の操作が可能
単位は「セット」、MQ Explorer内でのみ有効
実施可能な操作は、表示/非表示の指定、一括起動/停止など
テスト/本番環境やプラットフォーム別などに分類し、一括管理する場合に有用
セット内キュー・
マネージャーの
状況表示
セット内キュー・
マネージャーを
停止
58
<WebSphere MQ V7 Update Workshop>
エクスポート/インポート機能
MQ Explorer設定をエクスポート/インポートすることが可能(V6.0.2以降)
対象は画面表示設定、リモート・キュー・マネージャーへの接続定義、キュー・マネージャー・
セットなど
MQ Explorerの設定を他の端末へ移行するときに有用
対象とファイル名
を指定して
エクスポート
59
<WebSphere MQ V7 Update Workshop>
リモート・キューマネージャー接続時のセキュリティ向上
リモート・キュー・マネージャー接続時のユーザーID/パスワードを指定可能
キュー・マネージャーのセキュリティExitで検査するユーザーIDとパスワードを指定
„ 内部的にパスワード・サーバーを保持し、指定した情報を保管
„ セキュリティExitを使用しない場合、ユーザーIDはMCAUSERとして認識するが、
パスワードは検査されない
ユーザーIDと
パスワードを
指定
リモート・キュー・
マネージャーの
定義
60
<WebSphere MQ V7 Update Workshop>
リモート・キュー・マネージャー接続時のセキュリティ向上(続き)
リモート・キュー・マネージャー接続時のセキュリティExitを指定可能
C、Javaで作成したクライアントのセキュリティExitを指定
„ Exitの名称、Exitプログラムのディレクトリ/JARファイル、Exitに渡すパラメータを指定
セキュリティExit
を指定
リモート・キュー・
マネージャーの
定義
61
<WebSphere MQ V7 Update Workshop>
メッセージのブラウズ時の表示指定
メッセージをブラウズする時の表示方法を指定可能
ブラウズする最大メッセージ数
メッセージ・プロパティの表示の有無
・最大参照メッセージ
・最大表示データバイト数
の指定が可能
メッセージ・プロパティの
表示指定が可能
62
<WebSphere MQ V7 Update Workshop>
<付録>
属性及びパラメータの追加/変更
63
<WebSphere MQ V7 Update Workshop>
キュー・マネージャーの新規属性
ALTER QMGR
DISPLAY QMGR
属性
(デフォルト値)
説明
関連機能
MARKINT
(5000)
メッセージに付与されたマークがキュー・マネージャーにより除去されるまでの
時間
メッセージのブラウズ
MAXPROPL
(NOLIMIT)
メッセージに関連付けられるプロパティの最大長をbyte単位で指定
メッセージ・プロパティ
PARENT
(<ブランク>)
階層型Pub/Subで自身の親となるキュー・マネージャー名称
Pub/Sub
PSMODE
(ENABLED)
Pub/Subブローカーを稼働するか否か
Pub/Sub
PSNPMSG
(DISCARD)
Pub/Subブローカーがノンパーシステントのパブリケーション・メッセージを
サブスクライバーキューやデッドレターキューに出力できなかった場合の処理
Pub/Sub
PSNPRES
(NORMAL)
Pub/Subブローカーがノンパーシステント・メッセージの応答メッセージを
返せなかった場合の処理
Pub/Sub
PSRTYCNT
(5)
Pub/Subブローカーが同期点付きコマンドメッセージの処理に失敗した場合
レポート・オプションに従って処理する前にコマンドをリトライする回数
Pub/Sub
PSSYNCPT
(IFPER)
Pub/Subブローカーがコマンドメッセージを同期点付きで処理するか否か
Pub/Sub
SCYCASE
(UPPER)
セキュリティ・プロファイルが大文字のみか否か
z/OSセキュリティ
※z/OSのみ
TREELIFE
(1800)
非管理トピックの持続時間
Pub/Sub
64
<WebSphere MQ V7 Update Workshop>
キューの新規属性
DEFINE QLOCAL/QMODEL/QALIAS/QREMOTE
ALTER QLOCAL/QMODEL/QALIAS/QREMOTE
属性
(デフォルト値)
説明
対象キュー・タイプ
関連機能
DEFPRESP
(SYNC)
メッセージ送信の応答タイプのデフォルト
QL/QM/QA/QR
非同期メッセージ送信
DEFREADA
(NO)
ノン・パーシステント・メッセージの先読み
機能の使用可否のデフォルト
QL/QM/QA
メッセージ先読み
PROPCTL
(COMPAT)
メッセージ・プロパティの制御方法
QL/QM/QA
メッセージ・プロパティ
TARGET
(<ブランク>)
別名キューが指すキュー/トピックの名称
QA
Pub/Sub
※TARGQは互換性のため
残るが同時指定は不可
TARGTYPE
(QUEUE/TOPIC)
別名が解決するオブジェクトのタイプ
QA
Pub/Sub
※キュー・タイプは以下の通り
QL:ローカル・キュー/QM:モデル・キュー/QA:エイリアス・キュー/QR:リモート・キュー
65
<WebSphere MQ V7 Update Workshop>
チャネルの新規属性
DEFINE CHANNEL CHLTYPE SVRCONN/CLNTCONN/その他
ALTER CHANNEL CHLTYPE SVRCONN/CLNTCONN/その他
属性
(デフォルト値)
説明
対象チャネル・タイプ
関連機能
MAXINST
(999 999 999)
同時に接続可能なチャネル・
インスタンス数
SVRCONN
クライアントのチャネル数の
制御
MAXINSTC
(999 999 999)
1クライアントあたり同時に接続可能
なチャネル・インスタンス数
SVRCONN
クライアントのチャネル数の
制御
PROPCTL
(COMPAT)
メッセージ・プロパティーの制御方法
SDR/SERVER/
CLUSSDR/CLUSRCVR
メッセージ・プロパティ
CLNTWGHT
(0)
グループ化された各クライアント・
チャネルに対する重みの値
CLNTCONN
クライアント・チャネルの
重み付け
AFFINITY
(PREFERRED)
同一マシンからの接続試行順序を
保証するか否か
CLNTCONN
クライアント・チャネルの
重み付け
SHARECNV
(10)
1つのソケットが共用するチャネル・
インスタンスの最大数
SVRCONN/CLNTCONN
TCP/IPソケットの共用
66
<WebSphere MQ V7 Update Workshop>
ログ関連パラメータのデフォルト値の変更(UNIXのみ)
V7を新規導入しキュー・マネジャーを作成する場合、ログ・サイズの変更に注意
crtmqmコマンドのログ・サイズのデフォルト値の変更(UNIXのみ)
„ -lf
<LogFilePages>
–オプション無指定時のデフォルト値が、1024ページ(4MB)→4096ページ(16MB)に変更
構成ファイル(mqs.ini、qm.ini)のログ・サイズ、ログ・バッファー・サイズのデフォルト値の変更
(UNIXのみ)
„ LogFilePagesのデフォルト値
–mqs.ini、qm.iniのLogFilesPagesのデフォルト値が1024ページ→4096ページに変更
„ LogBufferPagesのデフォルト値
–mqs.ini、qm.iniのデフォルトLogBufferPages=0指定でキュー・マネージャーがサイズを選択
–上記の値が128ページ(512KB)→512ページ(2048KB)に変更
V7に移行する場合、ログ・サイズの変更はなし
既存キュー・マネージャーのログ・サイズ、ログ・バッファーサイズはV7移行後も保持される
V7への移行時、既存のmqs.ini、qm.iniは更新されない
67
<WebSphere MQ V7 Update Workshop>
ブランク・ページ
68
Fly UP