Comments
Description
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