English

実践習得 IBM MQの基本


メッセージ記述子(MQMD)(1)

  1. mqpgfとmqpcfの指定可能なオプション
    1. 1)mqpgf
    2. 2)mqpcf
  2. メッセージ記述子(MQMD)概要
    1. テスト用のキューマネージャーの作成と基本的なテストの実施
      1. Ex. 1.1 PUT/GETの実施およびメッセージのダンプ表示
  3. MQMDのフィールド
    1. StrucId
    2. Version
      1. Ex. 1.2 MQMDのバージョンを指定してGET
    3. Report
      1. 対向側キューマネージャーとの接続の作成
        Ex. 1.3 レポート・メッセージのリクエストと受信
    4. MsgType
メッセージ記述子(MQMD)(2)
    1. Expiry
      1. Ex. 2.1 持続時間経過後のメッセージ削除のタイミング確認
    2. Feedback
      1. Ex. 2.2 例外レポートでFeedbackに理由コードが設定されるケースの確認
    3. Encoding
    4. CodedCharSetId
    5. Format
      1. Ex. 2.3 チャネルでのデータ変換
        Ex. 2.4 MQRFH2を持つメッセージをMQGET時にデータ変換する。
    6. Priority
      1. Ex. 2.5 GET時の優先順位
    7. Persistence
メッセージ記述子(MQMD)(3)
    1. MsgId
    2. CorrelId
      1. Ex. 3.1 特定のメッセージをGETする。
    3. BackoutCount
      1. Ex. 3.2 メッセージのバックアウト
    4. ReplyToQ
    5. ReplyToQMgr
      1. Ex. 3.3 要求メッセージを送信後に対応する応答メッセージを受信する。
    6. UserIdentifier
    7. AccountingToken
    8. ApplIdentityData
      1. Ex. 3.4 識別コンテキストの設定
    9. PutApplType
    10. PutApplName
    11. PutDate
    12. PutTime
    13. ApplOriginData
      1. Ex. 3.5 起点コンテキストの設定
      2. Ex. 3.6 メッセージ間でのコンテキスト情報の引継ぎ
メッセージ記述子(MQMD V2)(1)
  1. MQMD V2の概要
  2. MQMD V2で追加されたフィールド
    1. GroupId
    2. MsgSeqNumber
    3. Offset
    4. MsgFlags
    5. OriginalLength
  3. メッセージのセグメント化
    1. キューマネージャーによるセグメント化
      1. Ex. 4.1 キューマネージャーにセグメント化を実行させる
    2. アプリケーションによるセグメント化
      1. Ex. 4.2 アプリケーションでのセグメント化の実行
    3. キューマネージャーによる論理メッセージの再組立て
      1. Ex. 4.3 キューマネージャーにセグメントを組立てさせる
    4. アプリケーションによる論理メッセージの再組立て
      1. Ex. 4.4 セグメントの論理順序での読み込み
  4. 論理メッセージのグループ化
    1. 論理メッセージのグループ化
      1. Ex. 4.5 グループ化された論理メッセージの生成
    2. 論理メッセージのグループ化と論理メッセージのセグメント化
      1. Ex. 4.6 グループ化とセグメント化を組み合わせる
    3. グループ・メッセージの読み込み
      1. Ex. 4.7 グループ・メッセージの論理順序での読み込み
メッセージ記述子(MQMD V2)(2)
  1. MQRFH2ヘッダーを持つメッセージのセグメント化
    1. セグメントのサイズについての注意点
      1. Ex. 5.1 RFHヘッダーを持つメッセージのセグメント化が失敗する例
    2. CodedCharSetId、Encoding、Formatを設定する場合の注意点
      1. Ex. 5.2 RFHヘッダーを持つメッセージをキューマネージャーにセグメント化させる
      2. Ex. 5.3 先頭の論理メッセージにRFHヘッダーを持つ場合のグループ化とセグメント化
  2. 特定のグループの特定の論理メッセージ、特定のセグメントを指定して読み込む方法
    1. Ex. 5.4 特定のグループ、論理メッセージ、セグメントを指定して読み込む
  3. MQクラスターとグループ・メッセージおよびセグメント化
    1. 同一グループの論理メッセージの宛先の固定
      1. MQクラスター構成の作成
      2. Ex. 5.5 クラスター・キューへ書き込み時、グループ単位で宛先固定させる。
    1. クラスター・キューとセグメント化
      1. Ex. 5.6 クラスター・キューでのセグメント化
    1. 送信側キューマネージャーでのセグメント化
      1. Ex. 5.7 送信側キューマネージャーでのセグメント化と宛先の固定
