...

3 UNIX/PC 章: トピック

by user

on
Category: Documents
84

views

Report

Comments

Transcript

3 UNIX/PC 章: トピック
3章:UNIX/PC
Copyright ISE Co.,Ltd
< 3章:UNIX/PC >
トピック
64ビット対応
ログ機能の拡張
会計・統計
SOAPサポート
GUIツール
その他
2
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
64ビット対応
3
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
64ビット対応
一部のプラットフォームのMQが64ビットに対応
MQ
アプリケーション
64ビット
64ビット対応プラットフォーム
AIX
Solaris(SPARC)
HP-UX(PA-RISC)
Linux for Power platforms (iSeries and pSeries)
キュー・マネージャー
64ビット
MQ
アプリケーション
32ビット
キュー・マネージャー
64ビットのみサポート、32ビットは提供されない
„
mq_inst/bin, mq_inst/samp/bin以下のプログラム(コマンド等も含む)は全て64ビット
MQアプリケーション
32ビット、64ビットの両方をサポート
„
„
※mq_instはMQの導入ディレクトリ
/usr/mqm (AIX)
/opt/mqm (AIX以外)
64ビット・ライブラリ → mq_inst/lib64
32ビット・ライブラリ → mq_inst/lib
MQ Javaも32ビット、64ビットの両方をサポート
„
„
64ビット・ライブラリ → mq_inst/java/lib64
32ビット・ライブラリ → mq_inst/java/lib
4
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
64ビット化のメリット
一般的なメリット
利用できるメモリ量が飛躍的に増える
4ギガバイト → 16エクサバイト
MQアプリケーションでのメリット
大きなデータを扱える
„
MQの最大メッセージ長が変更されたわけではない
DBを使用するアプリケーションが64ビットで作成できる
„
今までMQの制限で32ビットでしか作成できなかった
AIXでMQエージェントのメモリ制限(256MB)がなくなる(次頁参照)
64ビット環境
メモリ空間
32ビット環境
2^64=16EB
メモリ空間
2^32=4GB
5
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>AIXでのMQエージェントのメモリ制限
MQ V5.3 for AIXではメモリの制限で特別な対応が必要な場合がある
MQエージェントはメッセージのバッファーをメモリから確保する
„
1プロセス当たり使用できるメモリは256MBに制限されている
MQエージェントはデフォルトの設定では1プロセスで最大63スレッド起動する
„
数MBという大きなメッセージを送受信すると、バッファーが不足する
回避策として以下のような対応が必要
„
„
メッセージをアプリケーションで小さいサイズに分割し送受信する
1プロセス当たりのMQエージェントの最大起動数を少なくする
MQ V6 for AIXではメモリの制限がなくなり、上記のような制限がなくなった
6
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQアプリケーションの対応
新規アプリケーション
64ビットで作成する
„
32ビットでも作成可能だが、あえて32ビットで作成するメリットはない
既存アプリケーション
32ビット・アプリケーションをそのまま使用する
„
„
リコンパイルなしで使用可能
若干の考慮点あり(後述)
32ビット・アプリケーションを64ビットにリコンパイルする
„
„
既存のソースコードをそのまま使用可能
32ビット環境と64ビット環境でサイズの違う型に注意(後述)
サポート・パックで提供されていた64ビットMQクライアントをそのまま使用する
„
リコンパイルなしで使用可能
7
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
32ビット・アプリケーションをそのまま使用する際の考慮点
MQ V6ではEXTSHMの設定が効かなくなった(AIX)
共有セグメントを多数使用するアプリケーションは正常に動作しない可能性がある
„
MQ V5.3でEXTSHM=ONを設定しないと動作しなかったアプリケーションは注意
回避策として、ISOLATEDバインディング(後述)の使用が考えられる
„
„
ISOLATEDバインディングを使用するとMQレベルで共有セグメントを使用しなくなる
アプリケーションの変更は必要なく、qm.iniで設定するのみでよい
32ビット・アプリケーションはFASTPATHバインディングを使用できなくなった
既存のFASTPATHバインディングを使用するアプリケーションは、
自動的にSHAREDバインディングでキュー・マネージャーに接続される
8
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
32ビット・アプリケーションを64ビット化する際の考慮点
型のサイズの違いによりアプリケーションが正しく動作しない可能性がある
32ビット環境ではint, long, ポインターのサイズは4バイト
64ビット環境ではlong, ポインターのサイズが8バイト
MQIで提供している型(MQLONGなど)は32ビット環境、64ビット環境でサイズは同じ
例として、次のようなケースが考えられる
„
„
„
int型の変数にlong型の値を代入している場合、桁落ちする可能性がある
int型の変数にポインターを代入している場合、予期しない動作をする可能性がある
MQLONG型の変数にlongの型の値を代入している場合、桁落ちの可能性がある
C言語の主な型のサイズ(AIX)
型
32ビット
64ビット
int
4バイト
4バイト
long
4バイト
8バイト
ポインター
4バイト
8バイト
size_t
4バイト
8バイト
time_t
4バイト
8バイト
9
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
32ビット・アプリケーションを64ビット化する際の考慮点(続き)
送受信側アプリケーションのどちらか一方を64ビット化する場合の考慮点
long型の様に32ビット環境と64ビット環境でサイズが異なる型をバイナリ・データとして
メッセージに含んでいる場合、そのままリコンパイルしても正常に送受信を行えない
例 long型でバイナリ・データを作成していた32ビット送信アプリケーションを64ビット化する場合
4バイトのデータ
送信
アプリケーション
32ビット
受信
アプリケーション
32ビット
long型(4バイト)で
データを読み込み
long型(4バイト)で
データを作成
64ビット化
送信
アプリケーション
64ビット
受信
アプリケーション
32ビット
8バイトのデータ
long型(8バイト)で
データを作成
long型(4バイト)で
データを読み込み
回避策
1. 送信側アプリケーションではint型(4バイト)でデータを作成する
2. 受信側アプリケーションも64ビット化する
10
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
出口/DBスイッチ・ロード・ファイルの対応
出口/DBスイッチ・ロード・ファイルにはキュー・マネージャーのみが使用するもの、
アプリケーションのみが使用するもの、両方が使用するものがある
キュー・マネージャーが使用する出口/DBスイッチ・ロード・ファイルは64ビット版が必要
„
既存の出口/スイッチ・ロード・ファイルは64ビット化する必要がある
アプリケーションが使用する出口/DBスイッチ・ロード・ファイルはアプリケーションと同じ
ビット数のものが必要
例.2フェーズ・コミットを行う32ビット・アプリケーションの場合、32ビットと64ビットのスイッチ・ロード・ファイルが必要
MQ
アプリケーション
(32ビット)
キュー・マネージャー
(64ビット)
DBスイッチ
ロード・ファイル
(32ビット)
DBスイッチ
ロード・ファイル
(64ビット)
DB
出口/DBスイッチ・ロード・ファイルの配置
以下の場所に配置 or リンク作成
„
„
32ビット → /var/mqm/exits
64ビット → /var/mqm/exits64
11
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>出口/DBスイッチ・ロード・ファイルの対応
必要となる出口/DBスイッチ・ロード・ファイルのビット数
キュー・マネージャーのみが使用するもの
モジュールの種類
32ビット・アプリケーションの場合
64ビット・アプリケーションの場合
64ビット
64ビット
32ビット・アプリケーションの場合
64ビット・アプリケーションの場合
32ビット
64ビット
チャネル出口(クライアント接続チャネル用は除く)
データ変換出口(送信チャネルで変換する場合)
クラスター・ワークロード出口
Pub/Subルーティング出口
インストール可能サービス
アプリケーションのみが使用するもの
モジュールの種類
データ変換出口(アプリケーションで変換する場合)
チャネル出口(クライアント接続チャネル用)
外部トランザクション・マネージャーAXライブラリー
キュー・マネージャー、アプリケーションの両方が使用するもの
モジュールの種類
32ビット・アプリケーションの場合
64ビット・アプリケーションの場合
32ビット + 64ビット
64ビット
DBスイッチ・ロード・ファイル
API出口
サービス・トレース・モジュール
12
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>32ビット出口を64ビット化する際の考慮点
型のサイズの違いにより出口が正しく動作しない可能性がある(前述)
ExitUserArea(16バイト)を使用している場合には注意が必要
„
32ビット環境では、16バイトの領域に4つのポインターを保存できるが、
64ビット環境ではポインターは2つまでしか保存できない
32ビット環境
ExitUserArea
64ビット環境
ExitUserArea
ポインター1(4バイト)
ポインター1(8バイト)
ポインター2(4バイト)
ポインター3(4バイト)
ポインター2(8バイト)
ポインター4(4バイト)
„
64ビット環境で3つ以上のポインターを格納する場合
ポインターを格納する領域を確保し、その領域を指すポインターを共有する
ExitUserArea
ポインター格納領域
ポインター1
格納領域を指す
ポインター
:
:
ポインターn
13
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<ブランク・ページ>
14
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ログ機能の拡張
15
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ログ・サイズの拡張
最大ログ・サイズが128GB(Unix)、64GB(Windows)に拡張
1つのログ・ファイルの最大サイズ
最大ログ・ファイル数(一次ログ + 二次ログ)
„
: 256MB
: Unix 511個、Windows 255個
一次ログは最大 510個(Unix)、254個(Windows)
最大ログ・バッファー・サイズが16MBに拡張
ログ・バッファーのデフォルト・サイズ
(参考) MQ V5.3のログ・サイズ
最大ログ・サイズ
1つのログ・ファイルの最大サイズ
最大ログ・ファイル数
最大ログ・バッファー・サイズ
ログ・バッファーのデフォルト値
: 512KB
:
:
:
:
:
4GB
64MB
63個
2MB
256KB
16
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ログ・ファイルの使用状況の確認
ログ・ファイルの使用状況がMQSCコマンドで確認することが可能
キュー・マネージャー/キューのステータスとして出力
リニア・ログの場合のみ確認可能
V5.3ではエラー・ログに定期的に出力されるのみ
DISPLAY QMSTATUSの実行例
DISPLAY QMSTATUS CURRLOG RECLOG MEDIALOG
CURRLOG(S0000000.LOG)
RECLOG(S0000000.LOG)
MEDIALOG(S0000000.LOG)
現在書き込みを行っているログ・ファイル名
リスタート・リカバリーに必要な最も古いログ・ファイル名
メディア・リカバリーに必要な最も古いログ・ファイル名
DISPLAY QSTATUSの実行例
DISPLAY QSTATUS() MEDIALOG
MEDIALOG(S0000000.LOG)
キューのメディア・リカバリーに必要な最も古いログ・ファイル名
17
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ログ・ファイルの使用状況の確認(続き)
ログ・ファイルの使用状況をイベント・メッセージとして出力することも可能
ロガー・イベント・メッセージ(PCFメッセージ)としてシステム・キューに出力
„
SYSTEM.ADMIN.LOGGER.EVENT
ロガー・イベント・メッセージに含まれる情報
„
„
„
„
リスタート・リカバリーに必要な最も古いログ・ファイル名
メディア・リカバリーに必要な最も古いログ・ファイル名
現在書き込みを行っているログ・ファイル名
ログ・ファイルの配置場所
PCFメッセージを処理するアプリケーションを作成する必要がある
ロガー・イベントの設定
キュー・マネージャーのLOGGEREV属性で設定
„
„
ENABLED: ロガー・イベントを生成する
DISABLED: ロガー・イベントを生成しない
リニア・ログの場合のみ設定可能
ロガー・イベント・メッセージが出力されるタイミング
新しいログ・ファイルへ書き込みを開始した時
キュー・マネージャーが起動した時
LOGGEREV属性がDISABLEDからENABLEDに変更された時
18
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ディザスター・リカバリー
リカバリー手段として新たにディザスター・リカバリーが追加
キュー・マネージャーに専用のバックアップ・キュー・マネージャーを作成することが可能
キュー・マネージャーのログのみでバックアップ・キュー・マネージャーの更新が可能
„
従来はキュー・マネージャーのデータとログのバックアップを取得していた
キュー・マネージャー稼動中にログのバックアップが可能
„
従来のデータとログのバックアップでは、キュー・マネージャーの停止が必要だった
リニア・ログの場合のみ対応
注意
ディザスター・リカバリーは障害直前の状態まで復元する機能ではない。
最後にログのバックアップを取得した時点までしか復元されない。
19
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ディザスター・リカバリー(続き)
ディザスター・リカバリーの手順
1.
2.
3.
4.
5.
バックアップ・キュー・マネージャーを作成
本番キュー・マネージャーのログをバックアップ・マシンに転送
バックアップ・キュー・マネージャーでログを適用
2., 3.を定期的に繰り返す
本番マシンで障害が発生した場合、バックアップ・キュー・マネージャーを起動
本番マシン
バックアップ・マシン
バックアップ
キュー・マネージャー
キュー・マネージャー
ログ
ログ
20
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
バックアップ・キュー・マネージャー
バックアップ・キュー・マネージャーの前提条件
本番マシンと同じプラットフォーム
本番マシンのMQと同等以上のフィックス・レベル
本番キュー・マネージャーと同じ属性(キュー・マネージャー名やログ・サイズなど)
バックアップ・キュー・マネージャーの作成
1. 本番キュー・マネージャーと同じ属性でキュー・マネージャーを作成
crtmqm (本番キュー・マネージャーと同じオプション、名前を指定)
„
2. 本番キュー・マネージャーのデータとログを作成したキュー・マネージャーに上書き
(qm.iniやレジストリーも同じ内容にする)
※キュー・マネージャー・データ
Unix : /var/mqm/qmgrs/qmgr_name ディレクトリ以下
Windows : mq_inst¥qmgrs/qmgr_name ディレクトリ以下
※キュー・マネージャー・ログ
Unix : /var/mqm/log/qmgr_name ディレクトリ以下
Windows : mq_inst¥log¥qmgr_name ディレクトリ以下
21
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
バックアップ・キュー・マネージャー(続き)
本番キュー・マネージャーのログのコピー
1. 本番キュー・マネージャーの現在書き込み中のログ・ファイル名を確認する…①
DISPLAY QMSTATUS CURRLOG
„
2. 本番キュー・マネージャーのログ・ファイルを次のログ・ファイルにスイッチする・・・②
RESET QMGR TYPE(ADVANCELOG)
„
3. 前回コピーしたログ・ファイル以降、1.で確認したログ・ファイルまでを
バックアップ・キュー・マネージャーにコピーする・・・③
4. バックアップ・キュー・マネージャーでログを適用する
strmqm -r QMGR名
„
既にバックアップQMGRに
コピー済みのログ
03.LOG
04.LOG
05.LOG
06.LOG
今回バックアップQMGR
にコピーするログ(③)
07.LOG
08.LOG 09.LOG
現在使用中 スイッチ後
のログ(①) のログ(②)
10.LOG 11.LOG 12.LOG 13.LOG
時系列
バックアップ・キュー・マネージャーの起動
1. バックアップ・キュー・マネージャーをアクティベートする
„
strmqm -a QMGR名
2. バックアップ・キュー・マネージャーを起動する
„
strmqm QMGR名
22
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ディザスター・リカバリーの考慮点
最後のログのバックアップ~障害発生時までのデータは失われる
必要に応じて、以下の作業を行う必要がある。
1. IPアドレスの付け替え
本番マシンで使用していたIPアドレスをバックアップ・マシンに付け替える
または、
„
DNS、/etc/hostsなどでIPアドレスを付け替える
„
2. チャネルの再起動(必要ならRESET CHANNEL)
再起動でチャネル順序番号エラーの場合は、RESET CHANNELを実行
„
3. 障害が発生したキュー・マネージャーがクラスターの場合
REFRESH CLUSTERなどで整合性を回復
„
4. バックアップ実行後に作成したオブジェクトの再作成
5. アプリケーション・レベルでの整合性の回復
消失したメッセージの回復など
„
障害発生
キュー・マネージャー
バックアップ
キュー・マネージャー
ログ
ログ
strmqm -r
strmqm -r
この間のデータ
は失われる
strmqm -a
23
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>ディザスター・リカバリー関連コマンド
制御コマンド
コマンド
strmqm
オプション
説明
-a
バックアップ・キュー・マネージャーをアクティブにする。
バックアップ・キュー・マネージャーはアクティブにしないと起動できない。
一旦アクティブにすると更新できない。
-r
バックアップ・キュー・マネージャーを更新する。
ログをリプレイし、オブジェクトを更新する。
MQSCコマンド
MQSCコマンド
説明
DISPLAY QMSTATUS CURRLOG
現在使用中のログ・ファイル名を表示する
RESET QMGR TYPE(ADVANCELOG)
ログ・ファイルを次のログ・ファイルにスイッチする
24
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
会計・統計
25
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
トピック
会計・統計概要
会計
MQI会計
キュー会計
統計
MQI統計
キュー統計
チャネル統計
会計・統計メッセージ
26
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
会計・統計概要
会計情報と統計情報
会計情報
„
„
MQアプリケーション単位にMQCONN~MQDISCの詳細な活動情報が取得可能
料金請求、アプリケーション処理の記録、問題判別等に利用可能
統計情報
„
„
キュー・マネージャーの一定時間毎の詳細な活動情報が取得可能
システム・モニタリング、問題判別、キャパシティー・プランニング等に利用可能
統計情報
会計情報
キュー・マネージャー
MQ
アプリケーション
MQ
アプリケーション
チャネル
MQI
キュー
会計情報
統計情報
SYSTEM.ADMIN.ACCOUNTING.QUEUE
SYSTEM.ADMIN.STATISTICS.QUEUE
27
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
会計・統計概要
会計・統計情報の出力
会計・統計情報はPCF形式のMQメッセージとしてシステム・キューに配信
„
„
会計情報 → SYSTEM.ADMIN.ACCOUNTING.QUEUE
統計情報 → SYSTEM.ADMIN.STATISTICS.QUEUE
配信された会計・統計メッセージを処理するプログラムを作成する必要がある
„
サンプルとしてamqsmonが提供されている
レポート出力
会計情報
統計情報
会計・統計メッセージ
処理
アプリケーション
画面出力
SYSTEM.ADMIN.ACCOUNTING.QUEUE
SYSTEM.ADMIN.STATISTICS.QUEUE
ファイル/DBに保存
28
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
会計情報
MQI会計
MQアプリケーション毎のMQ APIの発行回数等の情報
1つの会計メッセージに1つのMQI情報
キュー会計
MQアプリケーションが使用したキュー毎のPUT/GETされたメッセージ数等の情報
1つの会計メッセージに最大100個のキュー情報
29
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
統計情報
MQI統計
MQ APIの発行回数等の情報
1つの統計メッセージに1つのMQI情報
キュー統計
キュー毎のPUT/GETされたメッセージ数、総バイト数等の情報
1つの統計メッセージに最大100個のキュー情報
チャネル統計
チャネル毎の送受信したメッセージ数、総バイト数等の情報
1つの統計メッセージに最大100個のチャネル情報
30
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQI会計
MQI会計メッセージ
MQアプリケーション単位に以下の様な情報が含まれる
接続情報(アプリケーション名 / プロセスID / 接続タイプ / 接続(切断)時間 / … )
発行したAPIの数(MQOPEN / MQCLOSE / MQPUT / MQGET / MQCMIT/ MQINQ / … )
PUT / GETしたメッセージ数、バイト数(パーシステント / ノン・パーシステント)
MQI会計の設定
キュー・マネージャーの ACCTMQI 属性で ON/OFF を設定する
MQCONNXのコネクト・オプションでも設定が可能
„
„
„
アプリケーション単位でMQI会計の設定が可能
優先順位 : アプリケーションの設定 > キュー・マネージャーの設定
キュー・マネージャーのACCTCONO属性が ENABLED に設定されている時にのみ有効
コネクト・オプション(MQCONNX)
キュー・マネージャー属性
ACCTMQI ( ON | OFF )
MQCNO_ACCOUNTING_MQI_ENABLED
MQCNO_ACCOUNTING_MQI_DISABLED
ACCTCONO ( ENABLED | DISABLED )
何も指定しない(QMGRの指定に従う)
31
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<ブランク・ページ>
32
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
キュー会計
キュー会計メッセージ
MQアプリケーション単位で使用したキュー毎に以下の様な情報が含まれる
キュー情報(キュー名 / キューの作成日時 / キュー・タイプ)
発行したAPIの数(MQOPEN / MQCLOSE / MQPUT / MQGET / BROWSE )
PUT / GETしたメッセージ数、バイト数、メッセージ・サイズ(最大 / 最小)
メッセージの滞留時間(最大 / 平均 / 最小)
キュー会計の設定
キュー・マネージャー / キューの ACCTQ属性で ON/OFF を設定する
„
„
優先順位 : キューの設定 > キュー・マネージャーの設定
キュー・マネージャーの ACCTQ属性がNONEの場合、キューの ACCTQ属性に関わらずOFF
MQCONNXのコネクト・オプションでも設定が可能
„
„
„
アプリケーション単位でキュー会計の設定が可能
優先順位 : キューの設定 > アプリケーションの設定 > キュー・マネジャーの設定
キュー・マネージャーの ACCTCONO属性が ENABLED に設定されている必要がある
キュー・マネージャー属性
コネクト・オプション(MQCONNX)
キュー属性
ACCTQ ( ON | OFF | NONE )
ACCTCONO ( ENABLED | DISABLED )
ACCTQ ( ON | OFF | QMGR )
MQCNO_ACCOUNTING_Q_ENABLED
MQCNO_ACCOUNTING_Q_DISABLED
何も指定しない
33
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>キュー会計の設定
キュー・マネージャー/キューの指定
キュー・マネージャー属性
ACCTQ =OFF
ACCTCONO = ENABLED
Q1
アプリケーションの指定
出力される情報
アプリケーション1
コネクト・オプション(MQCONNX)
MQCNO_ACCOUNTING_Q_ENABLED
Q1, Q3のキュー会計情報
ACCTQ =ON
アプリケーション2
Q2
コネクト・オプション(MQCONNX)
ACCTQ =OFF
Q3
MQCNO_ACCOUNTING_Q_DISABLED
or
何も指定しない
Q1のキュー会計情報
ACCTQ =QMGR
34
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQI統計
MQI統計メッセージ
全てのアプリケーションに関する以下の様な情報が含まれる
発行したAPIの数(MQOPEN / MQCLOSE / MQPUT / MQGET / MQCMIT/ MQINQ / … )
PUT / GETしたメッセージ数、バイト数(パーシステント / ノン・パーシステント)
MQI統計の設定
キュー・マネージャーの STATMQI 属性で ON/OFF を設定する
キュー・マネージャー属性
STATMQI ( ON | OFF )
35
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
キュー統計
キュー統計メッセージ
キュー毎に以下の様な情報が含まれる
キュー情報(キュー名 / キューの作成日時)
PUT / GETしたメッセージ数、バイト数(パーシステント / ノン・パーシステント)
滞留メッセージ数(最大 / 最小)
メッセージの平均滞留時間
キュー統計の設定
キュー・マネージャー / キューの STATQ属性で ON/OFF を設定する
„
„
優先順位 : キューの設定 > キュー・マネージャーの設定
キュー・マネージャーの STATQ属性がNONEの場合、キューの STATQ属性に関わらずOFF
キュー・マネージャー属性
キュー属性
STATQ ( ON | OFF | QMGR )
STATQ ( ON | OFF | NONE )
36
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
チャネル統計
チャネル統計メッセージ
チャネル毎に以下の様な情報が含まれる
チャネル情報(チャネル名 / チャネル・タイプ)
転送したメッセージ数、バイト数(パーシステント / ノン・パーシステント)
ハートビートのラウンド・トリップ・タイム(最大 / 平均 / 最小)
チャネル統計の設定
キュー・マネージャー / チャネルのSTATCHL属性で設定する
„
優先順位 : チャネルの設定 > キュー・マネージャーの設定
自動定義クラスター送信チャネルはキュー・マネージャーのSTATACLS属性で設定する
„
„
キュー・マネージャーの STATCHL属性がNONEの場合、
チャネルのSTATCHL属性、キュー・マネージャーのSTATACLS属性の値に関わらずOFF
LOW, MEDIUM, HIGH はチャネル統計のサンプリング・レートの度合い
設定を変更するにはチャネルの再起動が必要
キュー・マネージャー属性
チャネル属性
STATCHL ( LOW | MEDIUM | HIGH | OFF | NONE )
STATCHL ( LOW | MEDIUM | HIGH | OFF | QMGR )
STATACLS ( LOW | MEDIUM | HIGH | OFF | QMGR )
37
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
会計・統計メッセージの出力タイミング
統計メッセージを出力するタイミング
一定時間間隔で出力
キュー・マネージャーのSTATINT属性で設定
„
デフォルト値:1800(秒)
統計情報
統計情報
時間
STATINT
STATINT
会計メッセージを出力するタイミング
MQDISC発行時に出力
長時間MQDISCが発行されない場合、一定時間間隔で出力
キュー・マネージャーのACCTINT属性で設定
„
会計情報は
出力されない
デフォルト値:1800(秒)
会計情報
会計情報
会計情報
時間
ACCTINT
MQCONN(X)
ACCTINT
MQ
アプリケーション
38
ACCTINT
MQDISC
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>会計・統計関連パラメータ一覧
会計関連パラメータ
会計情報種別
MQI / キュー会計
設定箇所
QMGR
パラメータ
説明
ACCTINT
会計情報を出力する間隔(秒)
ACCTCNO
ENABLED: MQCNOによる上書きを許可する
DISABLED: MQCNOによる上書きを禁止する
MQI会計
QMGR
ACCTMQI
ON: MQI会計を生成する
OFF: MQI会計を生成しない
キュー会計
QMGR
ACCTQ
ON: キュー会計を生成する
OFF: キュー会計を生成しない
NONE: 全てのキューのキュー会計を生成しない
Queue
ACCTQ
ON: キュー会計を生成する
OFF: キュー会計を生成しない
QMGR: キュー・マネージャーのACCTQ属性に従う
MQCONNXのコネクト・オプションに指定するオプション
パラメータ
説明
MQCNO_ACCOUNTING_MQI_ENABLED
MQI会計を生成する
MQCNO_ACCOUNTING_MQI_DISABLED
MQI会計を生成しない
MQCNO_ACCOUNTING_Q_ENABLED
キュー会計を生成する
MQCNO_ACCOUNTING_Q_DISABLED
キュー会計を生成しない
39
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>会計・統計関連パラメータ一覧
統計関連パラメータ
会計情報種別
設定箇所
パラメータ
説明
MQI / キュー / チャネル統計
QMGR
STAT1INT
統計メッセージを出力する間隔(秒)
MQI統計
QMGR
STATMQI
ON: MQI統計を生成する
OFF: MQI統計を生成しない
キュー統計
QMGR
STATQ
ON: キュー統計を生成する
OFF: キュー統計を生成しない
NONE: 全てのキューのキュー統計を生成しない
Queue
STATQ
ON: キュー統計を生成する
OFF: キュー統計を生成しない
QMGR: キュー・マネージャーのSTATQ属性に従う
QMGR
STATCHL
LOW: チャネル統計を生成する(レート:低)
MEDIUM: チャネル統計を生成する(レート:中)
HIGH: チャネル統計を生成する(レート:高)
OFF: チャネル統計を生成しない
NONE: 全てのチャネルのチャネル統計を生成しない
QMGR
STATACLS
Channel
STATCHL
LOW: チャネル統計を生成する(レート:低)
MEDIUM: チャネル統計を生成する(レート:中)
HIGH: チャネル統計を生成する(レート:高)
OFF: チャネル統計を生成しない
QMGR: キュー・マネージャーのSTATCHL属性に従う
チャネル統計
40
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>会計・統計メッセージ
会計・統計メッセージ形式
メッセージはPCF形式
MQMD
PCFヘッダー
(MQCFH)
フィールド1
・・・
フィールド2
フィールドn
PCF形式
PCFヘッダー(MQCFH)に含まれる情報
メッセージ種別
MQI会計
キュー会計
Type フィールド
Command フィールド
MQCMD_ACCOUNTING_MQI
MQCFT_ACCOUNTING
MQCMD_ACCOUNTING_Q
MQI統計
MQCMD_STATISTICS_MQI
キュー統計
MQCFT_STATISTICS
MQCMD_STATISTICS_Q
チャネル統計
MQCMD_STATISTICS_CHANNEL
フィールドに含まれる情報
„
„
MQI発行回数、Putしたメッセージ・バイト数など(メッセージの種類により異なる)
詳細は参考資料を参照
41
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>会計・統計メッセージ
会計・統計メッセージの例
会計・統計メッセージを整形し画面に出力するサンプル(amqsmon)が提供されている
ソース・コードが提供されているため、会計・統計メッセージを処理するプログラムを作成
する際の参考になる
キュー会計メッセージを amqsmon で表示した例
QueueManager: 'FURUQM'
IntervalStartDate: '1970-01-01'
IntervalStartTime: '09:00:00'
IntervalEndDate: '2005-05-11'
IntervalEndTime: '17:03:09'
CommandLevel: 600
ConnectionId: x'414d512046555255514d202020202020426f122c20002006'
SeqNumber: 0
ApplicationName: 'amqsput'
ApplicationPid: 876658
ApplicationTid: 1
UserId: 'furuya'
ObjectCount: 1
QueueAccounting:
QueueName: 'Q1'
CreateDate: '2005-05-10'
CreateTime: '10.19.31'
QueueType: Predefined
QueueDefinitionType: Local
OpenCount: 1
OpenDate: '2005-05-11'
OpenTime: '17:03:04'
42
CloseCount: 1
CloseDate: '2005-05-11'
CloseTime: '17:03:09'
PutCount: [4, 0]
PutFailCount: 0
Put1Count: [0, 0]
Put1FailCount: 0
PutBytes: [25, 0]
PutMinBytes: [2, 0]
PutMaxBytes: [13, 0]
GetCount: [0, 0]
GetFailCount: 0
GetBytes: [0, 0]
GetMinBytes: [0, 0]
GetMaxBytes: [0, 0]
BrowseCount: [0, 0]
BrowseFailCount: 0
BrowseBytes: [0, 0]
BrowseMinBytes: [0, 0]
BrowseMaxBytes: [0, 0]
GeneratedMsgCount: 0
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>MQI会計メッセージ
フィールド
フィールドID
QueueManager
MQCA_Q_MGR_NAME
データ型
MQCFST
説明
キュー・マネージャー名
IntervalStartDate
MQCAMO_START_DATE
MQCFST
統計の取得を開始した日付
IntervalStartTime
MQCAMO_START_TIME
MQCFST
統計の取得を開始した時刻
IntervalEndDate
MQCAMO_END_DATE
MQCFST
統計の取得を終了した日付
IntervalEndTime
MQCAMO_END_TIME
MQCFST
統計の取得を終了した時刻
CommandLevel
MQIA_COMMAND_LEVEL
MQCFIN
コマンド・レベル
ConnectionId
MQBACF_CONNECTION_ID
MQCFBS
接続ID
SeqNumber
MQIACF_SEQUENCE_NUMBER
MQCFIN
シーケンス番号
ApplicationName
MQCACF_APPL_NAME
MQCFST
アプリケーション名
ApplicationPid
MQCACF_PROCESS_ID
MQCFIN
アプリケーション・プロセスID
ApplicationTid
MQCACF_THREAD_ID
MQCFIN
アプリケーション・スレッドID
UserId
MQCACF_USER_IDENTIFIER
MQCFST
ユーザID
ConnDate
MQCAMO_CONN_DATE
MQCFST
接続日付
ConnTime
MQCAMO_CONN_TIME
MQCFST
接続時刻
ConnName
MQCAMO_CONN_NAME
MQCFST
クライアント接続の接続名
ChannelName
MQCACH_CHANNEL_NAME
MQCFST
クライアント接続のチャネル名
DiscDate
MQCAMO_DISC_DATE
MQCFST
切断日付
DiscTime
MQCAMO_DISC_TIME
MQCFST
切断時刻
DiscType
MQIAMO_DISC_TYPE
MQCFIN
切断タイプ
OpenCount
MQIAMO_OPENS
MQCFIL
MQOPENが成功した回数
OpenFailCount
MQIAMO_OPENS_FAILED
MQCFIL
MQOPENが失敗した回数
43
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>MQI会計メッセージ(続き)
フィールド
CloseCount
フィールドID
データ型
MQIAMO_CLOSES
MQCFIL
説明
MQCLOSEが成功した回数
CloseFailCount
MQIAMO_CLOSES_FAILED
MQCFIL
MQCLOSEが失敗した回数
PutCount
MQIAMO_PUTS
MQCFIL
MQPUTが成功した回数
PutFailCount
MQIAMO_PUTS_FAILED
MQCFIN
MQPUTが失敗した回数
Put1Count
MQIAMO_PUT1S
MQCFIL
MQPUT1が成功した回数
Put1FailCount
MQIAMO_PUT1S_FAILED
MQCFIN
MQPUT1が失敗した回数
PutBytes
MQIAMO64_PUT_BYTES
MQCFIL64
Putしたバイト数
GetCount
MQIAMO_GETS
MQCFIL
MQGETが成功した回数
GetFailCount
MQIAMO_GETS_FAILED
MQCFIN
MQGETが失敗した回数
GetBytes
MQIAMO64_GET_BYTES
MQCFIL64
Getしたバイト数
BrowseCount
MQIAMO_BROWSES
MQCFIL
ブラウズが成功した回数
BrowseFailCount
MQIAMO_BROWSES_FAILED
MQCFIN
ブラウズが失敗した回数
BrowseBytes
MQIAMO64_BROWSE_BYTES
MQCFIL64
ブラウズしたバイト数
CommitCount
MQIAMO_COMMITS
MQCFIN
コミットに成功した回数
CommitFailCount
MQIAMO_COMMITS_FAILED
MQCFIN
コミットに失敗した回数
BackCount
MQIAMO_BACKOUTS
MQCFIN
バックアウトに成功した回数
InqCount
MQIAMO_INQS
MQCFIL
MQINQが成功した回数
InqFailCount
MQIAMO_INQS_FAILED
MQCFIL
MQINQが失敗した回数
SetCount
MQIAMO_SETS
MQCFIL
MQSETが成功した回数
SetFailCount
MQIAMO_SETS_FAILED
MQCFIL
MQSETが失敗した回数
44
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>キュー会計メッセージ
フィールド
フィールドID
データ型
説明
QueueManager
MQCA_Q_MGR_NAME
MQCFST
キュー・マネージャー名
IntervalStartDate
MQCAMO_START_DATE
MQCFST
統計の取得を開始した日付
IntervalStartTime
MQCAMO_START_TIME
MQCFST
統計の取得を開始した時刻
IntervalEndDate
MQCAMO_END_DATE
MQCFST
統計の取得を終了した日付
IntervalEndTime
MQCAMO_END_TIME
MQCFST
統計の取得を終了した時刻
CommandLevel
MQIA_COMMAND_LEVEL
MQCFIN
コマンド・レベル
ConnectionId
MQBACF_CONNECTION_ID
MQCFBS
接続ID
SeqNumber
MQIACF_SEQUENCE_NUMBER
MQCFIN
シーケンス番号
ApplicationName
MQCACF_APPL_NAME
MQCFST
アプリケーション名
ApplicationPid
MQCACF_PROCESS_ID
MQCFIN
アプリケーション・プロセスID
ApplicationTid
MQCACF_THREAD_ID
MQCFIN
アプリケーション・スレッドID
UserId
MQCACF_USER_IDENTIFIER
MQCFST
ユーザID
ObjectCount
MQIAMO_OBJECT_COUNT
MQCFIN
アクセスしたキューの数
QAccountingData
MQGACF_Q_ACCOUNTING_DATA
MQCFGR
キュー会計のPCFグループ
QueueName
MQCA_Q_NAME
MQCFST
キュー名
CreateDate
MQCA_CREATION_DATE
MQCFST
キューが作成された日付
CreateTime
MQCA_CREATION_TIME
MQCFST
キューが作成された時刻
QueueType
MQIA_Q_TYPE
MQCFIN
キュー・タイプ
QueueDefinitionType
MQIA_DEFINITION_TYPE
MQCFIN
キューの定義タイプ
OpenCount
MQIAMO_OPENS
MQCFIL
MQOPENが成功した回数
OpenDate
MQCAMO_OPEN_DATE
MQCFST
MQOPENした日付
OpenTime
MQCAMO_OPEN_TIME
MQCFST
MQOPENした時刻
45
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>キュー会計メッセージ(続き)
フィールド
フィールドID
データ型
説明
CloseDate
MQCAMO_CLOSE_DATE
MQCFST
MQCLOSEした日付
CloseTime
MQCAMO_CLOSE_TIME
MQCFST
MQCLOSEした時刻
PutCount
MQIAMO_PUTS
MQCFIL
MQPUTに成功した回数
PutFailCount
MQIAMO_PUTS_FAILED
MQCFIN
MQPUTに失敗した回数
Put1Count
MQIAMO_PUT1S
MQCFIL
MQPUT1に成功した回数
Put1FailCount
MQIAMO_PUT1S_FAILED
MQCFIN
MQPUT1に失敗した回数
PutBytes
MQIAMO64_PUT_BYTES
MQCFIL64
Putしたバイト数
PutMinBytes
MQIAMO_PUT_MIN_BYTES
MQCFIL
Putした最小バイト数
PutMaxBytes
MQIAMO_PUT_MAX_BYTES
MQCFIL
Putした最大バイト数
GetCount
MQIAMO_GETS
MQCFIL
MQGETに成功した回数
GetFailCount
MQIAMO_GETS_FAILED
MQCFIN
MQGETに失敗した回数
GetBytes
MQIAMO64_GET_BYTES
MQCFIL64
Getしたバイト数
GetMinBytes
MQIAMO_GET_MIN_BYTES
MQCFIL
Getした最小バイト数
GetMaxBytes
MQIAMO_GET_MAX_BYTES
MQCFIL
Getした最大バイト数
BrowseCount
MQIAMO_BROWSES
MQCFIL
ブラウズに成功した回数
BrowseFailCount
MQIAMO_BROWSES_FAILED
MQCFIN
ブラウズに失敗した回数
BrowseBytes
MQIAMO64_BROWSE_BYTES
MQCFIL64
ブラウズしたバイト数
BrowseMinBytes
MQIAMO_BROWSE_MIN_BYTES
MQCFIL
ブラウズした最小バイト数
BrowseMaxBytes
MQIAMO_BROWSE_MAX_BYTES
MQCFIL
ブラウズした最大バイト数
TimeOnQMin
MQIAMO_Q_TIME_MIN
MQCFIL
最小メッセージ滞留時間
TimeOnQAvg
MQIAMO_Q_TIME_AVG
MQCFIL
平均メッセージ滞留時間
TimeOnQMax
MQIAMO_Q_TIME_MAX
MQCFIL
最大メッセージ滞留時間
46
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>MQI統計メッセージ
フィールド
フィールドID
データ型
説明
QueueManager
MQCA_Q_MGR_NAME
MQCFST
キュー・マネージャー名
IntervalStartDate
MQCAMO_START_DATE
MQCFST
統計の取得を開始した日付
IntervalStartTime
MQCAMO_START_TIME
MQCFST
統計の取得を開始した時刻
IntervalEndDate
MQCAMO_END_DATE
MQCFST
統計の取得を終了した日付
IntervalEndTime
MQCAMO_END_TIME
MQCFST
統計の取得を終了した時刻
CommandLevel
MQIA_COMMAND_LEVEL
MQCFIN
コマンド・レベル
ConnCount
MQIAMO_CONNS
MQCFIN
MQCONN(X)が成功した回数
ConnFailCount
MQIAMO_CONNS_FAILED
MQCFIN
MQCONN(X)が失敗した回数
ConnHighwater
MQIAMO_CONNS_MAX
MQCFIN
一時点での最大接続数
DiscCount
MQIAMO_DISCS
MQCFIN
MQDISCが成功した回数
OpenCount
MQIAMO_OPENS
MQCFIL
MQOPENが成功した回数
OpenFailCount
MQIAMO_OPENS_FAILED
MQCFIL
MQOPENが失敗した回数
CloseCount
MQIAMO_CLOSES
MQCFIL
MQCLOSEが成功した回数
CloseFailCount
MQIAMO_CLOSES_FAILED
MQCFIL
MQCLOSEが失敗した回数
InqCount
MQIAMO_INQS
MQCFIL
MQINQが成功した回数
InqFailCount
MQIAMO_INQS_FAILED
MQCFIL
MQINQが失敗した回数
SetCount
MQIAMO_SETS
MQCFIL
MQSETが成功した回数
SetFailCount
MQIAMO_SETS_FAILED
MQCFIL
MQSETが失敗した回数
47
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>MQI統計メッセージ(続き)
フィールド
フィールドID
PutCount
MQIAMO_PUTS
データ型
MQCFIL
説明
MQPUTが成功した回数
PutFailCount
MQIAMO_PUTS_FAILED
MQCFIN
MQPUTが失敗した回数
Put1Count
MQIAMOM_PUT1S
MQCFIL
MQPUT1が成功した回数
Put1FailCount
MQIAMO_PUT1S_FAILED
MQCFIN
MQPUT1が失敗した回数
PutBytes
MQIAMO64_PUT_BYTES
MQCFIL64
Putしたバイト数
GetCount
MQIAMO_GETS
MQCFIL
MQGETが成功した回数
GetFailCount
MQIAMO_GETS_FAILED
MQCFIN
MQGETが失敗した回数
GetBytes
MQIAMO64_GET_BYTES
MQCFIL64
Getしたバイト数
BrowseCount
MQIAMO_BROWSES
MQCFIL
ブラウズが成功した回数
BrowseFailCount
MQIAMO_BROWSES_FAILED
MQCFIN
ブラウズが失敗した回数
BrowseBytes
MQIAMO64_BROWSE_BYTES
MQCFIL64
ブラウズしたバイト数
CommitCount
MQIAMO_COMMITS
MQCFIN
コミットが成功した回数
CommitFailCount
MQIAMO_COMMITS_FAILED
MQCFIN
コミットが失敗した回数
BackCount
MQIAMO_BACKOUTS
MQCFIN
バックアウトが成功した回数
ExpiredMsgCount
MQIAMO_MSGS_EXPIRED
MQCFIL
有効期限が切れたメッセージ数
48
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>キュー統計メッセージ
フィールド
フィールドID
データ型
説明
QueueManager
MQCA_Q_MGR_NAME
MQCFST
キュー・マネージャー名
IntervalStartDate
MQCAMO_START_DATE
MQCFST
統計の取得を開始した日付
IntervalStartTime
MQCAMO_START_TIME
MQCFST
統計の取得を開始した時刻
IntervalEndDate
MQCAMO_END_DATE
MQCFST
統計の取得を終了した日付
IntervalEndTime
MQCAMO_END_TIME
MQCFST
統計の取得を終了した時刻
CommandLevel
MQIA_COMMAND_LEVEL
MQCFIN
コマンド・レベル
QueueName
MQCA_Q_NAME
MQCFST
キュー名
CreateDate
MQCA_CREATION_DATE
MQCFST
キューが作成された日付
CreateTime
MQCA_CREATION_TIME
MQCFST
キューが作成された時刻
QStatisticsData
MQGACF_Q_STATISTICS_DATA
MQCFGR
キュー統計のPCFグループ
QMinDepth
MQIAMO_Q_MIN_DEPTH
MQCFIN
滞留メッセージの最小数
QMaxDepth
MQIAMO_DISCS_IMPLICIT
MQCFIN
滞留メッセージの最大数
AvgTimeOnQ
MQIAMO_AVG_Q_TIME
MQCFIN
平均メッセージ滞留時間(ミリ秒)
PutCount
MQIAMO_PUTS
MQCFIL
MQPUTが成功した回数
PutFailCount
MQIAMO_PUTS_FAILED
MQCFIN
MQPUTが失敗した回数
Put1Count
MQIAMOM_PUT1S
MQCFIL
MQPUT1が成功した回数
Put1FailCount
MQIAMO_PUT1S_FAILED
MQCFIN
MQPUT1が失敗した回数
PutBytes
MQIAMO64_PUT_BYTES
MQCFIL64
Putしたバイト数
49
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>キュー統計メッセージ(続き)
フィールド
フィールドID
データ型
説明
GetCount
MQIAMO_GETS
MQCFIL
MQGETが成功した回数
GetFailCount
MQIAMO_GETS_FAILED
MQCFIN
MQGETが失敗した回数
GetBytes
MQIAMO64_GET_BYTES
MQCFIL64
Getしたバイト数
BrowseCount
MQIAMO_BROWSES
MQCFIL
ブラウズが成功した回数
BrowseFailCount
MQIAMO_BROWSES_FAILED
MQCFIN
ブラウズが失敗した回数
BrowseBytes
MQIAMO64_BROWSE_BYTES
MQCFIL64
ブラウズしたバイト数
ExpiredMsgCount
MQIAMO_MSGS_EXPIRED
MQCFIL
有効期限が切れたメッセージ数
NonQueuedMsgCount
MQIAMO_MSG_NOT_QUEUED
MQCFIL
Putした直後にGetされたメッセージ数
50
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>チャネル統計メッセージ
フィールド
フィールドID
データ型
説明
QueueManager
MQCA_Q_MGR_NAME
MQCFST
キュー・マネージャー名
IntervalStartDate
MQCAMO_START_DATE
MQCFST
統計の取得を開始した日付
IntervalStartTime
MQCAMO_START_TIME
MQCFST
統計の取得を開始した時刻
IntervalEndDate
MQCAMO_END_DATE
MQCFST
統計の取得を終了した日付
IntervalEndTime
MQCAMO_END_TIME
MQCFST
統計の取得を終了した時刻
CommandLevel
MQIA_COMMAND_LEVEL
MQCFIN
コマンド・レベル
ChannelName
MQCACH_CHANNEL_NAME
MQCFST
チャネル名
ChannelType
MQIACH_CHANNEL_TYPE
MQCFIN
チャネル・タイプ
ChlStatisticsData
MQGAF_CHL_STATISTICS_DATA
MQCFGR
チャネル統計のPCFグループ
RemoteQmgr
MQCACH_REMOTE_Q_MGR_NAME
MQCFST
リモート・キュー・マネージャー名
ConnectionName
MQCACH_CONNECTION_NAME
MQCFST
接続名
MsgCount
MQIAMO_MSGS
MQCFIL
転送したメッセージ数
TotalBytes
MQIAMO64_BYTES
MQCFIL64
転送したメッセージ・バイト数
NetTimeMin
MQIAMO_NET_TIME_MIN
MQCFIN
ラウンド・トリップに要した最小時間
NetTimeAvg
MQIAMO_NET_TIME_AVG
MQCFIN
ラウンド・トリップに要した平均時間
NetTimeMax
MQIAMO_NET_TIME_MAX
MQCFIN
ラウンド・トリップに要した最大時間
51
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>チャネル統計メッセージ(続き)
フィールド
フィールドID
ExitTimeMin
MQIAMO_EXIT_TIME_MIN
データ型
MQCFIN
説明
出口で要した最小時間
ExitTimeAvg
MQIAMO_EXIT_TIME_AVG
MQCFIN
出口で要した平均時間
ExitTimeMax
MQIAMO_EXIT_TIME_MAX
MQCFIN
出口で要した最大時間
FullBatchCount
MQIAMO_FULL_BATCHES
MQCFIN
BATCHSZに達して転送されたバッチ数
IncmplBatchCount
MQIAMO_INCOMPLETE_BATCHES
MQCFIN
BATCHSZに達せずに転送されたバッチ数
AverageBatchSize
MQIAMO_AVG_BATCHE_SIZE
MQCFIN
平均バッチ・サイズ
PutRetryCount
MQIAMO_PUT_RETRIES
MQCFIN
リトライ回数
52
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
SOAPサポート
53
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<ブランク・ページ>
54
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
SOAPサポート(概要)
WebサービスのトランスポートをWebSphere MQで実現
Webサービスでは、SOAP形式(XML)のメッセージを使って通信を行う
„
SOAPを伝送するトランスポートは規定されていないが、HTTPが一般的(SOAP/HTTP)
電文フォーマット
SOAP
トランスポート
HTTP
JMS
SOAP/HTTP
SOAP/JMS
etc...
トランスポートにJMS(WMQ)を使用することで、次のようなメリットが得られる。
„
„
„
既存のMQネットワーク(キューやチャネル定義など)の有効活用
MQのパーシステンシーを使った、障害時のメッセージのリカバリー
MQクラスタリングによる、Webサービスの負荷分散
⇒WMQ V6で提供されるSOAP/JMS機能を、特に「SOAP/WMQ」と呼ぶ
Webサービス・クライアント
SOAP
Webサービス・プロバイダー
SOAP/WMQ
55
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
SOAPサポート(概要-続き)
Apache Axisと .Net のWebサービス・フレームワークに対応
„
„
各フレームワークの通信部分のみを置き換える形で実現
Axisと.Net のWebサービス・クライアント/ プロバイダー間の通信も可能
WAS の SOAP/JMS とは別機能
„
„
V5.3まではSupportPac(MA0R)で提供されていた、WMQ独自の機能
WASの SOAP/JMS アプリケーションと通信することは可能
– 前提条件あり。詳細はマニュアルを参照
Webサービス・クライアント
Webサービス・プロバイダー
SOAP/WMQ
SOAP/WMQ
リスナー
SOAP/WMQ
センダー
クライアント
アプリケーション
Webサービス
フレームワーク
(Axis/.Net)
Webサービス
フレームワーク
(Axis/.Net)
参考:SOAP/HTTPとの比較
HTTP
Transport
SOAP/HTTP
サービス
アプリケーション
HTTP
Transport
今回提供される機能
56
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
SOAPサポートのコンポーネント
SOAP/WMQ センダー
クライアント・アプリケーションがWebサービスを呼び出す際にコールされるライブラリ
„
クライアントがSOAP要求を送信するURIが jms: で始まる際に、SOAP/WMQライブラリが呼ばれる
(http: で始まる場合は従来のHTTPトランスポート用ライブラリが呼ばれる)
Webサービス・フレームワークから受け取ったSOAP要求をキューにPUTする
SOAP/WMQ リスナー
SOAP要求が着信するキューをListen(GET+Wait)する常駐プロセス
SOAP要求をキューから取り出してWebサービス・フレームワークに渡す。
サービス・アプリケーションからのSOAP応答をキューにPUTする
Webサービス・クライアント
Proxyのメソッド
呼び出し
SOAP要求の生成
MQMD MQRFH2
SOAP要求を
キューにPUT
SOAP
Webサービス・プロバイダー
SOAP要求を
キューからGET
SOAP要求のパース
サービスアプリケー
ションをコール
処理
SOAP応答の生成
SOAP返答のパース
SOAP応答を
キューにPUT
SOAP返答を
キューからGET
Proxyメソッドが
終了
クライアント
アプリケーション
Webサービス
フレームワーク
SOAP/WMQ
センダー
SOAP/WMQ
リスナー
57
Webサービス
フレームワーク
サービス
アプリケーション
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<ブランク・ページ>
58
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
前提環境
<メモ>
前提ソフトウェア
IBM Java 2 SDK and Runtime environment, V 1.4.2 (*)
下記のいずれか、あるいは両方
„
„
Apache Axis V1.1 (*) (言語:Java)
Microsoft .Net Framework redistributable V1.1 with Service Pack 1(言語:C#やVBなど
の.Net言語)
.Net環境でのみ必要な前提
„
„
Microsoft .NET Framework SDK V1.1 もしくは Microsoft Visual Studio .NET 2003
Microsoft Internet Information Services(Windows2000のみ、デプロイ時に必要)
(*)WebSphere MQ V6.0のメディアに同梱
59
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<メモ>
SOAPサポートの導入
製品と一緒に導入される
導入されるファイル
インストールされるファイル
説明
SOAP/WMQ センダー ライブラリ
(Axis用/.Net用)
Webサービス・フレームワークから呼び出される、SOAP/WMQセンダーのライブラリ
(Java/.Net のクラス群)
SOAP/WMQ リスナー
(Axis用/.Net用)
SOAP要求が着信するキューをリスン(GET+Wait)するプロセス
・Axis用:SimpleJavaListener
・.Net用:amqwSOAPNETlistener
デプロイメント・ツール
WebサービスをSOAP/WMQ対応としてAxis/.Net フレームワークにデプロイするためのコ
マンド(amqwdeployWMQService) 詳細は後述
サンプル・プログラム
(クライアント/サーバー側)
簡単なWebサービス・コードと、それを呼び出すためのWebサービス・クライアント・コード
Axis/.Net用をそれぞれ提供
インストール検査プログラム(IVT)
前提を満たしていて環境設定が正しく行われたかを、上記のサンプル・プログラムを使用し
て検査するスクリプトやプログラム
各種設定スクリプト
CLASSPATHなど環境設定を補助するスクリプト
マニュアル
„
Transport for SOAP [SC34-6651-00]
http://www-3.ibm.com/software/integration/mqfamily/library/manualsa/ から入手可能
60
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
開発手順
<メモ>
基本的な開発の流れ
新規にSOAP/WMQのWebサービス/クライアントを作成する場合
„
下図の1~6の作業を行う
既存のSOAP/HTTPのWebサービス/クライアントをSOAP/WMQ化する場合
„
„
プロバイダー側は2(Webサービスの再デプロイ)と3の作業が必要
クライアント側は5、6と、場合によっては4の作業(ソースコードの修正)が必要
Webサービス・プロバイダー側
1.
Webサービス側のコードを用意
2.
WMQ提供のデプロイメント・ツールを使って、Webサービスをデプロイ
3.
SOAP/WMQリスナの動作のカスタマイズ(任意)
プロバイダー側で必要なMQ関連の定義や
スクリプトを生成
クライアント側で必要なWSDLファイルやP
スタブコードを生成
Webサービス・クライアント側
4.
2で生成されたWSDLファイル/プロキシ・コードを使って
クライアント・コード作成
5. クライアント・コードに、WMQトランスポートを認識させるコードを追加
6.
client-config.wsddファイルを生成(Axisのみ)
61
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<ブランク・ページ>
62
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
開発手順(Webサービス・プロバイダー側-1)
<メモ>
WMQ V6提供のデプロイメント・ツールを使用してサービスをデプロイする
デプロイメント・ツールは引数として指定するサービスURI (後述)を元に次の処理を行う
„
„
„
„
Webサービス・コードからWSDLファイルを生成、それを元にクライアントのスタブ・コードを生成
– これらは後ほどクライアント側に配布する。
Webサービス・デプロイメント記述子(WSDD)ファイルを生成し、Axisにデプロイを行う(Axisのみ)
SOAP/WMQ リスナーを起動するスクリプトを生成
使用するMQオブジェクト(キュー、プロセス)をキュー・マネージャー上に定義
・リモートのキュー・マネージャー上のWebサービスを呼び出す場合は、手動で定義を追加作成する必要がある
Axisにデプロイ
INPUT
引数:サービス
URI
Webサービス
コード
(Java/C#/VB)
WSDDファイル
(Axisのみ)
デプロイメント・ツール
amqwdeployWMQService
SOAP/WMQ リスナー
起動スクリプト
必要なMQオブジェクト
定義(キュー等)の作成
WSDLファイル
クライアントの
スタブ・コード
(Axis/.Net)
Webサービス・クライアント
側に配布
OUTPUT
63
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
サービスURI
<メモ>
クライアント・アプリケーションがSOAP/WMQサービス呼び出し時に指定するURI
jms:/ で始まり、WMQ固有のパラメータから構成される。
„
Webサービス呼び出し時のWMQトランスポートの動作を決定する。
デプロイ・ツールの引数として指定することで、生成される定義物に反映
„
„
„
WSDL内の<wsdl:service>に記述される。
クライアント・スタブ内で、Webサービス呼び出し時のデフォルトとして使用される
SOAP/WMQ リスナーの起動スクリプトで、リスナーが接続するキュー・マネージャーやリスンするキュー情報として使用。
サービスURI に指定する主な情報
パラメータ名
説明
必須
デフォルト
○
N/A
○
N/A
connectionFactory
接続するキュー・マネージャー情報
クライアント接続(非SSL / SSL)も指定可能
destination
Webサービス呼び出し時の要求キュー名
targetService
呼び出すサービス名
replyDestination
Webサービス呼び出し時の応答キュー名
persistence
/TimeToLive/priority
メッセージに付加するMQオプション
(Persistence / Expiry / Priority)
Persistent_As_Q_Def /
Priority=0 / Expiry=unlimited
timeout
受信タイムアウト(Get Wait 時間)
60秒
○(.Netのみ)
N/A
SYSTEM.SOAP.RESPONSE.QUEUE
サービスURI の例
jms:/queue?destination=ReqQ&connectionFactory=connectQueueManager(QM1)&
initialContextFactory=com.ibm.mq.jms.Nojndi&targetService=soap.server.StockQuote.java&
replyDestination=SYSTEM.SOAP.RESPONSE.QUEUE&timeout=10000
64
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
開発手順( Webサービス・プロバイダー側-2)
<メモ>
SOAP/WMQリスナのカスタマイズ(任意)
SOAP/WMQ リスナは要求メッセージを受信し、Webサービス・アプリケーションを呼び出す
起動時の引数により、必要に応じて動作をカスタマイズ可能
„ WMQ提供のデプロイメント・ツールが生成した起動/停止スクリプトに、必要に応じてオプションを追加
„ 主なオプション(詳細はマニュアルを参照)
引数
説明
必須
-u
接続するキュー・マネージャー情報を、サービスURI形式で指定
クライアント接続(非SSL / SSL)も指定可能
-x
トランザクション属性(要求キューからの受信から応答キューへの送信までに行った処理)
・onePhase / twoPhase / none (同期点なし) デフォルトはonePhase
-n
キューをリスンするスレッド数(デフォルトは10)
Webサービス・クライアント
○
キュー・マネージャー
Webサービス・プロバイダー
キュー・マネージャーに接続
要求メッセージを受信
要求キュー
Webサービス・フレームワーク
の呼び出し
応答キュー
要求メッセージに指定された
replyDestinationに
応答メッセージを送信
クライアント・アプリケーション SOAP/WMQ センダー
Webサービス・フレームワーク
SOAP/WMQ
リスナー
65
Webサービス・フレームワーク
サービス・アプリケーション
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
開発手順(Webサービス・クライアント側)
<メモ>
デプロイメント・ツールで生成されたスタブやWSDLファイルを使用
Axis
„
„
„
デプロイメント・ツールが生成したスタブを使用(Proxyスタイル)
デプロイメント・ツールが生成したWSDLを取り込んで使用(WSDLスタイル)
スタブやWSDLは使用せず、サービスのロケーションやメソッドを直接記述(SOAPスタイル)
.Net
„
デプロイメント・ツールが生成したスタブを使用
(※)クライアント側のプログラミングは、各フレームワークのドキュメントを参照してください。
一部SOAP/WMQ特有のコードを追加する必要がある
Webサービス・フレームワーク(Axis/.Net)に、WMQトランスポートを認識させる
„
„
Webサービス・フレームワークが jms: で始まるURIを認識し、SOAP/WMQのライブラリを呼び出すためのコード
サービス呼び出し前に以下のコードを追加
Java
:com.ibm.mq.soap.Register.extension ();
C#
:IBM.WMQSOAP.Register.Extension();
Visual Basic:IBM.WMQSOAP.Register.Extension()
client-config.wsdd ファイルを生成(Axisのみ)
デプロイメント・ツールを使用するか、amqwclientconfig コマンドを使って作成
Axisが、ランタイムでSOAP/WMQトランスポートを認識するために必要
client-config.wsdd ファイルは、クライアントのワーキング・ディレクトリに配置
66
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
開発サンプル(Webサービス・プロバイダー側)
<メモ>
Axisの場合の例
サービス・コードの用意
package soap.service
public class Calculator{
public int add(int i, int j){
return i + j;
} }
Webサービス・コード
(Calculator.java)
デプロイメント・ツールの実行
amqwdeployWMQService -f soap¥service¥Calculator.java -c allAxis
-u "jms:/queue?destination=REQ_Q@QM1&connectionFactory=
(connectQueueanager(QM1))&initialContextFactory=com.ibm.mq.jms.Nojndi"
・デプロイコマンドに生成される定義物の例
testというディレクトリでコマンドを発行した場合( .Net に関するファイルは省略しています)
server-config WSDDファイル
WSDLファイル
クライアント・スタブ
•不足しているMQオブジェクトの定義
•クライアント側へのWSDLファイル
とクライアント・スタブの配布
•リスナーの起動
リスナー起動スクリプト
サービス・コードと
WSDDファイル
67
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
開発サンプル(Webサービス・クライアント側)
<メモ>
Axisの場合の例
前ページで作成したスタブを使って、Proxy スタイルでサービスを呼び出す例
package soap.clients;
import java.net.URL;
import soap.server.*;
public class CalculatorClient
public static void main( String[] args ) {
com.ibm.mq.soap.Register.extension();
SOAP/WMQトランスポートの登録
try{
CalculatorService locator = new CalculatorServiceLocator();
スタブの使用
Calculator service=null;
if (args.length == 0)
service = locator.getSoapServerCalculator_Wmq();
else
service = locator.getSoapServerCalculator_Wmq(new java.net.URL(args[0]));
int result = service.add( 100 , 200 );
System.out.println( "Response: " + result );
} catch ( Exception e ) {
e.printStackTrace(); System.exit( 2 );
} }}
68
サービス呼び出し
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
GUIツール
69
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
トピック
MQ Explorer
ファイル転送ユーティリティー
70
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQExplorer
MQの様々な管理をGUIで行えるEclipseのプラグイン・ツール
V5.3のMQ ExplorerとMQ Serviceが統一、刷新された
稼動プラットフォーム
Windows
Linux for x86
71
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
基本機能
MQオブジェクトの管理
オブジェクトの作成、削除
オブジェクトの操作
„
キュー・マネージャー、チャネル、リスナーの開始、停止など
オブジェクトのステータスの表示
„
キュー・マネージャー、キュー、チャネルなどの状況
メッセージの操作
テスト・メッセージのPUT
キュー内のメッセージの参照
„
MQMDに設定された情報も参照可能
キュー内のメッセージの削除
„
CLEARコマンドでの削除とMQGETでの削除の選択ができる
MQクラスターの管理
クラスターの作成ウィザード、追加ウィザードを提供
クラスター・オブジェクトの参照
„
クラスター・キュー、クラスター・チャネルなど
クラスター・コマンドの発行
„
RESET/REFRESH CLUSTERなど
72
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
新機能、変更点
リモート管理できるプラットフォームが拡張された
WMQ V6の全てのプラットフォームのキュー・マネージャー(z/OSを含む)の管理が可能
z/OS版以外のV5.3のキュー・マネージャーの管理も可能
„
SYSTEM.MQEXPLORER.REPLY.MODELモデル・キューを作成する必要がある
リモート管理に使用するチャネルの制限が緩和された
任意のサーバー接続チャネルが使用できるようになった
„
V5.3ではSYSTEM.ADMIN.SVRCONNしか使用できなかった
クライアント・チャネル定義テーブルが使用できるようになった
„
SSLチャネルで安全に接続できるようになった
他のキュー・マネージャー経由での接続も可能
Eclipseプラグインを追加することで機能拡張が可能
クラスター・プラグイン、メッセージ・プラグイン、トレース・プラグインなどが製品に同梱
ユーザ独自のプラグインを作成し、MQ Explorerに組み込むことも可能
表示するオブジェクトのフィルター処理が可能
必要な属性のみ表示させることができる
73
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
新機能、変更点
2つのオブジェクト間で属性の比較が可能
異なるキュー・マネージャーのオブジェクトとの比較も可能
メッセージの比較も可能(同じキュー内のメッセージのみ)
74
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ファイル転送ユーティリティー
トランスポートにMQを使用するファイル転送ユーティリティー
GUIツールとコマンド・ライン・ツールを提供
MQをインストールする際に、ファイル転送フィーチャーを選択
稼動プラットフォーム
Windows、Linux for x86
75
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
ファイル転送ユーティリティー
主な特徴
一方向型のファイル転送のみサポート
メッセージはパーシステント、ノンパーシステントの選択が可能
ローカル接続、クライアント接続のどちらも可能
ファイルはバイナリとして扱う
„
コード変換の機能は提供しない
大きなファイルは複数のメッセージに分割して送受信
„
メッセージの分割サイズの指定が可能
ファイル送受信ログの記録(GUIツールのみ)
ファイル送信時にコメントを挿入可能
コマンド・ライン・ツール
ファイル送信コマンド
„
mqftsnd
(mqftsndc : クライアント接続版)
ファイル受信コマンド
„
mqftrcv
(mqftrcvc : クライアント接続版)
76
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
その他
77
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
トピック
バインディング方式
MQオブジェクト
コンポーネントの起動/停止
MQサービスの移行
セキュリティー
キュー・マネージャー・プロセスの変更
Expiry満了メッセージの自動削除
キュー・マネージャー起動進行状況
エラー・ログの拡張
その他
78
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
バインディング方式
バインディング方式とは
ローカル接続の際にキュー・マネージャー(MQエージェント)との接続に使用する接続方式
ISOLATEDバインディング方式が追加された
STANDARDバインディング
„
„
qm.iniのデフォルト・バインディングに設定されたバインディングを使用する
デフォルト・バインディングが設定されていない場合、SHAREDバインディングを使用する
SHAREDバインディング
„
„
„
アプリケーションとMQエージェントが別プロセスで実行し、一部のリソースをシェアする
共有メモリを使用してプロセス間通信を行う
V5.3のSTANDARDバインディングと同等
ISOLATEDバインディング New
„
„
!
アプリケーションとMQエージェントが別プロセスで実行し、リソースもシェアしない
ソケットを使用してプロセス間通信を行う
FASTPATHバインディング
„
„
アプリケーションとMQエージェントが同一プロセスで実行する
64ビット対応プラットフォームでは64ビット・アプリケーションのみ使用できる
デフォルト・バインディングの設定
qm.iniのConnectionスタンザ
„
DefaultBindType=SHARED | ISOLATED
79
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
バインディング方式(続き)
バインディング方式の設定
MQCONN接続の場合
„
„
STANDARDバインディングが使用される
qm.iniのデフォルト・バインディングで設定
MQCONNX接続の場合
„
コネクト・オプションで設定
・MQCNO_<binding_type>_BINDING
<binding_type>には以下のいずれかを入れる
STANDARD
SHARED
ISOLATED
FASTPATH
デフォルトはSTANDARD
Base Javaの場合
„
MQEnvironment.connOptionsで設定
・MQC.MQCNO_<binding_type>_BINDING
JMSの場合
„
„
MQConnectionFactory.setMQConnectionOptionsメソッドで設定
・JMSC.MQCNO_<binding_type>_BINDING
JMS管理ツールでMQConnectionFactoryオブジェクトのCONNOPTプロパティーに
<binding_type>を設定
80
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQオブジェクト
チャネル、リスナー、サービスがMQオブジェクトとして扱われるようになった
メディア・リカバリーの対象
OAMによるセキュリティー保護の対象
MQオブジェクトの定義ファイルは個々のオブジェクト毎に1つのファイルとして作成される
チャネル定義は/var/mqm/qmgrs/<qm_name>/channels以下に作成される
„
„
V5.3では、全てのチャネルが1つのファイル(AMQRFCDA.DAT)に保存されていた
V6に移行後、キュー・マネージャー起動時にチャネル定義を自動でマイグレーション
クライアント・チャネル定義は/var/mqm/qmgrs/<qm_name>/clntconn以下に作成される
„
クライアント・チャネル定義テーブルも/var/mqm/qmgrs/<qm_name>/@ipcc以下に作成される
リスナー定義は/var/mqm/qmgrs/<qm_name>/listener以下に作成される
サービス定義は/var/mqm/qmgrs/<qm_name>/services以下に作成される
注:Windowsでは/var/mqmをインストール時に指定したデータ・ディレクトリで読み替えてください。
デフォルトでは、C:¥Program Files¥IBM¥WebSphere MQです。
81
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQオブジェクト(続き)
リスナー・オブジェクト
キュー・マネージャーの起動/停止と同時に起動/停止ができる(後述)
MQSCコマンドで作成/削除/変更/起動/停止/稼動状況の確認ができる
„
„
DEFINE/DELETE/ALTER/DISPLAY/START/STOP LISTENER
DISPLAY LSSTATUS
runmqlsr/endmqlsrコマンドも今まで通り使用できる
サービス・オブジェクト
キュー・マネージャーの起動/停止と同時に起動/停止させたいプログラムを登録する
„
従来はWindows版のMQ Serviceでのみ提供されていた
MQSCコマンドで作成/削除/変更/起動/停止/稼動状況の確認ができる
„
„
DEFINE/DELETE/ALTER/DISPLAY/START/STOP SERVICE
DISPLAY SVSTATUS
2種類のタイプがある
„
„
サーバー
・起動できるのは1つのインスタンスのみ
・MQSCコマンドで稼動状況を確認できる
コマンド
・複数のインスタンスを起動できる
・MQSCコマンドで稼動状況の確認はできない
82
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQオブジェクト(続き)
リスナー・オブジェクトの定義
DEFINE LISTENER( listener-name ) TRPTYPE( TCP )
PORT( integer ) BACKLOG( integer ) IPADDR( string )
CONTROL( QMGR | MANUAL | STARTONLY )
PORT : リッスンするポート番号
BACKLOG : 一時点で接続要求を許可する数
IPADDR : リッスンするIPアドレス
CONTROL : QMGR キュー・マネージャーの起動/停止と同時に起動/停止
MANUAL 手動で起動/停止
STARTONLY キュー
サービス・オブジェクトの定義
DEFINE SERVICE( service-name ) SERVTYPE( SERVER | COMMAND )
STARTCMD( string ) STARTARG( string )
STOPCMD( string ) STOPARG( string )
STDOUT( string ) STDERR( string )
CONTROL( QMGR | MANUAL | STARTONLY )
SERVTYPE : サービスのタイプ
STARTCMD : 起動コマンド
STARTARG : 起動コマンドに渡すオプション
STOPCMD : 停止コマンド
STOPARG : 停止コマンドに渡すオプション
STDOUT : 標準出力を書き出すファイル名(フルパスで指定)
STDERR : 標準エラーを書き出すファイル名(フルパスで指定)
CONTROL : QMGR キュー・マネージャーの起動/停止と同時に起動/停止
MANUAL 手動で起動/停止
STARTONLY キュー・マネージャーの起動と同時に起動
83
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
<参考>サービス・オブジェクトで使用できる変数
サービス・オブジェクト作成時に変数の使用が可能
作成時に使用された変数は実行時に実際の値に置き換えられる
„
„
STARTCMD, STARTARG, STOPCMD, STOPARG, STDOUT, STDERR属性で使用可能
変数は “+” で囲む
使用できる変数
„
„
/var/mqm/service.env(Unix)、mq_inst¥service.env(Windows)に定義した変数
共通変数
共通変数
MQ_INSTALL_PATH
説明
MQがインストールされているディレクトリ
MQ_DATA_PATH
MQのデータ・ディレクトリ
QMNAME
キュー・マネージャー名
MQ_SERVICE_NAME
サービス名
MQ_SERVER_PID
起動されたサービスのプロセスID(STOPCMD, STOPARGでのみ有効)
トリガー・モニターのサービス作成例
DEFINE SERVICE(TRIGER.SERVICE) CONTROL(QMGR) SERVTYPE(SERVER) +
STARTCMD('+MQ_INSTALL_PATH+/bin/runqmtrm') +
STARTARG('-m +QMNAME+ -i ACCOUNTS.INITIATION.QUEUE') +
STOPCMD('+MQ_INSTALL_PATH+/bin/amqsstop') +
STOPARG('-m +QMNAME+ -p +MQ_SERVER_PID+')
84
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
コンポーネントの起動/停止
コンポーネント起動/停止の自動化
キュー・マネージャーの起動/停止と同時にコンポーネントの起動/停止が可能
„
チャネル・イニシエーター、コマンド・サーバー、リスナー、サービス
チャネル・イニシエーター、コマンド・サーバー
キュー・マネージャーのSCHINIT、SCMDSERV属性で起動/停止の設定をする
„
„
チャネル・イニシエーター : SCHINT( QMGR | MANUAL )
コマンド・サーバー : SCMDSERV( QMGR | MANUAL )
MQSCコマンドで起動、稼動状況確認ができる
„
„
START CHINIT (コマンド・サーバーはMQSCコマンドで起動できない)
DISPLAY QMSTATUS [CHINIT] [CMDSERV]
リスナー、サービス・オブジェクト
リスナー、サービス・オブジェクトのCONTROL属性で起動/停止の設定をする
„
CONTROL( MANUAL | QMGR | STARTONLY )
※パラメーターの説明
QMGR: キュー・マネージャーと同時に起動/停止
MANUAL: 手動で起動/停止
STARTONLY: キュー・マネージャーと同時に起動
85
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
MQサービスの移行(Windows)
MQサービスで作成したサービスは自動的に移行される
キュー・マネージャーに定義したサービスのみ移行対象
„
„
„
チャネル・イニシエーター・サービス、コマンド・サーバー・サービスはキュー・マネージャーに移行
リスナー・サービスはリスナー・オブジェクトに移行
チャネル・サービス、トリガー・モニター・サービス、カスタム・サービスはサービス・オブジェクトに移行
ROOTカスタム・サービスは特定のキュー・マネージャーに関連していないため移行されない
„
amqmdainコマンドで管理
amqmdainコマンドの機能追加
ROOTカスタム・サービスの管理
„
amqmdain svc ( list | view | start | end | alter | delete | define )
キュー・マネージャーの開始/停止コマンドの変更
„
amqmdain qmgr ( start | end )
キュー・マネージャー停止時にendmqmと同様のモードを選択可能
„
„
„
„
-c :
-w :
-i :
-p :
制御シャットダウン
待機シャットダウン
即時シャットダウン
プリエンプティブ・シャットダウン
86
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
セキュリティー
コマンド・サーバー経由でのアクセス権限の設定/参照が可能
従来はコマンドでしか設定/参照できなかった
セキュリティー管理のPCFコマンドが追加された
リモート・マシンのアクセス権限の管理ができるようになった
リモートからアクセス権限の設定/参照を禁止することも可能
„
コマンド・サーバーの起動時に -a オプションを指定する
追加されたPCFコマンド
PCFコマンド
説明
MQCMD_INQUIRE_AUTH_RECS
アクセス権のダンプ(dmpmqaut相当)
MQCMD_INQUIRE_ENTITY_AUTH
アクセス権の参照(dspmqaut相当)
MQCMD_SET_AUTH_REC
アクセス権の設定(setmqaut相当)
MQCMD_DELETE_AUTH_REC
アクセス権の削除(setmqaut -remove相当)
87
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
キュー・マネージャー・プロセスの変更
キュー・マネージャー・プロセスの一部が変更された
プロセス監視を行っている場合は、変更が必要
新規に追加されたプロセス
amqzmuc0 : 重要なプロセス・マネージャー
„
„
ロガー、チェックポイントなど
プロセスのダウンでキュー・マネージャーが停止する
注意
新規プロセスの情報はマニュアルに記述がないため
幕張でのテスト結果を基に記述しています。
amqzmur0 : 再開始可能なプロセス・マネージャー
„
„
エラー・ログ、統計処理など
プロセスがダウンした場合、自動的に再起動される
amqzmgr0 : 自動起動/停止マネージャー
„
„
チャネル・イニシエーター、コマンド・サーバー、リスナー、サービスの起動/停止など
プロセスがダウンした場合、自動的に再起動されないが、
キュー・マネージャーの稼動には影響しない
削除されたプロセス
amqhasmx : ロガー
amqharmx : ログ・フォーマッター
amqzllp0 : チェックポイント・プロセッサー
88
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
Expiry満了メッセージの自動削除
キュー・マネージャーがExpiry満了メッセージを定期的に自動削除する機能が追加
V5.3以前は、MQGETが発行されるまでExpiry満了メッセージは物理的に削除されな
かった
„
BROWSEを出すアプリケーションを作成するなどして削除していた
V6ではキュー・マネージャーが一定の間隔でExpiry満了メッセージを削除
„
„
„
メッセージ削除のインターバルは5分(幕張でのテスト結果)
インターバルの変更・設定はできない
従来のBROWSEを発行してExpiry満了メッセージを削除する方法も有効
キュー・マネージャー
MQPUT
Expiry=1000
Expiry 1000
(100秒)
Expiry 0
一定のタイミング
で自動削除
100秒
時間の経過
89
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
キュー・マネージャー起動進行状況
標準出力とエラー・ログにキュー・マネージャーの起動進行状況を表示
標準出力への表示
$ strmqm FURUA
WebSphere MQ キュー・マネージャー FURUA' を開始しています。
ログのやり直しフェーズ中に、キュー・マネージャー 'FURUA' で 5 ログ・レコードがアクセスされました。
キュー・マネージャー 'FURUA' のログのやり直しが完了しました。
キュー・マネージャー 'FURUA' のトランザクション・マネージャーの状態が回復されました。
WebSphere MQ キュー・マネージャー 'FURUA' が始動しました。
エラー・ログへの出力
„
AMQ7229、AMQ7230、AMQ7231、AMQ7232、AMQ7233がエラー・ログに出力される
AMQ7229: ログのやり直しフェーズ中に、キュー・マネージャー ‘FURUA’ で 5 ログ・レコードがアクセスされました。
AMQ7230: キュー・マネージャー ‘FURUA’ のログのやり直しが完了しました。
AMQ7231: リカバリー・フェーズ中に、キュー・マネージャー 'FURUA' で 0 ログ・レコードがアクセスされました。
AMQ7232: キュー・マネージャー ‘FURUA’ のトランザクション・マネージャーの状態が回復されました。
AMQ7233: キュー・マネージャー 'FURUA' の 0 個の未完了トランザクションのうち 0個が解決しました。
90
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
エラー・ログの拡張
エラー・ログの機能が拡張された
特定のエラー・メッセージの出力を抑止したり、出力しない設定ができるようになった
エラー・ログのファイル・サイズが指定できるようになった(最大2GB)
qm.iniのQMErrorLogスタンザで設定する
QMErrorLog:
ErrorLogSize=1048576
ExcludeMessage=9001,9002,9999
SuppressMessage=9528
SuppressInterval=30
エラー・ログのサイズ(バイト単位)
1048576 - 2147483648の間で指定
指定しない場合は、256KB
エラー・ログに書き込まないメッセージIDを指定
SuppressIntervalに指定した時間に1回しか
書き込まないメッセージを指定
Exclude、Suppressに指定できるメッセージID
7163 - ジョブがメッセージを開始しました(iSeriesのみ)
7234 - いくつかのメッセージが読み込まれました
9001 - チャネル・プログラムが正常に終了しました
9002 - チャネル・プログラムが開始されました
9202 - リモート・ホストは使用できません
9524 - リモート・キュー・マネージャーは使用できません
9528 - ユーザーがチャネルの停止を要求しました
9999 - チャネル・プログラムが異常終了しました
Suppress時間間隔を指定(秒単位)
1 - 86400の間で指定
指定しない場合は30秒
91
Copyright ISE Co,.Ltd
< 3章:UNIX/PC >
その他
MQトレース
トレースに出力されるメッセージのダンプ量を制限できるようになった
„
strmqtrc -d 0 | -1 | n (0:ダンプしない、-1:全てダンプ、n:先頭nバイトをダンプ)
AIXでMQトレース・コマンド(strmqtrc, endmqtrc, dspmqtrc)を提供
„
OSのシステム・トレースもこれまでと同様に利用可能
WindowsでMQトレース・ファイルの出力先が変更された
„
mq_inst¥errors → mq_inst¥trace
サポート・パックで提供されていたPub/Subブローカーが製品に統合
MQ V6で廃止された機能
DCEサポート
„
DCE出口、DCEネーム・サービス、DCEスレッド
UDPトランス・ポート
サービス・レベル照会コマンドの変更
mqverコマンドが廃止され、dspmqverコマンドになった
92
Copyright ISE Co,.Ltd
Fly UP