接続モード(1)
  1. 接続モードの概要
  2. 接続モードの種類
    1. STANDARD BINDING(MQCNO_STANDARD_BINDING)
    2. FASTPATH BINDING(MQCNO_FASTPATH_BINDING)
    3. SHARED BINDING(MQCNO_SHARED_BINDING)
    4. ISOLATED BINDING(MQCNO_ISOLATED_BINDING)
    5. LOCAL BINDING(MQCNO_LOCAL_BINDING)
    6. CLIENT BINDING(MQCNO_CLIENT_BINDING)
  3. 接続モードの確認方法
    1. Ex. 6.1 接続モードの確認方法
  4. 接続モードの変更
    1. Ex. 6.2 qm.iniで接続モードを変更する。
    2. Ex. 6.3 MQCNO_*オプションを指定して接続モードを変更する。
    3. Ex. 6.4 MQ_CONNECT_TYPE環境変数による接続モードの変更
    4. Ex. 6.5 MQCNO_CLIENT_BINDINGでクライアント接続を試行させる。
    5. Ex. 6.6 FASTPATHがダウングレードされる例
    6. Ex. 6.7 MQクライアント環境でのサーバー・アプリケーションの挙動
  5. 共用 (スレッド独立) 接続
    1. Ex. 6.8 シングル・スレッドから複数のキューマネージャーへ接続
    2. Ex. 6.9 接続ハンドルをスレッド間で共用する。
接続モード(2)クライアント接続(1)
  1. データ変換がサポートされないマシン間のチャネル接続
    1. Ex. 7.1 デフォルトのデータ変換有効化時の挙動
  2. クライアント-サーバー間でデータ変換がサポートされない場合の他の回避策
    1. Ex. 7.2 クライアント側で環境変数MQCCSIDにキューマネージャーのCCSIDを設定する。
  3. メッセージ・チャネル・エージェント・ユーザーID(MCAUSER)とアクセス権の設定について
    1. Ex. 7.3 クライアント接続ユーザーのアクセス権の設定
  4. デフォルトのチャネル認証レコード
    1. Ex. 7.4 チャネル名を指定して接続する。
  5. デフォルトの接続認証
    1. Ex. 7.5 MQCSPにユーザー/パスワードを指定して接続する。
  6. クライアント接続の一般的な方法
  7. MQCONNX()にチャネル情報を指定する。
  8. MQSERVER環境変数の設定方法
  9. クライアント・チャネル定義テーブルの使用方法
接続モード(3)クライアント接続(2)
  1. キューマネージャー・グループ
  2. キューマネージャー・グループの検証環境の作成
    1. Ex. 8.1 キューマネージャー・グループ名をそのまま指定(1)
    2. Ex. 8.2 キューマネージャー・グループ名をそのまま指定(2)
    3. Ex. 8.3 キューマネージャー・グループ名をそのまま指定(3)
    4. Ex. 8.4 先頭に"*"を付加したキューマネージャー・グループを指定
    5. Ex. 8.5 "*"一文字のみを指定
  3. クライアントの自動再接続
    1. クライアントの自動再接続の有効化
    2. イベント・ハンドラーの登録
    3. Ex. 8.6 キューマネージャー・グループとクライアントの自動再接続
    4. Ex. 8.7 クライアントの自動再接続のタイムアウト時の挙動
接続モード(4)クライアント接続(3)
  1. AFFINITYの設定による動作の相違の概要
  2. AFFINITYが"NONE"の場合の動作
    1. Ex. 9.1.1 AFFINITYが"NONE"の場合のワークロード・バランシング
    2. Ex. 9.1.2 AFFINITYが"NONE"の場合のワークロード・バランシング(その他のテスト方法1)
    3. Ex. 9.1.3 AFFINITYが"NONE"の場合のワークロード・バランシング(その他のテスト方法2)
  3. AFFINITYが"PREFERRED"の場合の動作
    1. Ex. 9.2.1 AFFINITYが"PREFERRED"の場合のワークロード・バランシング(1)
    2. Ex. 9.2.2 AFFINITYが"PREFERRED"の場合のワークロード・バランシング(2)
  4. 接続リストの生成のされ方について
SSL/TLSの構成(1)
  1. Opensslを使用したプライベートCAの作成
    1. CA構築前の準備
    2. 高エントロピーの為の考慮
    3. CAが使用するファイル/ディレクトリの作成
    4. Openssl構成ファイルの準備
    5. CA構成の定義
    6. ルート証明書を生成する為の情報を構成ファイルに設定
    7. 自己署名ルート証明書の作成
  2. 各サーバーでのSSL/TLSのセットアップ(CSRの作成まで)(GSKit)
    1. SSL/TLSセットアップで使用するGSKitコマンド
    2. 各キュー・マネージャーで鍵リポジトリーを準備(Windows, Linux)
    3. CERTLABLについて
    4. 証明書の署名リクエスト(CSR)を作成(Windows, Linux)
  3. 各サーバーでのSSL/TLSのセットアップ(CSRの作成まで)(Openssl)
    1. 証明書の署名リクエスト(CSR)を作成(HPE NonStop)
SSL/TLSの構成(2)
  1. 作成した証明書要求(CSR)より認証局(CA)にて証明書の発行
  2. 証明書の検証
    1. 証明書・鍵ファイルの形式について
    2. 秘密鍵、公開鍵の対称性チェック
    3. CA署名証明書とCA証明書のsubjectおよびissuerチェック
    4. 中間CA証明書またはルート証明書とサーバ証明書のベリファイ
    5. サーバー証明書の内容確認
  3. CA(root)証明書を鍵リポジトリーに追加する(GSKit)
  4. 個人証明書を鍵リポジトリーに受信する(GSKit)
  5. SSL/TLS関連ファイルの作成と配置(Openssl)
    1. CAで署名したサーバー証明書と鍵ファイルを連結
    2. SSL/TLS通信で使用する全てのCA証明書を結合
    3. パス・フレーズ格納ファイルの作成
    4. 作成したファイルのSSLKeyリポジトリへの配置
  6. TLSによるキューマネージャー間の接続の確認
    1. TLS接続定義の作成
    2. TLS接続結果の確認
  7. 非推奨CipherSpecの有効化
    1. 推奨されない TLS CipherSpec の有効化
    2. 推奨されない SSL CipherSpec の有効化
    3. 推奨されない TLSv1 CipherSpec の有効化
    4. SSL V3 CipherSpecを使用したチャネル接続
SSL/TLSの構成(3)クライアント接続
  1. クライアントでのSSL/TLSのセットアップ(CSRの作成まで)(GSKit)
    1. SSL/TLSセットアップで使用するGSKitコマンド
    2. 各クライアント・マシンで鍵リポジトリーを準備(Windows, Linux)
    3. クライアント接続でのCERTLABLの使用について
    4. 証明書の署名リクエスト(CSR)を作成(Windows, Linux)
  2. 作成した証明書要求(CSR)より認証局(CA)にて証明書の発行
  3. 証明書の検証
    1. 秘密鍵、公開鍵の対称性チェック
    2. CA署名証明書とCA証明書のsubjectおよびissuerチェック
    3. 中間CA証明書またはルート証明書とサーバ証明書のベリファイ
    4. サーバー証明書の内容確認
  4. CA(root)証明書をクライアントの鍵リポジトリーに追加する(GSKit)
  5. 個人証明書をクライアントの鍵リポジトリーに受信する(GSKit)
  6. TLSによるクライアント接続の確認(CCDT)
    1. サーバー側TLS接続定義の作成
    2. クライアント側TLS接続定義の作成
    3. Ex. 12.1.1 SSL/TLSを使用したクライアント接続の実施(CCDT)
  7. TLSによるクライアント接続の確認(MQCD)
    1. Ex. 12.2.1 SSL/TLSを使用したクライアント接続の実施(MQCD)
  8. SSLPEERを使用した接続相手の確認
    1. Ex. 12.3.1 サーバー接続チャネル(SVRCONN)にSSLPEERを設定して接続できる相手を制限する。
    2. Ex. 12.3.2 クライアント接続チャネル(MQCD)にSSLPEERを設定して接続できる相手を制限する。
SSL/TLSの構成(4)楕円曲線
  1. Type1のCipherSpecを使用する為のCSRの作成(GSKit)
  2. Type1のCipherSpecを使用する為のCSRの作成(Openssl)
    1. Opensslで利用可能な楕円曲線の確認
    2. 楕円曲線証明書用のプライベート・キーの作成
  3. プライベート・キーにパス・フレーズを設定
  4. 作成した秘密鍵(プライベート・キー)から証明書要求(CSR)を作成
  5. 作成した証明書要求(CSR)より認証局(CA)にて証明書の発行
  6. 証明書の検証
    1. 秘密鍵、公開鍵の対称性チェック
    2. CA署名証明書とCA証明書のsubjectおよびissuerチェック
    3. 中間CA証明書またはルート証明書とサーバ証明書のベリファイ
    4. サーバー証明書の内容確認
  7. CA(root)証明書をクライアントの鍵リポジトリーに追加する(GSKit)
  8. 個人証明書をクライアントの鍵リポジトリーに受信する(GSKit)
  9. SSL/TLS関連ファイルの作成と配置(Openssl)
    1. CAで署名したサーバー証明書と鍵ファイルを連結
    2. SSL/TLS通信で使用する全てのCA証明書を結合
    3. パス・フレーズ格納ファイルの作成
    4. 作成したファイルのSSLKeyリポジトリへの配置
  10. TLSによるクライアント接続の確認(MQCD)
    1. サーバー側TLS接続定義の作成
    2. Ex. 13.1.1 SSL/TLSを使用したクライアント接続の実施(MQCD)
SSL/TLSの構成(5)OCSP
  1. OCSP構成の為の前提条件と制約事項
  2. opensslを使用したOCSPリスポンダーの起動と確認
    1. OCSPリスポンダーの起動
    2. OCSPリスポンダーへの接続の確認
    3. CAにて証明書を失効(リボーク)させる
    4. OCSPによる証明書検証の確認
  3. MQサーバー間接続でのOCSPの使用
    1. サーバー間接続でのOCSPリスポンダー参照の構成
    2. OCSPリスポンダーに接続できない場合の挙動
    3. 証明書が検証できない場合(Unknown)の動作の変更
    4. OCSPリスポンダーへの照会結果が失効(Revoke)だった場合の挙動
SSL/TLSの構成(6)OCSPクライアント接続
  1. クライアント接続でのOCSP構成の為の前提条件と制約事項
  2. opensslを使用したOCSPリスポンダーの起動と確認
  3. クライアント接続でのOCSPの使用
    1. クライアント接続でのOCSPリスポンダー参照の指定
    2. Ex. 15.1.1 OCSPでの証明書の検証を指定してキューマネージャーと接続
    3. OCSPリスポンダーに接続できない場合の挙動(クライアント接続)
    4. 証明書が検証できない場合(Unknown)の動作の変更(クライアント接続)
    5. OCSPリスポンダーへの照会結果が失効(Revoke)だった場合の挙動(クライアント接続)
パフォーマンス測定(1)トポロジー
  1. パフォーマンス・テストを実施する上での注意事項
    1. ダウンロード・モジュール
    2. テストに使用するデータ
    3. スレッドの使用
  2. パフォーマンス・テストの構成
  3. ワークロード・トポロジー
    1. RR-1 ローカル接続
    2. RR-2 クライアント接続
    3. RR-5 サーバー間接続
    4. PL-1 MQクラスター
  4. パフォーマンス・テストの為のファイル構成と配置
  5. ソース/レスポンス・キューマネージャーの作成
    1. パラメーターファイルの編集
    2. キューマネージャー作成スクリプトの実行
    3. チャネルの開始
パフォーマンス測定(2)個別テスト
  1. 各個別テスト・スクリプトに共通の事項
    1. スクリプト・パラメーター
    2. 環境変数
    3. 個別テストスクリプトの実行方法
    4. 出力ログ
  2. テスト前の確認
  3. RR-1 ローカル接続テストの実施
    1. [ 1. RR-1 接続毎にプロセスを起動 Windows(RR_1_s.ps1)]
    2. [ 2. RR-1 接続毎にプロセスを起動 Linux, HPE NonStop(RR_1_s.sh)]
    3. [ 3. RR-1 接続毎にスレッドを生成 Windows(RR_1_s_t.ps1)]
    4. [ 4. RR-1 接続毎にスレッドを生成 Linux, HPE NonStop(RR_1_s_t.sh)]
  4. RR-2 クライアント接続テストの実施
    1. [ 1. RR-2 Windows-Windows、クライアント/サーバー共に接続毎にプロセスを起動 ]
    2. [ 2. RR-2 Windows-HPE NonStop、接続毎にスレッド(クライアント)、接続毎にプロセス(サーバー)を起動 ]
    3. [ 3. RR-2 Linux-HPE NonStop、クライアント/サーバー共に接続毎にスレッドを起動 ]
  5. RR-5 サーバー間接続テストの実施
    1. [ 1. RR-5 Windows-Windows、ソース/レスポンス・サーバー共に接続毎にプロセスを起動 ]
    2. [ 2. RR-5 HPE NonStop-Linux、ソース/レスポンス・サーバー共に接続毎にプロセスを起動 ]
  6. PL-1 MQクラスター・テストの実施
    1. [ 1. PL-1 HPE Windows-Windows、ソース/レスポンス・サーバー共に接続毎にプロセスを起動 ]
    2. [ 2. PL-1 HPE NonStop-Linux、ソース/レスポンス・サーバー共に接続毎にプロセスを起動 ]
パフォーマンス測定(3)連続実行
  1. テスト・リストの形式
  2. テスト・リストの実行方法
    1. 出力ログ
    2. 集計結果
  3. テスト前の確認
  4. 単一のワークロードのみを含むテスト・リストの実行
    1. RR-1のみを含むテスト・リストの実行 Windows
    2. RR-1のみを含むテスト・リストの実行 Linux, HPE NonStop
  5. 全てのワークロードを含むテスト・リストの実行
    1. 1. 全てのキューが空であることを確認
    2. 2. 全てのチャネルを開始
    3. 3. クライアント接続チャネル以外の全てのチャネルが開始されていることを確認
    4. 4. ソース・サーバー/レスポンス・サーバーのそれぞれで、テスト・リストを起動する。
    5. 5. クライアント・マシンで、テスト・リストを起動する。
パフォーマンス測定(4)スケジュール実行
  1. CRONの使用(Linux、HPE NonStop)
    1. CRON実行登録のサンプル
    2. CRON実行登録方法
  2. Task Schedulerの使用(Windows)
    1. Task Schedulerの登録のサンプル
  3. NetBatchの使用(HPE NonStop)
    1. [ NetBatch実行構成 ]
    2. [ NetBatch構成手順 ]
  4. 複数のプラットフォーム間で連携したスケジュール実行

このページの先頭へ