513
B1WN-9421-06Z0(00) 200908Windows/Solaris Interstage Application Server MessageQueueDirector説明書

MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

B1WN-9421-06Z0(00)2009年08月

Windows/Solaris

Interstage Application Server

MessageQueueDirector説明書

Page 2: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

まえがき

本書の目的

本書は、MessageQueueDirector(以降、MQDと略します)が提供するメッセージ交換機能の説明書です。

MQDは、アプリケーション間の非同期通信を実現するソフトウェアです。

本書の目的は、MQDの機能および使用方法を解説し、インターネットやイントラネットを介して接続された、業務システムの構築方法

に関する情報を提供します。

読者は、本書からMQDについての以下の情報を得ることができます。

・ 導入の事前評価のための基礎知識を得る。

・ 特長を知る。

・ 機能を知る。

・ 設計・構築のための知識を得る。

・ 運用のための知識を得る。

本書の読者

本書は、MQDを使用した業務を検討、構築および運用される方を対象に記述されています。

前提

本書を読むにあたって、以下の知識が必要です。

・ 使用するOSに関する基本的な知識

・ COBOL言語またはC言語の基本的な知識

本書の構成

本書は、以下の4部構成になっています。

第1部 基本機能編

MQDの基本機能について説明しています。

第1章 概要

MQDの機能概要と適用効果、利用形態や関連するソフトウェアなど、MQDの全般的なことについて説明しています。

第2章 機能

MQDが提供する機能について説明しています。

第3章 環境作成

MQDで必要となるシステム環境の作成方法について説明しています。

第4章 運用

MQDを運用するための操作方法について説明しています。

第5章 保守

MQDを適用した業務の変更や拡張方法について説明しています。

第6章 アプリケーションの作成

MQDを使用するアプリケーションの作成方法について説明しています。

第7章 コマンド

MQDのコマンド文法について説明しています。

- i -

Page 3: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第8章 プログラムインタフェース

アプリケーションのプログラムインタフェースについて説明しています。

第2部 拡張機能編

各種の付加機能(サービス)について説明しています。

第9章 同報配信サービス

同報配信サービスについて説明しています。

第10章 ACM連携サービス

富士通のACM機能(ACMプロトコル)を利用したシステム間の連携サービスについて説明しています。

第11章 イベントチャネル連携サービス

Interstageの非同期メッセージ基盤を利用したシステム間の連携サービスについて、サービス環境の作成と運用について説明してい

ます。

第12章 SMTP連携サービス

インターネットの電子メール機能を利用したシステム間の連携サービスについて説明しています。

第3部 クラスタシステム編

クラスタシステムについて説明しています。

第13章 クラスタサービス機能(Windowsサーバ SafeCLUSTER編)

Windowsサーバにおけるクラスタシステム環境(SafeCLUSTER)でMQDを使用する方法について説明しています。

第14章 クラスタサービス機能(Solarisサーバ SafeCLUSTER編)

Solarisサーバにおけるクラスタシステム環境(SafeCLUSTER)でMQDを使用する方法について説明しています。

第15章 クラスタサービス機能(MSCS編)

Windowsサーバにおけるクラスタシステム環境(MSCS)でMQDを使用する方法について説明しています。

付録A 定義記述規約

MQDの各種定義の記述規約について説明しています。

付録B プログラム記述例

MQDを使用するアプリケーションプログラムの記述例を記載しています。

付録C MQDの名称規約

MQDの各種定義項目の名称規約を一覧しています。

付録D 各種制限数の一覧

MQDの各種制限数を一覧しています。

付録E SQL記述ファイルの内容

MQDで使用するSQL記述ファイルの内容を記載しています。

付録F 証明書/鍵管理ツール

証明書/鍵管理環境の作成および設定方法について説明しています。

付録G 他の非同期通信機能

- ii -

Page 4: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Interstageで提供する非同期通信機能の利用方法(棲み分け)を説明しています。

付録H セキュリティ侵害の脅威と対策

MQDに関するセキュリティ侵害の脅威と対策について説明しています。

用語集

MQDの専門用語を説明しています。和文の用語は“アイウエオ”順に、英文の用語は“ABC”順に並べてあります。

なお、関連他製品の専門用語については、各製品のマニュアルを参照してください。

本書の位置づけ

MQDのマニュアルは、説明書(本書)とメッセージ集の2冊から構成されています。

本書は、MQDについての情報提供を目的としています。そのため、本書の利用にあたっては、必要に応じてInterstage Application Server以外の以下のマニュアルをお読みください。

・ “MessageQueueDirector MQゲートウェイ 説明書”

・ “Symfoware Server 概説書”

・ “Symfoware Server スタートガイド サーバ編”

・ “Symfoware Server RDB管理者ガイド”

・ “Symfoware Server RDBユーザーズガイド データベース定義編”

・ “Symfoware Server RDBユーザーズガイド 応用プログラム開発編”

・ “Symfoware Server SQLリファレンスガイド”

・ “Microsoft® Cluster Server 管理者ガイド”

・ “SafeCLUSTER/Standard 導入運用ガイド”

・ “Web-Based Admin View 操作手引書”

・ “IDCM 使用手引書”

・ “Systemwalker/PkiMGR 10.0 説明書 CA編- Solaris(TM) Operating Environment -”

・ “Systemwalker/PkiMGR 10.0 説明書 RA編- Solaris(TM) Operating Environment -”

・ “Systemwalker/PkiMGR 10.0 ガイド- Solaris(TM) Operating Environment -”

・ “SafeCLUSTER 説明書”

・ “SafeCLUSTER 導入運用手引書”

・ “PRIMECLUSTER 導入運用手引書”

グローバルサーバのマニュアル

- iii -

Page 5: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ “OS IV VTAM-G解説書”

・ “OS IV VTAM-G導入手引書”

・ “OS IV VTAM-G運用手引書”

・ “OS IV VTAM-G TISP説明書”

・ “OS IV IDCM使用手引書”

・ “OS IV IDCM/TISP説明書”

・ “OS IV AIM解説書”

・ “OS IV AIM ACM使用手引書”

・ “OS IV AIMプログラミング手引書”

・ “OS IV AIMプログラムインタフェース説明書”

・ “OS IV/MSP AIM操作手引書”

・ “OS IV/XSP AIM操作手引書”

・ “OS IV INTERSTAGE解説書 (AIM連携)”

・ “OS IV INTERSTAGEシステム開発手引書 (AIM連携)”

・ “OS IV INTERSTAGE運用手引書 (AIM連携)”

・ “OS IV INTERSTAGEリファレンスガイド (AIM連携)”

・ “OS IV INTERSTAGEメッセージ説明書”

本書の注意事項

・ 本書で記述されている機能は、Interstage Application Server Enterprise Editionでだけ使用できます。他のエディションでは利用で

きませんのでご注意ください。

・ 本書では、グローバルサーバについてはグローバルサーバの用語を使用しています。

・ 本書で記述されている例は、読者の理解を深めることが目的であり、読者の理解に寄与する範囲だけに限定していることがありま

す。したがって、本書の例が完全にそのまま実運用で使用できるわけではありませんのでご注意ください。

・ “IDCM使用手引書”および“IDCMヘルプ”を“IDCM使用手引書”と呼びます。

輸出許可

本ドキュメントを非居住者に提供する場合には、経済産業大臣の許可が必要となる場合がありますので、ご注意ください。

著作権

Copyright 2009 FUJITSU LIMITED

2009年8月 第6版

2008年6月 第5版

2008年4月 第4版

2007年9月 第3版

2007年8月 第2版

2007年4月 初版

- iv -

Page 6: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

目 次

第1部 基本機能編.....................................................................................................................................................................1

第1章 概要................................................................................................................................................................................21.1 MessageQueueDirectorとは.................................................................................................................................................................21.2 利用形態.............................................................................................................................................................................................3

1.2.1 システムの形態.............................................................................................................................................................................41.2.2 メッセージ交換の形態..................................................................................................................................................................5

1.3 システム構成.......................................................................................................................................................................................6

第2章 機能................................................................................................................................................................................92.1 メッセージ............................................................................................................................................................................................9

2.1.1 メッセージヘッダ...........................................................................................................................................................................92.1.2 メッセージ本体...........................................................................................................................................................................102.1.3 ユニット........................................................................................................................................................................................10

2.2 メッセージ交換..................................................................................................................................................................................112.2.1 アプリケーション処理の概要......................................................................................................................................................112.2.2 メッセージの送信........................................................................................................................................................................122.2.3 メッセージの受信........................................................................................................................................................................122.2.4 メッセージの参照........................................................................................................................................................................132.2.5 カーソルの移動..........................................................................................................................................................................132.2.6 メッセージの削除........................................................................................................................................................................132.2.7 メッセージの一括削除................................................................................................................................................................132.2.8 複数メッセージキューからのメッセージ受信.............................................................................................................................142.2.9 複数メッセージキューからのメッセージ参照.............................................................................................................................152.2.10 複数メッセージキューのカーソルの移動.................................................................................................................................15

2.3 MQDのトランザクション機能を利用したメッセージ交換..................................................................................................................152.3.1 トランザクションの開始...............................................................................................................................................................162.3.2 トランザクションの終了...............................................................................................................................................................162.3.3 トランザクションの取消し............................................................................................................................................................162.3.4 トランザクション機能を利用する際の注意事項.........................................................................................................................17

2.4 メッセージキュー管理........................................................................................................................................................................172.4.1 メッセージキューとは..................................................................................................................................................................17

2.4.1.1 メッセージ保証レベル.........................................................................................................................................................182.4.1.2 プライオリティ.......................................................................................................................................................................182.4.1.3 メッセージキューの属性......................................................................................................................................................182.4.1.4 メッセージキューの状態変移..............................................................................................................................................19

2.4.2 メッセージキューの作成.............................................................................................................................................................202.4.3 メッセージキューの削除.............................................................................................................................................................202.4.4 メッセージキュー名の一覧通知.................................................................................................................................................202.4.5 メッセージキューの属性通知.....................................................................................................................................................202.4.6 メッセージキューの属性設定.....................................................................................................................................................21

2.5 メッセージ格納域の使用状況の監視...............................................................................................................................................222.5.1 警告値、安全値の設定..............................................................................................................................................................222.5.2 メッセージ格納域の状態通知....................................................................................................................................................222.5.3 メッセージ格納域の状態表示....................................................................................................................................................22

2.6 運用イベント通知...............................................................................................................................................................................222.6.1 運用イベント................................................................................................................................................................................232.6.2 運用イベント情報........................................................................................................................................................................232.6.3 運用イベント拡張情報................................................................................................................................................................232.6.4 運用イベントの受信....................................................................................................................................................................232.6.5 運用アプリケーションの概要......................................................................................................................................................24

2.7 RDBのトランザクション連携機能を利用したメッセージ交換...........................................................................................................242.7.1 MQDおよび業務用データベースへの接続と切断...................................................................................................................252.7.2 トランザクションの操作...............................................................................................................................................................252.7.3 Symfoware/RDBトランザクション連携機能を利用する際の適用条件.....................................................................................26

- v -

Page 7: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.8 プロセスログ.......................................................................................................................................................................................262.8.1 プロセスログの出力先................................................................................................................................................................272.8.2 プロセスログの出力形式............................................................................................................................................................272.8.3 プロセスログの世代交代............................................................................................................................................................28

第3章 環境作成.......................................................................................................................................................................293.1 環境作成の手順................................................................................................................................................................................293.2 環境作成の説明................................................................................................................................................................................30

3.2.1 環境変数およびシステムの設定................................................................................................................................................313.2.2 ファイル資源の準備...................................................................................................................................................................32

3.2.2.1 ファイルの種類....................................................................................................................................................................323.2.2.2 ファイル容量の見積り..........................................................................................................................................................353.2.2.3 パーティションの獲得と初期化...........................................................................................................................................37

3.2.3 データベース管理システムの設定............................................................................................................................................383.2.4 データベース管理システムの起動............................................................................................................................................383.2.5 MQD利用者グループの作成....................................................................................................................................................383.2.6 MQD環境定義の作成...............................................................................................................................................................393.2.7 MQDのシステム環境の作成......................................................................................................................................................393.2.8 データベース管理システムの停止............................................................................................................................................40

3.3 環境定義の記述................................................................................................................................................................................403.3.1 環境定義の記述(ファイルを使用する場合).............................................................................................................................40

3.3.1.1 記述形式(ファイルを使用する場合).................................................................................................................................403.3.1.2 記述内容の説明(ファイルを使用する場合)......................................................................................................................403.3.1.3 記述例(ファイルを使用する場合).....................................................................................................................................44

3.3.2 環境定義の記述(データベースを使用する場合)....................................................................................................................453.3.2.1 記述形式(データベースを使用する場合)........................................................................................................................453.3.2.2 記述内容の説明(データベースを使用する場合).............................................................................................................463.3.2.3 記述例(データベースを使用する場合)............................................................................................................................48

3.3.3 環境定義の記述の差異.............................................................................................................................................................49

第4章 運用..............................................................................................................................................................................514.1 運用操作の手順................................................................................................................................................................................514.2 運用操作の説明................................................................................................................................................................................52

4.2.1 データベース管理システムの起動............................................................................................................................................534.2.2 MQDの起動...............................................................................................................................................................................534.2.3 Interstageの起動.........................................................................................................................................................................534.2.4 メッセージキューの作成.............................................................................................................................................................534.2.5 メッセージキュー情報の表示.....................................................................................................................................................534.2.6 メッセージキューのアクセス状態の変更....................................................................................................................................544.2.7 メッセージキューの削除.............................................................................................................................................................544.2.8 Interstageの停止.........................................................................................................................................................................544.2.9 MQDの停止...............................................................................................................................................................................544.2.10 データベース管理システムの停止..........................................................................................................................................54

第5章 保守..............................................................................................................................................................................555.1 メッセージキューの追加/削除...........................................................................................................................................................55

5.1.1 メッセージキューの追加.............................................................................................................................................................555.1.2 メッセージキューの削除.............................................................................................................................................................55

5.2 ファイルの容量変更..........................................................................................................................................................................565.2.1 メッセージ格納域の容量変更....................................................................................................................................................56

5.3 メッセージ格納ファイルとしてデータベースを使用する場合の保守...............................................................................................575.3.1 データベースの構成..................................................................................................................................................................575.3.2 SQL記述ファイル.......................................................................................................................................................................595.3.3 メッセージ格納ファイルの追加..................................................................................................................................................62

5.3.3.1 データベーススペースの作成.............................................................................................................................................635.3.3.2 メッセージ制御テーブルの利用規定の設定......................................................................................................................645.3.3.3 メッセージ制御テーブルの容量拡張.................................................................................................................................645.3.3.4 メッセージ制御テーブルの利用規定の解除......................................................................................................................65

- vi -

Page 8: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

5.3.4 MQDのシステム環境の削除(データベーススペースを追加した場合)....................................................................................665.3.5 メッセージ格納ファイル満杯時のメッセージキューの追加.......................................................................................................67

5.3.5.1 メッセージ格納テーブルのデータ退避..............................................................................................................................685.3.5.2 メッセージ格納テーブルの格納域の変更..........................................................................................................................685.3.5.3 メッセージ格納テーブルのデータ復元..............................................................................................................................69

5.3.6 メッセージキューの自動拡張.....................................................................................................................................................69

第6章 アプリケーションの作成..................................................................................................................................................726.1 アプリケーション環境.........................................................................................................................................................................72

6.1.1 プログラム言語...........................................................................................................................................................................726.1.2 プログラムインタフェース............................................................................................................................................................726.1.3 メッセージ操作の前後処理........................................................................................................................................................736.1.4 プログラムの翻訳/結合...............................................................................................................................................................736.1.5 トランザクション連携のための事前作業....................................................................................................................................766.1.6 メッセージ格納ファイルとしてデータベースを使用する場合のトランザクション連携...............................................................78

6.2 送信側アプリケーションの作成.........................................................................................................................................................806.3 受信側アプリケーションの作成.........................................................................................................................................................81

6.3.1 メッセージ受信を使用する.........................................................................................................................................................816.3.2 メッセージ参照を使用する.........................................................................................................................................................816.3.3 メッセージ参照とメッセージ削除を使用する.............................................................................................................................826.3.4 複数メッセージキューからのメッセージ受信を使用する...........................................................................................................826.3.5 複数メッセージキューからのメッセージ参照を使用する...........................................................................................................83

6.4 MQDのトランザクション機能を利用したアプリケーションの作成....................................................................................................846.5 Interstageアプリケーションの作成.....................................................................................................................................................84

6.5.1 メッセージ送信を使用する.........................................................................................................................................................846.5.2 メッセージ受信を使用する.........................................................................................................................................................856.5.3 複数メッセージキューからのメッセージ参照を使用する...........................................................................................................87

6.6 メッセージ格納ファイルとしてデータベースを使用する場合のアプリケーションの作成................................................................886.6.1 RDBシステム..............................................................................................................................................................................886.6.2 業務用データベースのコネクション切替え...............................................................................................................................886.6.3 業務用データベースのトランザクション.....................................................................................................................................89

6.7 運用イベント通知機能を利用したアプリケーションの作成..............................................................................................................906.7.1 プログラムインタフェース............................................................................................................................................................906.7.2 運用イベント処理の前後処理....................................................................................................................................................906.7.3 プログラムの翻訳/結合...............................................................................................................................................................906.7.4 運用イベント受信アプリケーションの作成.................................................................................................................................90

6.8 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの作成..............................................................................916.9 アプリケーション作成時の注意点.....................................................................................................................................................92

6.9.1 シグナルを使用するアプリケーションの注意事項....................................................................................................................926.9.1.1 MQDに接続した際のシグナル操作...................................................................................................................................926.9.1.2 MQD関数実行中のシグナル操作.....................................................................................................................................936.9.1.3 MQDから切断した際のシグナル操作................................................................................................................................936.9.1.4 MQDを使用するアプリケーションをSIGTERMで停止する方法.......................................................................................94

6.9.2 Java言語で作成したアプリケーションを利用する場合の注意事項..........................................................................................946.9.3 マルチスレッドのアプリケーションからMQDを利用する場合の注意事項...............................................................................946.9.4 メッセージを受信(参照)するアプリケーションに関する注意事項............................................................................................95

第7章 コマンド..........................................................................................................................................................................987.1 コマンドの種類..................................................................................................................................................................................987.2 コマンドの形式..................................................................................................................................................................................987.3 コマンドの説明..................................................................................................................................................................................99

7.3.1 mqdsetup (環境を作成する).......................................................................................................................................................997.3.2 mqdunsetup (環境を削除する).................................................................................................................................................1007.3.3 mqdstr (MQDを起動する)........................................................................................................................................................1017.3.4 mqdstp (MQDを停止する).......................................................................................................................................................1027.3.5 mqdcrtq (メッセージキューを作成する)...................................................................................................................................1037.3.6 mqddltq (メッセージキューを削除する)...................................................................................................................................1047.3.7 mqdchgq (メッセージキューのアクセス状態を変更する)........................................................................................................105

- vii -

Page 9: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

7.3.8 mqdprtq (メッセージキュー情報を表示する)...........................................................................................................................1067.3.9 mqdprgmsg (メッセージを一括削除する)................................................................................................................................1097.3.10 mqdtermapl (アプリケーションを強制的に停止する)............................................................................................................1107.3.11 mqddump (保守情報を採取する)..........................................................................................................................................111

第8章 プログラムインタフェース..............................................................................................................................................1148.1 インタフェースの種類......................................................................................................................................................................1148.2 COBOL言語インタフェース............................................................................................................................................................115

8.2.1 各インタフェースの説明...........................................................................................................................................................1158.2.2 MQDCONNECT (MQDに接続する)......................................................................................................................................1158.2.3 MQDDISCONNECT (MQDから切断する).............................................................................................................................1168.2.4 MQDCREATEQ (メッセージキューを作成する).....................................................................................................................1178.2.5 MQDDELETEQ (メッセージキューを削除する).....................................................................................................................1188.2.6 MQDCONNECTQ (メッセージキューに接続する).................................................................................................................1198.2.7 MQDDISCONNECTQ (メッセージキューから切断する)........................................................................................................1208.2.8 MQDGETQLIST (メッセージキュー名の一覧を通知する)....................................................................................................1218.2.9 MQDPUTMSG (メッセージを送信する)..................................................................................................................................1228.2.10 MQDGETMSG (メッセージを受信する)...............................................................................................................................1238.2.11 MQDPEEKMSG (メッセージを参照する).............................................................................................................................1258.2.12 MQDSEEKMSG (カーソルを移動する)................................................................................................................................1268.2.13 MQDDELETEMSG (メッセージを削除する)........................................................................................................................1278.2.14 MQDPURGEMSG (メッセージを一括削除する)..................................................................................................................1288.2.15 MQDGETQATTR (メッセージキュー属性を通知する)........................................................................................................1298.2.16 MQDSETQATTR (メッセージキュー属性を設定する).........................................................................................................1308.2.17 MQDBEGIN (トランザクションを開始する)...........................................................................................................................1318.2.18 MQDCOMMIT (トランザクションを終了する).......................................................................................................................1328.2.19 MQDROLLBACK (トランザクションを取り消す)...................................................................................................................1338.2.20 MQDCONNECTQEX (複数のメッセージキューに接続する)..............................................................................................1348.2.21 MQDDISCONNECTQEX (複数のメッセージキューから切断する)....................................................................................1358.2.22 MQDGETMSGEX (複数のメッセージキューからメッセージを受信する)............................................................................1378.2.23 MQDPEEKMSGEX (複数のメッセージキューからメッセージを参照する)..........................................................................1398.2.24 MQDSEEKMSGEX (複数のメッセージキューのカーソルを移動する)...............................................................................1418.2.25 MQDOPENEVENT (運用イベントをオープンする).............................................................................................................1428.2.26 MQDCLOSEEVENT (運用イベントをクローズする)............................................................................................................1438.2.27 MQDGETEVENT (運用イベントを受信する).......................................................................................................................1438.2.28 MQDCONNECTRDB (Symfoware/RDBトランザクション連携機能を使用してMQDに接続する).....................................1458.2.29 パラメタの詳細説明................................................................................................................................................................1468.2.30 メッセージキュー属性情報.....................................................................................................................................................1468.2.31 メッセージキュー名一覧.........................................................................................................................................................1488.2.32 メッセージヘッダ.....................................................................................................................................................................1488.2.33 メッセージ本体.......................................................................................................................................................................1518.2.34 受信対象運用イベントID.......................................................................................................................................................1528.2.35 運用イベント情報....................................................................................................................................................................152

8.3 C言語インタフェース.......................................................................................................................................................................1558.3.1 各インタフェースの説明...........................................................................................................................................................1558.3.2 mqd_connect (MQDに接続する).............................................................................................................................................1558.3.3 mqd_disconnect (MQDから切断する).....................................................................................................................................1578.3.4 mqd_createq (メッセージキューを作成する)............................................................................................................................1588.3.5 mqd_deleteq (メッセージキューを削除する)............................................................................................................................1598.3.6 mqd_connectq (メッセージキューに接続する).........................................................................................................................1608.3.7 mqd_disconnectq (メッセージキューから切断する).................................................................................................................1618.3.8 mqd_getqlist (メッセージキュー名の一覧を通知する)............................................................................................................1628.3.9 mqd_putmsg (メッセージを送信する)......................................................................................................................................1628.3.10 mqd_getmsg (メッセージを受信する).....................................................................................................................................1648.3.11 mqd_peekmsg (メッセージを参照する)..................................................................................................................................1658.3.12 mqd_seekmsg (カーソルを移動する).....................................................................................................................................1678.3.13 mqd_deletemsg (メッセージを削除する)................................................................................................................................168

- viii -

Page 10: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

8.3.14 mqd_purgemsg (メッセージを一括削除する)........................................................................................................................1708.3.15 mqd_getqattr (メッセージキュー属性を通知する).................................................................................................................1718.3.16 mqd_setqattr (メッセージキュー属性を設定する)..................................................................................................................1718.3.17 mqd_begin (トランザクションを開始する)...............................................................................................................................1728.3.18 mqd_commit (トランザクションを終了する)............................................................................................................................1738.3.19 mqd_rollback (トランザクションを取り消す)...........................................................................................................................1748.3.20 mqd_connectqex (複数のメッセージキューに接続する).......................................................................................................1758.3.21 mqd_disconnectqex (複数のメッセージキューから切断する)...............................................................................................1768.3.22 mqd_getmsgex (複数のメッセージキューからメッセージを受信する)..................................................................................1788.3.23 mqd_peekmsgex (複数のメッセージキューからメッセージを参照する)................................................................................1808.3.24 mqd_seekmsgex (複数のメッセージキューのカーソルを移動する)......................................................................................1828.3.25 mqd_openevent (運用イベントをオープンする).....................................................................................................................1838.3.26 mqd_closeevent (運用イベントをクローズする)......................................................................................................................1848.3.27 mqd_getevent (運用イベントを受信する)...............................................................................................................................1858.3.28 mqd_connectrdb (Symfoware/RDBトランザクション連携機能を使用してMQDに接続する)...............................................1868.3.29 パラメタの詳細説明................................................................................................................................................................1878.3.30 MQD_QueueAttribute構造体................................................................................................................................................1878.3.31 MQD_QueueName構造体.....................................................................................................................................................1898.3.32 MQD_MessageHeader構造体................................................................................................................................................1898.3.33 MQD_MessageBody構造体..................................................................................................................................................1928.3.34 MQD_EventInfo構造体.........................................................................................................................................................193

8.4 復帰情報の説明..............................................................................................................................................................................195

第2部 拡張機能編.................................................................................................................................................................202

第9章 同報配信サービス........................................................................................................................................................2039.1 概要.................................................................................................................................................................................................2039.2 機能.................................................................................................................................................................................................204

9.2.1 同報配信..................................................................................................................................................................................2049.2.2 メッセージ保証.........................................................................................................................................................................2069.2.3 異常時のメッセージの扱い......................................................................................................................................................206

9.3 環境作成.........................................................................................................................................................................................2079.3.1 環境作成の手順.......................................................................................................................................................................2079.3.2 環境作成の説明.......................................................................................................................................................................207

9.3.2.1 MQDの起動......................................................................................................................................................................2089.3.2.2 サービス環境の作成.........................................................................................................................................................2089.3.2.3 メッセージキューの作成....................................................................................................................................................2099.3.2.4 サービス定義の作成.........................................................................................................................................................209

9.3.3 環境定義の記述.......................................................................................................................................................................2109.3.3.1 サービス環境定義の記述.................................................................................................................................................2109.3.3.2 サービス定義の記述.........................................................................................................................................................210

9.4 運用.................................................................................................................................................................................................2129.4.1 運用操作の手順.......................................................................................................................................................................2129.4.2 運用操作の説明.......................................................................................................................................................................212

9.4.2.1 MQDの起動......................................................................................................................................................................2139.4.2.2 Interstageの起動................................................................................................................................................................2139.4.2.3 同報配信サービスの起動.................................................................................................................................................2139.4.2.4 サービス定義/状態の表示................................................................................................................................................2149.4.2.5 同報配信サービスの停止.................................................................................................................................................2149.4.2.6 Interstageの停止................................................................................................................................................................2149.4.2.7 MQDの停止......................................................................................................................................................................214

9.5 コマンド............................................................................................................................................................................................2149.5.1 mqdmcassetup (サービス環境を作成する)..............................................................................................................................2159.5.2 mqdmcasunsetup (サービス環境を削除する)..........................................................................................................................2169.5.3 mqdmcasdef (サービス定義を登録/削除する)........................................................................................................................2169.5.4 mqdstrsvc (サービスを起動する).............................................................................................................................................2179.5.5 mqdstpsvc (サービスを停止する).............................................................................................................................................2189.5.6 mqdmcasprt (サービス定義/状態を表示する).........................................................................................................................218

- ix -

Page 11: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第10章 ACM連携サービス.....................................................................................................................................................22210.1 概要...............................................................................................................................................................................................22210.2 機能...............................................................................................................................................................................................224

10.2.1 メッセージ交換.......................................................................................................................................................................22410.2.1.1 DPCF通信パスの確立....................................................................................................................................................22410.2.1.2 送信キューと受信キューの結合.....................................................................................................................................22510.2.1.3 メッセージ送信................................................................................................................................................................22610.2.1.4 メッセージ受信................................................................................................................................................................22710.2.1.5 メッセージヘッダ..............................................................................................................................................................227

10.2.2 プライオリティ..........................................................................................................................................................................22910.2.3 メッセージ保証.......................................................................................................................................................................23110.2.4 文字コード変換......................................................................................................................................................................23110.2.5 パッキング転送機能...............................................................................................................................................................232

10.3 環境作成.......................................................................................................................................................................................23310.3.1 環境作成の手順.....................................................................................................................................................................23310.3.2 環境作成の説明.....................................................................................................................................................................234

10.3.2.1 IDCM環境の作成...........................................................................................................................................................23410.3.2.2 MQDの起動....................................................................................................................................................................23410.3.2.3 サービス環境の作成.......................................................................................................................................................23510.3.2.4 メッセージキューの作成..................................................................................................................................................23510.3.2.5 サービス定義の作成.......................................................................................................................................................235

10.3.3 環境定義の記述.....................................................................................................................................................................23610.3.3.1 サービス定義の記述.......................................................................................................................................................236

10.4 運用...............................................................................................................................................................................................24210.4.1 運用操作の手順.....................................................................................................................................................................24210.4.2 運用操作の説明.....................................................................................................................................................................244

10.4.2.1 IDCMの起動...................................................................................................................................................................24410.4.2.2 MQDの起動....................................................................................................................................................................24410.4.2.3 DPCF通信パスの確立....................................................................................................................................................24510.4.2.4 Interstageの起動..............................................................................................................................................................24510.4.2.5 ACM連携サービスの起動..............................................................................................................................................24510.4.2.6 サービス定義/状態の表示..............................................................................................................................................24510.4.2.7 メッセージキューの作成..................................................................................................................................................24610.4.2.8 メッセージキュー情報の表示..........................................................................................................................................24610.4.2.9 メッセージキューのアクセス状態の変更.........................................................................................................................24610.4.2.10 メッセージキューの削除................................................................................................................................................24710.4.2.11 ACM連携サービスの停止............................................................................................................................................24710.4.2.12 Interstageの停止............................................................................................................................................................24710.4.2.13 DPCF通信パスの解放..................................................................................................................................................24710.4.2.14 MQDの停止..................................................................................................................................................................24710.4.2.15 IDCMの停止.................................................................................................................................................................248

10.5 コマンド..........................................................................................................................................................................................24810.5.1 mqdacomsetup(サービス環境を作成する)............................................................................................................................24810.5.2 mqdacomunsetup(サービス環境を削除する)........................................................................................................................24910.5.3 mqdstrsvc(サービスを起動する)............................................................................................................................................24910.5.4 mqdstpsvc(サービスを停止する)............................................................................................................................................25010.5.5 mqdacomdef(サービス定義を登録/削除する).......................................................................................................................25110.5.6 mqdacomprtd(サービス定義を表示する)..............................................................................................................................25210.5.7 mqdacomprtc(サービスの通信状態を表示する)...................................................................................................................253

第11章 イベントチャネル連携サービス....................................................................................................................................25611.1 概要...............................................................................................................................................................................................25611.2 機能...............................................................................................................................................................................................257

11.2.1 サーバ間の非同期メッセージ通信........................................................................................................................................25811.2.1.1 メッセージ通信可能な非同期メッセージ基盤の組み合わせ........................................................................................25811.2.1.2 メッセージ通信可能な送信キューと受信キューの組み合わせ.....................................................................................26111.2.1.3 イベントチャネル連携サービスの用語と通信相手の識別.............................................................................................267

- x -

Page 12: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.2.1.4 メッセージ送信................................................................................................................................................................26811.2.1.5 メッセージ受信................................................................................................................................................................26911.2.1.6 相手サーバとの通信方法...............................................................................................................................................270

11.2.2 メッセージ保証.......................................................................................................................................................................27211.2.3 パッキング転送機能...............................................................................................................................................................27211.2.4 プライオリティ機能..................................................................................................................................................................27411.2.5 文字コード変換機能..............................................................................................................................................................27811.2.6 MQDのメッセージヘッダ通知機能........................................................................................................................................28211.2.7 MQDのユニットメッセージ通知機能......................................................................................................................................28511.2.8 運用中の通信定義追加機能.................................................................................................................................................28611.2.9 サービスの通信制御..............................................................................................................................................................287

11.3 環境作成.......................................................................................................................................................................................28811.3.1 環境作成の手順.....................................................................................................................................................................28811.3.2 環境作成の説明.....................................................................................................................................................................289

11.3.2.1 MQDの環境作成............................................................................................................................................................29011.3.2.2 CORBAサービスの環境作成.........................................................................................................................................29111.3.2.3 非同期メッセージ基盤の環境作成.................................................................................................................................29211.3.2.4 送信キューと受信キューの作成.....................................................................................................................................29311.3.2.5 送信異常メッセージの退避用メッセージキューの作成.................................................................................................29611.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録........................................................................................29611.3.2.7 URLリストファイルの作成と格納.....................................................................................................................................29611.3.2.8 IORファイルの格納.........................................................................................................................................................29711.3.2.9 MQDの起動....................................................................................................................................................................29711.3.2.10 サービス環境の作成.....................................................................................................................................................29711.3.2.11 サービス定義の作成.....................................................................................................................................................297

11.3.3 環境定義の記述.....................................................................................................................................................................29811.3.3.1 サービス定義の記述.......................................................................................................................................................29811.3.3.2 サービス定義の記述例...................................................................................................................................................30811.3.3.3 URLリストファイルの記述................................................................................................................................................312

11.4 運用...............................................................................................................................................................................................31311.4.1 運用操作の手順.....................................................................................................................................................................31311.4.2 運用操作の説明.....................................................................................................................................................................314

11.4.2.1 Interstageの起動..............................................................................................................................................................31511.4.2.2 イベントチャネルの起動..................................................................................................................................................31511.4.2.3 受信アプリケーションの起動...........................................................................................................................................31511.4.2.4 MQDの起動....................................................................................................................................................................31511.4.2.5 イベントチャネル連携サービスの起動............................................................................................................................31611.4.2.6 送信アプリケーションの起動...........................................................................................................................................31611.4.2.7 サービス定義/状態の表示..............................................................................................................................................31611.4.2.8 送信アプリケーションの停止...........................................................................................................................................31611.4.2.9 イベントチャネル連携サービスの停止............................................................................................................................31711.4.2.10 MQDの停止..................................................................................................................................................................31711.4.2.11 受信アプリケーションの停止.........................................................................................................................................31711.4.2.12 イベントチャネルの停止................................................................................................................................................31711.4.2.13 Interstageの停止............................................................................................................................................................317

11.4.3 送信異常となったメッセージの対処......................................................................................................................................31811.4.3.1 一時的な異常によりメッセージの送信が失敗した場合の対処.....................................................................................31811.4.3.2 メッセージの内容の問題によりメッセージの送信が失敗した場合の対処....................................................................318

11.5 保守...............................................................................................................................................................................................31911.5.1 通信定義の追加.....................................................................................................................................................................320

11.5.1.1 受信定義ファイルの作成・定義登録..............................................................................................................................32011.5.1.2 受信定義登録の反映(動的追加)..................................................................................................................................32111.5.1.3 送信定義ファイルの作成・定義登録..............................................................................................................................32111.5.1.4 送信定義登録の反映(動的追加)..................................................................................................................................321

11.5.2 通信定義の削除.....................................................................................................................................................................32211.5.2.1 送信アプリケーションの停止...........................................................................................................................................32211.5.2.2 チャネルコネクションの初期化........................................................................................................................................322

- xi -

Page 13: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.5.2.3 受信定義ファイルの作成・定義削除..............................................................................................................................32311.5.2.4 受信定義削除の反映......................................................................................................................................................32311.5.2.5 送信定義ファイルの作成・定義削除..............................................................................................................................32311.5.2.6 送信定義削除の反映......................................................................................................................................................32311.5.2.7 送信アプリケーションの起動...........................................................................................................................................324

11.5.3 通信定義の変更.....................................................................................................................................................................32411.5.4 キューの再作成......................................................................................................................................................................32411.5.5 キュー属性の変更..................................................................................................................................................................32511.5.6 受信サーバの移動.................................................................................................................................................................325

11.5.6.1 送信アプリケーションの停止...........................................................................................................................................32611.5.6.2 チャネルコネクションの初期化........................................................................................................................................32611.5.6.3 イベントチャネル連携サービスの停止............................................................................................................................32611.5.6.4 イベントチャネル連携サービスのCORBAサービスからの削除と環境削除..................................................................32611.5.6.5 新しい受信サーバの準備...............................................................................................................................................32611.5.6.6 URLリストファイルの変更................................................................................................................................................32711.5.6.7 イベントチャネル連携サービスの起動............................................................................................................................32711.5.6.8 通信の再開......................................................................................................................................................................327

11.5.7 受信サーバのIPアドレス変更................................................................................................................................................32711.6 アプリケーションの作成方法.........................................................................................................................................................32811.7 コマンド..........................................................................................................................................................................................331

11.7.1 mqdnsgwsetup(サービス環境を作成する).............................................................................................................................33211.7.2 mqdnsgwunsetup(サービス環境を削除する).........................................................................................................................33211.7.3 mqdstrsvc(サービスを起動する)............................................................................................................................................33311.7.4 mqdstpsvc(サービスを停止する)............................................................................................................................................33411.7.5 mqdnsgwdef(サービス定義を登録/削除する).......................................................................................................................33411.7.6 mqdnsgwprt(サービスの定義/状態を表示する)....................................................................................................................33511.7.7 mqdnsgwcomm(サービスの通信を制御する).......................................................................................................................33811.7.8 mqdnsgwinit_ns(イベントチャネル連携サービスをCORBAサービスに登録する)...............................................................34011.7.9 mqdnsgwinit_ior(イベントチャネル連携サービスをCORBAサービスに登録する)..............................................................34111.7.10 mqdnsgwrlsserver(イベントチャネル連携サービスをCORBAサービスから削除する).......................................................342

第12章 SMTP連携サービス...................................................................................................................................................34512.1 概要...............................................................................................................................................................................................34512.2 機能...............................................................................................................................................................................................346

12.2.1 メッセージ交換.......................................................................................................................................................................34712.2.1.1 メッセージキューとメールアドレスの対応関係................................................................................................................34712.2.1.2 メッセージ送信................................................................................................................................................................34912.2.1.3 メッセージ受信................................................................................................................................................................350

12.2.2 送信異常時のメッセージの扱い............................................................................................................................................35112.2.3 暗号化 (S/MIME変換)...........................................................................................................................................................352

12.2.3.1 盗聴防止(機密性保証).................................................................................................................................................35212.2.3.2 改ざん検出(完全性保証)..............................................................................................................................................35312.2.3.3 暗号化方式.....................................................................................................................................................................354

12.3 環境作成.......................................................................................................................................................................................35512.3.1 環境作成の手順.....................................................................................................................................................................35512.3.2 環境作成の説明.....................................................................................................................................................................356

12.3.2.1 sendmail環境の設定.......................................................................................................................................................35612.3.2.2 暗号化環境の設定..........................................................................................................................................................35812.3.2.3 MQDの起動....................................................................................................................................................................36012.3.2.4 サービス環境の作成.......................................................................................................................................................36012.3.2.5 メッセージキューの作成..................................................................................................................................................36112.3.2.6 サービス定義の作成.......................................................................................................................................................361

12.3.3 環境定義の記述.....................................................................................................................................................................36212.3.3.1 サービス環境定義の記述...............................................................................................................................................36212.3.3.2 サービス定義の記述.......................................................................................................................................................365

12.4 運用...............................................................................................................................................................................................36712.4.1 運用操作の手順.....................................................................................................................................................................367

- xii -

Page 14: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

12.4.2 運用操作の説明.....................................................................................................................................................................36812.4.2.1 MQDの起動....................................................................................................................................................................36912.4.2.2 Interstageの起動..............................................................................................................................................................36912.4.2.3 SMTP連携サービスの起動.............................................................................................................................................36912.4.2.4 サービス定義/状態の表示..............................................................................................................................................36912.4.2.5 メッセージキュー情報の表示..........................................................................................................................................36912.4.2.6 メッセージキューのアクセス状態の変更.........................................................................................................................37012.4.2.7 SMTP連携サービスの停止.............................................................................................................................................37012.4.2.8 Interstageの停止..............................................................................................................................................................37012.4.2.9 MQDの停止....................................................................................................................................................................370

12.5 コマンド..........................................................................................................................................................................................37012.5.1 mqdscomsetup (サービス環境を作成する)............................................................................................................................37112.5.2 mqdscomunsetup (サービス環境を削除する)........................................................................................................................37112.5.3 mqdscomchg (サービス環境を変更する)..............................................................................................................................37212.5.4 mqdstrsvc (サービスを起動する)...........................................................................................................................................37312.5.5 mqdstpsvc (サービスを停止する)...........................................................................................................................................37312.5.6 mqdscomdef (サービス定義を登録/反映/削除する).............................................................................................................37412.5.7 mqdscomprt (サービス定義/状態を表示する).......................................................................................................................37512.5.8 mqdscomcrt (.forwardファイルの作成/設定を行う)...............................................................................................................377

第3部 クラスタシステム編.......................................................................................................................................................379

第13章 クラスタサービス機能(Windowsサーバ SafeCLUSTER編)........................................................................................38013.1 クラスタサービスの概要.................................................................................................................................................................380

13.1.1 機能........................................................................................................................................................................................38013.1.2 利用形態とシステム構成........................................................................................................................................................381

13.2 環境設定.......................................................................................................................................................................................38213.2.1 環境設定前に行うこと............................................................................................................................................................382

13.2.1.1 サービスの構成を決定する.............................................................................................................................................38213.2.1.2 共用ディスク装置を設定する..........................................................................................................................................38213.2.1.3 引継ぎネットワークを設定する........................................................................................................................................383

13.2.2 MQDの基本機能の環境を作成する.....................................................................................................................................38313.2.2.1 MQD環境定義を作成する..............................................................................................................................................38413.2.2.2 サービスを起動する........................................................................................................................................................38513.2.2.3 運用ノードにMQD環境を作成する................................................................................................................................38513.2.2.4 待機ノードにMQD環境を作成する................................................................................................................................385

13.2.3 MQDの拡張機能の環境を作成する.....................................................................................................................................38513.2.3.1 ACM連携サービスの環境を作成する...........................................................................................................................38513.2.3.2 同報配信サービスの環境を作成する.............................................................................................................................39113.2.3.3 イベントチャネル連携サービスの環境を作成する.........................................................................................................392

13.2.4 クラスタシステムの環境を作成する........................................................................................................................................39413.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する.................................................................................................39413.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する.................................................................................................39513.2.4.3 MQDのリソースを登録する.............................................................................................................................................39713.2.4.4 MQDクラスタサービスを設定する...................................................................................................................................397

13.2.5 動作を確認する......................................................................................................................................................................39813.2.5.1 起動を確認する...............................................................................................................................................................39813.2.5.2 切替えを確認する...........................................................................................................................................................39813.2.5.3 運用が自動継続できることを確認する...........................................................................................................................399

13.3 運用...............................................................................................................................................................................................39913.3.1 サービス起動..........................................................................................................................................................................40013.3.2 復旧作業................................................................................................................................................................................40013.3.3 サービスを組込み可能に変更...............................................................................................................................................40013.3.4 組込み....................................................................................................................................................................................40113.3.5 切戻し.....................................................................................................................................................................................40113.3.6 サービスの停止......................................................................................................................................................................401

13.4 保守...............................................................................................................................................................................................40113.4.1 クラスタシステムの環境を削除する........................................................................................................................................401

- xiii -

Page 15: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.4.1.1 サービス登録の削除.......................................................................................................................................................40113.4.1.2 状態遷移プロシジャファイルのリソース削除..................................................................................................................40113.4.1.3 MQDの拡張機能の環境を削除する..............................................................................................................................40113.4.1.4 MQDの基本機能の環境を削除する..............................................................................................................................402

13.4.2 状態遷移プロシジャを変更する.............................................................................................................................................40213.4.2.1 状態遷移プロシジャファイルの取出し............................................................................................................................40213.4.2.2 状態遷移プロシジャファイルの修正...............................................................................................................................40213.4.2.3 状態遷移プロシジャの登録............................................................................................................................................402

第14章 クラスタサービス機能(Solarisサーバ SafeCLUSTER編)............................................................................................40314.1 クラスタサービスの概要.................................................................................................................................................................403

14.1.1 機能........................................................................................................................................................................................40314.1.2 利用形態とシステム構成........................................................................................................................................................404

14.2 環境設定.......................................................................................................................................................................................40514.2.1 環境設定前に行うこと............................................................................................................................................................405

14.2.1.1 サービスの構成を決定する.............................................................................................................................................40514.2.1.2 共用ディスク装置を設定する..........................................................................................................................................40514.2.1.3 引継ぎネットワークを設定する........................................................................................................................................406

14.2.2 MQDの基本機能の環境を作成する.....................................................................................................................................40614.2.2.1 MQD環境定義を作成する..............................................................................................................................................40714.2.2.2 サービスを起動する........................................................................................................................................................40814.2.2.3 運用ノードにMQD環境を作成する................................................................................................................................40814.2.2.4 待機ノードにMQD環境を作成する................................................................................................................................408

14.2.3 MQDの拡張機能の環境を作成する.....................................................................................................................................40814.2.3.1 ACM連携サービスの環境を作成する...........................................................................................................................40814.2.3.2 同報配信サービスの環境を作成する.............................................................................................................................41114.2.3.3 イベントチャネル連携サービスの環境を作成する.........................................................................................................412

14.2.4 クラスタシステムの環境を作成する........................................................................................................................................41414.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する.................................................................................................41414.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する.................................................................................................41614.2.4.3 MQDのリソースを登録する.............................................................................................................................................41814.2.4.4 MQDクラスタサービスを設定する...................................................................................................................................418

14.2.5 動作を確認する......................................................................................................................................................................41914.2.5.1 起動を確認する...............................................................................................................................................................41914.2.5.2 切替えを確認する...........................................................................................................................................................41914.2.5.3 運用が自動継続できることを確認する...........................................................................................................................420

14.3 運用...............................................................................................................................................................................................42014.3.1 サービス起動..........................................................................................................................................................................42114.3.2 復旧作業................................................................................................................................................................................42114.3.3 サービスを組込み可能に変更...............................................................................................................................................42114.3.4 組込み....................................................................................................................................................................................42214.3.5 切戻し.....................................................................................................................................................................................42214.3.6 サービスの停止......................................................................................................................................................................422

14.4 保守...............................................................................................................................................................................................42214.4.1 クラスタシステムの環境を削除する........................................................................................................................................422

14.4.1.1 サービス登録の削除.......................................................................................................................................................42214.4.1.2 状態遷移プロシジャファイルのリソース削除..................................................................................................................42214.4.1.3 状態遷移プロシジャファイルの削除...............................................................................................................................42314.4.1.4 MQDの拡張機能の環境を削除する..............................................................................................................................42314.4.1.5 MQDの基本機能の環境を削除する..............................................................................................................................423

14.4.2 状態遷移プロシジャを変更する.............................................................................................................................................42314.4.2.1 状態遷移プロシジャファイルの取出し............................................................................................................................42314.4.2.2 状態遷移プロシジャファイルの修正...............................................................................................................................42314.4.2.3 状態遷移プロシジャを格納する......................................................................................................................................424

第15章 クラスタサービス機能(MSCS編).................................................................................................................................42515.1 クラスタサービスの概要.................................................................................................................................................................425

15.1.1 機能........................................................................................................................................................................................425

- xiv -

Page 16: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

15.1.2 利用形態とシステム構成........................................................................................................................................................42615.2 環境設定.......................................................................................................................................................................................426

15.2.1 環境設定前に行うこと............................................................................................................................................................42715.2.1.1 リソースグループを決定する...........................................................................................................................................42715.2.1.2 共有記憶装置を割り当てる.............................................................................................................................................42715.2.1.3 IPアドレスを取得する......................................................................................................................................................428

15.2.2 MQDの基本機能の環境を作成する.....................................................................................................................................42815.2.2.1 MQD環境定義を作成する..............................................................................................................................................42915.2.2.2 MQD用のディスクリソースをオンラインにする...............................................................................................................43015.2.2.3 一つ目のノードにMQD環境を作成する........................................................................................................................43015.2.2.4 二つ目のノードにMQD環境を作成する........................................................................................................................430

15.2.3 MQDの拡張機能の環境を作成する.....................................................................................................................................43015.2.3.1 ACM連携サービスの環境を作成する...........................................................................................................................43015.2.3.2 同報配信サービスの環境を作成する.............................................................................................................................43315.2.3.3 イベントチャネル連携サービスの環境を作成する.........................................................................................................434

15.2.4 クラスタシステムの環境を作成する........................................................................................................................................43615.2.4.1 リソースグループのプロパティを設定する......................................................................................................................43615.2.4.2 リソースを登録する..........................................................................................................................................................43615.2.4.3 リソースのプロパティを設定する.....................................................................................................................................438

15.2.5 動作を確認する......................................................................................................................................................................43915.2.5.1 起動を確認する...............................................................................................................................................................43915.2.5.2 フェイルオーバを確認する..............................................................................................................................................43915.2.5.3 運用が自動継続できることを確認する...........................................................................................................................439

15.3 環境削除.......................................................................................................................................................................................43915.3.1 MQD用のディスクリソースを確認する...................................................................................................................................44015.3.2 MQDのリソースをオフラインにする.......................................................................................................................................44015.3.3 MQDのリソースを削除する....................................................................................................................................................44015.3.4 一つ目のノードのMQD環境を削除する...............................................................................................................................44015.3.5 二つ目のノードのMQD環境を削除する...............................................................................................................................441

第16章 クラスタサービス機能(Solarisサーバ PRIMECLUSTER編)........................................................................................44216.1 クラスタサービスの概要.................................................................................................................................................................442

16.1.1 機能........................................................................................................................................................................................44216.1.2 利用形態とシステム構成........................................................................................................................................................443

16.2 環境設定.......................................................................................................................................................................................44416.2.1 環境設定前に行うこと............................................................................................................................................................444

16.2.1.1 サービスの構成を決定する.............................................................................................................................................44416.2.1.2 共用ディスク装置を設定する..........................................................................................................................................44416.2.1.3 引継ぎネットワークを設定する........................................................................................................................................445

16.2.2 MQDの基本機能の環境を作成する.....................................................................................................................................44516.2.2.1 MQD環境定義を作成する..............................................................................................................................................44616.2.2.2 サービスを起動する........................................................................................................................................................44716.2.2.3 運用ノードにMQD環境を作成する................................................................................................................................44716.2.2.4 待機ノードにMQD環境を作成する................................................................................................................................447

16.2.3 MQDの拡張機能の環境を作成する.....................................................................................................................................44716.2.3.1 ACM連携サービスの環境を作成する...........................................................................................................................44716.2.3.2 同報配信サービスの環境を作成する.............................................................................................................................45016.2.3.3 イベントチャネル連携サービスの環境を作成する.........................................................................................................451

16.2.4 クラスタシステムの環境を作成する........................................................................................................................................45316.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する.................................................................................................45316.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する.................................................................................................45516.2.4.3 MQDのリソースを登録する.............................................................................................................................................45716.2.4.4 MQDクラスタサービスを設定する...................................................................................................................................457

16.2.5 動作を確認する......................................................................................................................................................................45816.2.5.1 起動を確認する...............................................................................................................................................................45816.2.5.2 切替えを確認する...........................................................................................................................................................45816.2.5.3 運用が自動継続できることを確認する...........................................................................................................................458

- xv -

Page 17: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16.3 運用...............................................................................................................................................................................................45916.3.1 クラスタアプリケーションの起動.............................................................................................................................................45916.3.2 復旧作業................................................................................................................................................................................46016.3.3 切り替え..................................................................................................................................................................................46016.3.4 クラスタアプリケーションの停止.............................................................................................................................................460

16.4 保守...............................................................................................................................................................................................46016.4.1 クラスタシステムの環境を削除する........................................................................................................................................460

16.4.1.1 サービス登録の削除.......................................................................................................................................................46016.4.1.2 状態遷移プロシジャファイルのリソース削除..................................................................................................................46016.4.1.3 状態遷移プロシジャファイルの削除...............................................................................................................................46116.4.1.4 MQDの拡張機能の環境を削除する..............................................................................................................................46116.4.1.5 MQDの基本機能の環境を削除する..............................................................................................................................461

16.4.2 状態遷移プロシジャを変更する.............................................................................................................................................46116.4.2.1 状態遷移プロシジャファイルの取出し............................................................................................................................46116.4.2.2 状態遷移プロシジャファイルの修正...............................................................................................................................46116.4.2.3 状態遷移プロシジャを格納する......................................................................................................................................462

付録A 定義記述規約.............................................................................................................................................................463

付録B プログラム記述例........................................................................................................................................................465B.1 メッセージ監視プログラムの記述例 (COBOL言語の場合)..........................................................................................................465B.2 メッセージ監視プログラムの記述例 (C言語の場合).....................................................................................................................468

付録C MQDの名称規約........................................................................................................................................................472

付録D 各種制限数の一覧......................................................................................................................................................473

付録E SQL記述ファイルの内容..............................................................................................................................................474

付録F 証明書/鍵管理ツール..................................................................................................................................................480F.1 証明書/鍵管理環境の作成............................................................................................................................................................480

F.1.1 環境作成の概要......................................................................................................................................................................480F.1.2 秘密鍵管理環境の作成と設定................................................................................................................................................481F.1.3 証明書/CRL管理環境の作成と設定.......................................................................................................................................482F.1.4 鍵ペア、証明書取得申請書の作成........................................................................................................................................483F.1.5 証明書/CRLの取得..................................................................................................................................................................483F.1.6 証明書/CRLの登録..................................................................................................................................................................483F.1.7 証明書/CRLの管理..................................................................................................................................................................483

付録G 他の非同期通信機能..................................................................................................................................................484

付録H セキュリティ侵害の脅威と対策.....................................................................................................................................486H.1 セキュリティ侵害の脅威..................................................................................................................................................................486

H.1.1 MQDを使用するアプリケーションの動作モデル...................................................................................................................486H.1.2 保護するべき資源...................................................................................................................................................................487H.1.3 資源に対して考えうる脅威......................................................................................................................................................489

H.2 セキュリティ侵害の対策..................................................................................................................................................................490

用語集...................................................................................................................................................................................492

索引......................................................................................................................................................................................495

- xvi -

Page 18: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第1部 基本機能編 第1部では、MessageQueueDirector(以降、MQDと略します)の基本機能(メッセージ交換)について説明しています。

第1章 概要........................................................................................................................................................2

第2章 機能........................................................................................................................................................9

第3章 環境作成...............................................................................................................................................29

第4章 運用......................................................................................................................................................51

第5章 保守......................................................................................................................................................55

第6章 アプリケーションの作成..........................................................................................................................72

第7章 コマンド..................................................................................................................................................98

第8章 プログラムインタフェース......................................................................................................................114

- 1 -

Page 19: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第1章 概要

本章では、MQDの概要を以下の順に説明しています。

1.1 MessageQueueDirectorとは 1.2 利用形態

1.3 システム構成

1.1 MessageQueueDirectorとは

MessageQueueDirector(以降、MQDと略します)は、メッセージキューを介したアプリケーション間の非同期通信を実現するソフトウェ

アです。この非同期通信は、サーバ内の通信だけでなく、ネットワークを介した通信にも使用することができます。そのため、ネットワー

クを介した企業間との時間差のある接続による情報流通、あるいはリアルタイムな通信を必要としない企業内の情報流通にも使用する

ことができます。また、グローバルサーバとの接続もできるため、ネットワークを介して基幹業務と連携した業務の構築もできます。

アプリケーション間の通信にはメッセージ(任意の情報)が使用され、送信側のアプリケーションが出力したメッセージを、受信側のア

プリケーションが必要なときに取り出して利用することができます。

図1.1 MQDの構成にMQDの構成を示します。

図1.1 MQDの構成

APPL: APPLication programAIM : Advanced Information Manager

- 2 -

Page 20: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ACM : Asynchronous CoMmunicationLD : ACMの論理あて先

注) SMTP連携サービスはSolarisサーバの場合だけ有効

メッセージ交換

メッセージ交換はMQDの基本機能です。メッセージ交換は、メッセージキューを介したアプリケーション間の非同期通信を提供して

います。送信側アプリケーションと受信側アプリケーションは、互いに相手アプリケーションの動作状態とは無関係(非同期)にメッセー

ジの送受信を行うことができます。

ACM連携サービス

ACM連携サービスは、ネットワーク(LANやWAN)を介して、システム(UNIXサーバ、Windowsサーバおよびグローバルサーバ)間で

メッセージ交換を行うサービスです。グローバルサーバ上のAIM(Advanced Information Manager)アプリケーションとの間でメッセージ

交換を行うことができます。

システム間のメッセージ転送には、IDCM(Integration Data Communication Manager)がサポートする通信プロトコルを使用していま

す。

ACM連携サービスの詳細については、“第10章 ACM連携サービス”を参照してください。

イベントチャネル連携サービス

イベントチャネル連携サービスは、ネットワーク(LANやWAN)を介して、システム(UNIXサーバ、Linuxサーバ、Windowsサーバおよ

びグローバルサーバ)間でメッセージ交換を行うサービスです。グローバルサーバ上のINTERSTAGE/MQDを使用するアプリケーショ

ンとの間でメッセージ交換を行うことができます。

システム間のメッセージ転送には、CORBAサービスがサポートするIIOPプロトコルを使用しています。

イベントチャネル連携サービスの詳細については、“第11章 イベントチャネル連携サービス”を参照してください。

SMTP連携サービス

SMTP連携サービスは、ネットワーク(インターネットやイントラネット)を介して、システム(UNIXサーバ)間でメッセージ交換を行うサー

ビスです。システム間のメッセージ転送には、インターネットの電子メールシステム(sendmail)の標準的なプロトコルであるSMTP(SimpleMail Transfer Protocol)を使用しています。

SMTP連携サービスの詳細については、“第12章 SMTP連携サービス”を参照してください。

トランザクション連携

Interstageが提供するトランザクション機能を利用することで、データベース処理とMQDのメッセージ送受信の同期処理を保証するこ

とができます。

アプリケーションは、Interstageのトランザクション機能を使用して、MQDのメッセージ送受信を行うことができます。

Interstageのトランザクション機能の詳細については、“アプリケーション作成ガイド(データベース連携サービス編)”を参照してくださ

い。

サポート言語

MQDを利用するアプリケーションは、以下のどちらかのプログラム言語を使用して作成することができます。

・ COBOL言語

・ C言語

各プログラムインタフェースの詳細については、“第8章 プログラムインタフェース”を参照してください。

1.2 利用形態

ここでは、MQDの利用形態について以下を説明します。

・ システムの形態

- 3 -

Page 21: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージ交換の形態

1.2.1 システムの形態

MQDは、以下の三つのシステム形態で使用することができます。

・ サーバ内で利用する形態

・ サーバ間で利用する形態

・ グローバルサーバとの間で利用する形態

サーバ内で利用する形態

サーバ内で利用する形態を図1.2 サーバ内で利用する形態に示します。この形態は、メッセージ交換をサーバ内のアプリケーション

間で利用する形態です。MQDの基本機能(メッセージ交換)を使用して利用できます。

図1.2 サーバ内で利用する形態

APPL: APPLication program

サーバ間で利用する形態

サーバ間で利用する形態を図1.3 サーバ間で利用する形態に示します。この形態は、メッセージ交換をサーバ間のアプリケーション

間で利用する形態です。MQDの基本機能(メッセージ交換)とACM連携サービス、SMTP連携サービスまたはイベントチャネル連携

サービスを使用して利用できます。ACM連携サービスの詳細については、“第10章 ACM連携サービス”を、イベントチャネル連携サー

ビスの詳細については、“第11章 イベントチャネル連携サービス”を、SMTP連携サービスの詳細については、“第12章 SMTP連携サー

ビス”を参照してください。

図1.3 サーバ間で利用する形態

APPL: APPLication program

グローバルサーバとの間で利用する形態

グローバルサーバとの間で利用する形態を図1.4 グローバルサーバとの間で利用する形態に示します。この形態は、メッセージ交換

を自サーバ上のアプリケーションとグローバルサーバ上のAIMアプリケーションとの間で利用する形態です。MQDの基本機能(メッセー

ジ交換)とACM連携サービスまたはイベントチャネル連携サービスを使用して利用できます。ACM連携サービスの詳細について

は、“第10章 ACM連携サービス”を、イベントチャネル連携サービスの詳細については、“第11章 イベントチャネル連携サービス”を参

照してください。

- 4 -

Page 22: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図1.4 グローバルサーバとの間で利用する形態

APPL: APPLication programACM : Asynchronous CoMmunicationAIM : Advanced Information Manager

1.2.2 メッセージ交換の形態

メッセージ交換は、メッセージ送信側とメッセージ受信側の配置関係から以下の三つの形態があります。

・ 1対1型

・ 集信型

・ 配信型

1対1型

1対1型のメッセージ交換を図1.5 1対1型のメッセージ交換に示します。この形態は、メッセージ交換の基本形であり、メッセージ送信

側アプリケーションとメッセージ受信側アプリケーションが1対1に対応しています。

図1.5 1対1型のメッセージ交換

APPL: APPLication program

集信型

集信型のメッセージ交換を図1.6 集信型のメッセージ交換に示します。この形態は、複数のメッセージ送信側アプリケーションと一つ

のメッセージ受信側アプリケーションから成る形態です。分散したデータを1箇所に集めて処理する場合に利用します。

- 5 -

Page 23: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図1.6 集信型のメッセージ交換

APPL: APPLication program

配信型

配信型のメッセージ交換を図1.7 配信型のメッセージ交換に示します。この形態は、一つのメッセージ送信側アプリケーションと複数

のメッセージ受信側アプリケーションから成る形態です。データを複数箇所に配布して分散処理を行う場合に利用します。

この形態は、MQDの基本機能(メッセージ交換)と同報配信サービスを使用して利用できます。同報配信サービスの詳細について

は、“第9章 同報配信サービス”を参照してください。

図1.7 配信型のメッセージ交換

APPL: APPLication program

1.3 システム構成

ここでは、MQDを利用するときのソフトウェアの構成を、以下の利用形態別に説明します。

・ サーバ内で利用する場合

・ サーバ間で利用する場合

・ グローバルサーバとの間で利用する場合

サーバ内で利用する場合

サーバ内でMQDを利用する場合のソフトウェア構成を図1.8 ソフトウェア構成 (サーバ内の場合)に示します。この環境では、MQDだ

けが必要です。トランザクション連携を利用する場合には、Interstageのコンポーネントトランザクションサービス(以降、TDと略します)、データベース連携サービス(以降、OTSと略します)およびCORBAサービス(以降、ODと略します)が必要となります。OTSは、グローバ

ルトランザクションを利用する場合にだけ使用します。

トランザクション連携の詳細については、“アプリケーション作成ガイド(コンポーネントトランザクションサービス編)”を参照してくださ

い。

- 6 -

Page 24: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図1.8 ソフトウェア構成 (サーバ内の場合)

サーバ間で利用する場合

サーバ間でMQDを利用する場合のソフトウェア構成を図1.9 ソフトウェア構成 (サーバ間の場合)に示します。この環境では、サーバ

内で利用する場合のソフトウェアに加えて、IDCM(Integration Data Communication Manager)またはシステム標準提供のメールシステ

ム“sendmail”が必要です。

サーバ間には、IDCMがサポートする通信プロトコル、メールシステム標準のSMTP(Simple Mail Transfer Protocol)またはCORBAサー

ビスがサポートするIIOPプロトコルを使用します。IDCMの通信プロトコルの詳細については、“IDCM使用手引書”を参照してくださ

い。

図1.9 ソフトウェア構成 (サーバ間の場合)

グローバルサーバとの間で利用する場合

グローバルサーバとの間でMQDを利用する場合のソフトウェア構成を図1.10 ソフトウェア構成 (グローバルサーバとの間の場合)に示

します。自サーバ側には、サーバ内で利用する場合のソフトウェアに加えて、IDCM(Integration Data Communication Manager)が必要

です。また、グローバルサーバ側には下図に示すソフトウェア群が必要です。

サーバ間には、IDCMがサポートする通信プロトコルまたはCORBAサービスがサポートするIIOPプロトコルを使用します。

- 7 -

Page 25: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図1.10 ソフトウェア構成 (グローバルサーバとの間の場合)

- 8 -

Page 26: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第2章 機能

本章では、MQDの基本機能(メッセージ交換)を以下の順に説明しています。

2.1 メッセージ

2.2 メッセージ交換

2.3 MQDのトランザクション機能を利用したメッセージ交換

2.4 メッセージキュー管理

2.5 メッセージ格納域の使用状況の監視

2.6 運用イベント通知

2.7 RDBのトランザクション連携機能を利用したメッセージ交換

2.8 プロセスログ

なお、システム間の連携機能など拡張機能の詳細については、“第2部 拡張機能編”を参照してください。

また、本章に記述されているプログラムインタフェースの詳細については、“第8章 プログラムインタフェース”を参照してください。MQDのコマンドの詳細については、“第7章 コマンド”を参照してください。

2.1 メッセージ

MQDの基本的な概念であるメッセージについて説明します。

メッセージとは、アプリケーションが交換するデータの単位であり、メッセージヘッダとメッセージ本体から構成されています。メッセー

ジヘッダにはユーザが設定する情報とシステムが設定する情報があります。メッセージ本体はユーザが設定する領域で、ユーザが任

意にデータを設定できる領域です。

図2.1 メッセージの構成にメッセージの構成を示します。

図2.1 メッセージの構成

2.1.1 メッセージヘッダ

メッセージヘッダには、メッセージがどのような属性なのかを識別するための情報があります。 メッセージヘッダは、780バイトの固定

長のデータであり、システムが設定する情報とユーザが設定する情報があります。

システムが設定する情報には以下があります。

・ メッセージタイプ

・ コード系情報

・ メッセージ本体のコード系情報

・ ユニット識別子

・ ユニット内メッセージ通番

・ ユニット終了フラグ

・ 送信MQDシステム名

・ バージョン

- 9 -

Page 27: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 送信キュー名

・ メッセージ保証レベル

・ 送信タイムスタンプ

・ 転送タイムスタンプ

・ 到着タイムスタンプ

・ 転送遅延時間

・ キューイング時間

また、ユーザが設定する情報には以下があります。

・ メッセージ名

・ メッセージ識別子

・ プライオリティ

・ メッセージ本体長

・ 返信キュー名

・ 大保存時間

・ アクセス権

なお、メッセージヘッダの形式や各項目の詳細については、“8.2.32 メッセージヘッダ”または“8.3.32 MQD_MessageHeader構造体”

を参照してください。

2.1.2 メッセージ本体

メッセージ本体は、ユーザが任意のデータを設定できるフィールドです。メッセージ本体は、1~2088960バイトの可変長のデータであ

り、その内容がシステムよって変更されることはありません。

2.1.3 ユニット

メッセージは、ユニットと呼ばれる一つの論理的なまとまりとして送信されます。ユニットは、一つ以上のメッセージから構成されていま

す。

メッセージが大容量(メッセージの本体の長さが2088960バイト以上)の場合、ユーザは、メッセージを複数のメッセージに分割して送

信する必要があります。このとき、ユーザは、複数のメッセージ( 大8192個)を一つのユニットとして送信することができます。

図2.2 ユニットの構成例にユニットの構成例を示します。

図2.2 ユニットの構成例

複数のメッセージを一つのユニットとして送信すると、途中でアプリケーションが異常終了した場合やシステムが異常終了した場合に

は、すでに送信済のメッセージはすべて取り消されます。また、受信時には、アプリケーションの再起動後、すでに受信済のメッセージ

(ユニット内の先頭メッセージ)から再度受信することができます。

この機能を使用することにより、 大64Mバイト(ユニット内メッセージのヘッダの長さと本体の長さの総合計長)までの大容量メッセー

ジを送信するアプリケーションを簡単に作成することができます。

- 10 -

Page 28: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.2 メッセージ交換

同一のMQD内のアプリケーション間でメッセージキューを介してメッセージ交換を行うことができます。ここでは、アプリケーションが

メッセージ交換を行うためのメッセージ操作を以下の順に説明します。

・ アプリケーション処理の概要

・ メッセージの送信

・ メッセージの受信

・ メッセージの参照

・ カーソルの移動

・ メッセージの削除

・ メッセージの一括削除

・ 複数メッセージキューからのメッセージ受信

・ 複数メッセージキューからのメッセージ参照

・ 複数メッセージキューのカーソルの移動

なお、メッセージ交換を行うためには、事前にメッセージキューを作成しておく必要があります。メッセージキューの詳細について

は、“2.4 メッセージキュー管理”を参照してください。

また、アプリケーションの開始時には、“MQDへの接続”と“メッセージキューへの接続”を行い、終了時には、“メッセージキューから

の切断”と“MQDからの切断”を行う必要があります。インタフェースの詳細については、“第8章 プログラムインタフェース”を参照して

ください。

2.2.1 アプリケーション処理の概要

メッセージ交換は、メッセージキューを介したアプリケーション間の非同期通信です。送信側アプリケーションは、メッセージをメッセー

ジキューに送信するとそのメッセージを相手が受信したかどうかにかかわらず終了することができます。

一方、受信側アプリケーションは、メッセージが到着しているかどうかにかかわらずメッセージ受信を行うことができます。また、このと

き、メッセージが到着するまで待つことや、メッセージが到着していないと復帰することもできます。

1方向の非同期メッセージ通信のモデルを図2.3 1方向の非同期通信に示します。

図2.3 1方向の非同期通信

送信側アプリケーションAは、MQD内のどのメッセージキューにもメッセージを送信することが可能です。一方、受信側アプリケーション

Bはメッセージを受信するためにメッセージキューを 低一つは用意する必要があります。メッセージキュー(キューb)は、受信側アプリ

ケーションBに対応するように設定することを推奨します。

次に、1方向の非同期通信を組み合わせることで、クライアント/サーバ型の非同期通信を実現することができます。クライアントでの

メッセージの送信と受信を別のアプリケーションで処理する形態のクライアント/サーバ型の非同期通信を図2.4 クライアント/サーバ型

の非同期通信に示します。

- 11 -

Page 29: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図2.4 クライアント/サーバ型の非同期通信

クライアントAからのメッセージヘッダには、返信キュー名(キューb)を設定できるので、サーバCは、要求された処理を実行した後、対

応するクライアントBのメッセージキュー(キューb) に対して、処理結果のメッセージを返信することができます。ここでも、メッセージを受

信するアプリケーション(サーバCとクライアントB)に対応してメッセージキュー(キューcとキューb)を作成しています。

2.2.2 メッセージの送信

メッセージの送信は、メッセージをメッセージキューに格納する機能です。メッセージの送信は、プログラムインタフェース

の“MQDPUTMSG”または“mqd_putmsg”により行うことができます。メッセージ送信のプログラムを実行するとメッセージをメッセージ

キューに格納できた時点で復帰します。

ユニット内のメッセージの位置(途中のメッセージか 終のメッセージか)は、メッセージ送信時にプログラムインタフェースで宣言しま

す。これによりユニット内に複数のメッセージがあるかどうかをシステムが自動的に判定し異常が発生した場合には、処理をユニット内

先頭メッセージの送信直前の状態まで戻します。

複数のメッセージを一つのユニットとして送信すると、途中でアプリケーションが異常終了した場合やシステムダウンした場合には、す

でに送信済のメッセージはすべて取り消されます。

なお、1ユニット複数メッセージの送信を行う場合には、以下のことに留意する必要があります。

・ 一つのアプリケーションから複数のメッセージキューに対して送信する場合は、必ずメッセージキューごとにユニット内の全メッセー

ジを送信するようにしてください。これに違反した場合は、処理結果が保証されません。

2.2.3 メッセージの受信

メッセージの受信は、メッセージをメッセージキューから取り出す機能です。メッセージの受信は、プログラムインタフェース

の“MQDGETMSG”または“mqd_getmsg”により行うことができます。メッセージの受信が正常終了するとメッセージはメッセージキュー

から削除されます。メッセージの受信の方法には以下があります。

・ 同期モード

・ 非同期モード

同期モードのメッセージ受信は、すでにメッセージキューにメッセージがある場合には、直ちにメッセージを取り出します。メッセージ

キューにメッセージがない場合には、メッセージが到着するまで待ち合わせます。

非同期モードのメッセージ受信は、すでにメッセージキューにメッセージがある場合には、直ちにメッセージを取り出します。メッセー

ジキューにメッセージがない場合には、メッセージ到着を待ち合わせずにアプリケーションに復帰します。

- 12 -

Page 30: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

1ユニット複数メッセージを受信する場合には、メッセージヘッダのユニット終了フラグが“ON”になるまでメッセージを受信した場合に

限り受信が完了したとみなされます。途中で処理を打ち切った場合には、それまでの処理は取り消されます。したがって、再度メッセー

ジを受信すると、再び同じユニット内の先頭メッセージから取り出されます。

なお、メッセージの受信を行う場合は、以下のことに留意する必要があります。

・ 一つのアプリケーションが、1ユニット複数メッセージを複数のメッセージキューから受信する場合、必ずメッセージキューごとにユ

ニット内の全メッセージを受信するようにしてください。これに違反した場合は、処理結果が保証されません。

・ 複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。1ユニット複数メッセージの場合は、

処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。

2.2.4 メッセージの参照

メッセージの参照は、メッセージキューにあるメッセージの内容を参照する機能です。メッセージの参照は、プログラムインタフェース

の“MQDPEEKMSG”または“mqd_peekmsg”により行うことができます。メッセージの参照によって、メッセージがメッセージキューから

削除されることはありません。

メッセージの参照にはカーソルを使用します。カーソルはメッセージキューに蓄積されているメッセージを指すものです。メッセージ

キューへの接続直後、カーソルはメッセージキューの先頭を指しています。そこで、メッセージの参照を実行すると、メッセージを指定

のバッファに読み込むことができます。メッセージ参照後のカーソルの動作はオプションにより指定します。

カーソルオプションには以下があります。

・ メッセージ参照の後、カーソルを次のメッセージに位置付けます。

・ メッセージ参照の後、カーソルを次のユニットの先頭メッセージに位置付けます。

・ メッセージ参照の後、カーソルを動かしません。

2.2.5 カーソルの移動

カーソルの移動は、参照時に使用するカーソルを移動する機能です。カーソルの移動は、プログラムインタフェース

の“MQDSEEKMSG”または“mqd_seekmsg”により行うことができます。

オプションによりカーソルを先頭に移動することも、次のメッセージに移動することもできます。

2.2.6 メッセージの削除

メッセージの削除は、メッセージキューにあるメッセージをユニット単位に削除する機能です。メッセージの削除は、プログラムインタ

フェースの“MQDDELETEMSG”または“mqd_deletemsg”により行うことができます。

メッセージの削除の使用方法として、以下の二つがあります。

・ メッセージの削除を単独で使用する

・ メッセージの参照と併用する

メッセージの削除を単独で使用する場合には、メッセージキューの先頭から順番にユニット単位で削除することになります。

メッセージ参照と併用する場合には、カーソルの指すメッセージをユニット単位に削除します。このとき、カーソルはユニット内の先頭

メッセージを指しておく必要があります。

2.2.7 メッセージの一括削除

メッセージの一括削除は、メッセージキュー上のすべてのメッセージを一括して削除する機能です。メッセージの一括削除は、mqdprgmsgコマンドおよびプログラムインタフェースの“MQDPURGEMSG”または“mqd_purgemsg”で行うことができます。

メッセージの一括削除は、不要なメッセージを破棄する場合に使用し、メッセージキューごとに行います。

なお、メッセージの一括削除を行う場合は、以下のことに留意する必要があります。

・ 一括削除中のメッセージキューは、使用禁止状態となります。

- 13 -

Page 31: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 以下のいずれかの状態のメッセージキューについては、一括削除が失敗し、メッセージキューが使用禁止状態のままになること

があります。

- メッセージを受信中

- メッセージを削除中

・ 一括削除に失敗したメッセージキューは、メッセージの内容が保証されなくなります。この場合は、失敗の原因を取り除いた後、

再度、一括削除を行う必要があります。

・ 使用禁止状態のメッセージキューに対しては、メッセージの一括削除、メッセージキューの削除およびメッセージキュー情報の表

示の操作だけ行うことができます。

2.2.8 複数メッセージキューからのメッセージ受信

複数メッセージキューからのメッセージ受信は、指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージを取り

出す機能です。複数メッセージキューからのメッセージ受信は、プログラムインタフェースの“MQDGETMSGEX”また

は“mqd_getmsgex”により行うことができます。メッセージの受信が正常終了するとメッセージはメッセージキューから削除されます。

複数メッセージキューからのメッセージ受信の方法には以下があります。

・ 同期モード

・ 非同期モード

同期モードのメッセージ受信は、指定したメッセージキューのいずれかにメッセージがある場合には、当該のメッセージキューより直

ちにメッセージを取り出します。指定したすべてのメッセージキューにメッセージがない場合には、いずれかのメッセージキューにメッ

セージが到着するまで待ち合わせます。

非同期モードのメッセージ受信は、指定したメッセージキューのいずれかにメッセージがある場合には、当該のメッセージキューより

直ちにメッセージを取り出します。指定したすべてのメッセージキューにメッセージがない場合には、メッセージ到着を待ち合わせずに

アプリケーションに復帰します。

複数メッセージキューからのメッセージ受信を中止する条件として以下があります。

・ 指定した複数のメッセージキューのいずれかが、削除・切断・使用禁止またはアクセス禁止の場合はメッセージの受信を中止して、

アプリケーションに復帰します。

・ 指定した複数のメッセージキューのすべてが、削除・切断・使用禁止またはアクセス禁止の場合はメッセージの受信を中止して、

アプリケーションに復帰します。

1ユニット複数メッセージを受信する場合には、メッセージヘッダのユニット終了フラグが“ON”になるまでメッセージを受信した場合に

限り受信が完了したとみなされます。途中で処理を打ち切った場合には、それまでの処理は取り消されます。したがって、再度メッセー

ジを受信すると、再び同じユニット内の先頭メッセージから取り出されます。

なお、複数メッセージキューからのメッセージ受信を行う場合は、以下のことに留意する必要があります。

・ 事前に、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”によって複数のメッセージキューに接続す

る必要があります。

・ 一つのアプリケーションで、同一のメッセージキューに対してプログラムインタフェースの“MQDGETMSGEX ”

と“MQDPEEKMSGEX”を組み合わせて使用することはできません。また、“mqd_getmsgex”と“mqd_peekmsgex”を組み合わせて

使用することはできません。

・ メッセージの受信は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に受信し

ます。ただし、受信したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを受信するまで同一のメッセー

ジキューより受信します。

・ 一つのアプリケーションが、1ユニット複数メッセージを複数のメッセージキューから受信する場合、必ずメッセージキューごとにユ

ニット内の全メッセージを受信するようにしてください。これに違反した場合は、処理結果が保証されません。

・ 複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。1ユニット複数メッセージの場合は、

処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。

- 14 -

Page 32: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.2.9 複数メッセージキューからのメッセージ参照

複数メッセージキューからのメッセージ参照は、指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージの内容

を参照する機能です。複数メッセージキューからのメッセージ参照は、プログラムインタフェースの“MQDPEEKMSGEX”また

は“mqd_peekmsgex”により行うことができます。メッセージの参照によって、メッセージがメッセージキューから削除されることはありませ

ん。

複数メッセージキューからのメッセージ参照の方法には以下があります。

・ 同期モード

・ 非同期モード

同期モードのメッセージ参照は、指定したメッセージキューのいずれかにメッセージがある場合には、当該のメッセージキューより直

ちにメッセージを参照します。指定したすべてのメッセージキューにメッセージがない場合には、いずれかのメッセージキューにメッセー

ジが到着するまで待ち合わせます。

非同期モードのメッセージ参照は、指定したメッセージキューのいずれかにメッセージがある場合には、当該のメッセージキューより

直ちにメッセージを参照します。指定したすべてのメッセージキューにメッセージがない場合には、メッセージ到着を待ち合わせずに

アプリケーションに復帰します。

複数メッセージキューからのメッセージ参照を中止する条件として以下があります。

・ 指定した複数のメッセージキューのいずれかが、削除・切断・使用禁止またはアクセス禁止の場合はメッセージの参照を中止して、

アプリケーションに復帰します。

・ 指定した複数のメッセージキューのすべてが、削除・切断・使用禁止またはアクセス禁止の場合はメッセージの参照を中止して、

アプリケーションに復帰します。

なお、複数メッセージキューからのメッセージ参照を行う場合は、以下のことに留意する必要があります。

・ 事前に、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”によって複数のメッセージキューに接続す

る必要があります。

・ 一つのアプリケーションで、同一のメッセージキューに対してCOBOL言語プログラムインタフェースの“MQDGETMSGEX”

と“MQDPEEKMSGEX”を組み合わせて使用することはできません。また、C言語プログラムインタフェースの“mqd_getmsgex”と“mqd_peekmsgex”を組み合わせて使用することはできません。

・ メッセージの参照は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に参照し

ます。ただし、参照したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを参照するまで同一のメッセー

ジキューより参照します。

・ カーソルは、指定したメッセージキューごとに以下の動作になります。

- メッセージ参照後、カーソルを次のメッセージに位置付けます。

2.2.10 複数メッセージキューのカーソルの移動

複数メッセージキューのカーソルの移動は、複数メッセージキューからの参照時に使用するすべてのカーソルをメッセージキューの

先頭メッセージに移動する機能です。複数メッセージキューのカーソルの移動は、プログラムインタフェースの“MQDSEEKMSGEX”ま

たは“mqd_seekmsgex”により行うことができます。

なお、複数メッセージキューのカーソルの移動を行う場合は、以下のことに留意する必要があります。

・ 事前に、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”によって複数のメッセージキューに接続す

る必要があります。

2.3 MQDのトランザクション機能を利用したメッセージ交換

MQDのトランザクション機能は、メッセージ交換におけるメッセージ保証の単位を変更します。

通常は、メッセージキューに対するユニットの送信(または受信)がメッセージ保証の単位ですが、トランザクション機能を利用した場

合には、“トランザクションの開始”から、“トランザクションの終了”までがメッセージ保証の単位となります。その間にアプリケーションは

複数のメッセージキューに対して、複数のユニットのメッセージ操作を行うことが可能です。

- 15 -

Page 33: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

また、トランザクション処理中は、いつでも“トランザクションの取消し”機能を利用して、トランザクション内のメッセージ操作を取り消す

ことができます。

アプリケーションがトランザクション機能を利用したメッセージ交換を行うための処理を以下の順に説明します。

・ トランザクションの開始

・ トランザクションの終了

・ トランザクションの取消し

・ トランザクション機能を利用する際の注意事項

なお、トランザクション機能を利用したメッセージ交換を行うためには、事前にメッセージキューを作成しておく必要があります。メッセー

ジキューの詳細については、“2.4 メッセージキュー管理”を参照してください。

また、アプリケーションの開始時には、“MQDへの接続”と“メッセージキューへの接続”を行い、終了時には、“メッセージキューから

の切断”と“MQDからの切断”を行う必要があります。インタフェースの詳細については、“第8章 プログラムインタフェース”を参照して

ください。

トランザクション機能を利用したメッセージ交換のモデルを図2.5 トランザクション機能を利用したメッセージの送受信の使用例に示し

ます。

図2.5 トランザクション機能を利用したメッセージの送受信の使用例

2.3.1 トランザクションの開始

トランザクションの開始は、メッセージ保証単位の開始を宣言する機能です。トランザクションの開始は、プログラムインタフェース

の“MQDBEGIN”または“mqd_begin”を使用して行います。

トランザクションを開始した後に、複数のメッセージキューに対して、複数のユニットの送受信を行うことができます。

なお,トランザクションの開始を行わずにメッセージの送信や受信を行うと、ユニット単位でメッセージを保証します。

2.3.2 トランザクションの終了

トランザクションの終了は、メッセージ保証単位の終了を宣言する機能です。トランザクションの終了は、プログラムインタフェース

の“MQDCOMMIT”または“mqd_commit”を使用して行います。トランザクションを終了することによって、トランザクションの開始以降

の一連のメッセージ操作をメッセージキューに反映します。

2.3.3 トランザクションの取消し

トランザクションの取消しは、現在実行中のトランザクションを取り消す機能です。トランザクションの取消しは、プログラムインタフェー

スの“MQDROLLBACK”または“mqd_rollback”を使用して行います。トランザクションを取り消すことによって、トランザクション内のメッ

セージ操作はすべて取り消されます。

- 16 -

Page 34: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.3.4 トランザクション機能を利用する際の注意事項

トランザクション機能を利用する際にはいくつかの注意事項があります。

・ トランザクションはスレッド単位に管理されます。

・ メッセージはユニット単位で扱ってください。ユニットの 後まで処理されていない場合には、トランザクションの終了時にエラー

になります。

・ トランザクションの開始からトランザクションの終了までに扱えるメッセージの大きさに制限があります。1トランザクション当たりのメッ

セージの数は 大8192個、メッセージの容量(メッセージヘッダの長さとメッセージ本体の長さの総合計長)は 大64Mバイトで

す。

・ Interstageのグローバルトランザクション配下で実行中の場合には本トランザクション機能を利用することはできません。

・ トランザクション機能を適用するプログラムインタフェースは以下のとおりです。

- MQDPUTMSGおよびmqd_putmsg

- MQDGETMSGおよびmqd_getmsg

- MQDPEEKMSGおよびmqd_peekmsg

- MQDSEEKMSGおよびmqd_seekmsg

- MQDDELETEMSGおよびmqd_deletemsg

- MQDGETMSGEXおよびmqd_getmsgex

- MQDPEEKMSGEXおよびmqd_peekmsgex

- MQDSEEKMSGEXおよびmqd_seekmsgex

・ メッセージへのカーソル位置はトランザクション機能の対象外です。トランザクションを取り消しても、カーソルは現在位置に留まり

ます。

2.4 メッセージキュー管理

メッセージ交換を行うためには、メッセージを格納するためのメッセージキューが必要です。このメッセージキューに関する機能をメッ

セージキュー管理と言います。ここでは、メッセージキュー管理について以下を説明します。

・ メッセージキューとは

・ メッセージキューの作成

・ メッセージキューの削除

・ メッセージキュー名の一覧通知

・ メッセージキューの属性通知

・ メッセージキューの属性設定

なお、上記の各機能をプログラムインタフェースで利用する場合には、事前に“MQDへの接続”を行い、終了時には、“MQDからの

切断”を行う必要があります。インタフェースの詳細については、“第8章 プログラムインタフェース”を参照してください。

2.4.1 メッセージキューとは

メッセージキューは、アプリケーションがメッセージ交換を行うときに一時的にメッセージを格納しておく場所です。ここでは、メッセー

ジキューについて以下を説明します。

・ メッセージ保証レベル

・ プライオリティ

・ メッセージキューの属性

・ メッセージキューの状態変移

- 17 -

Page 35: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.4.1.1 メッセージ保証レベル

メッセージキューには、以下の二つのメッセージ保証レベルがあります。

・ メモリ型

・ ディスク型

メモリ型

メモリ型のメッセージキューは、アプリケーションが送信したメッセージをMQDが動作している間だけメモリ上で管理します。メモリだけ

を使用してメッセージ通信を行うため、高性能なレスポンスを得ることができます。ただし、システムダウンが発生したり、MQDを停止し

た場合は、メッセージキュー上に残っているメッセージが失われるため、信頼性が低下します。

なお、メッセージ格納ファイルとしてデータベースを使用した場合、メモリ型のメッセージキューは使用できません。

ディスク型

ディスク型のメッセージキューは、アプリケーションが送信したメッセージをハードディスク上で管理します。システムダウン、通信回線異常や

MQDの停止によりメッセージが失われることがないため、高信頼なメッセージ通信を行うことができます。ただし、メモリ型に比べて処理

性能が低下します。

ディスク型のメッセージキューを格納するファイルとして、一般のファイルシステムとデータベースを利用することができます。データ

ベースを利用することで、メッセージ格納ファイルの大容量化や複数デバイスへの配置がデータベースの機能を使用して実現可能に

なります。

なお、利用できるデータベース管理システムはSymfoware/RDBです。

データベース管理システムの機能を直接使用した場合は、MQDシステムを壊すおそれがあるため、“5.3 メッセージ格納ファイルとし

てデータベースを使用する場合の保守”で説明する保守操作以外は行わないでください。MQDシステムが使用しているデータベース

を直接操作した場合、MQDシステムの動作は保証されません。また、保守操作を行う上でも十分な注意が必要です。データベース管

理システムの機能を十分理解して操作を行ってください。

2.4.1.2 プライオリティ

プライオリティとは、メッセージ送受信処理の優先度です。プライオリティを変えることにより、緊急のメッセージを優先的に処理させる

ことができます。

プライオリティは、以下に示す高レベルから低レベルまでの複数の段階があり、メッセージの送信時にアプリケーションが指定します。

・ 1(高レベル)から3(低レベル)までの3段階

・ 1(高レベル)から7(低レベル)までの7段階

プライオリティの指定を省略した場合は、メッセージキューにあるプライオリティの省略値が適用されます。1ユニット複数メッセージの

場合は、ユニット内の先頭メッセージのプライオリティが使用されます。

メッセージキュー上のメッセージは、以下の契機でメッセージキューから取出すときに、より高いプライオリティのメッセージから優先的

に処理されます。

・ メッセージ送信時は、相手システムへメッセージを送信するとき。MQD内の場合は、受信側アプリケーションがメッセージ受信を

要求したとき

・ メッセージ受信時は、受信側アプリケーションがメッセージ受信を要求したとき

2.4.1.3 メッセージキューの属性

メッセージキューの属性には以下の二つがあります。

- 18 -

Page 36: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 定義情報

・ 運用情報

定義情報

定義情報には、以下のものがあり、メッセージキューを作成するときに指定します。

・ メッセージキュー名

・ メッセージ保証レベル

・ メッセージの 大長

・ プライオリティの省略値

運用情報

運用情報には、以下のものがあり、プログラムインタフェースまたはコマンドにより取得することができます。

・ メッセージキューの作成日時

・ メッセージキューの 終更新日時

・ メッセージキュー内のメッセージ数

・ メッセージキューのアクセス状態

2.4.1.4 メッセージキューの状態変移

メッセージキューには以下の状態があります。図2.6 メッセージキューの状態変移にメッセージキューの状態変移を示します。

図2.6 メッセージキューの状態変移

未作成

メッセージキューがまだ作成されていない状態、またはメッセージキューを削除した状態です。

作成済

プログラムインタフェースまたはコマンドによりメッセージキューを作成した状態、またはアクセス禁止を解除した状態です。この状態

でメッセージキューに接続してメッセージを送受信することが可能です。

アクセス禁止

プログラムインタフェースまたはコマンドによりメッセージキューへのアクセスを禁止した状態です。禁止状態には以下のものがありま

す。

・ 送信禁止

・ 受信禁止

・ 送受信禁止

なお、以下の場合には、メッセージキューが一時的に“使用禁止状態”となり、アクセスが禁止されます。

・ メッセージの一括削除中

・ メッセージキューの強制削除中

- 19 -

Page 37: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.4.2 メッセージキューの作成

メッセージキューの作成は、新規にメッセージキューを作成する機能です。メッセージキューの作成は、mqdcrtqコマンド、プログラム

インタフェースの“MQDCREATEQ”または“mqd_createq”で行うことができます。

メッセージキューの作成は、メッセージキューごとに行います。

なお、アプリケーション間でメッセージ交換を行うためには、事前にメッセージキューを作成しておく必要があります。メッセージキュー

の作成には定義情報として以下の情報を設定する必要があります。

・ メッセージキュー名

・ メッセージ保証レベル

・ メッセージの 大長

・ プライオリティの省略値

ただし、メッセージ格納ファイルとしてデータベースを使用した場合、メッセージ保証レベルとしてメモリ型は指定できません。

2.4.3 メッセージキューの削除

メッセージキューの削除は、不要になったメッセージキューを削除する機能です。メッセージキューの削除は、mqddltqコマンド、プロ

グラムインタフェースの“MQDDELETEQ”または“mqd_deleteq”で行うことができます。

メッセージキューの削除は、メッセージキューごとに行います。

メッセージキューの削除は、通常、そのメッセージキューに接続している利用者がいない場合にだけ実行されます。ただし、メッセー

ジ格納ファイルとして通常のファイルを使用している場合は、強制モードを指定することで、利用者がいる場合でも強制的にメッセージ

キューを削除することができます。この場合、メッセージキューを利用しているアプリケーションは途中でエラーを検出する場合がありま

す。ただし、メッセージ格納ファイルとしてデータベースを使用している場合は、メッセージキューに接続している利用者がいる場合に

は強制的にメッセージキューを削除することはできません。

また、メッセージキューの削除は、通常、そのメッセージキューにメッセージがない場合にだけ実行されます。ただし、強制モードを指

定することで、メッセージがある場合でも強制的にメッセージキューを削除することができます。

なお、メッセージキューを強制的に削除する場合は、以下のことに留意する必要があります。

・ 強制削除中のメッセージキューは、使用禁止状態となります。

・ 以下のいずれかの状態のメッセージキューについては、強制削除が失敗して、メッセージキューが使用禁止状態のままになるこ

とがあります。

- メッセージを受信中

- メッセージを削除中

・ 強制削除に失敗したメッセージキューは、メッセージの内容が保証されなくなります。この場合は、失敗の原因を取り除いた後、

再度、強制削除を行う必要があります。

・ 使用禁止状態のメッセージキューに対しては、メッセージキューの削除、メッセージの一括削除およびメッセージキュー情報の表

示の操作だけ行うことができます。

2.4.4 メッセージキュー名の一覧通知

メッセージキュー名の一覧通知は、MQDに登録されているメッセージキュー名の一覧を通知する機能です。メッセージキュー名の一

覧通知は、プログラムインタフェースの“MQDGETQLIST”または“mqd_getqlist”で行うことができます。

また、mqdprtqコマンドを使用して、メッセージキュー名の一覧を表示することができます。

2.4.5 メッセージキューの属性通知

メッセージキューの属性通知は、任意のメッセージキューの属性(定義情報および運用情報)を通知する機能です。メッセージキュー

の属性通知は、プログラムインタフェースの“MQDGETQATTR”または“mqd_getqattr”で行うことができます。通知内容の詳細につい

ては、“8.2.30 メッセージキュー属性情報”を参照してください。

また、メッセージキュー情報を表示するmqdprtqコマンドが用意されています。このコマンドには、以下の三つの表示内容があります。

- 20 -

Page 38: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージキュー名の一覧表示

・ メッセージキュー情報の表示

・ メッセージキューの詳細情報の表示

このコマンドにより以下の項目が表示されます。

[定義情報]

・ メッセージキュー名

・ メッセージ保証レベル

・ メッセージの 大長

・ プライオリティの省略値

・ 作成可能なメッセージキューの数

[運用情報]

・ メッセージキューの作成日時

・ メッセージキューの 終更新日時

・ メッセージキュー内のメッセージ数

・ メッセージキューのアクセス状態

・ 作成済みのメッセージキューの数

・ メッセージ格納域の使用状況

2.4.6 メッセージキューの属性設定

メッセージキューの属性設定は、任意のメッセージキューに対して属性(定義情報および運用情報)を設定する機能です。メッセージ

キューの属性設定は、プログラムインタフェースの“MQDSETQATTR”または“mqd_setqattr”で行うことができます。

また、メッセージキューの属性は、メッセージキューの作成時にも設定することができます。詳細については、“2.4.2 メッセージキュー

の作成”を参照してください。

なお、メッセージキュー属性のうちアクセス状態を変更するmqdchgqコマンドが用意されています。このコマンドは、メッセージの送受

信に関してメッセージキューを以下の状態にすることができます。

・ メッセージの送受信を可能とする

・ メッセージの送信を禁止する

・ メッセージの受信を禁止する

・ メッセージの送受信を禁止する

表2.1 メッセージキューのアクセス状態にメッセージキューのアクセス状態を示します。

表2.1 メッセージキューのアクセス状態

処理

状態送信 受信 参照

カーソル

移動削除

一括削

送受信可能 ○ ○ ○ ○ ○ ○

送信禁止 × ○ ○ ○ ○ ○

受信禁止 ○ × × × × ○

送受信禁止 × × × × × ○

○:可 ×:不可

- 21 -

Page 39: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.5 メッセージ格納域の使用状況の監視

メッセージキューに送信したメッセージは、ディスク型メッセージキューの場合はハードディスク上のファイルに、メモリ型メッセージ

キューの場合はメモリ上の領域に格納されます。MQDでは、それぞれのメッセージ格納域の使用状況を監視することができます。ここ

では、メッセージ格納域の使用状況の監視について以下を説明します。

・ 警告値、安全値の設定

・ メッセージ格納域の状態通知

・ メッセージ格納域の状態表示

なお、メッセージ格納ファイルとしてデータベースを使用した場合、本機能は使用できません。データベース管理システムの機能を使

用してください。データベース管理システムの機能の詳細は、“Symfoware Server RDB管理者ガイド”を参照してください。

2.5.1 警告値、安全値の設定

メッセージ格納域の使用率が一定値以上となった場合、メッセージ格納域の状態は警告状態となります。その後、メッセージ格納域

の使用率が低下し一定値以下となった場合、メッセージ格納域の警告状態は解除されます。メッセージ格納域が警告状態となる基準

値を警告値と呼び、警告状態が解除される基準となる値を安全値と呼びます。警告値と安全値は、ディスク型メッセージキュー、メモリ

型メッセージキューのそれぞれの格納域に対して設定することができます。警告値と安全値の設定方法については、“第3章 環境作

成”を参照してください。

なお、メッセージ格納ファイルとしてデータベースを使用する場合、rdbalmdsiコマンドを使用して対象DSIに警告値を設定します。

2.5.2 メッセージ格納域の状態通知

メッセージ格納域が警告状態となった場合、コンソールにその旨を通知するメッセージ“MQD0503”が出力されます。その後、メッセー

ジ格納域の警告状態が解除された場合、システムログにその旨を通知するメッセージ“MQD0504”が出力されます。これにより、メッ

セージ格納域が警告状態となったメッセージが表示された場合はメッセージを受信するアプリケーションを動作させるなどの対処を行

うことで、メッセージ格納域不足を事前に抑止することができます。

なお、メッセージ格納ファイルとしてデータベースを使用して、rdbalmdsiコマンドにより対象DSIに警告値を設定した場合は、システム

ログに通知メッセージが表示されます。

2.5.3 メッセージ格納域の状態表示

メッセージ格納域の使用率と状態は、mqdprtqコマンドを使用して確認することができます。

なお、メッセージ格納ファイルとしてデータベースを使用する場合、rdbinfコマンド(オプション -i または -p) または、rdbudsiコマンド(オ

プション -i)を使用して確認することができます。

2.6 運用イベント通知

運用イベント通知機能とは、MQDの運用中に発生する各種の事象を通知する機能のことです。ユーザは運用イベント通知機能を利

用することによって、MQDの運用操作がより円滑に行えます。通知される運用イベントには以下のものがあります。

・ メッセージ格納域の使用率が、設定した警告値を超えました。

・ メッセージ格納域の使用率が、設定した安全値まで回復しました。

・ ACM連携サービスに関する通信異常が発生しました。

・ ACM連携サービスに関する通信異常が回復しました。

また、運用イベント通知機能には以下の特徴があります。

・ MQD起動時から停止時まで事象を通知します。MQDを停止するとそれまでに発生し、未受信の運用イベントは削除されます。

・ 運用イベントは発生順に通知します。

・ 運用イベントを受信しない場合は1000個までの運用イベントが蓄積されます。1000個以上の運用イベントが発生した場合には、古

い運用イベントから削除されます。

- 22 -

Page 40: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 運用イベント通知機能は一つのアプリケーションからだけ使用できます。運用イベント通知機能を使用する二つ以上のアプリケー

ションを同時に動作させることはできません。

通知される運用イベントの詳細については、“8.2.35 運用イベント情報”、“8.3.34 MQD_EventInfo構造体”を参照してください。

2.6.1 運用イベント

運用イベントは、運用イベント情報と運用イベント拡張情報から構成されています。運用イベント情報には運用イベントの基本情報を

設定します。運用イベント拡張情報には運用イベントの拡張情報を設定します。運用イベントの種類によっては運用イベント拡張情報

を設定します。

図2.7 運用イベントの構成に運用イベントの構成を示します。

図2.7 運用イベントの構成

2.6.2 運用イベント情報

運用イベント情報には、運用イベントがどのような属性なのかを識別するための情報があります。 運用イベント情報は、308バイトの固

定長のデータです。情報は以下の通りです。

・ 運用イベントID

・ タイムスタンプ

・ 日付

・ 時刻

・ 運用イベント文字列データ

・ 運用イベント数値データ

・ 拡張情報長

なお、運用イベント情報の形式や各項目の詳細については、“8.2.35 運用イベント情報”または“8.3.34 MQD_EventInfo構造体”を参

照してください。

2.6.3 運用イベント拡張情報

運用イベント拡張情報には運用イベントの詳しい情報があります。内容は運用イベントの種別によって異なります。なお詳細について

は、表8.15 運用イベント情報の詳細または表8.27 運用イベント情報の詳細を参照してください。

2.6.4 運用イベントの受信

運用イベントを処理するアプリケーションは、MQDから通知される運用イベントを受信して、種々の運用操作を行います。

運用イベントの受信は、プログラムインタフェースの“MQDGETEVENT”または“mqd_getevent”により行うことができます。運用イベン

トの受信が正常終了すると運用イベントは削除されます。運用イベントの受信方法には以下があります。

・ 同期モード

・ 非同期モード

同期モードの運用イベント受信は、すでに運用イベントがある場合には、直ちに運用イベントを受信します。運用イベントがない場合

には、運用イベントが発生するまで待ち合わせます。

- 23 -

Page 41: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

非同期モードの運用イベント受信は、すでに運用イベントがある場合には、直ちに運用イベントを受信します。運用イベントがない場

合には、運用イベント発生を待ち合わせずにアプリケーションに復帰します。

2.6.5 運用アプリケーションの概要

運用イベントを処理して、MQDの運用操作を行うアプリケーションを運用アプリケーションと呼びます。運用アプリケーションは、プロ

グラムインタフェースの“MQDGETEVENT”または“mqd_getevent”を使用して運用イベントを受信します。運用イベントを受信した後

に、受信した運用イベントに従って、MQDの各種運用操作を行います。表2.2 受信した運用イベントに対する運用操作例に運用操作

例を示します。

表2.2 受信した運用イベントに対する運用操作例

運用イベントID 運用操作例

1 ・ メッセージ送信アプリケーションを終了する。

・ 送信アプリケーションが使用するメッセージキューを送信禁止状態にする。

2 ・ 送信アプリケーションが使用するメッセージキューの送信禁止状態を解除する。

・ メッセージ送信アプリケーションを起動する。

101 ・ 送信キューの送信側をアクセス禁止状態にする。

・ IDCMの通信パスを確立する。

102 ・ 送信キューの送信側のアクセス禁止状態を解除する。

2.7 RDBのトランザクション連携機能を利用したメッセージ交換

RDBのトランザクション連携機能を利用したメッセージ交換では、Symfoware/RDBのローカルトランザクション機能を使用してデータ

ベース操作とメッセージ操作の一貫性を保証します。(以降、RDBのトランザクション連携機能を利用したメッセージ交換を“Symfoware/RDBトランザクション連携機能”と称します。)本機能を利用することによって、Interstageのグローバルトランザクション機能を利用する

場合よりも処理能力が向上します。

ここでは、Symfoware/RDBトランザクション連携機能について以下について説明します。

・ MQDおよび業務用データベースへの接続と切断

・ トランザクションの操作

・ Symfoware/RDBトランザクション連携機能の適用条件

なお、データベース管理システムの詳細については、“Symfoware Server RDB管理者ガイド”、データベースを使用するアプリケー

ション開発については、“Symfoware Server RDBユーザーズガイド 応用プログラム開発編”、SQLの詳細については、“SymfowareServer SQLリファレンスガイド”を参照してください。

Symfoware/RDBトランザクション連携機能の使用例を図2.8 Symfoware/RDBトランザクション連携機能の使用例に示します。

- 24 -

Page 42: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図2.8 Symfoware/RDBトランザクション連携機能の使用例

2.7.1 MQDおよび業務用データベースへの接続と切断

業務用データベースへの接続

業務用データベースへの接続は、“SQL CONNECT文”を使用します。MQDへの接続の前に行う必要があります。

MQDへの接続

MQDへの接続は、プログラムインタフェースの“MQDCONNECTRDB”または“mqd_connectrdb”を使用します。MQDへの接続の前

にトランザクションが開始している場合は、トランザクションの終了またはトランザクションの取り消しを行う必要があります。

MQDからの切断

MQDからの切断は、プログラムインタフェースの“MQDDISCONNECT”または“mqd_disconnect”を使用します。業務用データベース

からの切断の前に行う必要があります。

また、トランザクションを開始していた場合は、メッセージキューからの切断やMQDからの切断を行う前に、トランザクションの終了また

はトランザクションの取り消しを行う必要があります。

業務用データベースからの切断

業務用データベースからの切断は、“SQL DISCONNECT文”を使用します。

2.7.2 トランザクションの操作

トランザクションの開始

トランザクションの開始は、 初のメッセージ操作またはデータベースへの操作を行うことにより開始します。MQDのトランザクション機

能で提供しているプログラムインタフェースの“MQDBEGIN”および“mqd_begin”は使用しません。

トランザクションの終了

トランザクションの終了は、“SQL COMMIT文”を使用します。MQDのトランザクション機能で提供しているプログラムインタフェース

の“MQDCOMMIT”および“mqd_commit”は使用しません。

トランザクションの終了は、メッセージキューからの切断やMQDからの切断、データベースの切断を行う前に、実行する必要がありま

す。

トランザクションの取消し

トランザクションの取消しは、“SQL ROLLBACK文”を使用します。MQDのトランザクション機能で提供しているプログラムインタフェー

スの“MQDROLLBACK”および“mqd_rollback”は使用しません。

- 25 -

Page 43: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

トランザクションの取消しは、メッセージキューからの切断やMQDからの切断、データベースの切断を行う前に、実行する必要があり

ます。

データベース管理システムによって取消しが行われる場合は、メッセージ操作およびデータベースへの操作も取り消されます。

2.7.3 Symfoware/RDBトランザクション連携機能を利用する際の適用条件

Symfoware/RDBトランザクション連携機能を利用する際の適用条件を以下に示します。

・ メッセージ格納ファイルとしてデータベースを使用し、MQDのシステム環境を業務用データベースに作成する必要があります。ま

た、使用できるデータベースは、サーバシステム上のデータベースです。他のサーバシステム上のデータベースは使用できませ

ん。

・ 一つの業務用データベースに複数のMQDのシステム環境を作成することはできません。

・ データベースの排他は、“占有の単位を行とする”設定である必要があります。設定は、“3.2.3 データベース管理システムの設

定”を参照してください。

・ 本機能を使用するアプリケーションは、シングルスレッドで作成する必要があります。

・ 使用できるメッセージ交換の形態は、1対1型です。一つのメッセージキューに対して複数のアプリケーションが同時にメッセージ

を送信しないようにしてください。同様に、一つのメッセージキューに対して複数のアプリケーションが同時にメッセージを受信しな

いようにしてください。

・ メッセージはユニット単位で扱ってください。ユニットの 後まで処理されていない場合には、受信側処理の動作は保証されませ

ん。

・ トランザクションの開始からトランザクションの終了までに扱えるメッセージの大きさに制限があります。1トランザクション当たりのメッ

セージの数は 大8192個、メッセージの容量(メッセージヘッダの長さとメッセージ本体の長さの総合計長)は 大64Mバイトで

す。

・ Interstageのグローバルトランザクション配下で実行中の場合には本機能を利用することはできません。

・ 本機能を適用するプログラムインタフェイスは以下のとおりです。

- MQDPUTMSGおよびmqd_putmsg

- MQDGETMSGおよびmqd_getmsg

- MQDPEEKMSGおよびmqd_peekmsg

- MQDSEEKMSGおよびmqd_seekmsg

- MQDDELETEMSGおよびmqd_deletemsg

- MQDGETMSGEXおよびmqd_getmsgex

- MQDPEEKMSGEXおよびmqd_peekmsgex

- MQDSEEKMSGEXおよびmqd_seekmsgex

・ メッセージキューの作成や削除およびメッセージの一括削除は、mqdcrtqコマンド、mqddltqコマンド、mqdprgmsgコマンドを使用

してください。プログラムインタフェースは使用できません。

・ メッセージへのカーソル位置は本機能の対象外です。トランザクションを取り消しても、カーソルは現在位置に留まります。

2.8 プロセスログ

MQDのプロセスログは、MQDのアプリケーションプロセスのログを採取する機能です。アプリケーションプロセスがMQDシステムに接

続、切断した時刻をアプリケーションプロセスの名前と共に記録します。

MQDのコマンドおよびMQDシステムプロセスがMQDシステムに接続、切断した場合にも出力します。

- 26 -

Page 44: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2.8.1 プロセスログの出力先

プロセスログの出力先は以下のとおりです。

表2.3 プロセスログ出力先一覧

OS 出力先ディレクトリ ファイル名 バックアップファイル名

C:\Interstage\MessageQueueDirector\mqd\MQDシス

テム名\var\traceMQDシステム

名.process.logMQDシステム

名.process.log.[1-9] (*1)

/opt/FJSVmqd/mqd/MQDシステム名/var/trace

(*1) プロセスログファイルには1Mバイトまでの情報がロギングされます。1Mバイトを超えた場合、プロセスログファイルは世代交代をして、

バックアップを取ります。バックアップ世代は9世代までです。

2.8.2 プロセスログの出力形式

プロセスログには以下のように5個の情報をカンマ区切りで出力します。CSV形式として利用することも可能です。

Time,Status,MQDSystem,ProcessID,ApplicationName情報1,情報2,情報3,情報4,情報5

表2.4 プロセスログに出力される情報一覧

情報種類番号 名称 内容

1 時刻 事象が発生した時刻を出力します。

2 状態 以下のいずれかを出力します。

attach :mqd_connect(MQDCONNECT)でMQDシステムに接続した。

detach :mqd_disconnect(MQDDISCONNECT)でMQDシステムから切断

した。

kill :mqd_disconnectを発行せずにプロセスを終了した。または外部から

プロセスを強制的に終了させられた。

3 MQDシステム名 MQDシステム名を出力します。

4 プロセスID ログを出力したプロセスIDを出力します。

5 アプリケーション名 ログを出力したプロセスのコマンドライン文字列を出力します。 大256文字まで出力され、それ以上の文字列がある場合は切り捨てられます。ただ

し状態が[kill]の場合は何も表示されません。

出力例

Time,Status,MQDSystem,ProcessID,ApplicationNameWed Apr 30 21:49:08 2008,attach,MQD001,5555,mqdputsample.exeWed Apr 30 21:50:10 2008,attach,MQD001,6666,mqdgetsample.exeWed Apr 30 22:13:44 2008,detach,MQD001,5555,mqdputsample.exeWed Apr 30 23:10:03 2008,kill,MQD001,6666,Fri May 16 15:17:35 2008,attach,MQDTEST,17044,mqdprtq -s MQDTESTFri May 16 15:17:35 2008,detach,MQDTEST,17044,mqdprtq -s MQDTEST

出力例の説明

1. Wed Apr 30 21:49:08 2008 に mqdputsample.exe (プロセスID=5555)が MQD001 に接続した。

2. Wed Apr 30 21:50:10 2008 に mqdgetsample.exe (プロセスID=6666) が MQD001 に接続した。

- 27 -

Page 45: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

3. Wed Apr 30 22:13:44 2008 に mqdputsample.exe が MQD001 から切断した。

4. Wed Apr 30 23:15:13 2008 にプロセスID=7777 が MQD001 から mqd_disconnect(MQDDISCONNECT)を発行せずに終了し

たか、外部から強制的に終了させられた。

5. Fri May 16 15:17:35 2008 に mqdprtqコマンドを実行し(プロセスID=17044)、MQDTESTに接続した。

6. Fri May 16 15:17:35 2008 に mqdprtqコマンドが MQDTEST から切断した。

MQDのコマンドおよびMQDシステムプロセスがMQDシステムに接続、切断した場合にも出力します。主なシステムプロセス名は以

下の通りです。

mqdopctlmqdqmtmpprocmqdacommmqdacomsmqdacomrmqdnsgwmmqdnsgwsmqdnsgwrmqd_momomqd_momo_funcmqdmcasmqdscommqdscomtransitmqdscomtransit2

2.8.3 プロセスログの世代交代

プロセスログファイルには一定量のプロセスログを記録します。一定量(1Mバイト)を超えた場合には、プロセスログは世代交代しま

す。プロセスログの世代交代によって、プロセスログはバックアップされます。また、世代交代の際に も古いプロセスログは消去され

ます。

世代交代のプロセスログファイル名は以下の通りです。

表2.5 プロセスログファイル名一覧

ファイル名 世代

MQDシステム名.process.log カレントのプロセスログ

MQDシステム名.process.log.1 1世代前のプロセスログ

MQDシステム名.process.log.2 2世代前のプロセスログ

MQDシステム名.process.log.3 3世代前のプロセスログ

MQDシステム名.process.log.4 4世代前のプロセスログ

MQDシステム名.process.log.5 5世代前のプロセスログ

MQDシステム名.process.log.6 6世代前のプロセスログ

MQDシステム名.process.log.7 7世代前のプロセスログ

MQDシステム名.process.log.8 8世代前のプロセスログ

MQDシステム名.process.log.9 9世代前のプロセスログ

- 28 -

Page 46: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第3章 環境作成

本章では、MQDの基本機能が動作するためのシステム環境の作成方法について、以下の順に説明しています。

3.1 環境作成の手順

3.2 環境作成の説明

3.3 環境定義の記述

なお、システム間の連携機能など、拡張機能が動作するためのサービス環境の作成方法については、“第2部 拡張機能編”を参照し

てください。

また、本章に記述されているMQDのコマンドの詳細については、“第7章 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で環境を作成することはできません。コンソール

上で環境を作成してください。

3.1 環境作成の手順

MQDを使用するためには、図3.1 MQDのシステム環境作成の流れの手順に従って、MQDが動作するためのシステム環境を作成す

る必要があります。

- 29 -

Page 47: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図3.1 MQDのシステム環境作成の流れ

3.2 環境作成の説明

以下の各環境作成の方法について説明します。

・ 環境変数の設定

・ ファイル資源の準備

・ データベース管理システムの設定

・ データベース管理システムの起動

・ MQD利用者グループの作成

・ MQD環境定義の作成

・ MQDのシステム環境の作成

- 30 -

Page 48: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ データベース管理システムの停止

3.2.1 環境変数およびシステムの設定

MQDを使用するためには、事前に以下の環境変数を設定しておく必要があります。

メッセージ格納ファイルとしてデータベースを使用する場合は、データベース管理システムで使用される環境変数も設定しておく必

要があります。データベース管理システムで使用される環境変数の設定方法は、“Symfoware Server RDB管理者ガイド”を参照してく

ださい。

表3.1 環境変数一覧に環境変数の意味と設定内容を示します。

表3.1 環境変数一覧

環境変数名 意味 設定内容 設定内容の説明

PATH 実行パス名

ADJUSTのインストール先フォ

ルダ名

ACM連携サービスの文字コード変換機能を

使用する場合に必要です。

/usr/sbinが設定されていなけ

れば、現在の設定に追加して

ください。

MQDコマンドを実行するために必要です。

Symfowareのコマンド格納パ

ス名

メッセージ格納ファイルとしてデータベース

を使用する場合に必要です。

RDBNAME RDBIIシステム名 使用するRDBIIシステム名 メッセージ格納ファイルとしてデフォルト以外

のRDBIIシステムを使用する場合に必要で

す。

OD_CODE_SET

自サーバのコード

系 SJIS

EUC または SJIS (注)

イベントチャネル連携サービスでコード変換

機能を使用する場合に必要です。

環境変数名 意味 設定内容 設定内容の説明

LANG 使用言語 ja メッセージを日本語で表示するために必要

です。なお、本値は/etc/default/initで指定す

るデフォルトのLANGと同じ値にしてくださ

い。

ja_JP.PCK メッセージをシフトJISコードの日本語で表示

するために必要です。なお、本値は/etc/default/initで指定するデフォルトのLANGと

同じ値にしてください。

LD_LIBRARY_PATH

ライブラリパス名 FSUNiconvのライブラリ格納

パス名

ACM連携サービスの文字コード変換機能を

使用する場合、メッセージ格納ファイルとして

データベースを使用する場合に必要です。

Symfowareのライブラリ格納

パス名

メッセージ格納ファイルとしてデータベース

を使用する場合に必要です。

IS_SYSTEM マルチシステムの

システム名

マルチシステムのシステム名 イベントチャネル連携サービスをマルチシス

テム機能の拡張システムで使用する場合に

必要です。(イベントチャネル連携サービス

の環境作成時および運用時)

- 31 -

Page 49: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ サーバの文字コードと同一の設定をしてください。

・ 受信側のサーバの場合、“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”で指定する値と同一の値を設定

してください。

3.2.2 ファイル資源の準備

MQDを使用するためには、事前に各種ファイル資源を用意しておく必要があります。MQDで使用する各種ファイル資源について、

以下の順に説明します。

・ ファイルの種類

・ ファイル容量の見積り

・ パーティションの獲得と初期化

3.2.2.1 ファイルの種類

MQDを使用するためには、ファイルを使用する場合は図3.2 MQDの各種ファイル資源(ファイルを使用する場合)に示す各種ファイ

ル資源が必要です。また、データベースを使用する場合は図3.3 MQDの各種ファイル資源(データベースを使用する場合)に示す各

種ファイル資源が必要です。ユーザはMQD環境定義ファイルを作成するだけです。その他のファイルは、システムがMQDのシステム

環境の作成時に作成します。

図3.2 MQDの各種ファイル資源(ファイルを使用する場合)

- 32 -

Page 50: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

以下に各ファイルの用途を示します。

・ MQD環境定義ファイルは、MQD環境定義を格納するファイルです。

・ メッセージキュー管理ファイルは、メッセージキューを管理するファイルです。

・ メッセージ格納ファイルは、ディスク型メッセージキューのメッセージ格納域です。ディスク型メッセージキューに対する送受信メッ

セージを一時的に格納します。

・ メッセージ格納域管理ファイルは、メモリ型メッセージキューのメッセージ格納域を管理するためのファイルです。

・ トランザクション管理ファイルは、メッセージ保証のためにシステムが使用するファイルです。

・ システム制御ファイル1および2は、MQDのシステム制御用に使用するファイルです。

図3.3 MQDの各種ファイル資源(データベースを使用する場合)

- 33 -

Page 51: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

以下に各ファイルの用途を示します。

・ MQD環境定義ファイルは、MQD環境定義を格納するファイルです。

- 34 -

Page 52: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ MQD用データベースは、システムが使用するデータベースです。

・ データベーススペースは、データベースへのデータを格納する以下のファイルです。

NTFS(ローカルディスク)上のファイル

ローデバイスファイル

・ データベーススペースには、システム制御用とメッセージ格納用があります。システム制御用は、MQDがシステム制御用に使用し

ます。メッセージ格納用は、手動で追加することにより複数のデータベーススペースを使用できます。追加の手順は“5.3.3 メッセー

ジ格納ファイルの追加”を参照してください。

・ メッセージ格納テーブルは、ディスク型メッセージキューのメッセージ格納域です。ディスク型メッセージキューに対する送受信メッ

セージを一時的に格納します。

・ システム制御用テーブルは、MQDがシステム制御用に使用するテーブルです。

・ MQD用データベースは、Symfoware/RDBトランザクション連携機能を使用する場合は、連携する業務用データベースにシステム

環境を作成します。

3.2.2.2 ファイル容量の見積り

環境作成を行う前に各ファイルの容量見積りを行います。表3.2 ファイル容量の見積り方法(ファイルを使用する場合)にファイルを使

用する場合のファイル容量の見積り方法を示します。表3.3 ファイル容量の見積り方法(データベースを使用する場合)にデータベース

を使用する場合のファイル容量の見積り方法を示します。ファイル容量には、見積り値の1.2倍程度の余裕を持たせてください。

実際にシステムが獲得するファイルの大きさは、MQD環境定義で指定する値と余裕値の範囲内で異なる場合があります。

表3.2 ファイル容量の見積り方法(ファイルを使用する場合)ファイル種別 容量の見積り方法 容量の指定方法

MQD環境定義ファイル 3[Kバイト]程度 指定不要

メッセージキュー管理

ファイル

((メッセージキュー数 + 31) / 32 + 1) × 16 [Kバイ

ト]を目安に決定する。

指定不要

システムが算出

ディスク型メッセージキューの

メッセージ格納域(メッセージ

格納ファイル)

(平均メッセージ長 × 大蓄積メッセージ数 × 1.3) +(メッセージキュー数 × 16)+ 100 [Kバイト]を目安に

決定します。

MQD環境定義で指定

詳細は“3.3 環境定義の

記述”を参照

メモリ型メッセージキューのメッ

セージ格納域管理ファイル

16[Kバイト] 指定不要

トランザクション管理

ファイル

38[Mバイト]

指定不要

((1024 × 4) + 256 + (Transactionセクションの

Max_Size / 16 × 2))× 16 [Kバイト]を目安に決定し

ます。

MQD環境定義で指定し

たパラメタを元にシステ

ムが算出。詳細は“3.3環境定義の記述”を参

システム制御用ファイル1 ((メッセージキュー数 + 51) / 32 + 1) × 16 [Kバイ

ト]を目安に決定します。

指定不要

システムが算出

システム制御用ファイル2 500 [Kバイト] に以下の各サービスを使用する場合に

必要な値を加えた値を目安に決定します。なお、見積

MQD環境定義で指定

詳細は“3.3 環境定義の

記述”を参照

- 35 -

Page 53: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ファイル種別 容量の見積り方法 容量の指定方法

り結果が7[Mバイト]を下回る場合は、7[Mバイト]としま

す。

・ 同報配信サービスを使用する場合

32[Kバイト] + (同報グループ数 × 4[Kバイト])

・ ACM連携サービスを使用する場合

(送信キュー数 + 受信キュー数) ×16[Kバイト]

・ イベントチャネル連携サービスを使用する場合

1000 + (s + r) × 24 × 16[Kバイト]s: イベントチャネル連携サービスのサー

ビス定義で指定したCHANNELセクシ

ョン数

r: イベントチャネル連携サービスのサー

ビス定義で指定したすべてのRCHANNELセクションのrecvnumキーワードの

合計

・ SMTP連携サービスを使用する場合

32[Kバイト] + (送信キュー数 + 受信キュー数) ×0.4[Kバイト]

表3.3 ファイル容量の見積り方法(データベースを使用する場合)ファイル種別 容量の見積り方法 容量の指定方法

MQD環境定義ファイル 3[Kバイト]程度 指定不要

メッセージ格納テーブル 1メッセージキューの容量を決定します。

( 大格納メッセージ数 + 1 )× a × 1.3 × 32 [Kバイト] を目安に決定します。(注1)

a = 小数部切上げ(平均メッセージ長 / 30Kバイト)指定容量の 5%はインデックス部として、残りをデー

タ部として使用します。

見積り結果がメッセージキューによって違う場合に

は、あとから“5.3.6 メッセージキューの自動拡張”

などにより容量を拡張できますので、見積り結果の

小値を指定することをお薦めします。

なお、見積り結果が4096[Kバイト]を下回る場合

は、4096[Kバイト]とします。

MQD環境定義で指定

詳細は“3.3 環境定義の

記述”を参照

メッセージ格納用データベースス

ペース

メッセージ格納テーブルの容量 × メッセージキュー

数 × 1.2 を目安に決定します。

見積り結果がデータベーススペースの定量制限を

超える場合は、データベーススペースを追加して

ください。(注2) (注3)

MQD環境定義で指定

詳細は“3.3 環境定義の

記述”を参照

システム制御用データベースス

ペース

153,600[Kバイト]+ 大メッセージキュー数 × 4[Kバイト]+ 76,800[Kバイト] × (メッセージ格納用

データベーススペース容量[Mバイト] / 1024[Mバ

イト])に以下の必要な値を加えた値を目安に決定

します。

・ 同報配信サービスを使用する場合

10,240[Kバイト]

MQD環境定義で指定

詳細は“3.3 環境定義の

記述”を参照

- 36 -

Page 54: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ファイル種別 容量の見積り方法 容量の指定方法

・ ACM連携サービスを使用する場合

サービス対象のメッセージキュー数 × 128[Kバイト] + 1,280 [Kバイト]

・ イベントチャネル連携サービスを使用する場

33,168 + (0,256 × (送信キュー数 + 受信キュー

数)) [Kバイト]

・ データベーススペースを追加する場合(注2)76,800[Kバイト] × (追加データベーススペー

ス容量[Mバイト] / 1024[Mバイト])

・ SMTP連携サービスを使用する場合

1,536[Kバイト]

システム制御用データベーススペースの拡張は難

しいため、可能な限り大きな値を指定することをお

勧めします。

注1) 格納する個々のメッセージの長さと格納の順番により、格納できるメッセージ数が増減します。そのため、見積り結果の容量に

は、指定した 大格納メッセージ数のメッセージを格納できない場合があります。詳細な容量を算出する場合は、“付録E SQL記述ファ

イルの内容”と“Symfoware Server RDBユーザーズガイド データベース定義編”を参照してください。

注2) “5.3.3 メッセージ格納ファイルの追加”を参照してください。

注3) 定量制限はSymfoware/RDBに準じます。詳細はSymfowareのオンラインマニュアルを参照してください。

3.2.2.3 パーティションの獲得と初期化

ローデバイスファイルを使用する場合のハードディスク上のパーティションの獲得と初期化について説明します。

MQD環境定義ファイルを除く各種ファイルは、ローデバイスファイルに作成することができます。ローデバイスの設定においては、誤っ

て他のファイルを壊す恐れがあるため、慎重に作業を行う必要があります。

パーティションの獲得と初期化は、formatコマンドを使用して行います。パーティションの獲得と初期化時に指定する主な情報を以下

に示します。

・ DISK番号、パーティション番号

・ 確保する領域量(セクタ数で指定)なお、確保する領域量は必ず2Gバイト以下にしてください。2Gを超える領域に対してmqdsetupコマンドを実行すると、mqdsetupコマンドが復帰しなくなります。

パーティションの獲得と初期化の手順を以下に示します。

a. システムの“/dev”ディレクトリに含まれるデバイスファイルの名前を調べてください。

b. 使用可能なパーティションの名前を調べてください。

c. 必要分のパーティションを獲得して初期設定します。

1. パーティションがフォーマットされていることを確認します。フォーマットされていない場合は、formatコマンドを実行して

フォーマットを行います。

2. 次に、デバイスファイルのファイル所有者、ファイルのグループ所有権およびファイルモードをlsコマンドで確認し、必要

ならば、それぞれ、chownコマンド、chgrpコマンドおよびchmodコマンドを使用して適切な値に変更します。例えば、ファイ

ルの所有者と特定のグループ“MQDGRP”に属するユーザからのアクセスだけを許可したい場合は、以下のようにコマン

ドを実行します。

- 37 -

Page 55: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

chgrp MQDGRP /dev/rdsk/c1t2d0s1

chmod 660 /dev/rdsk/c1t2d0s1

chgrp MQDGRP /dev/dsk/c1t2d0s1

chmod 660 /dev/dsk/c1t2d0s1

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

3.2.3 データベース管理システムの設定

メッセージ格納ファイルとしてデータベースを使用する場合には、事前にデータベース管理システムの設定を行う必要があります。

詳細は、“Symfoware Server スタートガイド サーバ編”、“Symfoware Server RDB管理者ガイド”、“Symfoware Server RDBユーザー

ズガイド 応用プログラム開発編”を参照してください。

Symfoware/RDBトランザクション連携機能を使用する場合は、以下の設定を行う必要があります。

・ データベースの排他

データベースの排他

Symfoware/RDBトランザクション連携機能を使用する場合、データベースの排他は“占有の単位を行とする”設定をします。設定の方

法は、Symfoware/RDBのシステム用動作環境ファイルに定義を行います。

以下に、Symfoware/RDBのシステム用動作環境ファイルの定義記述例を示します。

; Symfoware/RDB システム用動作環境ファイル

; 排他の指定は“占有の単位を行とする”

R_LOCK = YES

3.2.4 データベース管理システムの起動

メッセージ格納ファイルとしてデータベースを使用する場合には、MQDのシステム環境を作成する前にデータベース管理システムを

起動する必要があります。

詳細は、“Symfoware Server スタートガイド サーバ編”と“Symfoware Server RDB管理者ガイド”を参照してください。

3.2.5 MQD利用者グループの作成

MQD利用者グループは、スーパユーザがMQDを運用するシステムのグループとして作成します。作成したMQD利用者グループに

は、MQDを運用するユーザのユーザアカウントを登録します。MQD利用者グループは、MQDのシステム環境の作成を行う前にあら

かじめ作成しておきます。

MQD利用者グループは、後述のMQDのシステム環境の作成を行う際に指定します。これにより、許可されていないユーザによる不

当なアクセスから以下の資源を保護します。

・ MQDのシステム資源

・ メッセージキュー

・ メッセージキューに格納されているメッセージ

MQD利用者グループ以外の以下のユーザについても、MQDを運用することができます。

・ Administratorsローカルグループのユーザ

・ SYSTEM

AdministratorsローカルグループのユーザだけでMQDを運用する場合は、MQD利用者グループを作成する必要はありません。

- 38 -

Page 56: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ スーパユーザ

MQDのシステム環境の作成を行う際にMQD利用者グループを指定しなかった場合には、Interstage運用グループがMQD利用者グ

ループとなります。

イベントチャネル連携サービスを使用する場合は、MQD利用者グループとInterstage運用グループを同一にしてください。

3.2.6 MQD環境定義の作成

MQD環境定義は、MQDの動作環境を定義します。MQD環境定義を格納するファイルをMQD環境定義ファイルと呼びます。MQD環境定義ファイルは、ユーザが任意のファイル上にテキストファイルとして作成します。この定義は、後述のMQDのシステム環境の作

成時に使用されます。

MQD環境定義では、以下の情報を定義します。

・ トランザクション管理ファイル情報

・ システム制御用ファイル情報

・ メッセージキュー管理ファイル情報

・ メッセージ格納ファイル情報

・ メッセージ格納域情報

・ メッセージ格納域の使用状況監視情報

テキストファイルを編集するツールを使用して定義してください。MQD環境定義の記述方法の詳細については、“3.3 環境定義の記

述”を参照してください。

3.2.7 MQDのシステム環境の作成

各種ファイル資源の確保と初期設定、MQD利用者グループの作成およびMQD環境定義の作成を行った後、MQDのシステム環境

を作成します。MQDのシステム環境の作成は、mqdsetupコマンドを使用して行います。このとき、MQD環境定義ファイルが入力情報と

なります。

MQDのシステム環境の作成を行うことにより、Windows®のサービスとしてMQDが登録されます。サービス名は、“MessageQueueDirectorMQDシステム名”です。MQDシステム名は、MQDのシステム環境の名称です。

以下にmqdsetupコマンドの入力例を示します。

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

mqdsetup -f MQDenv.def -g mqdusers

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

なお、MQDのシステム環境を再作成する場合は、MQDのシステム環境を削除した後、再度、上記のmqdsetupコマンドを実行してく

ださい。MQDのシステム環境の削除は、mqdunsetupコマンドを使用して行います。

以下にmqdunsetupコマンドの入力例を示します。

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

mqdunsetup

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

MQDのコマンドの詳細については、“第7章 コマンド”を参照してください。

- 39 -

Page 57: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

3.2.8 データベース管理システムの停止

メッセージ格納ファイルとしてデータベースを使用する場合、データベース管理システムを停止します。詳細は、“Symfoware Serverスタートガイド サーバ編”と“Symfoware Server RDB管理者ガイド”を参照してください。

3.3 環境定義の記述

ここでは、メッセージ格納ファイルに使用するファイルの種別によるMQD環境定義の記述方法について以下を説明します。

・ 環境定義の記述(ファイルを使用する場合)

・ 環境定義の記述(データベースを使用する場合)

・ 環境定義の記述の差異

3.3.1 環境定義の記述(ファイルを使用する場合)

ここでは、MQD環境定義の記述方法について以下を説明します。

・ 記述形式(ファイルを使用する場合)

・ 記述内容の説明(ファイルを使用する場合)

・ 記述例(ファイルを使用する場合)

なお、記述規約については、“付録A 定義記述規約”を参照してください。

3.3.1.1 記述形式(ファイルを使用する場合)

MQD環境定義は以下の形式で記述します。

記述形式(ファイルを使用する場合)

[MQDConfiguration]

QueueMax = 作成メッセージキュー数の最大値

MessageBufferMaxSize = メッセージバッファの最大長

[Transaction]

TransactionFile = トランザクション管理ファイルの名前

Max_Size = 1トランザクションで送受信するメッセージ長の合計の最大値

[SystemFile]

SystemFile1 = システム制御用ファイル1の名前

SystemFile2 = システム制御用ファイル2の名前

SystemFile2_Size = システム制御用ファイル2の容量

[QueueIndex]

File = メッセージキュー管理ファイルの名前

[DiskQueue]

File = ディスク型メッセージキューのメッセージ格納ファイルの名前

Size = ディスク型メッセージキューのメッセージ格納域の容量

[MemoryQueue]

File = メモリ型メッセージキューのメッセージ格納域管理ファイルの名前

Size = メモリ型メッセージキューのメッセージ格納域の容量

[WatchQueueUsed]

DiskQueue = ディスク型メッセージキューのメッセージ格納域の安全値と警告値

MemoryQueue = メモリ型メッセージキューのメッセージ格納域の安全値と警告値

3.3.1.2 記述内容の説明(ファイルを使用する場合)

MQD環境定義の記述内容について以下に説明します。

なお、本項で指定する各ファイルは、すべて新規ファイルです。ただし、ディレクトリについては、既存の(実在する)ものを指定する必

要があります。

- 40 -

Page 58: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

a) MQDConfigurationセクション

MQD環境の情報を記述します。記述内容を表3.4 MQDConfigurationセクションの記述内容に示します。

表3.4 MQDConfigurationセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

QueueMax 不可 数値 1~30000の数値で指定します。 作成メッセージキュー数の 大値を指定し

ます。(注1)

MessageBufferMaxSize

可 数値 1~1024の数値で指定します。

[Mバイト]の単位で指定します。

省略値は80Mバイトです。

一時的にメッセージを格納するバッファの

大長を指定します。

このバッファは、共有メモリ上に獲得され、不

足時に指定された値の1/10ずつ、指定され

た値まで拡張されます。(注2)

QMKind 可 文字列 “MQD”を指定します。 メッセージ格納ファイルの種別を指定しま

す。

注1) MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービス

に必要な値を加えた値以上を指定してください。

・ イベントチャネル連携サービスを使用する場合

(送信キュー数 + 受信キュー数) * 2

注2) 使用バッファ量の見積もりは以下の式に従ってください。

(アプリケーションが1トランザクションで扱うメッセージ長の合計の 大値) * (同時に起動するアプリケーション数) * 2

MQDの拡張機能を使用する場合、上記見積もりに以下の値を追加してください。

サービス名 追加する値

同報配信サービス 同報グループ数 * 平均メッセージ長 * 2

ACM連携サービス 1

イベントチャネル連携サービス (送信キュー数 + 受信キュー数) * 平均メッセージ長 * 2

SMTP連携サービス (送信キュー数 + 受信キュー数) * 平均メッセージ長 * 2

b) Transactionセクション

トランザクション管理ファイル情報を記述します。記述内容を表3.5 Transactionセクションの記述内容に示します。

表3.5 Transactionセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

TransactionFile

不可 文字列 絶対パス名で指定します。

NTFS(ローカルディスク)上のファイル

を指定します。

ローデバイスファイル(推奨)または通常

ファイルを指定します。(注1)

トランザクション管理ファイルの名前を指定

します。

Max_Size 可 数値 16~65536の数値で指定します。[Kバ

イト]の単位で指定します。

省略値は65536[Kバイト]です。

1トランザクションで送受信するメッセージ長

の合計の10倍を指定します。その値が65536を超える場合には、65536を指定してくださ

い。

上限値を設定することで、アプリケーション

- 41 -

Page 59: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

の異常(異常ループなど)によるMQD資源の

圧迫や枯渇を防止できます。(注2)

注1) ローデバイスファイルを使用する場合、ローデバイスの領域量は必ず2Gバイト以下にしてください。2Gを超える領域を指定する

と、mqdsetupコマンドが復帰しなくなります

注2) MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービス

に必要な値を加えた値以上を指定してください。

・ ACM連携サービスを使用する場合

1000

・ 同報配信サービスを使用する場合

1ユニット内のユーザデータ長の合計 + MQDヘッダ長 × 1ユニット内メッセージ数

・ イベントチャネル連携サービスを使用する場合

14400、または

ユーザデータの 大長[Kバイト] × パッキング数 + 256 を比べて大きいほうの値

なお、パッキング数は、イベントチャネル連携サービスのサービス定義のpackmsg_cntキーワードで指定します。

・ SMTP連携サービスを使用する場合

1ユニット内のユーザデータ長の合計 + MQDヘッダ長 × 1ユニット内メッセージ数

c) SystemFileセクション

MQDが使用するシステム制御用ファイルの情報を記述します。記述内容を表3.6 SystemFileセクションの記述内容に示します。

表3.6 SystemFileセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

SystemFile1 不可 文字列 絶対パス名で指定します。

NTFS(ローカルディスク)上のファイル

を指定します。

通常ファイルまたはローデバイスファイ

ルを指定します。(注1)

システム制御用ファイル1の名前を指定しま

す。

SystemFile2 不可 文字列 同上 システム制御用ファイル2の名前を指定しま

す。

SystemFile2_Size

不可 数値 80~2097151の数値で指定します。

[Kバイト]の単位で指定します。

システム制御用ファイル2の容量を指定しま

す。

注1) ローデバイスファイルを使用する場合、ローデバイスの領域量は必ず2Gバイト以下にしてください。2Gを超える領域を指定する

と、mqdsetupコマンドが復帰しなくなります

d) QueueIndexセクション

メッセージキュー管理ファイル情報を記述します。記述内容を表3.7 QueueIndexセクションの記述内容に示します。

表3.7 QueueIndexセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

File 不可 文字列 絶対パス名で指定します。 メッセージキュー管理ファイルの名前を指定

します。

- 42 -

Page 60: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

NTFS(ローカルディスク)上のファイル

を指定します。

通常ファイル(推奨)またはローデバイス

ファイルを指定します。(注1)

注1) ローデバイスファイルを使用する場合、ローデバイスの領域量は必ず2Gバイト以下にしてください。2Gを超える領域を指定する

と、mqdsetupコマンドが復帰しなくなります

e) DiskQueueセクション

メッセージ保証レベルがディスク型のメッセージキューを利用する場合に、ディスク型メッセージキューの情報を記述します。記述内容を

表3.8 DiskQueueセクションの記述内容に示します。

表3.8 DiskQueueセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

File 不可 文字列 絶対パス名で指定します。

NTFS(ローカルディスク)上のファイル

を指定します。

通常ファイル(推奨)またはローデバイス

ファイルを指定します。(注1)

ディスク型メッセージキューのメッセージ格

納域(メッセージ格納ファイル)の名前を指定

します。

Size 不可 数値 80~2097151の数値で指定します。[Kバイト]の単位で指定します。

ディスク型メッセージキューのメッセージ格

納域(メッセージ格納ファイル)の容量を指定

します。(注2)

注1) ローデバイスファイルを使用する場合、ローデバイスの領域量は必ず2Gバイト以下にしてください。2Gを超える領域を指定する

と、mqdsetupコマンドが復帰しなくなります

注2) MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービス

に必要な値を加えた値以上を指定してください。

f) MemoryQueueセクション

メッセージ保証レベルがメモリ型のメッセージキューを利用する場合に、メモリ型メッセージキューの情報を記述します。記述内容を表

3.9 MemoryQueueセクションの記述内容に示します。

表3.9 MemoryQueueセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

File 不可 文字列 絶対パス名で指定します。

NTFS(ローカルディスク)上のファイル

を指定します。

メモリ型メッセージキューのメッセージ格納

域を管理するファイルの名前を指定します。

- 43 -

Page 61: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

通常ファイルを指定します。

Size 不可 数値 80~524288の数値で指定します。

[Kバイト]の単位で指定します。

メモリ型メッセージキューのメッセージ格納域

(メモリ上)の容量を指定します。メモリ型メッ

セージキューのメッセージ格納域の容量見

積もり式は、ディスク型と同一ですので、“表

3.2 ファイル容量の見積り方法(ファイルを使

用する場合)”の“ディスク型メッセージキュー

のメッセージ格納域”の式で求めてくださ

い。

g) WatchQueueUsedセクション

メッセージ格納域の使用状況の監視を行う場合に記述します。記述内容を表3.10 WatchQueueUsedセクションの記述内容に示しま

す。

表3.10 WatchQueueUsedセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

DiskQueue 可 数値 “安全値-警告値”の形式で指定しま

す。安全値は0~99[%]、警告値は1~100[%]の範囲で指定します。安全値と

警告値は、安全値 < 警告値の関係で

なければなりません。

ディスク型メッセージキューのメッセージ格

納域の使用量に対する安全値と警告値を

設定します。キーワードを省略した場合、メッ

セージ格納域がない場合、メッセージ格納

域の使用状況監視は行われません。

MemoryQueue

可 数値 “安全値-警告値”の形式で指定しま

す。安全値は0~99[%]、警告値は1~100[%]の範囲で指定します。安全値と

警告値は、安全値 < 警告値の関係で

なければなりません。

メモリ型メッセージキューのメッセージ格納

域の使用量に対する安全値と警告値を設

定します。キーワードを省略した場合、メッ

セージ格納域がない場合、メッセージ格納

域の使用状況監視は行われません。

3.3.1.3 記述例(ファイルを使用する場合)

MQD環境定義の記述例を以下に示します。

[MQDConfiguration] # MQD環境の情報

QueueMax = 200

MessageBufferMaxSize = 80 # 80Mバイト

#

[Transaction] # トランザクション管理ファイルの情報

TransactionFile = c:\mqdfile\transactionfile

Max_Size = 65536

#

[SystemFile] # システム制御用ファイルの情報

SystemFile1 = c:\mqdfile\systemfile1

SystemFile2 = c:\mqdfile\systemfile2

SystemFile2_Size = 8000 # 8Mバイト

#

[QueueIndex] # メッセージキュー管理ファイルの情報

File = c:\mqdfile\queueindex

#

[DiskQueue] # ディスク型メッセージキューの情報

File = c:\mqdfile\diskqueuefile

Size = 50000 # 50Mバイト

#

[MemoryQueue] # メモリ型メッセージキューの情報

File = c:\mqdfile\memoryqueuefile

- 44 -

Page 62: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Size = 3000 # 3Mバイト

#

[WatchQueueUsed] # メッセージ格納域の使用状況監視情報

DiskQueue = 60-80

MemoryQueue = 50-70

[MQDConfiguration] # MQD環境情報

QueueMax = 100

MessageBufferMaxSize = 80 # 80Mバイト

#

[Transaction] # トランザクション管理ファイル情報

TransactionFile = /dev/rdsk/c1t2d0s1

Max_Size = 65536

#

[SystemFile] # システム制御用ファイル情報

SystemFile1 = /mqdfile/systemfile1

SystemFile2 = /mqdfile/systemfile2

SystemFile2_Size = 8000 # 8Mバイト

#

[QueueIndex] # メッセージキュー管理ファイル情報

File = /mqdfile/indexfile

#

[DiskQueue] # ディスク型メッセージキューの情報

File = /mqdfile/diskfile

Size = 100000 # 100Mバイト

#

[MemoryQueue] # メモリ型メッセージキューの情報

File = /mqdfile/memoryfile

Size = 5000 # 5Mバイト

#

[WatchQueueUsed] # メッセージ格納域の使用状況監視情報

DiskQueue = 60-80

MemoryQueue = 50-70

3.3.2 環境定義の記述(データベースを使用する場合)

ここでは、MQD環境定義の記述方法について以下を説明します。

・ 記述形式(データベースを使用する場合)

・ 記述内容の説明(データベースを使用する場合)

・ 記述例(データベースを使用する場合)

なお、記述規約については、“付録A 定義記述規約”を参照してください。

3.3.2.1 記述形式(データベースを使用する場合)

MQD環境定義は以下の形式で記述します。

記述形式 (データベースを使用する場合)

[MQDConfiguration]

QueueMax = 作成メッセージキュー数の最大値

MessageBufferMaxSize = メッセージバッファの最大長

QMKind = メッセージ格納ファイルの種別

DBName = Symfoware/RDBトランザクション連携機能を使用する

- 45 -

Page 63: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

業務用データベース名 (注)

[SystemFile]

SystemFile = システム制御用データベーススペースのファイルの名前

SystemFile_Size = システム制御用データベーススペースのファイルの容量

[DiskQueue]

File = メッセージ格納用データベーススペースのファイルの名前

Size = メッセージ格納用データベーススペースのファイルの容量

QueueQuota = 1メッセージキューの容量

注) Symfoware/RDBトランザクション連携機能を使用する場合にだけ指定します。

3.3.2.2 記述内容の説明(データベースを使用する場合)

MQD環境定義の記述内容について以下に説明します。

なお、本項で指定する各ファイルは、すべて新規ファイルです。ただし、ディレクトリについては、既存の(実在する)ものを指定する必

要があります。

a) MQDConfigurationセクション

MQD環境の情報を記述します。記述内容を表3.11 MQDConfigurationセクションの記述内容に示します。

表3.11 MQDConfigurationセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

QueueMax 不可 数値 1~30000の数値で指定します。 作成メッセージキュー数の 大値を指定し

ます。(注2)

MessageBufferMaxSize

可 数値 1~1024の数値で指定します。

[Mバイト]の単位で指定します。

省略値は80Mバイトです。

一時的にメッセージを格納するバッファの

大長を指定します。

メッセージ格納ファイルとしてデータベース

を使用する場合には、全メッセージキュー内

に滞留しているメッセージ数×32[バイト]をこのバッファで使用します。このバッファは、

共有メモリ上に獲得され、不足時に指定さ

れた値の1/10ずつ、指定された値まで拡張

されます。

QMKind 不可 文字列 “RDB”を指定します。 メッセージ格納ファイルの種別を指定しま

す。“RDB”を指定した場合は、データベー

スとして、Symfoware/RDBを使用します。

DBName

可 文字列 データベース名を指定します。 Symfoware/RDBトランザクション連携機能を

使用する場合に、MQDのシステム環境を作

成する業務用データベース名を指定しま

す。(注1)

注1) 業務用データベースは事前に作成してください。

注2) MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービス

に必要な値を加えた値以上を指定してください。

・ イベントチャネル連携サービスを使用する場合

(送信キュー数 + 受信キュー数) * 2

b) Transactionセクション

トランザクション管理ファイル情報を記述します。記述内容を表3.12 Transactionセクションの記述内容に示します。

- 46 -

Page 64: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表3.12 Transactionセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

Max_Size 可 数値 16~65536の数値で指定します。[Kバ

イト]の単位で指定します。

省略値は65536[Kバイト]です。

1トランザクションで送受信するメッセージ長

の合計をアプリケーションごとに求め、同時

実行するアプリケーションの前述合計の総

和を指定します。

上限値を設定することで、アプリケーション

の異常(異常ループなど)によるMQD資源の

圧迫や枯渇を防止できます。(注1)

注1) MQDの拡張機能を使用する場合、各サービスに対して以下の値が必要です。アプリケーションで必要な値に使用するサービス

に必要な値を加えた値以上を指定してください。

・ ACM連携サービスを使用する場合

1000

・ 同報配信サービスを使用する場合

1ユニット内のユーザデータ長の合計 + MQDヘッダ長 × 1ユニット内メッセージ数

・ イベントチャネル連携サービスを使用する場合

14400、または

ユーザデータの 大長[Kバイト] × パッキング数 + 256 を比べて大きいほうの値

なお、パッキング数は、イベントチャネル連携サービスのサービス定義のpackmsg_cntキーワードで指定します。

・ SMTP連携サービスを使用する場合

1ユニット内のユーザデータ長の合計 + MQDヘッダ長 × 1ユニット内メッセージ数

c) SystemFileセクション

MQDが使用するシステム制御用ファイルの情報を記述します。記述内容を表3.13 SystemFileセクションの記述内容に示します。

表3.13 SystemFileセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

SystemFile 不可 文字列 絶対パス名で指定します。

NTFS(ローカルディスク)上のファイル

を指定します。

ローデバイスファイルを指定します。

システム制御用ファイル(システム制御用デー

タベーススペース)の名前を指定します。

SystemFile_Size

不可 数値 153600以上の数値で指定します。[Kバイト]の単位で指定します。

システム制御用ファイル(システム制御用デー

タベーススペース)の容量を指定します。

“表3.3 ファイル容量の見積り方法(データ

ベースを使用する場合)”の“システム制御

用データベーススペース”の式で求めてくだ

さい。

大値はSymfoware/RDBの定量制限に準

じます。

d) DiskQueueセクション

メッセージ保証レベルがディスク型のメッセージキューを利用する場合に、ディスク型メッセージキューの情報を記述します。記述内容を

表3.14 DiskQueueセクションの記述内容に示します。

- 47 -

Page 65: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表3.14 DiskQueueセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

File 不可 文字列 絶対パス名で指定します。

NTFS(ローカルディスク)上のファイル

を指定します。

ローデバイスファイルを指定します。

ディスク型メッセージキューのメッセージ格

納域(メッセージ格納ファイルとしてのデータ

ベーススペース)の名前を指定します。

Size 不可 数値 4096以上の数値で指定します。

[Kバイト]の単位で指定します。

ディスク型メッセージキューのメッセージ格

納域(メッセージ格納ファイルとしてのデータ

ベーススペース)の容量を指定します。

“表3.3 ファイル容量の見積り方法(データ

ベースを使用する場合)”の“メッセージ格納

用データベーススペース”の式で求めてくだ

さい。

大値はSymfoware/RDBの定量制限に準

じます。

QueueQuota 不可 数値 4096以上の数値で指定します。[Kバイ

ト]の単位で指定します。

データベーススペースから割り当てる1メッセージキューの容量を指定します。

“表3.3 ファイル容量の見積り方法(データ

ベースを使用する場合)”の“メッセージ格納

テーブル”の式で求めてください。

3.3.2.3 記述例(データベースを使用する場合)

MQD環境定義の記述例を以下に示します。

[MQDConfiguration] # MQD環境情報

QueueMax = 50

MessageBufferMaxSize = 256 # 256Mバイト

QMKind = RDB # メッセージ格納ファイルとして

# データベースを使用

#

[SystemFile] # システム制御用ファイル情報

SystemFile = c:\mqdfile\systemfile # システム制御用データベーススペース

SystemFile_Size = 2000000 # 2Gバイト

#

[DiskQueue] # ディスク型メッセージキューの情報

File = c:\mqdfile\diskquefile # メッセージ格納用データベーススペース

Size = 2000000 # 2Gバイト

QueueQuota = 40000 # 40Mバイト

Symfoware/RDBトランザクション連携機能を使用しない場合

[MQDConfiguration] # MQD環境情報

- 48 -

Page 66: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

QueueMax = 50

MessageBufferMaxSize = 256 # 256Mバイト

QMKind = RDB # メッセージ格納ファイルとして

# データベースを使用

#

[SystemFile] # システム制御用ファイル情報

SystemFile = /dev/rdsk/c1t2d0s3 # システム制御用データベーススペース

SystemFile_Size = 2000000 # 2Gバイト

#

[DiskQueue] # ディスク型メッセージキューの情報

File = /dev/rdsk/c1t2d0s5 # メッセージ格納用データベーススペース

Size = 2000000 # 2Gバイト

QueueQuota = 40000 # 40Mバイト

Symfoware/RDBトランザクション連携機能を使用する場合

[MQDConfiguration] # MQD環境情報

QueueMax = 50

MessageBufferMaxSize = 256 # 256Mバイト

QMKind = RDB # メッセージ格納ファイルとして

# データベースを使用

DBName = GYOMU_DB1 # Symfoware/RDBトランザクション連携機能を

# 使用する業務用データベース名

#

[SystemFile] # システム制御用ファイル情報

SystemFile = /dev/rdsk/c1t2d0s3 # システム制御用データベーススペース

SystemFile_Size = 2000000 # 2Gバイト

#

[DiskQueue] # ディスク型メッセージキューの情報

File = /dev/rdsk/c1t2d0s5 # メッセージ格納用データベーススペース

Size = 2000000 # 2Gバイト

QueueQuota = 40000 # 40Mバイト

3.3.3 環境定義の記述の差異

メッセージ格納ファイルの種別によるMQD環境定義の記述形式の差異を、表3.15 メッセージ格納ファイルの種別による定義の記述一覧

に示します。

表3.15 メッセージ格納ファイルの種別による定義の記述一覧

セクション/キーワードファイルを使用す

る場合

データベースを使用

する場合備考

MQDConfigurationセクション ◎ ◎ MQD環境情報

QueueMaxキーワード ◎ ◎ メッセージキュー数の 大値

MessageBufferMaxSizeキーワー

○ ○ メッセージバッファの 大長

QMKindキーワード ○ ◎ メッセージ格納ファイルの種別

DBNameキーワード

× ○(注1) Symfoware/RDBトランザクション連携機

能を使用する業務用データベース名

Transactionセクション ◎ ○ トランザクション管理情報

TransactionFileキーワード ◎ × トランザクション管理ファイル

Max_Sizeキーワード ○ ○ メッセージ 大長/1トランザクション

SystemFileセクション ◎ ◎ システム制御用ファイル情報

SystemFile1キーワード ◎ × システム制御用ファイル1

- 49 -

Page 67: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

セクション/キーワードファイルを使用す

る場合

データベースを使用

する場合備考

SystemFile2キーワード ◎ × システム制御用ファイル2

SystemFile2_Sizeキーワード ◎ × 上記ファイルの容量

SystemFileキーワード × ◎ システム制御用データベーススペース

SystemFile_Sizeキーワード × ◎ 上記データベーススペースの容量

QueueIndexセクション ◎ × メッセージキュー管理情報

Fileキーワード ◎ × メッセージキュー管理ファイル

DiskQueueセクション ○(注2) ◎ ディスク型メッセージキューの情報

Fileキーワード ◎(注3) ◎ メッセージ格納ファイル

Sizeキーワード ◎(注3) ◎ 上記ファイルの容量

QueueQuotaキーワード × ◎ 1つのメッセージキューの容量

MemoryQueueセクション ○(注2) × メモリ型メッセージキューの情報

Fileキーワード ◎(注4) × メッセージ格納域管理ファイル

Sizeキーワード ◎(注4) × メッセージ格納域の容量

WatchQueueUsedセクション ○ × メッセージ格納域の使用状況監視情報

DiskQueueキーワード ○ × ディスク型の安全値と警告値

MemoryQueueキーワード ○ × メモリ型の安全値と警告値

◎: 必須、○: 指定可(省略可)、×: 指定不可

注1) Symfoware/RDBトランザクション連携機能を使用する場合、必須

注2) DiskQueueセクション、MemoryQueueセクションのいずれかの指定が必須

注3) DiskQueueセクションを指定した場合、必須

注4) MemoryQueueセクションを指定した場合、必須

- 50 -

Page 68: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第4章 運用

本章では、MQDの基本機能を使用する場合の運用の手順や方法について、以下の順に説明しています。

4.1 運用操作の手順

4.2 運用操作の説明

なお、本章に記述されているMQDのコマンドの詳細については、“第7章 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で運用操作をすることはできません。コンソール

上で運用操作をしてください。

4.1 運用操作の手順

MQDの基本機能を使用するための操作手順を図4.1 MQDの運用操作手順に示します。

- 51 -

Page 69: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図4.1 MQDの運用操作手順

4.2 運用操作の説明

以下の各運用操作について説明します。

・ データベース管理システムの起動

・ MQDの起動

・ Interstageの起動

・ メッセージキューの作成

・ メッセージキュー情報の表示

・ メッセージキューのアクセス状態の変更

・ メッセージキューの削除

- 52 -

Page 70: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ Interstageの停止

・ MQDの停止

・ データベース管理システムの停止

4.2.1 データベース管理システムの起動

メッセージ格納ファイルとしてデータベースを使用する場合には、MQDを起動する前にデータベース管理システムを起動する必要が

あります。

詳細は、“Symfoware Server スタートガイド サーバ編”と“Symfoware Server RDB管理者ガイド”を参照してください。

4.2.2 MQDの起動

MQDを使用するためには、まず、MQDを起動する必要があります。

MQDはWindows®のサービスとして動作します。このため、MQDの起動は以下のいずれかの方法で行います。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ MQDのシステム環境の作成後に、サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システ

ムの起動時に自動的にMQDを起動する。

MQDの起動は、mqdstrコマンドを使用して行います。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

4.2.3 Interstageの起動

Interstageのアプリケーションを使用する場合には、MQDの起動後にInterstageを起動する必要があります。Interstageの起動は、Interstageのisstartコマンドを使用して行います。Interstageの起動方法は、“運用ガイド(基本編)”を参照してください。

4.2.4 メッセージキューの作成

メッセージの送受信を行うためには、事前にメッセージキューを作成しておく必要があります。まだ作成していない場合は作成してく

ださい。メッセージキューの作成は、mqdcrtqコマンドを使用して行います。この操作によりメッセージキューの状態は“送受信可能状

態”になります。

以下にmqdcrtqコマンドの入力例を示します。

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

mqdcrtq Qname_001

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

4.2.5 メッセージキュー情報の表示

メッセージキュー情報の表示は、mqdprtqコマンドを使用して行います。このコマンドは、作成したメッセージキューを確認する場合や

運用中のメッセージキューの状態を見る場合に使用します。

以下にmqdprtqコマンド(メッセージキュー名の一覧表示)の入力例を示します。

- 53 -

Page 71: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdprtq

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

4.2.6 メッセージキューのアクセス状態の変更

メッセージキューのアクセス状態の変更は、mqdchgqコマンドを使用して行います。このコマンドは、メッセージキューのアクセス状態

を送信禁止や受信禁止の状態にしたり、その禁止状態を解除する場合に使用します。

送信禁止は、アプリケーションからのメッセージ送信を抑止して、受信側アプリケーションを動作させることで、メッセージキューに滞留

しているすべてのメッセージを処理したい場合などに使用します。受信禁止は、アプリケーションが誤ってメッセージを受信することを

防ぐ場合などに使用します。

以下にmqdchgqコマンド(メッセージの受信を禁止する)の入力例を示します。

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

mqdchgq -c -r Qname01

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

4.2.7 メッセージキューの削除

不要なメッセージキューがある場合は、そのメッセージキューを削除します。メッセージキューの削除は、mqddltqコマンドを使用して

行います。

以下にmqddltqコマンドの入力例を示します。

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

mqddltq Qname99

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

4.2.8 Interstageの停止

Interstageのアプリケーションを使用している場合には、MQDの停止前にInterstageを停止する必要があります。Interstageの停止は、

Interstageのisstopコマンドを使用して行います。Interstageの停止方法は、“運用ガイド(基本編)”を参照してください。

4.2.9 MQDの停止

MQDを使用するすべてのアプリケーションを終了させた後、MQDを停止します。

MQDの停止は、Windows®の[サービス]画面で行います。

MQDの停止は、mqdstpコマンドを使用して行います。

以下にmqdstpコマンドの入力例を示します。

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

mqdstp

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

4.2.10 データベース管理システムの停止

メッセージ格納ファイルとしてデータベースを使用する場合は、データベース管理システムを停止します。

詳細は、“Symfoware Server スタートガイド サーバ編”と“Symfoware Server RDB管理者ガイド”を参照してください。

- 54 -

Page 72: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第5章 保守

本章では、MQD環境の変更や拡張方法について以下の順に説明しています。

5.1 メッセージキューの追加/削除

5.2 ファイルの容量変更

5.3 メッセージ格納ファイルとしてデータベースを使用する場合の保守

なお、本章に記述されているMQDのコマンドの詳細については、“第7章 コマンド”を参照してください。

5.1 メッセージキューの追加/削除

本節では、メッセージキューの保守作業について以下を説明します。

・ メッセージキューの追加

・ メッセージキューの削除

5.1.1 メッセージキューの追加

メッセージキューは、MQDが起動していれば、いつでも追加することができます。新規に追加したメッセージキューは、直ちにアプリ

ケーションで使用することができます。メッセージキューの追加は、mqdcrtqコマンドを使用して行います。

メッセージキューの追加手順を図5.1 メッセージキューの追加手順に示します。

図5.1 メッセージキューの追加手順

5.1.2 メッセージキューの削除

不要なメッセージキューは、MQDが起動していれば、削除することができます。削除する前に、mqdprtqコマンドを実行して、メッセー

ジキュー内にメッセージがないかを確認してください。メッセージがある場合は、以下のいずれかの方法で削除できます。

・ すべてのメッセージを取り出した後、メッセージキューを削除

・ メッセージキューを強制的に削除

メッセージキューの削除は、mqddltqコマンドを使用して行います。

なお、該当のメッセージキューを使用(接続)しているアプリケーションが存在する場合には、事前にそのアプリケーションを終了してお

く必要があります。

- 55 -

Page 73: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メッセージキューの削除手順を図5.2 メッセージキューの削除手順に示します。

図5.2 メッセージキューの削除手順

5.2 ファイルの容量変更

本節では、ファイル容量の保守作業について以下を説明します。

・ メッセージ格納域の容量変更

5.2.1 メッセージ格納域の容量変更

以下のメッセージ格納域の容量変更について説明します。

・ ディスク型メッセージキューのメッセージ格納域(メッセージ格納ファイル)

・ メモリ型メッセージキューのメッセージ格納域

メッセージ格納域の容量を変更する場合は、MQDのシステム環境を再作成する必要があります。また、メッセージキューの再作成も

必要です。

メッセージ格納域の容量変更は、業務終了後、メッセージキュー内にメッセージがなくなったことを確認してから開始してください。

メッセージ格納域の容量変更手順を図5.3 メッセージ格納域の容量変更手順に示します。

- 56 -

Page 74: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図5.3 メッセージ格納域の容量変更手順

5.3 メッセージ格納ファイルとしてデータベースを使用する場合の保守

メッセージ格納ファイルにデータベースを使用した場合は、データベース管理システムの機能を直接使用することで、メッセージ格納

域の追加やメッセージキューの拡張、メッセージの退避と復旧などが可能になります。

本節では、メッセージ格納ファイルにデータベースを使用した場合の保守作業について以下を説明します。

・ データベースの構成

・ SQL記述ファイル

・ メッセージ格納ファイルの追加

・ MQDのシステム環境の削除(データベーススペースを追加した場合)

・ メッセージ格納ファイル満杯時のメッセージキューの追加

・ メッセージキューの自動拡張

なお、データベース管理システムの機能を直接使用した場合は、MQDシステムを壊すおそれがあるため、以降に説明する保守操作

以外の操作は行わないでください。MQDシステムが使用しているデータベースを直接操作した場合、MQDシステムの動作は保証さ

れません。また、保守操作を行う上でも十分な注意が必要です。データベース管理システムの機能を十分理解して操作を行ってくだ

さい。

5.3.1 データベースの構成

メッセージ格納ファイルにデータベースを指定すると、データベース管理システムにMQD用のデータベースが作成されます(注)。作

成されたデータベースでは、システム制御用とメッセージ格納用にデータベーススペースを使用します。システム制御用データベース

- 57 -

Page 75: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

スペースには、MQDの動作で必要な制御用のテーブルが割当てられます。メッセージ格納用データベーススペースには、メッセージ

を格納するメッセージキュー用のテーブルが割当てられます。

データベースの構成を図5.4 データベースの構成に示します。

注)Symfoware/RDBトランザクション連携機能を使用する場合は、MQD用のデータベースとして業務用データベースを使用します。

図5.4 データベースの構成

*1 データベース名:

MQD_MQDシステム名

Symfoware/RDBトランザクション連携機能を使用する場合、業務用データベース名

Symfoware/RDBトランザクション連携機能を使用しない場合、MQD_MQDシステム名

*2 MQDシステム名 : mqdsetupコマンドで指定したMQDシステム名

*3 システム制御用: システム制御で使用されるテーブルの総称

- 58 -

Page 76: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

テーブル 個々のテーブル名は“表5.1 SQL記述ファイルの一覧”を参照

*4 メッセージ格納: メッセージキューに対応するテーブル

テーブル

*5 通番 : システムにより自動的に採番された数字

5.3.2 SQL記述ファイル

メッセージ格納ファイルにデータベースを使用したとき、MQD環境の作成やメッセージキューの作成、MQD拡張機能の環境作成で

は、SQL文(データベースの作成やスキーマ定義、表定義など)を記述したファイルを生成します。これらのファイルを、SQL記述ファイル

と呼びます。

SQL記述ファイルを使用することで、データベースの退避・復旧やメッセージキューの容量の拡張などのデータベース管理システム

の保守・管理機能が利用できます。データベース管理システムの保守・管理の詳細は、“Symfoware Server RDB管理者ガイド”を参照

してください。

SQL記述ファイルの生成とデータベースの保守・管理を図5.5 SQL記述ファイルの生成とデータベースの保守・管理に、生成されるSQL記述ファイルの一覧を表5.1 SQL記述ファイルの一覧に示します。

図5.5 SQL記述ファイルの生成とデータベースの保守・管理

表5.1 SQL記述ファイルの一覧

処理 ファイル名 (注1)格納先

(注2)説明

MQD環境の作成 MQD_MQDシステム名.sql (注3) S MQD用データベースの作成用

- 59 -

Page 77: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

処理 ファイル名 (注1)格納先

(注2)説明

SYS_QUETABLE.sql S MQD拡張機能用キュー管理テーブルの作成用

USR_QUETABLE.sql S メッセージキュー管理テーブルの作成用

MQD_MSGCHAIN.sql S メッセージ制御テーブルの作成用

MQD_QUEFCTRL.sql S キュー制御テーブルの作成用

MQD_TRNFCTRL.sql S トランザクション制御テーブルの作成用

メッセージキューの作

メッセージキュー名.sql (注4) U メッセージ格納テーブルの作成用

(注

7)

同報配信

MQDシステム名MCASDENV.sql(注3) S 同報配信用環境定義テーブルの作成用

MQDシステム名MCASDEFC.sql(注3) S 同報配信用定義(反映)テーブルの作成用

MQDシステム名MCASDEFD.sql(注3) S 同報配信用定義(登録)テーブルの作成用

SMTP連携

MQDSCOMENV.sql S SMTP連携用環境定義テーブルの作成用

MQDSCOMQUE0.sql S SMTP連携用現サービス定義テーブルの作成用

MQDSCOMQUE1.sql S SMTP連携用新サービス定義テーブルの作成用

MQDSCOMPWD.sql S SMTP連携用情報格納テーブルの作成用

ACM連携

MQDシステム名ACOMDEFD.sql (注3) S ACM連携用定義(登録)テーブルの作成用

MQDシステム名ACOMDEFC.sql (注3) S ACM連携用定義(反映)テーブルの作成用

MQDシステム名

ACOMDEFSSYN.sql(注3)S ACM連携用同期情報管理テーブルの作成用

送信キュー名MNGR.sql (注5) S ACM連携用送信キュー同期テーブルの作成用

ACOMS通番.sql (注6) S ACM連携用受信キュー同期テーブルの作成用

注1) SQL記述ファイルの内容については、“付録E SQL記述ファイルの内容”を参照してください。

注2) 格納先(格納ディレクトリ)

S: MQDインストールディレクトリ\mqd\MQDシステム名\qm\etc\sys

システム制御用テーブルのSQL記述ファイルが格納されます。

U: MQDインストールディレクトリ\mqd\MQDシステム名\qm\etc

メッセージ格納テーブルのSQL記述ファイルが格納されます。

クラスタサービス機能を使用する場合、MQDインストールディレクトリは、ClusterセクションのSystemDirectoryキーワードで指定し

たディレクトリになります。

S: MQDインストールディレクトリ/mqd/MQDシステム名/qm/etc/sys

システム制御用テーブルのSQL記述ファイルが格納されます。

U: MQDインストールディレクトリ/mqd/MQDシステム名/qm/etc

メッセージ格納テーブルのSQL記述ファイルが格納されます。

クラスタサービス機能を使用する場合、MQDインストールディレクトリは、ClusterセクションのSystemDirectoryキーワードで指定し

たディレクトリになります。

- 60 -

Page 78: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注3) MQDシステム名 : mqdsetupコマンドで指定したMQDシステム名

注4) メッセージキュー名 : mqdcrtqコマンドで指定したメッセージキュー名

注5) 送信キュー名 : ACM連携の定義で指定した送信キュー名

注6) 通番 : 001 ~ 999 の範囲でシステムが採番

注7) 拡張機能については、“第2部 拡張機能編”を参照してください。

メッセージ格納域の変更やメッセージ格納サイズの変更を行うには、該当するSQL記述ファイルを複写し設定を編集して、データベー

ス管理システムのコマンドを使用して行います。

なお、SQL記述ファイルを使用してのデータベース操作は、MQDシステムを壊すおそれがありますので十分に注意してください。操

作を行う前にあらかじめ、データのバックアップを取ることをお薦めします。データのバックアップは、Symfowareの rdbdmpコマンドや rdbunlコマンドがあります。

SQL記述ファイルの変更可能定義一覧を表5.2 SQL記述ファイルの変更可能定義一覧(データベース作成 (注))、表5.3 SQL記述ファ

イルの変更可能定義一覧(表作成 (注))に示します。

定義の詳細については、“Symfoware Server RDBユーザーズガイド データベース定義編”と“Symfoware Server SQLリファレンスガ

イド”を参照してください。

表5.2 SQL記述ファイルの変更可能定義一覧(データベース作成 (注))

定義名称

変更追加 説明

データベース × ×

定義名称は“MQD_MQDシステム名”で固定です。

MQDシステム名:mqdsetupコマンドで指定したMQDシステム名

・Symfoware/RDBトランザクション連携機能を使用しない場合

定義名称は“MQD_MQDシステム名”で固定です。

MQDシステム名:mqdsetupコマンドで指定したMQDシステム名

・Symfoware/RDBトランザクション連携機能を使用する場合

定義名称は環境定義で指定した業務用データベース名です。

データベースス

ペース× ○

追加の場合の定義名称は、以下の予約済み以外を指定してください。

システム制御用定義名称 “MQD_MQDシステム名_SPS” メッセージ格納用定義名称 “MQD_MQDシステム名_SPU”

注意事項)追加したデータベーススペースはシステムでは管理されませんの

で、データベーススペースの削除やDSIへの割当は手動で行う必要がありま

す。

スキーマ × × 定義名称は“MQD_MQDシステム名_SCH”で固定です。

権限情報 - ○MQDを利用するユーザアカウントへの権限が必要です。

スーパユーザ、MQD利用者への権限が必要です。

○:可能、×:不可、-:該当なし

注) 対象のSQL記述ファイルは、“表5.1 SQL記述ファイルの一覧”の“MQD_MQDシステム名.sql”です。

表5.3 SQL記述ファイルの変更可能定義一覧(表作成 (注))

定義名称

変更追加

サイズ変

データベース

スペース変更説明

表 × × - - 列属性についても変更不可です。

- 61 -

Page 79: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

定義名称

変更追加

サイズ変

データベース

スペース変更説明

権限情報 - ○ - -

MQDを利用するユーザアカウントへの権限が

必要です。

スーパユーザ、MQD利用者への権限が必要

です。

表のDSO × × × - 表の分割運用はできません。

表のDSI × × ○ ○

スペース割付けの追加は、rdbalmdsiコマンドや

rdbgcdsiコマンドを使用することで可能になり

ます。

インデックスの

DSO× × ○ -

ページサイズの変更は、性能に影響しますの

で注意してください。

インデックスの

DSI× × ○ ○

スペース割付けの追加は、rdbalmdsiコマンドや

rdbgcdsiコマンドを使用することで可能になり

ます。

○:可能、×:不可、-:該当なし

注) 対象のSQL記述ファイルは、“表5.1 SQL記述ファイルの一覧”の“MQD_MQDシステム名.sql”以外です。

5.3.3 メッセージ格納ファイルの追加

メッセージ格納ファイルとしてのデータベーススペースを追加することで以下のことが可能になります。

・ メッセージ格納ファイルの容量が不足したため容量を拡張する場合

・ 環境定義で指定したメッセージキュー容量よりも大きなメッセージキューを作成する場合

メッセージ格納ファイルとしてのデータベーススペースを追加した後、環境削除を行う手順は“5.3.4 MQDのシステム環境の削除(デー

タベーススペースを追加した場合)”を参照してください。

メッセージ格納ファイルの追加手順を図5.6 メッセージ格納ファイルの追加手順に示します。

- 62 -

Page 80: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図5.6 メッセージ格納ファイルの追加手順

以下にメッセージ格納域の変更について説明します。

・ データベーススペースの作成

・ メッセージ制御テーブルの利用規定の設定

・ メッセージ制御テーブルの容量拡張

・ メッセージ制御テーブルの利用規定の解除

5.3.3.1 データベーススペースの作成

メッセージ格納用のデータベーススペースの作成を行うには、データベースの作成定義を記述したSQL記述ファイルを作成して、

Symfowareの rdbddlexコマンドを使用してデータベーススペースを作成します。

以下に、データベーススペースの作成のSQL記述ファイル例を示します。

CREATE DBSPACE 追加データベーススペース名 ALLOCATE FILE ファイル名

ATTRIBUTE SPACE (サイズ);

GRANT ALL PRIVILEGES ON DBSPACE 追加データベーススペース名 TO PUBLIC;

注意

- 追加データベーススペース名の名称として、以下は予約済みです。

MQD_MQDシステム名_SPS , MQD_MQDシステム名_SPU

指定例: MQD_MQDシステム名_SPU2

- 63 -

Page 81: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

CREATE DBSPACE 追加データベーススペース名 ALLOCATE RAWDEVICE ローデバイス名;

GRANT ALL PRIVILEGES ON DBSPACE 追加データベーススペース名 TO PUBLIC;

注意

- 追加データベーススペース名の名称として、以下は予約済みです。

MQD_MQDシステム名_SPS , MQD_MQDシステム名_SPU

指定例: MQD_MQDシステム名_SPU2

以下に、rdbddlexコマンドの入力例を示します。

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

rdbddlex -d MQD_MQDシステム名 SQL記述ファイル

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

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

rdbddlex -d MQD_MQDシステム名 SQL記述ファイル

注意

Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.3.2 メッセージ制御テーブルの利用規定の設定

メッセージ制御テーブルの容量の拡張を行う前に、メッセージ制御テーブルのDSIおよびインデックスDSIに対して、参照更新抑止の

利用規定を設定する必要があります。DSIおよびインデックスDSIに対して参照更新抑止の利用規定を設定する場合、Symfowareの rdbrtrコマンドを使用して行います。

以下に、rdbrtrコマンドの入力例を示します。

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

rdbrtr -i MQD_MQDシステム名.MQD_MSGCHAIN_DSI -rrw

rdbrtr -i MQD_MQDシステム名.MQD_MSGCHAIN_IXDSI -rrw

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

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

rdbrtr -i MQD_MQDシステム名.MQD_MSGCHAIN_DSI -rrw

rdbrtr -i MQD_MQDシステム名.MQD_MSGCHAIN_IXDSI -rrw

注意

Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.3.3 メッセージ制御テーブルの容量拡張

メッセージ制御テーブルの容量の拡張を行うには、メッセージ制御テーブルのDSIおよびインデックスDSIの拡張と再編成を行う必要

があります。DSIおよびインデックスDSIの拡張と再編成は、Symfowareの rdbgcdsiコマンドを使用して行います。

以下に、rdbgcdsiコマンドの入力例を示します。

- 64 -

Page 82: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

rdbgcdsi -E -i MQD_MQDシステム名.MQD_MSGCHAIN_DSI

-p DATA,MQD_MQDシステム名.MQD_MQDシステム名_SPS,サイズ1

-w c:\home\mqd\workdir -u c:\home\mqd\stockdir

rdbgcdsi -E -i MQD_MQDシステム名.MQD_MSGCHAIN_IXDSI

-p BASE,MQD_MQDシステム名.MQD_MQDシステム名_SPS,サイズ2

-p INDEX,MQD_MQDシステム名.MQD_MQDシステム名_SPS,サイズ3

-w c:\home\mqd\workdir -u c:\home\mqd\stockdir

注意

- 各サイズは、以下の式に従って指定してください。

サイズ1 = 64Mバイト × (追加データベーススペースの容量(Mバイト) / 1024Mバイト)

サイズ2 = 1600Kバイト × (追加データベーススペースの容量(Mバイト) / 1024Mバイト)

サイズ3 = 200Kバイト × (追加データベーススペースの容量(Mバイト) / 1024Mバイト)

- 拡張に使用するデータベーススペースは、システム制御用データベーススペース

(MQD_MQDシステム名_SPS)を指定してください。

- システム制御用データベーススペース(MQD_MQDシステム名_SPS)には、

事前に拡張後のDSIおよびインデックスDSIが格納できる空容量が必要です。

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

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

rdbgcdsi -E -i MQD_MQDシステム名.MQD_MSGCHAIN_DSI

-p DATA,MQD_MQDシステム名.MQD_MQDシステム名_SPS,サイズ1

-w /home/mqd/workdir -u /home/mqd/stockdir

rdbgcdsi -E -i MQD_MQDシステム名.MQD_MSGCHAIN_IXDSI

-p BASE,MQD_MQDシステム名.MQD_MQDシステム名_SPS,サイズ2

-p INDEX,MQD_MQDシステム名.MQD_MQDシステム名_SPS,サイズ3

-w /home/mqd/workdir -u /home/mqd/stockdir

注意

- 各サイズは、以下の式に従って指定してください。

サイズ1 = 64Mバイト × (追加データベーススペースの容量(Mバイト) / 1024Mバイト)

サイズ2 = 1600Kバイト × (追加データベーススペースの容量(Mバイト) / 1024Mバイト)

サイズ3 = 200Kバイト × (追加データベーススペースの容量(Mバイト) / 1024Mバイト)

- 拡張に使用するデータベーススペースは、システム制御用データベーススペース

(MQD_MQDシステム名_SPS)を指定してください。

- システム制御用データベーススペース(MQD_MQDシステム名_SPS)には、

事前に拡張後のDSIおよびインデックスDSIが格納できる空容量が必要です。

- Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.3.4 メッセージ制御テーブルの利用規定の解除

メッセージ制御テーブルの容量の拡張を行った後は、メッセージ制御テーブルのDSIおよびインデックスDSIに対して、参照更新抑止

の利用規定を解除する必要があります。DSIおよびインデックスDSIに対して参照更新抑止の利用規定を解除する場合、Symfowareのrdbrlsコマンドを使用して行います。

以下に、rdbrlsコマンドの入力例を示します。

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

rdbrls -i MQD_MQDシステム名.MQD_MSGCHAIN_DSI -rrw

- 65 -

Page 83: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

rdbrls -i MQD_MQDシステム名.MQD_MSGCHAIN_IXDSI -rrw

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

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

rdbrls -i MQD_MQDシステム名.MQD_MSGCHAIN_DSI -rrw

rdbrls -i MQD_MQDシステム名.MQD_MSGCHAIN_IXDSI -rrw

注意

Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.4 MQDのシステム環境の削除(データベーススペースを追加した場合) メッセージ格納用のデータベーススペースを追加した場合、追加したデータベーススペースはMQDでは管理しません。そのため、MQDのシステム環境の削除を行う前に追加したすべてのデータベーススペースを削除する必要があります。

データベーススペースを追加した場合の環境削除手順を図5.7 データベーススペースを追加した場合の環境削除手順に示します。

図5.7 データベーススペースを追加した場合の環境削除手順

追加したデータベーススペースの削除

データベーススペースの削除を行うには、データベースの削除定義を記述したSQL記述ファイルを作成して、Symfowareのrdbddlexコマンドを使用してデータベーススペースを削除します。

以下に、データベーススペースの削除のSQL記述ファイル例を示します。

DROP DBSPACE 追加データベーススペース名1;

DROP DBSPACE 追加データベーススペース名2;

DROP DBSPACE 追加データベーススペース名3;

DROP DBSPACE 追加データベーススペース名n;

注意

- 追加データベーススペース名には、追加したすべてのデータベーススペース

を指定してください。

- 66 -

Page 84: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

以下に、rdbddlexコマンドの入力例を示します。

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

rdbddlex -d MQD_MQDシステム名 SQL記述ファイル

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

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

rdbddlex -d MQD_MQDシステム名 SQL記述ファイル

注意

Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.5 メッセージ格納ファイル満杯時のメッセージキューの追加

MQDの環境作成時に指定したメッセージ格納用データベーススペースに十分な空き領域がないと、新たなメッセージキューを作成

することができなくなります。このような場合は、すでにあるメッセージキューを別のデータベーススペースに格納域を変更して、データ

ベーススペースに空き領域を作ることで、新たなメッセージキューを作成することができます。

メッセージ格納ファイル満杯時のメッセージキューの追加手順を図5.8 メッセージ格納ファイル満杯時のメッセージキューの追加手順

に示します。

図5.8 メッセージ格納ファイル満杯時のメッセージキューの追加手順

以下にメッセージキューの容量変更について説明します。

- 67 -

Page 85: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージ格納テーブルのデータ退避

・ メッセージ格納テーブルの格納域の変更

・ メッセージ格納テーブルのデータ復元

5.3.5.1 メッセージ格納テーブルのデータ退避

メッセージキューの格納域を変更する前に、メッセージ格納テーブルのデータの退避を行う必要があります。データの退避は、Symfowareの rdbunlコマンドを使用して行います。

以下に、rdbunlコマンドの入力例を示します。

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

rdbunl -i MQD_MQDシステム名.USR_通番_DSI 退避ファイル名

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 退避ファイル名は、絶対パスを指定してください。

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

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

rdbunl -i MQD_MQDシステム名.USR_通番_DSI 退避ファイル名

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 退避ファイル名は、絶対パスを指定してください。

- Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.5.2 メッセージ格納テーブルの格納域の変更

メッセージ格納テーブルの格納域の変更を行う場合には、メッセージ格納テーブルのSQL記述ファイル(メッセージキュー名.sql)を複

写し設定を編集して、メッセージ格納テーブルのDSIおよびインデックスDSIの削除と再作成を行う必要があります。DSIおよびインデックス

DSIの削除と再作成は、Symfowareの rdbddlexコマンドを使用して行います。

以下に、メッセージ格納テーブルの格納域の変更のSQL記述ファイル例を示します。

DROP DSI USR_通番_IXDSI;

DROP DSI USR_通番_DSI;

CREATE DSI USR_通番_DSI DSO USR_通番_DSO

ALLOCATE DATA ON 変更先データベーススペース名 SIZE サイズ1;

CREATE DSI USR_通番_IXDSI INDEX DSO USR_通番_IXDSO

ALLOCATE BASE ON 変更先データベーススペース名 SIZE サイズ2,

INDEX ON 変更先データベーススペース名 SIZE サイズ3;

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 通番はシステムにより採番されていますので変更しないでください。

- SQL記述ファイルは、データベース上のテーブルに関しての情報が記述されています。

取り扱いには十分注意してください。

補足

- 各サイズを変更することで格納域の容量も変更できます。

- 68 -

Page 86: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

以下に、rdbddlexコマンドの入力例を示します。

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

rdbddlex -d MQD_MQDシステム名 SQL記述ファイル

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

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

rdbddlex -d MQD_MQDシステム名 SQL記述ファイル

注意

Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.5.3 メッセージ格納テーブルのデータ復元

“5.3.5.1 メッセージ格納テーブルのデータ退避”で退避したデータを再作成したメッセージ格納テーブルに復元します。データの復

元は、Symfowareの rdbsloaderコマンドを使用して行います。

以下に、rdbsloaderコマンドの入力例を示します。

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

rdbsloader -mi -i MQD_MQDシステム名.USR_通番_DSI -f 10 退避ファイル名

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 退避ファイル名は、絶対パスを指定してください。

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

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

rdbsloader -mi -i MQD_MQDシステム名.USR_通番_DSI -f 10 退避ファイル名

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 退避ファイル名は、絶対パスを指定してください。

- Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

5.3.6 メッセージキューの自動拡張

将来、メッセージキューの容量が不足してメッセージを格納することができなくなり、さらにシステムを停止しなければならない場合が

あります。このような場合は、事前にメッセージキューの自動拡張を設定することで、システムの停止を行うことなく自動的にメッセージ

キューの容量を拡張することができます。

メッセージキューの自動拡張手順を図5.9 メッセージキューの自動拡張手順に示します。

- 69 -

Page 87: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図5.9 メッセージキューの自動拡張手順

メッセージ格納テーブルの自動拡張の定義

メッセージキューの自動拡張を行う場合には、メッセージ格納テーブルのDSIおよびインデックスDSIの自動拡張の定義を行う必要が

あります。DSIおよびインデックスDSIの自動拡張の定義は、Symfowareの rdbalmdsiコマンドを使用して行います。

以下に、rdbalmdsiコマンドの入力例を示します。

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

rdbalmdsi -i MQD_MQDシステム名.USR_通番_DSI -c 拡張契機1 -e 割付け量1

-p MQD_MQDシステム名.MQD_MQDシステム名_SPU

rdbalmdsi -i MQD_MQDシステム名.USR_通番_IXDSI -c 拡張契機2 -e 割付け量2

-p MQD_MQDシステム名.MQD_MQDシステム名_SPU

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 拡張契機は、DSI、インデックスDSIの残り空き容量を指定してください。

空き容量がこの契機に達した時点で割付け量で指定した領域を自動的に拡張します。

- 割付け量は、データベーススペースからDSI拡張領域またはインデックスDSI拡張領域

への割付け量を指定してください。

- 自動拡張された領域は、自動的に開放されません。拡張領域が不要になった時など

適宜に開放することをお薦めします。

領域の開放は、rdbgcdsiコマンドの-Eオプションを使用します。

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

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

rdbalmdsi -i MQD_MQDシステム名.USR_通番_DSI -c 拡張契機1 -e 割付け量1

-p MQD_MQDシステム名.MQD_MQDシステム名_SPU

rdbalmdsi -i MQD_MQDシステム名.USR_通番_IXDSI -c 拡張契機2 -e 割付け量2

-p MQD_MQDシステム名.MQD_MQDシステム名_SPU

注意

- 通番は、当該のSQL記述ファイル(メッセージキュー名.sql)に記述されています。

- 拡張契機は、DSI、インデックスDSIの残り空き容量を指定してください。

空き容量がこの契機に達した時点で割付け量で指定した領域を自動的に拡張します。

- 割付け量は、データベーススペースからDSI拡張領域またはインデックスDSI拡張領域

- 70 -

Page 88: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

への割付け量を指定してください。

- 自動拡張された領域は、自動的に開放されません。拡張領域が不要になった時など

適宜に開放することをお薦めします。

領域の開放は、rdbgcdsiコマンドの-Eオプションを使用します。

- Symfoware/RDBトランザクション連携機能を使用する場合は、

業務用データベース名に置き換えて入力してください。

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

- 71 -

Page 89: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第6章 アプリケーションの作成

本章では、MQDを使用するアプリケーションの作成方法について以下の順に説明しています。

6.1 アプリケーション環境

6.2 送信側アプリケーションの作成

6.3 受信側アプリケーションの作成

6.4 MQDのトランザクション機能を利用したアプリケーションの作成

6.5 Interstageアプリケーションの作成

6.6 メッセージ格納ファイルとしてデータベースを使用する場合のアプリケーションの作成

6.7 運用イベント通知機能を利用したアプリケーションの作成

6.8 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの作成

6.9 アプリケーション作成時の注意点

なお、アプリケーションのプログラムの記述例を“付録B プログラム記述例”に記載してありますので、そちらの方も参照してください。

6.1 アプリケーション環境

アプリケーションを作成/実行するための環境について以下を説明します。

・ プログラム言語

・ プログラムインタフェース

・ メッセージ操作の前後処理

・ プログラムの翻訳/結合

・ トランザクション連携のための事前作業

・ メッセージ格納ファイルとしてデータベースを使用する場合のトランザクション連携

6.1.1 プログラム言語

MQDを使用するアプリケーションは、以下のプログラム言語を使用して作成することができます。

・ COBOL言語

・ C言語

Java言語を使用したアプリケーションは作成できません。詳細は“6.9.2 Java言語で作成したアプリケーションを利用する場合の注意

事項”を参照してください.

6.1.2 プログラムインタフェース

アプリケーションでメッセージ操作を行うために、表6.1 メッセージ操作のためのプログラムインタフェースに示すプログラムインタフェー

スが用意されています。これらのインタフェースを使用して、アプリケーションを作成します。

表6.1 メッセージ操作のためのプログラムインタフェース

操作分類 操作項目インタフェース名

COBOL言語 C言語

前処理 MQDへの接続 MQDCONNECT mqd_connect

Symfoware/RDBトランザクション連携

機能を使用してMQDに接続

MQDCONNECTRDB

mqd_connectrdb

- 72 -

Page 90: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

操作分類 操作項目インタフェース名

COBOL言語 C言語

メッセージキューへの接続 MQDCONNECTQ mqd_connectq

複数メッセージキューへの接続 MQDCONNECTQEX

mqd_connectqex

メッセージ

操作

メッセージの送信 MQDPUTMSG mqd_putmsg

メッセージの受信 MQDGETMSG mqd_getmsg

メッセージの参照 MQDPEEKMSG mqd_peekmsg

カーソルの移動 MQDSEEKMSG mqd_seekmsg

メッセージの削除 MQDDELETEMSG mqd_deletemsg

メッセージの一括削除 MQDPURGEMSG mqd_purgemsg

メッセージキューの属性通知 MQDGETQATTR mqd_getqattr

メッセージキューの属性設定 MQDSETQATTR mqd_setqattr

複数メッセージキューからのメッセージ

受信

MQDGETMSGEX mqd_getmsgex

複数メッセージキューからのメッセージ

参照

MQDPEEKMSGEX mqd_peekmsgex

複数メッセージキューのカーソルの移

MQDSEEKMSGEX mqd_seekmsgex

トランザク

ション制御

トランザクションの開始 MQDBEGIN mqd_begin

トランザクションの終了 MQDCOMMIT mqd_commit

トランザクションの取消し MQDROLLBACK mqd_rollback

後処理 複数メッセージキューからの切断 MQDDISCONNECTQEX

mqd_disconnectqex

メッセージキューからの切断 MQDDISCONNECTQ

mqd_disconnectq

MQDからの切断 MQDDISCONNECT mqd_disconnect

プログラムインタフェースの詳細については、“第8章 プログラムインタフェース”を参照してください。

6.1.3 メッセージ操作の前後処理

アプリケーションでメッセージ操作を行うためには、メッセージ操作を行う前に、以下の処理を行っておく必要があります。

1. MQDへの接続

2. メッセージキューへの接続、または、複数メッセージキューへの接続

また、メッセージ操作が済んだら、アプリケーションの終了時に、以下の後処理を行ってください。

1. メッセージキューからの切断、または、複数メッセージキューからの切断

2. MQDからの切断

6.1.4 プログラムの翻訳/結合

MQDを使用するアプリケーション(プログラム)を翻訳または結合する場合の留意事項を以下に示します。

また、Interstageのトランザクション機能を使用する場合は、“アプリケーション作成ガイド(コンポーネントトランザクションサービス編)”および“アプリケーション作成ガイド(データベース連携サービス編)”を参照してください。

- 73 -

Page 91: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

データベースを使用するアプリケーションの翻訳および結合の詳細については、“Symfoware Server RDBユーザーズガイド 応用プ

ログラム開発編”を参照してください。

翻訳および結合の詳細については、その製品のマニュアルを参照してください。

翻訳

COBOL言語で作成したプログラムを翻訳する場合は、以下の翻訳オプションを指定します。

・ NOALPHAL

C言語で作成したプログラムを翻訳する場合は、以下のオプションを指定します。

・ -DWIN32

また、C言語で作成したプログラムの場合は、MQDが提供する以下のインクルードライブラリを指定してください。

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

$MQD\include

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

$MQD: MQDのインストール先フォルダ

COBOL言語で作成したプログラムを翻訳する場合は、以下のオプションを指定します。

PowerCOBOLの場合

・ -Tm -WC,"NOALPHAL"

Sun日本語COBOLの場合

・ -WC,"NOALPHAL"

C言語で作成したプログラムを翻訳する場合は、以下のオプションを指定します。

・ -mt -DFSUN

また、C言語で作成したプログラムの場合は、MQDが提供する以下のインクルードライブラリを指定してください。

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

/opt/FJSVmqd/include

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

注意

Symfoware/RDBトランザクション連携機能を利用するプログラムのプレコンパイルや翻訳を行う場合は、以下のオプションを指定しな

いでください。

・ -T(マルチスレッド環境で動作するSQL埋込みプログラムをコンパイルする場合の指定)

結合

プログラムの結合時(COBOL言語の場合は“WINLINK”実行時)には、表6.2 プログラムの結合時に指定するライブラリに示されるラ

イブラリを動的結合してください。

表6.2 プログラムの結合時に指定するライブラリ

言語 ライブラリ名 格納場所 用途説明

COBOL

libmqdcobapi.lib $MQD\lib MQDのCOBOL言語用インタフェース(必須)

LIBC.lib $COBOL COBOL言語用ライブラリ(必須)

- 74 -

Page 92: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

言語 ライブラリ名 格納場所 用途説明

F3BICIMP.lib $COBOL COBOL言語用ライブラリ(必須)

C libmqdapi.lib $MQD\lib MQDのC言語用インタフェース(必須)

$MQD: MQDのインストール先フォルダ

$COBOL: COBOLのインストール先フォルダ

プログラムの結合時には、表6.3 プログラムの結合時に指定するライブラリに示されるライブラリを動的結合してください。

表6.3 プログラムの結合時に指定するライブラリ

言語 ライブラリ名 格納場所 用途説明

COBOL(共通)

libmqdcobapi.so /opt/FJSVmqd/lib MQDのCOBOL言語用インタフェース

(必須)

libsqldrv.so(注1) /opt/FSUNrdb2b/lib Symfoware/RDBのライブラリ

(Symfoware/RDBトランザクション連携機能

を使用する場合)

COBOL(Sun日本語

COBOLの場

合追加)

librcobol.so /opt/FJSVCOBop/lib COBOLランタイム(Sun日本語COBOLの場

合必須)

libthread.so(注2) /usr/lib スレッドライブラリ(必須)

libc.so /usr/lib Cランタイム(必須)

C libmqdapi.so /opt/FJSVmqd/lib MQDのC言語用インタフェース(必須)

libthread.so(注2) /usr/lib スレッドライブラリ(必須)

libc.so /usr/lib Cランタイム(必須)

libsqldrv.so(注1) /opt/FSUNrdb2b/lib Symfoware/RDBのライブラリ

(Symfoware/RDBトランザクション連携機能

を使用する場合)

注1) libsqldrv.soを指定してください。マルチスレッド用のlibsqldrvm.soを指定しないでください。

注2) libthread.soは、libc.soよりも前に指定する必要があります。

なお、メッセージ格納ファイルとしてデータベースを使用する場合、環境変数名“LD_LIBRARY_PATH”にSymfowareおよび標準

コード変換機能のライブラリ格納先ディレクトリの絶対パスを指定してください。

COBOL言語で作成した主プログラムを翻訳および結合する場合の例を以下に示します。

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

PowerCOBOLの場合

cobol -M -Tm -WC,"NOALPHAL" -o appl1 -lmqdcobapi appl1.cob

Sun日本語COBOLの場合

cobol -M -WC,"NOALPHAL" -o appl1 -lthread -lc -lrcobol -lmqdcobapi appl1.cob

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

COBOL言語で作成した副プログラムを翻訳および結合する場合の例を以下に示します。

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

PowerCOBOLの場合

- 75 -

Page 93: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

cobol -c -Tm -WC,"NOALPHAL" appl2.cob

ld -G -o libappl2.so appl2.o -lmqdcobapi

Sun日本語COBOLの場合

cobol -c -WC,"NOALPHAL" appl2.cob

ld -G -o libappl2.so appl2.o -lthread -lc -lrcobol -lmqdcobapi

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

C言語で作成したプログラムを翻訳および結合する場合の例を以下に示します。

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

cc -mt -DFSUN -I /opt/FJSVmqd/include -lthread -lc -lmqdapi appl3.c -o appl3

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

6.1.5 トランザクション連携のための事前作業

MQDは、XA/Openが規定するXAインタフェースにより、トランザクション処理モニタであるInterstageのコンポーネントトランザクション

サービスおよびデータベース連携サービスと連携したアプリケーションの実行を可能にしています。

MQDを使用するアプリケーションが、Interstageのトランザクション機能を使用するためには、アプリケーションの実行に先立って、事

前に以下の作業を行っておく必要があります。

・ ワークユニット定義の登録

・ リソースマネージャ情報の登録

・ XA連携プログラムの作成

・ リソース管理プログラムの作成と登録

・ APMの作成

・ XAライブラリの結合

なお、Interstageのトランザクション機能の詳細については、“アプリケーション作成ガイド(データベース連携サービス編)”および“リファ

レンスマニュアル(コマンド編)”, “リファレンスマニュアル(API編)”, “チューニングガイド”を参照してください。

ワークユニット定義の登録

ワークユニットは、Interstageのアプリケーションの実行環境を定義します。このワークユニット定義には、後述のリソース定義名およびAPM名を記述します。

リソースマネージャ情報の登録

表6.4 リソースマネージャ情報に示されるMQD用のリソースマネージャ情報(RM情報とも呼びます)をワークユニット定義で示されるリ

ソース定義名に登録しておく必要があります。

表6.4 リソースマネージャ情報

項目 指定内容 説明

リソース定義名 NAME=リソース定義名 リソース定義名を指定します。

RM名 XA_MQD MQDのリソースマネージャ名を指定します。

オープン文字列 MQD:MQDシステム名 アプリケーションが使用するMQDのMQDシステ

ム名を指定します。

クローズ文字列 不要 なし。

XA連携プログラムの作成

MQD用のXA連携プログラムが必要です。このプログラムは、MQDのXAスイッチの構造体名“mqd_xa_switch”を入力情報にして、

Interstageのotsmkxapgmコマンドを実行して作成します。

otsmkxapgmコマンドの実行例を以下に示します。

- 76 -

Page 94: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

otsmkxapgm -s mqd_xa_switch -r "/libpath:'$MQD\lib'libmqdqm.lib"

-o libxa_mqd.dll

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

$MQD: MQDインストール先フォルダ

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

otsmkxapgm -t thread -s mqd_xa_switch -o xa_mqd.o

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

リソース管理プログラムの作成と登録

次に、XA連携プログラムとMQDのXAライブラリを入力にしてMQD用のリソース管理プログラムを作成します。リソース管理プログラム

は、Interstageのotslinkrscコマンドを実行して作成します。また、作成したリソース管理プログラムをInterstageのotssetrscコマンドを実行して

CORBAサービスへ登録する必要があります。

otslinkrscコマンドの実行例を以下に示します。

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

otslinkrsc -l libxa_mqd.lib

-r "/libpath:'$MQD\lib'libmqdqm.lib" -o MQD_rscmng.exe

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

$MQD: MQDインストール先フォルダ

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

otslinkrsc -t thread -l xa_mqd.o -r "-L/opt/FJSVmqd/lib -lmqdqm" -o MQD_rscmng

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

APMの作成

次に、XA連携プログラムとMQDのXAライブラリを入力にしてMQD用のAPM(Application Program Manager)を作成します。APMは、

Interstageのtdlinkapmコマンドを実行して作成します。tdlinkapmコマンドの実行例を以下に示します。

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

tdlinkapm -l libxa_mqd.lib -r "$MQD\lib\libmqdqm.lib" -o MQDapm

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

$MQD: MQDインストール先フォルダ

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

tdlinkapm -l xa_mqd.o -r "-L/opt/FJSVmqd/lib -lmqdqm" -o MQDapm

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

XAライブラリの結合

XAライブラリは、Interstageアプリケーションの結合時に使用します。MQDのXAライブラリ名を以下に示します。

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

$MQD\lib\libmqdqm.lib

- 77 -

Page 95: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

$MQD: MQDインストール先フォルダ

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

/opt/FJSVmqd/lib/libmqdqm.so

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

6.1.6 メッセージ格納ファイルとしてデータベースを使用する場合のトランザクション連携

Interstageのトランザクション環境下で、メッセージ格納ファイルとしてデータベースを使用する場合の、以下の注意事項について説明

します。

・ リソース管理プログラム

・ ワークユニット定義

なお、Interstageのトランザクション機能の詳細については、“アプリケーション作成ガイド(データベース連携サービス編)”および“リファ

レンスマニュアル(コマンド編)”,“リファレンスマニュアル(API編)”,“チューニングガイド”を参照してください。

Interstageのグローバルトランザクション配下では、Symfoware/RDBトランザクション連携機能を利用することはできません。

リソース管理プログラム

メッセージ格納ファイルとしてデータベースを使用する場合、MQD用リソース管理プログラムとは別に、MQDが使用するデータベー

ス用のリソース管理プログラムが必要です。このMQDが使用するデータベース用のリソース管理プログラムのリソース定義ファイルで

は、オープン文字列として以下の指定を記述します。

データベース名:MQDが使用するデータベース名‘MQD_MQDシステム名’を指定

コネクション名:MQDが使用するコネクション名‘MQD_MQDCONNECT’を指定

以下に、MQDが使用するデータベース用のリソース管理プログラムのリソース定義ファイルの記述例を示します。

NAME=mqdrdb

RMNAME=RDBII

OPENINFO=TO 'MQD_MQD001' USER 'mqdadmin/mqdadminpwd' AS 'MQD_MQDCONNECT'

CLOSEINFO=

NAME=mqdrdb

ENVIRON LD_LIBRARY_PATH=/opt/FSUNrdb2b/lib:/opt/FSUNiconv/lib

RMNAME=RDBII

OPENINFO=TO 'MQD_MQD001' USER 'root/system' AS 'MQD_MQDCONNECT'

CLOSEINFO=

また、MQD用リソース管理プログラムのリソース定義ファイルには、データベース管理システムが使用する環境変数を指定する必要

があります。

以下に、MQD用リソース管理プログラムのリソース定義ファイルの記述例を示します。

- 78 -

Page 96: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

NAME=mqdrsc

RMNAME=XA_MQD

OPENINFO=MQD:MQD001

CLOSEINFO=

NAME=mqdrsc

ENVIRON LD_LIBRARY_PATH=/opt/FSUNrdb2b/lib:/opt/FSUNiconv/lib

RMNAME=XA_MQD

OPENINFO=MQD:MQD001

CLOSEINFO=

ワークユニット定義

メッセージ格納ファイルとしてデータベースを使用する場合、ワークユニット定義には以下の記述が必要です。

・ MQDが使用する環境変数‘MQD_QMDBXA=1’

・ MQDが使用するデータベースのリソースマネージャ情報

・ データベース管理システムが使用するライブラリパス

なお、環境変数‘MQD_QMDBXA’の指定がない場合や環境変数の値に‘1’以外を指定した場合は、アプリケーションの動作は保

証されませんので注意が必要です。

以下に、ワークユニット定義の記述例を示します。

## ワークユニット制御オプション

[Control Option]

# APL動作時に使用する環境変数

Environment Variable:MQD_QMDBXA=1

## リソースマネージャ情報

[Resource Manager]

# MQDのリソース定義名

Name:mqdrsc

RM:XA_MQD

[Resource Manager]

# MQDが使用するデータベースのリソース定義名

Name:mqdrdb

RM:RDBII

[Resource Manager]

# 業務として使用するデータベースのリソース定義名

Name:rdbrsc

RM:RDBII

- 79 -

Page 97: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

## ワークユニット制御オプション

[Control Option]

# APL動作時に使用するライブラリパス

Library for Application:/opt/FSUNrdb2b/lib:/opt/FSUNiconv/lib

# APL動作時に使用する環境変数

Environment Variable:MQD_QMDBXA=1

## リソースマネージャ情報

[Resource Manager]

# MQDのリソース定義名

Name:mqdrsc

RM:XA_MQD

[Resource Manager]

# MQDが使用するデータベースのリソース定義名

Name:mqdrdb

RM:RDBII

[Resource Manager]

# 業務として使用するデータベースのリソース定義名

Name:rdbrsc

RM:RDBII

6.2 送信側アプリケーションの作成

メッセージを送信するアプリケーションは、事前にMQDおよび目的のメッセージキューに接続し、その直後でメッセージの送信を行う

ように作成します。

メッセージの送信は、プログラムインタフェースの“MQDPUTMSG”または“mqd_putmsg”を使用して行います。

メッセージ送信の使用例を図6.1 メッセージ送信の使用例に示します。

図6.1 メッセージ送信の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的(送信先)のメッセージキューに接続します。

3) メッセージキューにメッセージを送信します。

- 80 -

Page 98: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

4) アプリケーションをメッセージキューから切断します。

5) アプリケーションをMQDから切断します。

6.3 受信側アプリケーションの作成

メッセージを受信するアプリケーションの作成方法を以下の順に説明します。

・ メッセージ受信を使用する

・ メッセージ参照を使用する

・ メッセージ参照とメッセージ削除を使用する

・ 複数メッセージキューからのメッセージ受信を使用する

・ 複数メッセージキューからのメッセージ参照を使用する

6.3.1 メッセージ受信を使用する

メッセージを受信するアプリケーションは、事前にMQDおよび目的のメッセージキューに接続し、その直後でメッセージを受信するよ

うに作成します。

メッセージの受信は、プログラムインタフェースの“MQDGETMSG”または“mqd_getmsg”を使用して行います。

メッセージ受信の使用例を図6.2 メッセージ受信の使用例に示します。

図6.2 メッセージ受信の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的のメッセージキューに接続します。

3) メッセージキューからメッセージを受信します。

4) アプリケーションをメッセージキューから切断します。

5) アプリケーションをMQDから切断します。

6.3.2 メッセージ参照を使用する

メッセージを参照するアプリケーションは、事前にMQDおよび目的のメッセージキューに接続し、その直後でカーソルの移動を行っ

てからメッセージを参照するように作成します。

カーソルの移動は、プログラムインタフェースの“MQDSEEKMSG”または“mqd_seekmsg”を使用して行います。また、メッセージの参

照は、プログラムインタフェースの“MQDPEEKMSG”または“mqd_peekmsg”を使用して行います。

メッセージ参照の使用例を図6.3 メッセージ参照の使用例に示します。

- 81 -

Page 99: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図6.3 メッセージ参照の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的のメッセージキューに接続します。

3) カーソルを目的のメッセージに移動します。

4) メッセージキュー上のカーソルが指すメッセージを参照します。

5) アプリケーションをメッセージキューから切断します。

6) アプリケーションをMQDから切断します。

6.3.3 メッセージ参照とメッセージ削除を使用する

メッセージを参照(メッセージの内容を確認)してからメッセージを削除するアプリケーションは、事前にMQDおよび目的のメッセージ

キューに接続し、その直後でカーソルの移動とメッセージの参照を行ってからメッセージを削除するように作成します。

メッセージの削除は、プログラムインタフェースの“MQDDELETEMSG”または“mqd_deletemsg”を使用して行います。

メッセージ参照とメッセージ削除の使用例を図6.4 メッセージ参照とメッセージ削除の使用例に示します。

図6.4 メッセージ参照とメッセージ削除の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的のメッセージキューに接続します。

3) カーソルを目的のメッセージに移動します。

4) メッセージキュー上のカーソルが指すメッセージを参照します。

5) 不要なメッセージなら、現在のカーソルの指すメッセージを削除します。

6) アプリケーションをメッセージキューから切断します。

7) アプリケーションをMQDから切断します。

6.3.4 複数メッセージキューからのメッセージ受信を使用する

複数メッセージキューからのメッセージを受信するアプリケーションは、事前にMQDおよび目的の複数のメッセージキューに接続し、

その直後で複数メッセージキューからのメッセージを受信するように作成します。

- 82 -

Page 100: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

複数メッセージキューへの接続は、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”を使用して行いま

す。また、複数メッセージキューからのメッセージ受信は、プログラムインタフェースの“MQDGETMSGEX”または“mqd_getmsgex”を使用して行います。

複数メッセージキューからのメッセージ受信の使用例を図6.5 複数メッセージキューからのメッセージ受信の使用例に示します。

図6.5 複数メッセージキューからのメッセージ受信の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的の複数のメッセージキューに接続します。

3) 複数メッセージキューからメッセージを受信します。

4) アプリケーションを複数のメッセージキューから切断します。

5) アプリケーションをMQDから切断します。

6.3.5 複数メッセージキューからのメッセージ参照を使用する

複数メッセージキューからのメッセージを参照するアプリケーションは、事前にMQDおよび目的の複数のメッセージキューに接続し、

その直後で複数メッセージキューからのメッセージを参照するように作成します。

複数メッセージキューへの接続は、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”を使用して行いま

す。また、複数メッセージキューからのメッセージ参照は、プログラムインタフェースの“MQDPEEKMSGEX”または“mqd_peekmsgex”を使用して行います。

複数メッセージキューからのメッセージ参照の使用例を図6.6 複数メッセージキューからのメッセージ参照の使用例に示します。

図6.6 複数メッセージキューからのメッセージ参照の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的の複数のメッセージキューに接続します。

3) 複数メッセージキューからメッセージを参照します。

4) アプリケーションを複数のメッセージキューから切断します。

5) アプリケーションをMQDから切断します。

- 83 -

Page 101: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

6.4 MQDのトランザクション機能を利用したアプリケーションの作成

MQDのトランザクション機能を利用した、メッセージを送受信するアプリケーションは、事前にMQDおよび目的のメッセージキューに

接続し、トランザクションを開始、その直後でメッセージの送受信を行うように作成します。

メッセージの送信は、プログラムインタフェースの“MQDPUTMSG”または“mqd_putmsg”を使用して行い、メッセージの受信はプログ

ラムインタフェースの“MQDGETMSG”または“mqd_getmsg”を使用して行います。

トランザクション機能を利用したメッセージの送受信の使用例を図6.7 トランザクション機能を利用したメッセージの送受信の使用例に

示します。

図6.7 トランザクション機能を利用したメッセージの送受信の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) アプリケーションを目的(受信先と送信先)のメッセージキューに接続します。

3) “MQDBEGIN”を実行してMQDのトランザクションを開始します。

4) メッセージキュー(キューx)からメッセージを受信します。

5) メッセージの内容を見て、送信先メッセージキュー(キューy)または送信先メッセージ

キュー(キューz)にメッセージを送信します。

6) “MQDCOMMIT”を実行してMQDのトランザクションを終了します。

7) アプリケーションをメッセージキューから切断します。

8) アプリケーションをMQDから切断します。

6.5 Interstageアプリケーションの作成

Interstageのトランザクション機能を使用してメッセージ送受信を行うアプリケーション(以降、Interstageアプリケーションと呼びます)の作成方法を以下の順に説明します。

・ メッセージ送信を使用する

・ メッセージ受信を使用する

・ 複数メッセージキューからのメッセージ参照を使用する

なお、Interstageアプリケーションは、ワークユニットと呼ばれるアプリケーションの実行環境で動作します。Interstageのトランザクション

機能およびワークユニットの詳細については、“アプリケーション作成ガイド(コンポーネントトランザクションサービス編)”および“アプリ

ケーション作成ガイド(データベース連携サービス編)”を参照してください。

6.5.1 メッセージ送信を使用する

Interstageアプリケーションからメッセージを送信する処理は、基本的にはInterstageを使用しないアプリケーションの場合と同じです。

Interstageアプリケーションのメッセージ送信の使用例を図6.8 メッセージ送信の使用例(Interstageアプリケーションの場合)に示しま

す。

- 84 -

Page 102: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図6.8 メッセージ送信の使用例(Interstageアプリケーションの場合)

[図の説明] 1) ワークユニット起動時に(前出口プログラムで)アプリケーションをMQDに接続します。

2) ワークユニット起動時に(前出口プログラムで)アプリケーションを目的(送信先)の メッセージキューに接続します。

3) クライアントからの要求を受けてメッセージキューにメッセージを送信します。

4) ワークユニット停止時に(後出口プログラムで)アプリケーションをメッセージキュー

から切断します。

5) ワークユニット停止時に(後出口プログラムで)アプリケーションをMQDから切断します。

6.5.2 メッセージ受信を使用する

Interstageアプリケーションでメッセージを受信する処理は、基本的にはInterstageを使用しないアプリケーションの場合と同じです。た

だし、アプリケーションを以下の二つのアプリケーションに分けて作成する必要があります。

・ メッセージの到着を監視するアプリケーション

・ メッセージを受信してデータベースを更新するアプリケーション

アプリケーションを二つに分ける理由は、ワークユニット上で動作するアプリケーションの起動契機が必要なためです。

Interstageアプリケーションのメッセージ受信の使用例を図6.9 メッセージ受信の使用例(Interstageアプリケーションの場合)に示しま

す。

- 85 -

Page 103: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図6.9 メッセージ受信の使用例(Interstageアプリケーションの場合)

[図の説明]

メッセージ監視アプリケーション

1) アプリケーション起動時にアプリケーションをMQDに接続します。

2) アプリケーション起動時にアプリケーションを目的のメッセージキューに接続します。

3) メッセージの到着を待ち合わせるために、同期モードでメッセージキュー上のメッセージ

を参照します。

4) メッセージが到着したら、トランザクションを開始します。

5) メッセージ受信アプリケーション(Interstageのサーバアプリケーション)を呼び出します。

6) トランザクションを終了します。その後、次のメッセージの到着を待つために、3)の処理

を繰り返します。

7) アプリケーション停止時にアプリケーションをメッセージキューから切断します。

このアプリケーションは、送信側からの“停止”を指示するメッセージを受信したときに

停止します。

8) アプリケーション停止時にアプリケーションをMQDから切断します。

メッセージ受信アプリケーション

1) ワークユニット起動時に(前出口プログラムで)アプリケーションをMQDに接続します。

2) ワークユニット起動時に(前出口プログラムで)アプリケーションを目的のメッセージ

キューに接続します。

3) メッセージ監視アプリケーションからの要求を受けて、メッセージキューからメッセージ

を受信します。

4) メッセージを受信したら、DB更新処理を行います。

5) ワークユニット停止時に(後出口プログラムで)アプリケーションをメッセージキューから

切断します。

6) ワークユニット停止時に(後出口プログラムで)アプリケーションをMQDから切断します。

注意

- 86 -

Page 104: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Interstageアプリケーションでメッセージの送受信を行う場合、トランザクションを終了した後に、メッセージキューからの切断、および、

MQDからの切断を行う必要があります。そのため、前出口プログラムでMQDへの接続、メッセージキューへの接続を行い、後出口プ

ログラムでメッセージキューからの切断、MQDからの切断を行う必要があります。

6.5.3 複数メッセージキューからのメッセージ参照を使用する

複数メッセージキューからのメッセージ参照を使用するアプリケーションとしては、複数のメッセージキューに対してメッセージの到着

を監視するアプリケーションがあります。複数メッセージキューの監視アプリケーションは、事前にMQDおよび監視する複数のメッセー

ジキューに接続して、複数メッセージキューからのメッセージ参照を行い、参照したメッセージの内容に対応するメッセージ受信アプリ

ケーションを呼び出すように作成します。

複数メッセージキューへの接続は、プログラムインタフェースの“MQDCONNECTQEX”または“mqd_connectqex”を使用して行いま

す。また、複数メッセージキューからのメッセージ参照は、プログラムインタフェースの“MQDPEEKMSGEX”または“mqd_peekmsgex”を使用して行います。

複数メッセージキューからのメッセージ参照の使用例を図6.10 複数メッセージキューからのメッセージ参照の使用例(Interstageアプリ

ケーションの場合)に示します。

図6.10 複数メッセージキューからのメッセージ参照の使用例(Interstageアプリケーションの場合)

[図の説明]

メッセージ監視アプリケーション

1) アプリケーション起動時にアプリケーションをMQDに接続します。

2) アプリケーション起動時にアプリケーションを目的の複数のメッセージキューに接続しま

す。

3) メッセージの到着を待ち合わせるために、同期モードで複数メッセージキューからのメッ

セージ参照をします。

4) メッセージが到着したら、トランザクションを開始します。

5) 参照したメッセージの内容に応じたメッセージ受信アプリケーション(Interstageのサー

- 87 -

Page 105: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

バアプリケーション)を呼び出します。

6) トランザクションを終了します。その後、次のメッセージの到着を待つために、3)の処理

を繰り返します。

7) アプリケーション停止時にアプリケーションを複数のメッセージキューから切断します。

このアプリケーションは、送信側からの“停止”を指示するメッセージを受信したときや

参照しているメッセージキューをアクセス禁止にしたときに停止します。

8) アプリケーション停止時にアプリケーションをMQDから切断します。

メッセージ受信アプリケーション

1) ワークユニット起動時に(前出口プログラムで)アプリケーションをMQDに接続します。

2) ワークユニット起動時に(前出口プログラムで)アプリケーションを目的のメッセージ

キューに接続します。

3) メッセージ監視アプリケーションからの要求を受けて、メッセージキューからメッセージ

を受信します。1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを受

信します。

4) メッセージを受信したら、DB更新処理を行います。

5) ワークユニット停止時に(後出口プログラムで)アプリケーションをメッセージキューから

切断します。

6) ワークユニット停止時に(後出口プログラムで)アプリケーションをMQDから切断します。

注意

Interstageアプリケーションでメッセージの送受信を行う場合、トランザクションを終了した後に、メッセージキューからの切断、および、

MQDからの切断を行う必要があります。そのため、前出口プログラムでMQDへの接続、メッセージキューへの接続を行い、後出口プ

ログラムでメッセージキューからの切断、MQDからの切断を行う必要があります。

6.6 メッセージ格納ファイルとしてデータベースを使用する場合のアプリケーションの作成

メッセージ格納ファイルとしてデータベースを使用する場合で、かつ業務としてデータベースを使用する場合、アプリケーション作成

には以下の注意事項があります。これらの注意事項について説明します。

なお、データベース管理システムの詳細については、“Symfoware Server RDB管理者ガイド”、データベースを使用するアプリケー

ション開発については、“Symfoware Server RDBユーザーズガイド 応用プログラム開発編”、SQLの詳細については、“SymfowareServer SQLリファレンスガイド”を参照してください。

・ RDBシステム

・ 業務用データベースのコネクション切替え

・ 業務用データベースのトランザクション

Symfoware/RDBトランザクション連携機能を利用したアプリケーションの作成については、“6.8 Symfoware/RDBトランザクション連携

機能を利用したアプリケーションの作成”を参照してください。

6.6.1 RDBシステム

メッセージ格納ファイルとしてデータベースを使用する場合、業務用データベースとMQDは同じRDBシステム内に存在する必要があ

ります。業務用データベースとMQDが異なるRDBシステムに存在する場合、アプリケーションの動作は保証されないので注意が必要

です。

6.6.2 業務用データベースのコネクション切替え

メッセージ格納ファイルとしてデータベースを使用する場合、MQDではデータベースに対して各種SQL文を発行します。したがって、

一つのアプリケーションで業務用データベースとMQDを使用する場合には、業務用データベースに対するデータ操作を行う前に、必

ず、SQLのSET CONNECTION文で業務用データベースのコネクションに切り替える必要があります。

- 88 -

Page 106: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

以下に、コネクション切替えのCOBOLコーディング例を示します。

EXEC SQL CONNECT TO 'DB01' AS 'C1' END-EXEC.

MOVE "MQD001" TO MQD-SYSNAME.

CALL "MQDCONNECT" USING MQD-SYSNAME MQD-ENVIRONMENT MQD-RESULT.

MOVE "QUE001" TO MQD-QUENAME.

CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL SET CONNECTION 'C1' END-EXEC.

EXEC SQL SELECT 在庫数量 ・・ END-EXEC.

EXEC SQL COMMIT END-EXEC.

CALL "MQDPUTMSG" USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER

MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL SET CONNECTION 'C1' END-EXEC.

EXEC SQL SELECT 在庫数量 ・・ END-EXEC.

EXEC SQL COMMIT END-EXEC.

6.6.3 業務用データベースのトランザクション

メッセージ格納ファイルとしてデータベースを使用する場合、一つのアプリケーションで業務用データベースとMQDを使用する場合

には、MQDプログラムインタフェースを呼ぶ前に、業務用データベースに対してCOMMIT文を発行して、トランザクションを完結させて

おく必要があります。ただし、Interstageのトランザクション連携機能を使用している場合は、トランザクションを完結する必要はありませ

ん。

以下に、誤ったCOBOLコーディング例を示します。

EXEC SQL CONNECT TO 'DB01' AS 'C1' END-EXEC.

MOVE "MQD001" TO MQD-SYSNAME.

CALL "MQDCONNECT" USING MQD-SYSNAME MQD-ENVIRONMENT MQD-RESULT.

MOVE "QUE001" TO MQD-QUENAME.

CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL SET CONNECTION 'C1' END-EXEC.

EXEC SQL SELECT 在庫数量 ・・ END-EXEC.

CALL "MQDPUTMSG" USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER

MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.

※ 誤り

業務用データベース‘DB01‘に対するトランザクションが完結してない状態で

MQDPUTMSGを呼び出している。

EXEC SQL COMMIT END-EXEC.

以下に、Interstageのトランザクション連携機能を使用した場合のCOBOLコーディング例を示します。

MOVE "MQD001" TO MQD-SYSNAME.

CALL "MQDCONNECT" USING MQD-SYSNAME MQD-ENVIRONMENT MQD-RESULT.

MOVE "QUE001" TO MQD-QUENAME.

CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL SET CONNECTION 'C1' END-EXEC.

EXEC SQL SELECT 在庫数量 ・・ END-EXEC.

- 89 -

Page 107: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

CALL "MQDPUTMSG" USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER

MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL SET CONNECTION 'C1' END-EXEC.

EXEC SQL SELECT 在庫数量 ・・ END-EXEC.

6.7 運用イベント通知機能を利用したアプリケーションの作成

6.7.1 プログラムインタフェース

運用イベント通知機能を利用するアプリケーションのために、表6.5 運用イベント通知機能を利用するためのプログラムインタフェース

に示すプログラムインタフェースを提供しています。これらのインタフェースを使用して、運用アプリケーションを作成することができま

す。

表6.5 運用イベント通知機能を利用するためのプログラムインタフェース

操作分類 操作項目インタフェース名

COBOL言語 C言語

前処理 MQDへの接続 MQDCONNECT mqd_connect

運用イベントのオープン MQDOPENEVENT

mqd_openevent

運用イベント処

運用イベントの受信 MQDGETEVENT mqd_getevent

後処理 運用イベントのクローズ MQDCLOSEEVENT

mqd_closeevent

MQDからの切断 MQDDISCONNECT

mqd_disconnect

プログラムインタフェースの詳細については、“第8章 プログラムインタフェース”を参照してください。

6.7.2 運用イベント処理の前後処理

アプリケーションで運用イベントを処理するためには、運用イベントを処理する前に、以下の処理を行っておく必要があります。

1. MQDへの接続

2. 運用イベントのオープン

また、運用イベントの処理が済んだら、アプリケーションの終了時に、以下の後処理を行ってください。

1. 運用イベントのクローズ

2. MQDからの切断

6.7.3 プログラムの翻訳/結合

運用イベントを処理するアプリケーション(プログラム)を翻訳または結合する場合の留意事項はメッセージを操作するアプリケーション

と同様です。詳細については、“6.1.4 プログラムの翻訳/結合”を参照してください。

6.7.4 運用イベント受信アプリケーションの作成

運用イベントの受信は、プログラムインタフェースの“MQDGETEVENT”または“mqd_getevent”を使用して行います。

運用イベント受信の使用例を図6.11 運用イベント受信の使用例に示します。

- 90 -

Page 108: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図6.11 運用イベント受信の使用例

[図の説明] 1) アプリケーションをMQDに接続します。

2) 運用イベントをオープンします。

3) 運用イベントを受信します。

4) 運用イベントをクローズします。

5) アプリケーションをMQDから切断します。

6.8 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの作成

Symfoware/RDBトランザクション連携機能を利用した、データベースの更新とメッセージを送受信するアプリケーションは、まず、業務

用データベースとMQDおよび目的のメッセージキューに接続します。その後、データベースの更新やメッセージの送受信を行い、トラ

ンザクションの終了を行うように作成します。

MQDへの接続は、プログラムインタフェースの“MQDCONNECTRDB”または“mqd_connectrdb”を使用します。トランザクションの終

了は、“SQL COMMIT文”を使用します。トランザクションの取消しは、“SQL ROLLBACK文”を使用します。

Symfoware/RDBトランザクション連携機能を利用したアプリケーションの例を図6.12 Symfoware/RDBトランザクション連携機能を利用

したアプリケーションの例に示します。

なお、データベース管理システムの詳細については、“Symfoware Server RDB管理者ガイド”、データベースを使用するアプリケー

ション開発については、“Symfoware Server RDBユーザーズガイド 応用プログラム開発編”、SQLの詳細については、“SymfowareServer SQLリファレンスガイド”を参照してください。

図6.12 Symfoware/RDBトランザクション連携機能を利用したアプリケーションの例

- 91 -

Page 109: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

[図の説明] 1) アプリケーションを業務用データベースに接続します。

2) “MQDCONNECTRDB”または“mqd_connectrdb”を使用してMQDに接続します。

3) アプリケーションを目的(受信先と送信先)のメッセージキューに接続します。

4) メッセージキュー1からメッセージを受信します。

5) メッセージの内容を見て、データベースを更新します。

6) 送信先メッセージキュー2にメッセージを送信します。

7) “SQL COMMIT文”を使用してトランザクションを終了します。

8) アプリケーションをメッセージキューから切断します。

9) アプリケーションをMQDから切断します。

10) アプリケーションを業務用データベースから切断します。

以下に、Symfoware/RDBトランザクション連携機能を利用したCOBOLコーディング例を示します。

EXEC SQL CONNECT TO 業務用データベース・・ END-EXEC.

MOVE "MQD001" TO MQD-SYSNAME.

CALL "MQDCONNECTRDB" USING MQD-SYSNAME MQD-ENVIRONMENT MQD-SYSADDR.

MOVE "QUE001" TO MQD-QUENAME.

CALL "MQDCONNECTQ" USING MQD-SYSADDR MQD-QUENAME MQD-ENVIRONMENT MQD-QUEADDR.

* トランザクションの開始(ここから)

CALL "MQDGETMSG" USING MQD-QUEADDR MQD-RCVMODE MQD-MESSAGEHEADER

MQD-MSGBODY MQD-BODYLEN MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL SELECT 在庫数量 ・・ END-EXEC.

EXEC SQL UPDATE 在庫数量 ・・ END-EXEC.

CALL "MQDPUTMSG" USING MQD-QUEADDR MQD-UNITFLG MQD-MESSAGEHEADER

MQD-MSGBODY MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL COMMIT END-EXEC.

* トランザクションの終了(ここまで)

CALL "MQDDISCONNECT" USING MQD-SYSADDR MQD-ENVIRONMENT MQD-RESULT.

EXEC SQL DISCONNECT CURRENT END-EXEC.

6.9 アプリケーション作成時の注意点

MQDを使用するアプリケーションを作成する場合には以下の注意事項があります。これらの注意事項について説明します。

6.9.1 シグナルを使用するアプリケーションの注意事項

MQDではアプリケーションの実行時にシグナルの抑止とシグナルハンドラの登録を行っています。ここではMQDで行っているシグナ

ル操作の内容について説明します。

6.9.1.1 MQDに接続した際のシグナル操作

MQDに接続する際に、MQDが動作を変更するシグナルとその動作を表6.6 MQDに接続した際に設定されるシグナル動作に示しま

す。

- 92 -

Page 110: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表6.6 MQDに接続した際に設定されるシグナル動作

名称 シグナル動作(注1)(注2)

SIGHUP SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGINT SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGQUIT MQD用シグナルハンドラの登録(注3)

SIGILL SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGBUS MQD用シグナルハンドラの登録(注3)

SIGSEGV MQD用シグナルハンドラの登録(注3)

SIGSYS MQD用シグナルハンドラの登録(注3)

SIGPIPE SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGTERM MQD用シグナルハンドラの登録(注3)

SIGUSR1 SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGUSR2 SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGPWR SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGWINCH SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGURG SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGTSTP SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGCONT SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGTTIN SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGTTOU SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGVTALRM SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGPROF SIG_IGN: シグナルを無視する(アクションを実行しない)

SIGWAITING SIG_IGN: シグナルを無視する(アクションを実行しない)

注1) MQDが設定したシグナル動作を変更する場合は、MQDに接続した後、シグナル動作を任意な処理に変更してください。ただし、

シグナル動作をExit、CoreまたはStopに変更した場合、当該アプリケーションが使用しているMQDシステムが強制停止する可能性が

あります。シグナル動作を変更する場合は、シグナルハンドラの登録またはシグナルの無視のいずれかを設定してください。

注2) シグナルハンドラを登録する場合は、シグナルハンドラの処理中にスレッドまたはプロセスを終了しない様にアプリケーションを作

成してください。シグナルハンドラでスレッドまたはプロセスを終了すると当該アプリケーションが使用しているMQDシステムが強制停

止する可能性があります。

注3) MQD用のシグナルハンドラでは、アプリケーション内のすべてのスレッドでMQDのアプリケーションインタフェースの呼出が完了

するのを待ち合わせた後、当該プロセスを終了(abort)します。

6.9.1.2 MQD関数実行中のシグナル操作

C言語で作成したMQDを使用するアプリケーションでは、MQDのアプリケーションインタフェースを呼び出してから復帰するまでの

間、すべてのシグナルがブロックされるため、MQDのアプリケーションインタフェースを実行したスレッドでシグナルを受信することはで

きません。シグナルはアプリケーション内の別のスレッド(ユーザが作成したスレッドまたはMQDの制御スレッド)で受信されます。

なお、Interstage 4.1以前のバージョンでシグナルを使用する場合は、アプリケーションでMQDのアプリケーションインタフェース実行

前後にブロック可能なシグナルのマスクとアンマスク処理を組み込んでください。

6.9.1.3 MQDから切断した際のシグナル操作

MQDから切断すると、表6.6 MQDに接続した際に設定されるシグナル動作に示すシグナルはすべてデフォルト動作(SIG_DFL)に変

更されます。

- 93 -

Page 111: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

6.9.1.4 MQDを使用するアプリケーションをSIGTERMで停止する方法

MQDを使用するアプリケーションをSIGTERMで停止する場合は、以下の対処をアプリケーションで行ってください。

1. MQDに接続した後、SIGTERMに対応するシグナルハンドラを登録します。

2. SIGTERMを受け付けてシグナルハンドラが呼び出されます。

3. シグナルハンドラでは、必要に応じてアプリケーション資源の回収を行った後、mqdtermaplコマンドを自プロセス宛にsystem関数

を使用することで実行します。

4. mqdtermaplコマンドにより、当該アプリケーションが停止されます。

6.9.2 Java言語で作成したアプリケーションを利用する場合の注意事項

MQDを利用するアプリケーションとJava言語で作成したアプリケーションを連携する場合、以下の制限があります。

本制限を厳守しなかった場合、MQDシステムが異常終了するなどの事象が発生します。システムプログラムの動作保証外となります

ので注意してください。

・ Java言語で作成したアプリケーションからMQDを利用するアプリケーションをJNI経由で利用することはできません。

・ Java言語で作成したアプリケーションと同じプロセスでMQDのアプリケーションインタフェースを利用することはできません。

・ Java言語で作成したアプリケーションから非同期通信機能を利用する場合は、“Interstage JMS”を利用してください。“InterstageJMS”の詳細は、“J2EEユーザーズガイド”を参照してください。

6.9.3 マルチスレッドのアプリケーションからMQDを利用する場合の注意事項

マルチスレッドのアプリケーションからMQDを利用する場合、以下の制限があります。

本制限を厳守しなかった場合、MQDシステムが異常終了するなどの事象が発生します。システムプログラムの動作保証外となります

ので注意してください。

・ 一つのプロセスからは一つのMQDシステムだけが利用できます。複数のスレッドを利用して、複数のMQDシステムを一つのプロ

セスから利用することはできません。図6.13 アプリケーションのスレッドとMQDシステムの対応関係を参考にしてください。

図6.13 アプリケーションのスレッドとMQDシステムの対応関係

- 94 -

Page 112: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

6.9.4 メッセージを受信(参照)するアプリケーションに関する注意事項

MQDはメッセージキューごと、プライオリティごとにメッセージを管理しています。カーソルはプライオリティの高いメッセージから順番

に移動しますが、一端プライオリティの高いメッセージを通りすぎると、カーソルをメッセージキューの先頭に戻さない限り、そのあと高

いプライオリティのメッセージが格納されても、そのメッセージを受信(参照)することはできません。

上記仕様のため、一つのメッセージキューに複数のプライオリティのメッセージを格納する場合には、以下に示すようにアプリケーショ

ンを作成してください。

・ メッセージを受信する前に、必ずカーソルをメッセージキューの先頭メッセージに移動する。カーソルをメッセージキューの先頭に

戻すには、mqd_seekmsg(COBOLの場合はMQDSEEKMSG)をカーソルをメッセージキューの先頭メッセージに移動するモードで

使用してください。

カーソルをメッセージキューの先頭に戻さなかった場合には、受信アプリケーションにエラーコード MQD_ERR_QUEEND が通知さ

れる場合があります。その際にはカーソルをメッセージキューの先頭に移動させてから、再度受信を実行すると、メッセージを受信する

ことができます。カーソルをメッセージキューの先頭に戻すには、mqd_seekmsg(COBOLの場合はMQDSEEKMSG)をカーソルをメッ

セージキューの先頭メッセージに移動するモードで使用してください。

受信アプリケーションにエラーコード MQD_ERR_QUEEND が通知されるパターンは以下の通りです。

・ よりプライオリティの高いメッセージが、メッセージキューに格納された。

・ 他のアプリケーション(ACM連携サービスなどの場合もあり)が処理中のだったメッセージが、ロールバックされた。

よりプライオリティの高いメッセージが、メッセージキューに格納されたため、エラーコード MQD_ERR_QUEEND が通知されるパター

ンを以下に例で示します。

- 95 -

Page 113: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図6.14 カーソルとアプリケーションの関係

- 96 -

Page 114: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

- 97 -

Page 115: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第7章 コマンド

本章では、MQDの操作コマンドについて以下の順に説明しています。

7.1 コマンドの種類

7.2 コマンドの形式

7.3 コマンドの説明

なお、拡張機能のコマンドについては、“第2部 拡張機能編”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コンソー

ル上でコマンドを実行してください。

7.1 コマンドの種類

コマンドの一覧を表7.1 MQDのコマンド一覧に示します。

表7.1 MQDのコマンド一覧

コマンド名 機能概要

mqdsetup MQDのシステム環境を作成する

mqdunsetup MQDのシステム環境を削除する

mqdstr

MQDを起動する

mqdstp

MQDを強制的に停止する

MQDを停止する

mqdcrtq メッセージキューを作成する

mqddltq メッセージキューを削除する

mqdchgq メッセージキューのアクセス状態を変更する

mqdprtq メッセージキュー情報を表示する

mqdprgmsg メッセージを一括削除する

mqdtermapl アプリケーションを強制的に停止する

mqddump 保守情報を採取する

7.2 コマンドの形式

コマンドで使用する用語および記号について以下に示します。

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

mqdxxx [{-a|-b}] -s sysname [-c] qname [id-1[id-2 …[id-n]]]

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

{|}

- 98 -

Page 116: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

複数のパラメタが“|”で区切られて、{}内に記述されている場合は、その中から一つの値を選んで指定することを示しています。例

の場合、-aまたは-bのいずれかを指定します。

[ ]

[ ]で囲まれたパラメタが省略できることを示しています。例の場合-a、-bおよび-cが省略可能です。

_

アンダーライン“_”で示されるオプションが省略値として使用されることを表しています。例の場合、-aと-bの両方を省略すると、-aが指定されたものとみなされます。

複数のパラメタを繰り返して指定できることを示しています。

-a,-b,-s,-c

先頭に“-”のつくものをオプションと呼びます。

sysname

オプションの後ろに指定するものをオプション引数と呼びます。

qname

オプションとは独立して記述するものをコマンド引数と呼びます。

7.3 コマンドの説明

ここでは、各コマンドの文法について説明します。

なお、ここでは、各種のサービスを“MQDのサービス”に略して記述しています。MQDのサービスの詳細については、“第2部 拡張機

能編”を参照してください。

7.3.1 mqdsetup (環境を作成する)

機能説明

MQDのシステム環境を新規に作成するコマンドです。

入力形式

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

mqdsetup [-s sysname] -f filename [-g mqdusers] [ {-n | -p} ]

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

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

mqdsetup [-s sysname] -f filename [-g mqdusers]

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

パラメタ

-s sysname

作成するMQDのシステム環境の名前(MQDシステム名)を指定します。MQDシステム名は“MQD”で始まる8文字以内の英数字とア

ンダースコアで指定します。英字の大文字と小文字の区別はされません。英小文字は英大文字として扱われます。このパラメタを省略

した場合、MQDシステム名は“MQD001”となります。

-f filename

MQD環境定義ファイルのファイル名を指定します。

- 99 -

Page 117: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

-g mqdusers

MQD利用者グループ名を指定します。このパラメタを省略した場合、AdministratorsローカルグループのユーザだけがMQDを運用

できます。

MQD利用者グループ名を指定します。イベントチャネル連携サービスを使用する場合は、MQD利用者グループとInterstage運用グ

ループを同一にしてください。このパラメタを省略した場合、MQD利用者グループ名はInterstage運用グループ名となります。

{-n|-p}

MQDの起動形態を指定します。このパラメタを省略した場合は、MQDのサービスの起動も行われます。未反映のサービス定義の反

映は行われません。

-n: 未反映のサービス定義を反映してからMQDのサービスを起動する

-p: MQDのサービスを起動しない

このパラメタで設定したMQDの起動形態は、以下のいずれかの場合に有効となります。

・ Windows®の[サービス]画面のスタートアップパラメタに何も指定せずにMQDを起動した場合

・ Windows®のサービスの[スタートアップ]画面でスタートアップの種類に“自動”を設定し、Windows®のシステム起動時にMQDを

起動した場合

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドを実行する前に、MQD利用者グループの作成とMQD環境定義ファイルの作成を行っておく必要があります。作成方

法については、“3.2.5 MQD利用者グループの作成”および“3.2.6 MQD環境定義の作成”を参照してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、本コマンドと“7.3.2 mqdunsetup (環境を削除する)”を実行するユー

ザは同じユーザにしてください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQD環境定義ファイル名 mqdenv.def、MQD利用者グループ名 mqdusers、MQDシステム名 MQD001 でMQDシステムを作成しま

す。

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

mqdsetup -f mqdenv.def -g mqdusers

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

7.3.2 mqdunsetup (環境を削除する)

機能説明

MQDのシステム環境を削除するコマンドです。メッセージキュー上に未処理のメッセージがない、かつ、拡張機能の各種サービス環

境がない場合に削除できます。どちらかが存在する場合は、cオプションを指定して強制的に削除することもできます。

本コマンド実行時には、コマンドの実行を再確認するための問合せが行われます。

- 100 -

Page 118: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

入力形式

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

mqdunsetup [-s sysname] [-c]

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

パラメタ

-s sysname

削除するMQDのシステム環境の名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-c

未処理のメッセージおよび拡張機能のサービス環境があっても、MQDのシステム環境を強制的に削除する場合に指定します。拡張

機能のサービス環境は削除され、未処理のメッセージは消失します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは、該当のMQDシステムが停止している状態で実行してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、本コマンドと“7.3.1 mqdsetup (環境を作成する)”を実行するユーザ

は同じユーザにしてください。異なるユーザで実行した場合は、正常に削除できずに環境が残ることがあります。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 を削除します。

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

mqdunsetup

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

7.3.3 mqdstr (MQDを起動する)

機能説明

MQDを起動するコマンドです。通常は、拡張機能の各種サービス(同報配信サービスおよび各連携サービス)の起動も行います。未

反映のサービス定義があればそれを反映させてからサービスを起動することもできます。また、このサービスの起動を抑止することもで

きます。

各種サービスおよびサービス定義の詳細については、“第2部 拡張機能編”を参照してください。

入力形式

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

mqdstr [-s sysname][{-n|-p}]

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

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

- 101 -

Page 119: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

{-n|-p}

MQDの起動形態を指定します。このパラメタを省略した場合は、前述の各種サービスの起動も行われます。未反映のサービス定義

の反映は行われません。

-n: 未反映のサービス定義を反映してからサービスを起動する

-p: サービスを起動しない

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドを実行する前に、MQDのシステム環境を作成しておく必要があります。

・ MQDのメッセージ格納ファイルとしてデータベースを使用している場合は、MQDを起動するシェルの環境変数にデータベース

を操作するコマンドの実行パスおよび必要な環境変数を指定してください。必要なコマンド実行パスおよび環境変数などの詳細

は、“Symfoware Server RDB管理者ガイド”参照してください。

・ 本コマンドによって、拡張機能のイベントチャネル連携サービスを再起動する場合は、es11209のメッセージが出力されますが、こ

れは内部情報を採取したことにより出力されるものです。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 を起動します。拡張機能の環境が作成されている場合は、拡張機能も起動します。拡張機能の未反映の

サービス定義は反映しません。

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

mqdstr

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

7.3.4 mqdstp (MQDを停止する)

機能説明

MQDを強制的に停止するコマンドです。動作中のMQDの各種サービス(同報配信サービスおよび各連携サービス)の停止も行いま

す。MQDに接続しているアプリケーションも強制的に終了されます。

MQDを停止するコマンドです。動作中の拡張機能の各種サービス(同報配信サービスおよび各連携サービス)の停止も行います。MQDは、MQDに接続している利用者が存在しない場合に停止されます。また、MQDに接続している利用者がある場合でも強制的に停止

することもできます。

各種サービスの詳細については、“第2部 拡張機能編”を参照してください。

入力形式

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

mqdstp [-s sysname]

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

- 102 -

Page 120: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdstp [-s sysname] [-c]

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

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-c

MQDを強制的に停止する場合に指定します。MQDの強制停止では、MQDに接続しているアプリケーションおよび拡張機能の各種

サービスを強制的に終了し、MQDを停止します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ MQDを強制停止した場合、MQD0500のエラーメッセージが出力されることがありますが、その後の運用に影響を与えないため

メッセージの対処は不要です。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 を停止します。

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

mqdstp

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

7.3.5 mqdcrtq (メッセージキューを作成する)

機能説明

メッセージキューを新規に作成するコマンドです。

入力形式

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

mqdcrtq [-s sysname] [{-a|-r|-w|-c}] [{-m|-d}] [-p prty] [-l length]

qname-1 [qname-2 … [qname-n] ]

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

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-r|-w|-c}

メッセージキューのアクセス状態を以下から一つ選んで指定します。このパラメタを省略した場合、“送受信可能状態”のメッセージ

キューが作成されます。

-a: 送受信可能状態

-r: 受信禁止状態

-w: 送信禁止状態

-c: 送受信禁止状態

- 103 -

Page 121: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

{-m|-d}

メッセージ保証レベルを指定します。このパラメタを省略した場合、“ディスク型”として扱われます。メッセージ保証レベルの詳細につ

いては、“2.4.1.1 メッセージ保証レベル”を参照してください。

-m: メモリ型

-d: ディスク型

-p prty

プライオリティの省略値を以下の数値で指定します。数が小さいほど優先順位が高くなります。このパラメタを省略した場合、優先順

位は 低の数に設定されます。この値は、プライオリティが省略されたメッセージに対して付与されます。

・ 1~3の数値

・ 1~7の数値

-l length

メッセージの 大長を780~ 2097152(2M)バイトの範囲で指定します。指定の単位はバイト、Kバイト、およびMバイトの3種類がありま

す。単位(“K”または“M”で大文字と小文字は区別されません)の指定がない場合は、バイトの単位となります。このパラメタを省略した

場合、メッセージの 大長は2Mバイトとなります。

qname-1 qname-2 … qname-n

作成するメッセージキューの名前を63文字以内の英数字とアンダースコアで指定します。または、31文字以内の漢字で指定します。

英字の大文字と小文字は区別されます。英数字と漢字の混在も可能です。複数のメッセージキューの名前を空白で区切って指定す

ることができます。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 大メッセージ長には、メッセージヘッダとメッセージ本体を合計した長さを指定してください。メッセージヘッダは 780バイトの固

定長です。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 にメッセージキュー名 qname00301 qname00302、ディスク型、メッセージ 大長30Kでメッセージキューを

作成します。

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

mqdcrtq -d -l 30K qname00301 qname00302

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

7.3.6 mqddltq (メッセージキューを削除する)

機能説明

メッセージキューを削除するコマンドです。通常は、以下の状態のメッセージキューが削除の対象となります。

・ メッセージキューへ接続している利用者がいない。かつ、

・ メッセージが存在していない。

上記条件を満たしていない場合でも強制的にメッセージキューを削除することができます。

- 104 -

Page 122: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

本コマンドでは、対象のメッセージキューごとにコマンドの実行を再確認するための問合せが行われます。

入力形式

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

mqddltq [-s sysname] [-c] [-j] qname-1 [qname-2 … [qname-n]]

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

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-c

メッセージキューを強制的に削除する場合に指定します。この場合、メッセージキュー上の未処理の残存メッセージは消失します。ま

た、メッセージキューへ接続している利用者がいる状態のメッセージキューも削除の対象となります。

-j

コマンド実行の問合せを回避する場合に指定します。問合せを回避した場合、指定されたすべてのメッセージキューを削除します。

qname-1 qname-2 … qname-n

削除するメッセージキューの名前を指定します。複数のメッセージキューの名前を空白で区切って指定することができます。また、ワ

イルドカード(*:0文字以上の任意の文字列、?: 任意の1文字)による指定も可能です。ワイルドカードの指定例を以下に示します。

例1: q101,q102,q103 → “q*” または “q10?” 例2: aque,bque,cque → *que または ?que 例3: q10a,q20a,q30a → q*a または q?0a

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージキューを強制的に削除する場合には、上記以外にいくつかの注意すべき事項があります。詳細については、“2.4.3 メッセージキューの削除”を参照してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 のメッセージキュー名 qname00301を削除します。メッセージキューの利用者が居る場合、メッセージキュー

上に未処理の残存メッセージが存在する場合は削除に失敗します。

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

mqddltq qname00301

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

7.3.7 mqdchgq (メッセージキューのアクセス状態を変更する)

機能説明

メッセージキューのアクセス状態を変更するコマンドです。メッセージキューをアクセス禁止状態に変更したり、アクセス禁止状態を解

除します。本コマンドでは、対象のメッセージキューごとにコマンドの実行を再確認するための問合せが行われます。

入力形式

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

mqdchgq [-s sysname]{-a|-c}{-r|-w|-r -w}[-j] qname-1 [qname-2 … [qname-n]]

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

- 105 -

Page 123: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-c}

メッセージキューのアクセス状態の変更種別を指定します。

-a: アクセス禁止状態を解除する

-c: アクセス禁止状態にする

{-r|-w|-r -w}

メッセージキューのアクセス状態の変更部分を指定します。以下の両方を指定することもできます。

-r: 受信側(システム間で連携する場合は、他システムへの送信)

-w: 送信側(システム間で連携する場合は、他システムからの受信)

-j

コマンド実行の問合せを回避する場合に指定します。問合せを回避した場合、指定されたすべてのメッセージキューのアクセス状態

が変更されます。

qname-1 qname-2 … qname-n

メッセージキューの名前を指定します。複数のメッセージキューの名前を空白で区切って指定することができます。また、ワイルドカード

(*、?)による指定も可能です。ワイルドカードの指定例は、“7.3.6 mqddltq (メッセージキューを削除する)”を参照してください。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージキューの状態が“使用禁止状態”の場合、メッセージキューのアクセス状態を変更することはできません。

・ アプリケーションがメッセージの到着を待っているメッセージキューに対して、受信側をアクセス禁止状態にすると、そのアプリケー

ションの待ち状態は解除されます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例1.

MQDシステム名 MQD001 のqueueで始まるメッセージキューをアクセス禁止状態にします。

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

mqdchgq -c -r qname*

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

例2.

MQDシステム名 MQD001 のqueueで始まるメッセージキューのアクセス禁止状態を解除します。

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

mqdchgq -a -w qname*

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

7.3.8 mqdprtq (メッセージキュー情報を表示する)

機能説明

メッセージキュー情報を表示するコマンドです。以下の三つの表示内容があります。

- 106 -

Page 124: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージキュー名の一覧表示

・ メッセージキュー情報の表示

・ メッセージキューの詳細情報の表示

入力形式

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

mqdprtq [-s sysname][{-e|-i}][qname-1[qname-2 …[qname-n]]]

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

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-e|-i}

表示内容を指定します。このパラメタを省略した場合、メッセージキュー名の一覧が表示されます。

-e: メッセージキュー情報を表示する

-i: メッセージキューの詳細情報を表示する

qname-1 qname-2 … qname-n

表示するメッセージキューの名前を指定します。この指定は、メッセージキューの詳細情報を表示する場合にだけ有効です。複数の

メッセージキューの名前を空白で区切って指定することができます。メッセージキューの名前を省略した場合は、すべてのメッセージ

キューの詳細情報が表示されます。また、ワイルドカード(*、?)による指定も可能です。ワイルドカードの指定例は、“7.3.6 mqddltq (メッセージキューを削除する)”を参照してください。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例1. メッセージキュー名の一覧表示

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

mqdprtq

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

図7.1 メッセージキュー名の一覧表示例

表示例の説明

- 107 -

Page 125: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Q001~DFJK003: 登録済のメッセージキューの名前

例2. メッセージキュー情報の表示

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

mqdprtq -e

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

図7.2 メッセージキュー情報の表示例

表示例の説明

[Queue] : MQDシステムのメッセージキュー数

queue : 作成済みのメッセージキューの数

max queue : 作成可能なメッセージキューの数

[Used] : メッセージ格納域の使用状況

disk queue : メッセージ格納域(ディスク型)の容量と使用率

memory queue : メッセージ格納域(メモリ型)の容量と使用率

[安全値-警告値]: メッセージ格納域に対する安全値と警告値です。メッセージ格納域の

監視を行わない場合、この項目は表示されません。

CAUTION : メッセージ格納域が警告状態(使用率が警告値に達し警告メッセージが

表示された状態)であることを表します。メッセージ格納域の使用率が警告

値に達していない、または警告解除状態(使用率が安全値を下回った状態)

の場合は表示されません。

例3. メッセージキューの詳細情報の表示

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

mqdprtq -i Q0012345 Q00256 Q004675 Q00510

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

- 108 -

Page 126: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図7.3 メッセージキューの詳細情報の表示例

表示例の説明

name : メッセージキュー名

create : メッセージキューの作成日時(地域時間に合わせて表示)

last access: メッセージキューの最終更新日時(地域時間に合わせて表示)

attribute : メッセージ保証レベル

memory: メモリ型

disk : ディスク型

status : メッセージキューのアクセス状態

active : 送受信可能状態

r_close : 受信禁止状態

w_close : 送信禁止状態

rw_close : 送受信禁止状態

system_hold(code) : 使用禁止状態

code 使用禁止状態となった原因

1 : メッセージの一括削除中またはメッセージキューの強制削除中

priority : プライオリティの省略値

messages : メッセージキュー内のメッセージ数

max size : メッセージの最大長(単位はバイト)

7.3.9 mqdprgmsg (メッセージを一括削除する)

機能説明

メッセージキューに存在するすべてのメッセージを一括削除するコマンドです。本コマンドでは、対象のメッセージキューごとにコマン

ドの実行を再確認するための問合せが行われます。

入力形式

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

mqdprgmsg [-s sysname] [-j] qname-1 [qname-2 … [qname-n]]

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

- 109 -

Page 127: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

パラメタ

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-j

コマンド実行の問合せを回避する場合に指定します。問合せを回避した場合、指定されたすべてのメッセージキューのメッセージを

削除します。

qname-1 qname-2 … qname-n

メッセージキューの名前を指定します。複数のメッセージキューの名前を空白で区切って指定することができます。また、ワイルドカード

(*、?)による指定も可能です。ワイルドカードの指定例は、“7.3.6 mqddltq (メッセージキューを削除する)”を参照してください。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドでは、上記以外にいくつかの注意すべき事項があります。詳細については、“2.2.7 メッセージの一括削除”を参照して

ください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 のqname00301上のメッセージを一括削除します。

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

mqdprgmsg qname00301

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

7.3.10 mqdtermapl (アプリケーションを強制的に停止する)

機能説明

MQDに接続しているアプリケーションを強制的に停止します。

入力形式

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

mqdtermapl [-s sysname] pid

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

パラメタ

-s sysname

対象アプリケーションが接続しているMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名

は“MQD001”となります。

pid

対象アプリケーションのプロセスIDを指定します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 誤ってMQDのシステムプロセスを指定した場合も、そのプロセスを強制的に停止します。そのため、使用にあたっては十分な注

意が必要です。

- 110 -

Page 128: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ アプリケーションを強制的に停止した場合、処理中のメッセージはロールバックされます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

MQDシステム名 MQD001 に接続しているプロセスID=1234のアプリケーションを強制的に停止します。

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

mqdtermapl 1234

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

7.3.11 mqddump (保守情報を採取する)

機能説明

iscollectinfoで採取できないMQDの保守情報を一括採取します。サーバ上に構築されている全てのMQDシステムを対象にします。

入力形式

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

mqddump [-n] [-d destination] [-i IDCM_install_directory]

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

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

mqddump [-gn] [-d destination]

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

パラメタ

-g

coreを採取しません。

-n

資料採取時にMQDの各種コマンド(mqdprtqなど)を実行しません。

-d destination

採取した資料の格納先を指定します。本オプションが指定されなかった場合は、カレントディレクトリが指定されたとものとして動作し

ます。

destinationに、“mqddump_YYYYMMDDHHMMSS” という名前のディレクトリを作成し、そのディレクトリ以下に資料を格納します。

destinationに、“mqddump_YYYYMMDDHHMMSS.tar.Z” という名前で採取資料をアーカイブします。ディスク容量が不足している、

圧縮後のファイルサイズが小さくならなかったなどの理由で正常にアーカイブファイルが作成できなかった場合は、destinationの下

に“mqddump_YYYYMMDDHHMMSS” という名前のディレクトリを作成し、そのディレクトリ以下に資料を格納します。

-i IDCM_install_directory

- 111 -

Page 129: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

IDCM_install_directory にIDCMのインストールディレクトリを指定します。インストールディレクトリがブランクを含む場合は""で囲って

指定してください。指定しない場合はIDCMの資料を採取しません。Solarisの場合、IDCMの情報は必ず採取します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは英語のメッセージのみを出力します。

・ MQDのハングトラブルが発生している際に本コマンドを実行すると、本コマンドもハングする可能性があります。

########## Execution of MQD commands was started.が出力され数分たっても

########## Execution of MQD commands was finished.が出力されない場合はハングしていると考えてください。その場合にはCTRL-Cを投入してmqddumpを一度終了してください。CTRL-Cが効かない場合にはタスクマネージャやOSのkillコマンドでmqddumpのプロセスを停止してください。その後Output directoryのmqddump_YYYYMMDDHHMMSS を削除し、-n オプションを指定して再度実行してください。

・ 本コマンドはサーバに存在する全てのMQDシステムに対して一括で資料を採取します。資料採取に必要なディスク容量は以下

の計算式で示される通りです。必要ディスク容量を満たすディスク上で採取してください。

必要ディスク容量 = MQDシステム × 200 Mバイト

・ 本コマンドはCORBAサービス、イベントサービス、IDCM、TJNLなどInterstage Application Serverの他コンポーネントや他製品の

資料も採取しようとします。それらのコンポーネントや製品がインストールされていなかったり、起動されていない場合には、それぞ

れの製品のエラーメッセージが出力されますが、無視してください。

本コマンドはMQDシステムごとにシステムプロセスと、アプリケーションプロセスの一覧を以下のように表示します。MQDのアプリケー

ションに問題が発生している場合は、該当プロセスのcoreを手動で採取してください。

UX:mqddump:INFO:MQD0013:collecting MQD information started. Output directory = /tmp/mqddump

++++++++++ MQD001 system and application pids start ++++++++++

root 13853 1 0 09:16:15 ? 0:00 /opt/FJSVmqd/bin/mqd_momo MQD001MOMO /opt/FJSVmqd/mqd/MQD001/momo

root 13854 13853 0 09:16:15 ? 0:00 /opt/FJSVmqd/bin/mqd_momo_func MQD001MOMO /opt/FJSVmqd/mqd/MQD001/

momo

root 13855 1 0 09:16:16 ? 0:01 /opt/FJSVmqd/bin/mqd_momo MQD001 /opt/FJSVmqd/mqd/MQD001/qm

root 13856 13855 0 09:16:16 ? 0:00 /opt/FJSVmqd/bin/mqd_momo_func MQD001 /opt/FJSVmqd/mqd/MQD001/qm

root 13857 1 0 09:16:21 ? 0:00 /opt/FJSVmqd/bin/mqdqmtmpproc MQD001

root 13858 1 0 09:16:22 ? 0:00 /opt/FJSVmqd/bin//mqdopctl MQD001

mqd 14147 13760 0 09:32:29 pts/3 0:00 ./user_application

++++++++++ MQD001 system and application pids end ++++++++++

UX:mqddump:INFO:MQD0014:collecting MQD information finished. Result = /tmp/mqddump/mqddump_20060419091807.tar.Z

MQDのシステムプロセスと、アプリケーションプロセスの一覧を表示しません。MQDのアプリケーションに問題が発生している場合

は、該当プロセスのcoreをuserdump.exeを使用して手動で採取してください。userdump.exe はマイクロソフト社が提供しているユーティ

リティーです。Interstageをインストールすると同時にインストールされます。

userdump.exe -p :プロセス一覧

userdump.exe PROCESSID :プロセスダンプ採取

本コマンドはMQDの拡張サービスのcoreを自動的に採取しません。拡張サービスを使用している場合は、使用している拡張サービ

スの種類に従って以下の表の通りのcoreを採取してください。指定されたプロセスが存在しない場合は採取の必要はありません。

拡張機能名 プロセス名

同報配信サービス mqdmcas

ACM連携サービス mqdacoms, mqdacomr, mqdacomm

SMTP連携サービス mqdscom

イベントチャネル連携サービス mqdnsgws, mqdnsgwr, mqdnsgwm

- 112 -

Page 130: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

使用例

カレントディレクトリに保守情報を一括採取します。

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

mqddump

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

- 113 -

Page 131: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第8章 プログラムインタフェース

本章では、MQDを使用するアプリケーションのためのプログラムインタフェース(API:Application Program Interface)について、以下の

順に説明しています。

8.1 インタフェースの種類

8.2 COBOL言語インタフェース

8.3 C言語インタフェース

8.4 復帰情報の説明

8.1 インタフェースの種類

MQDを使用するアプリケーションのために、表8.1 プログラムインタフェース一覧のプログラムインタフェースが用意されています。

表8.1 プログラムインタフェース一覧

インタフェース名機能概要

COBOL言語 C言語

MQDCONNECT mqd_connect MQDに接続する

MQDDISCONNECT

mqd_disconnect MQDから切断する

MQDCREATEQ mqd_createq メッセージキューを作成する

MQDDELETEQ mqd_deleteq メッセージキューを削除する

MQDCONNECTQ

mqd_connectq メッセージキューに接続する

MQDDISCONNECTQ

mqd_disconnectq メッセージキューから切断する

MQDGETQLIST mqd_getqlist メッセージキュー名の一覧を通知する

MQDPUTMSG mqd_putmsg メッセージを送信する

MQDGETMSG mqd_getmsg メッセージを受信する

MQDPEEKMSG mqd_peekmsg メッセージを参照する

MQDSEEKMSG mqd_seekmsg カーソルを移動する

MQDDELETEMSG

mqd_deletemsg メッセージを削除する

MQDPURGEMSG

mqd_purgemsg メッセージを一括削除する

MQDGETQATTR mqd_getqattr メッセージキューの属性を通知する

MQDSETQATTR mqd_setqattr メッセージキューの属性を設定する

MQDBEGIN mqd_begin トランザクションを開始する

MQDCOMMIT mqd_commit トランザクションを終了する

MQDROLLBACK

mqd_rollback トランザクションを取り消す

MQDCONNECTQEX

mqd_connectqex 複数のメッセージキューに接続する

MQDDISCONNECTQEX

mqd_disconnectqex 複数のメッセージキューから切断する

MQDGETMSGEX

mqd_getmsgex 複数のメッセージキューからメッセージを受信

する

- 114 -

Page 132: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

インタフェース名機能概要

COBOL言語 C言語

MQDPEEKMSGEX

mqd_peekmsgex 複数のメッセージキューからメッセージを参照

する

MQDSEEKMSGEX

mqd_seekmsgex 複数のメッセージキューのカーソルを移動す

MQDOPENEVENT

mqd_openevent 運用イベントをオープンする

MQDCLOSEEVENT

mqd_closeevent 運用イベントをクローズする

MQDGETEVENT mqd_getevent 運用イベントを受信する

MQDCONNECTRDB

mqd_connectrdb Symfoware/RDBトランザクション連携機能を

使用してMQDに接続する

8.2 COBOL言語インタフェース

COBOL言語アプリケーションのためのプログラムインタフェースを以下の順に説明します。

・ 各インタフェースの説明

・ パラメタの詳細説明

8.2.1 各インタフェースの説明

各プログラムインタフェースを以下に説明します。各プログラムインタフェースは、COBOL言語のCALL文を実行することにより呼び出

されます。

8.2.2 MQDCONNECT (MQDに接続する)

機能説明

当該アプリケーションをMQDに接続します。

記述形式

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

CALL "MQDCONNECT" USING MQDシステム名域名, 復帰情報域名,

MQDシステム情報アドレス格納域名

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

パラメタ

MQDシステム名域: PIC X(9)

MQDシステム名を指定します。MQDシステム名は、mqdsetupコマンドを実行したときに指定したMQDのシステム環境の名前です。9バイト目は空白を設定してください。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

- 115 -

Page 133: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16 (SYNTAX), 17 (NOENV), 18 (NOSYSTEM),

20 (CONNECTED), 32 (IO), 33 (NOMEMORY),

36 (PROCESSOVER), 37 (ACCESSDENY), 112 (SYSNAME)

16 (SYNTAX), 17 (NOENV), 18 (NOSYSTEM), 20 (CONNECTED),

21 (INVALIDAPI), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER),

37 (ACCESSDENY), 112 (SYSNAME)

MQDシステム情報アドレス格納域: POINTER

MQDシステム情報のアドレスが通知されます。MQDシステム情報のアドレスは、後述の各プログラムの入力パラメタとして使用しま

す。

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ MQDに接続するためにはMQDを起動しておく必要があります。

・ マルチスレッドのアプリケーションでMQDのプログラムインターフェイスを使用する場合には、MQDのプログラムインターフェイス

を使用するスレッドでそれぞれMQDCONNECTを実行する必要があります。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.3 MQDDISCONNECT (MQDから切断する)

機能説明

当該アプリケーションをMQDから切断します。このとき、アプリケーションがメッセージキューに接続している場合には、アプリケーショ

ンをメッセージキューから切断します。

記述形式

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

CALL "MQDDISCONNECT" USING MQDシステム情報アドレス格納域名, 復帰情報域名,

復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT),

23 (ONTRAN), 24 (NOTEOU), 33 (NOMEMORY)

復帰値格納域: PIC S9(5) COMP-5

- 116 -

Page 134: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ グローバルトランザクション処理中に、アプリケーションをMQDから切断することはできません。MQDからの切断は、ワークユニッ

トの後出口プログラムで実行する必要があります。

・ MQDBEGINプログラムによって開始したトランザクションの途中で MQDからの切断を行った場合の注意事項を以下に示します。

- アプリケーションはメッセージキューおよびMQDから切断されます。ただし、エラー詳細コードには“23”が通知されます。

- 処理中のトランザクションはシステムから取り消されます。

・ トランザクションを使用せずにユニットの途中(ユニット内の 後のメッセージを送信または受信する前)で MQDからの切断を行っ

た場合の注意事項を以下に示します。

- アプリケーションはメッセージキューおよびMQDから切断されます。ただし、エラー詳細コードには“24”が通知されます。

- ユニット内のすでに送信済または受信済のメッセージはすべて取り消されます。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。

- 本プログラムの後で、データベースとの切断をしてください。

- トランザクションの途中でMQDからの切断を行った場合、アプリケーションはメッセージキューおよびMQDからは切断されま

せん。この時、エラー詳細コードには“23”が通知されます。なお、処理中のトランザクションは取り消されないため、“SQLROLLBACK文”を使用してトランザクションを取り消してください。

8.2.4 MQDCREATEQ (メッセージキューを作成する)

機能説明

メッセージキューを作成します。

記述形式

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

CALL "MQDCREATEQ" USING MQDシステム情報アドレス格納域名,

メッセージキュー属性情報域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

メッセージキュー属性情報域

メッセージキュー属性情報を指定します。メッセージキュー属性情報の詳細については、“8.2.29 パラメタの詳細説明”を参照してくだ

さい。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

- 117 -

Page 135: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 32 (IO),

33 (NOMEMORY), 34 (NODISK), 40 (MSGFILE), 48 (QUEOVER),

64 (QUEEXIST), 113 (QNAME), 128 (GUARANTEE), 129 (QUOTA),

130 (MSGMAXLEN), 131 (PRIORITY), 132 (TIMELIMIT), 133 (PUTSTATUS),

134 (GETSTATUS)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

32 (IO), 33 (NOMEMORY), 34 (NODISK), 40 (MSGFILE),

48 (QUEOVER), 64 (QUEEXIST), 113 (QNAME), 128 (GUARANTEE),

129 (QUOTA), 130 (MSGMAXLEN), 131 (PRIORITY), 132 (TIMELIMIT),

133 (PUTSTATUS), 134 (GETSTATUS)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージキューを作成するためには、MQDへ接続しておく必要があります。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.5 MQDDELETEQ (メッセージキューを削除する)

機能説明

メッセージキューを削除します。通常は、以下の状態のメッセージキューが削除の対象となります。

・ メッセージキューへ接続している利用者がいないかつ、

・ メッセージが存在していない

上記条件を満たしていない場合でも強制的にメッセージキューを削除することができます。

記述形式

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

CALL "MQDDELETEQ" USING MQDシステム情報アドレス格納域名,

メッセージキュー名格納域名, 削除モード格納域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

メッセージキュー名格納域: PIC X(64)

メッセージキュー名を指定します。メッセージキュー名は、メッセージキューを作成したときに指定したメッセージキューの名前です。

削除モード格納域: PIC 9(5) COMP-5

- 118 -

Page 136: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

削除モードを指定します。

0: 通常モード。利用者もメッセージも存在しないメッセージキューを削除します。

1: 強制モード。無条件にメッセージキューを削除します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 20 (CONNECTED),

23 (ONTRAN), 25 (DOWNRCV), 32 (IO), 33 (NOMEMORY),

36 (PROCESSOVER), 39 (TRANFILE), 40 (MSGFILE), 49 (OPENQUEOVER),

66 (NOQUE), 71 (MSGEXIST), 113 (QNAME), 144 (DELMODE)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 20 (CONNECTED),

21 (INVALIDAPI), 23 (ONTRAN), 25 (DOWNRCV), 32 (IO),

33 (NOMEMORY), 36 (PROCESSOVER), 39 (TRANFILE), 40 (MSGFILE),

49 (OPENQUEOVER), 66 (NOQUE), 71 (MSGEXIST), 113 (QNAME),

144 (DELMODE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージキューを削除するためには、MQDへ接続しておく必要があります。

・ メッセージキューを強制モードで削除する場合には、上記以外にいくつかの注意すべき事項があります。詳細については、“2.4.3メッセージキューの削除”を参照してください。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.6 MQDCONNECTQ (メッセージキューに接続する)

機能説明

当該アプリケーションをメッセージキューに接続します。

記述形式

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

CALL "MQDCONNECTQ" USING MQDシステム情報アドレス格納域名,

メッセージキュー名格納域名, 復帰情報域名, メッセージキューアドレス格納域名

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

- 119 -

Page 137: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

メッセージキュー名格納域: PIC X(64)

メッセージキュー名を指定します。メッセージキュー名は、メッセージキューを作成したときに指定したメッセージキューの名前です。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 33 (NOMEMORY),

36 (PROCESSOVER), 49 (OPENQUEOVER), 66 (NOQUE), 113 (QNAME)

メッセージキューアドレス格納域: POINTER

メッセージキューのアドレスが通知されます。メッセージキューのアドレスは、後述の各プログラムの入力パラメタとして使用します。

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

メッセージキューに接続するためには、MQDを起動し、メッセージキューを作成しておく必要があります。

8.2.7 MQDDISCONNECTQ (メッセージキューから切断する)

機能説明

当該アプリケーションをメッセージキューから切断します。

記述形式

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

CALL "MQDDISCONNECTQ" USING メッセージキューアドレス格納域名, 復帰情報域名,

復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 22 (NOCONNECTQUE),

23 (ONTRAN), 24 (NOTEOU), 30 (BACKOUT), 32 (IO),

33 (NOMEMORY), 34 (NODISK), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

66 (NOQUE), 72 (QUEWINHIBIT)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

- 120 -

Page 138: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ MQDBEGINプログラムによって開始したトランザクションの途中でメッセージキューからの切断を行った場合の注意事項を以下

に示します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“23”が通知されます。

- 処理中のトランザクションはシステムから取り消されます。

・ ユニットの途中(ユニット内の 後のメッセージを送信または受信する前)でメッセージキューからの切断を行った場合の注意事項

を以下に示します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“24”が通知されます。

- ユニット内のすでに送信済または受信済のメッセージはすべて取り消されます。ただし、グローバルトランザクション処理中の

場合を除きます。

- グローバルトランザクション処理中の場合には、グローバルトランザクションを終了(ロールバック)させて、ユニット内のすでに

送信済または受信済のメッセージを取り消す必要があります。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。

- 本プログラムの前で、トランザクションの終了またはトランザクションの取消しを行ってください。

- トランザクションの途中でメッセージキューからの切断を行った場合、アプリケーションはメッセージキューから切断されます。

この時、エラー詳細コードには“23”が通知されます。なお、処理中のトランザクションは取り消されないため、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。

8.2.8 MQDGETQLIST (メッセージキュー名の一覧を通知する)

機能説明

MQDの管理しているメッセージキューの名前の一覧を通知します。

記述形式

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

CALL "MQDGETQLIST" USING MQDシステム情報アドレス格納域名,

メッセージキュー名一覧域名, 個数格納域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

メッセージキュー名一覧域

メッセージキュー名の一覧が通知されます。個数格納域で指定した分の領域を用意する必要があります。メッセージキュー名一覧の

詳細については、“8.2.29 パラメタの詳細説明”を参照してください。

個数格納域: PIC 9(9) COMP-5

作成済のメッセージキューの総数を指定します。本プログラムから復帰したときに、個数格納域で指定した数が、実際のメッセージ

キューの個数に置き換えられます。また、この数が実際のメッセージキューの個数より小さい場合には、指定した数のメッセージキュー

名の一覧が通知され、エラー詳細コード“35”が返されます。

復帰情報域

- 121 -

Page 139: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT),

32 (IO), 33 (NOMEMORY), 35 (ARRAYLACK),

65 (NOQUEEXIST), 137 (QNUM)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

メッセージキュー名の一覧を通知する場合には、MQDへ接続しておく必要があります。

8.2.9 MQDPUTMSG (メッセージを送信する)

機能説明

メッセージを送信します。

記述形式

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

CALL "MQDPUTMSG" USING メッセージキューアドレス格納域名,

ユニットフラグ格納域名, メッセージヘッダ域名, メッセージ本体域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

ユニットフラグ格納域: PIC 9(5) COMP-5

ユニット内のメッセージの位置を指定します。

1: ユニットの終了。一つのメッセージを一つのユニットで送信する場合に指定します。また、複数のメッセージを一つのユニットで送

信する場合には、ユニット内の 後のメッセージを送信する際に指定します。

2: ユニットの途中。複数のメッセージを一つのユニットで送信する場合は、ユニット内の先頭および途中のメッセージを送信する際に

指定します。

メッセージヘッダ域

メッセージヘッダの領域を指定します。事前にメッセージヘッダを作成しておく必要があります。メッセージヘッダの詳細について

は、“8.2.29 パラメタの詳細説明”を参照してください。

メッセージ本体域

メッセージ本体の領域を指定します。事前にメッセージ本体を作成しておく必要があります。メッセージ本体の詳細については、“8.2.29パラメタの詳細説明”を参照してください。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

- 122 -

Page 140: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 30 (BACKOUT), 32 (IO),

33 (NOMEMORY), 34 (NODISK), 36 (PROCESSOVER), 39 (TRANFILE),

40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 66 (NOQUE),

69 (LONGMSG), 72 (QUEWINHIBIT), 74 (PURGEMSG), 113 (QNAME),

114 (MSGNAME), 131 (PRIORITY), 132 (TIMELIMIT), 135 (MSGBODYLENGTH),

136 (ACCESSRIGHT), 148 (UNITFLAG)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 30 (BACKOUT), 31 (OTHERTHR),

32 (IO), 33 (NOMEMORY), 34 (NODISK), 36 (PROCESSOVER),

39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

66 (NOQUE), 69 (LONGMSG), 72 (QUEWINHIBIT), 74 (PURGEMSG),

113 (QNAME), 114 (MSGNAME), 131 (PRIORITY), 132 (TIMELIMIT),

135 (MSGBODYLENGTH), 136 (ACCESSRIGHT), 148 (UNITFLAG)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 一つのアプリケーションから複数のメッセージキューに対して送信する場合は、必ずメッセージキューごとにユニット内の全メッセー

ジを送信するようにしてください。

・ エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.10 MQDGETMSG (メッセージを受信する)

機能説明

メッセージを受信します。メッセージを受信するとカーソルは次のメッセージに移動します。

記述形式

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

CALL "MQDGETMSG" USING メッセージキューアドレス格納域名,受信モード格納域名,

メッセージヘッダ域名, メッセージ本体域名, 領域長格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

受信モード格納域: PIC 9(9) COMP-5

メッセージがない場合の対処を指定します。

- 123 -

Page 141: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

1: 非同期モード。メッセージがない場合には、すぐに復帰します。

2: 同期モード。メッセージが到着するまで待ちます。

メッセージヘッダ域

メッセージヘッダを入れる領域を指定します。領域は発行元が用意します。メッセージヘッダの詳細については、“8.2.29 パラメタの

詳細説明”を参照してください。

メッセージ本体域

メッセージ本体を入れる領域を指定します。領域は発行元が用意します。メッセージ本体の詳細については、“8.2.29 パラメタの詳細

説明”を参照してください。

領域長格納域: PIC 9(9) COMP-5

メッセージ本体域の領域の長さを指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK),

39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT),

74 (PURGEMSG), 135 (MSGBODYLENGTH), 145 (GETMODE)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

31 (OTHERTHR), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER),

38 (BUFFERLACK), 39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER),

52 (UNITSUMOVER), 66 (NOQUE), 68 (NOMSG), 70 (QUEEND),

73 (QUERINHIBIT), 74 (PURGEMSG), 135 (MSGBODYLENGTH), 145 (GETMODE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 正しく受信されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、MQDSEEKMSGを使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。

・ 一つのアプリケーションが、複数のメッセージキューから受信する場合、必ずメッセージキューごとにユニット内の全メッセージを

受信するようにしてください。

・ 複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。1ユニット複数メッセージの場合は、

処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。

・ エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中

に限り通知されます。

- 124 -

Page 142: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.11 MQDPEEKMSG (メッセージを参照する)

機能説明

メッセージキュー内のメッセージを参照します。

記述形式

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

CALL "MQDPEEKMSG" USING メッセージキューアドレス格納域名, 参照モード格納域名,

メッセージヘッダ域名, メッセージ本体域名, 領域長格納域名,

カーソル情報格納域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

参照モード格納域: PIC 9(9) COMP-5

メッセージがない場合の対処を指定します。

1: 非同期モード。メッセージがない場合には、すぐに復帰します。

2: 同期モード。メッセージが到着するまで待ちます。

メッセージヘッダ域

メッセージヘッダを入れる領域を指定します。領域は発行元が用意します。メッセージヘッダの詳細については、“8.2.29 パラメタの

詳細説明”を参照してください。

メッセージ本体域

メッセージ本体を入れる領域を指定します。領域は発行元が用意します。メッセージ本体の詳細については、“8.2.29 パラメタの詳細

説明”を参照してください。

領域長格納域: PIC 9(9) COMP-5

メッセージ本体域の領域の長さを指定します。

カーソル情報格納域: PIC 9(9) COMP-5

メッセージを参照した後のカーソルの位置づけを指定します。

1: メッセージを参照した後カーソルを次のユニットの先頭メッセージに位置づけます。

2: メッセージを参照した後カーソルを動かしません。

3: メッセージを参照した後カーソルを次のメッセージに位置づけます。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK),

39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT),

74 (PURGEMSG), 135 (MSGBODYLENGTH), 146 (PEEKMODE), 147 (CURSORMODE)

- 125 -

Page 143: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

31 (OTHERTHR), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER),

38 (BUFFERLACK), 39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER),

52 (UNITSUMOVER), 66 (NOQUE), 68 (NOMSG), 70 (QUEEND),

73 (QUERINHIBIT), 74 (PURGEMSG), 135 (MSGBODYLENGTH), 146 (PEEKMODE),

147 (CURSORMODE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 正しく参照されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、MQDSEEKMSGを使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。

・ 複数のアプリケーションが、同じメッセージキューから受信と参照を同時に行うことは避けてください。1ユニット複数メッセージの

場合は、処理結果が保証されません。

・ エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中

に限り通知されます。

・ エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.12 MQDSEEKMSG (カーソルを移動する)

機能説明

パラメタで指定した位置にカーソルを移動します。

記述形式

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

CALL "MQDSEEKMSG" USING メッセージキューアドレス格納域名,カーソル情報域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

カーソル情報域: PIC 9(9) COMP-5

カーソルの移動先を指定します。

1: カーソルを次のユニットの先頭メッセージに移動します。

4: カーソルをメッセージキューの先頭メッセージに移動します。

復帰情報域

- 126 -

Page 144: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 39 (TRANFILE),

40 (MSGFILE), 49 (OPENQUEOVER), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT),

74 (PURGEMSG), 147 (CURSORMODE)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

31 (OTHERTHR), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER),

39 (TRANFILE), 40 (MSGFILE), 49 (OPENQUEOVER), 51 (UNITMSGOVER),

52 (UNITSUMOVER), 66 (NOQUE), 68 (NOMSG), 70 (QUEEND),

73 (QUERINHIBIT), 74 (PURGEMSG), 147 (CURSORMODE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 正しく移動できなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、MQDDISCONNECTQを使用してメッセージキューから切断を行い、MQDCONNECTQを使用して再度メッセージキュー

へ接続を行ってください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。

・ エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中

に限り通知されます。

・ エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.13 MQDDELETEMSG (メッセージを削除する)

機能説明

メッセージをユニット単位に削除します。メッセージを削除するとカーソルは次のユニットの先頭メッセージに移動します。

記述形式

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

CALL "MQDDELETEMSG" USING メッセージキューアドレス格納域名, 復帰情報域名,

復帰値格納域名

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

- 127 -

Page 145: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 39 (TRANFILE),

40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 66 (NOQUE),

67 (NOCURSORMSG), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT),

74 (PURGEMSG)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT),

31 (OTHERTHR), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER),

39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

66 (NOQUE), 67 (NOCURSORMSG), 68 (NOMSG), 70 (QUEEND),

73 (QUERINHIBIT), 74 (PURGEMSG)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージを削除するとき、カーソルはユニット内の先頭メッセージを指しておく必要があります。

・ 正しく削除されなかった場合には、カーソル位置は保証されません。ただし、エラー詳細コードが“67”の場合には、カーソルは次

のメッセージに位置づけられます。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用し

てください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。

・ エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中

に限り通知されます。

・ 同一メッセージキューに対して複数アプリケーションが同時にメッセージを削除しようとする場合、タイミングによってはカーソルが

指していたメッセージを他のアプリケーションが消してしまうという現象が発生します。その場合には、エラー詳細コード“67”また

は“68”が通知されます。

・ エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.14 MQDPURGEMSG (メッセージを一括削除する)

- 128 -

Page 146: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能説明

メッセージキューに存在するすべてのメッセージを削除します。

記述形式

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

CALL "MQDPURGEMSG" USING メッセージキューアドレス格納域名, 復帰情報域名,

復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 22 (NOCONNECTQUE),

23 (ONTRAN), 25 (DOWNRCV), 32 (IO), 33 (NOMEMORY),

36 (PROCESSOVER), 39 (TRANFILE), 40 (MSGFILE), 66 (NOQUE),

71 (MSGEXIST), 74 (PURGEMSG)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

22 (NOCONNECTQUE), 23 (ONTRAN), 25 (DOWNRCV), 32 (IO),

33 (NOMEMORY), 36 (PROCESSOVER), 39 (TRANFILE), 40 (MSGFILE),

66 (NOQUE), 71 (MSGEXIST), 74 (PURGEMSG)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージを一括削除する場合には、いくつかの注意すべき事項があります。詳細については、“2.2.7 メッセージの一括削除”を

参照してください。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.15 MQDGETQATTR (メッセージキュー属性を通知する)

機能説明

メッセージキューの属性情報を通知します。

- 129 -

Page 147: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述形式

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

CALL "MQDGETQATTR" USING メッセージキューアドレス格納域名,

メッセージキュー属性情報域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

メッセージキュー属性情報域

メッセージキュー属性情報が通知されます。この領域は発行元が用意します。メッセージキュー属性情報の詳細については、“8.2.29パラメタの詳細説明”を参照してください。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 22 (NOCONNECTQUE),

32 (IO), 33 (NOMEMORY), 66 (NOQUE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

8.2.16 MQDSETQATTR (メッセージキュー属性を設定する)

機能説明

メッセージキューの属性情報を設定します。

記述形式

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

CALL "MQDSETQATTR" USING メッセージキューアドレス格納域名,

メッセージキュー属性情報域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューアドレス格納域: POINTER

MQDCONNECTQプログラムから通知されたメッセージキューアドレスをそのまま指定します。

メッセージキュー属性情報域

メッセージキュー属性情報を指定します。メッセージキュー属性情報の詳細については、“8.2.29 パラメタの詳細説明”を参照してくだ

さい。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

- 130 -

Page 148: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 22 (NOCONNECTQUE),

32 (IO), 33 (NOMEMORY), 66 (NOQUE), 74 (PURGEMSG),

133 (PUTSTATUS), 134 (GETSTATUS)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

8.2.17 MQDBEGIN (トランザクションを開始する)

機能説明

トランザクションを開始します。

記述形式

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

CALL "MQDBEGIN" USING MQDシステム情報アドレス格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 23 (ONTRAN),

24 (NOTEOU), 25 (DOWNRCV), 26 (OVERTRAN), 27 (TRANMIX),

33 (NOMEMORY)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

23 (ONTRAN), 24 (NOTEOU), 25 (DOWNRCV), 26 (OVERTRAN),

27 (TRANMIX), 33 (NOMEMORY)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

- 131 -

Page 149: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ トランザクションを開始するためには、MQDへ接続しておく必要があります。

・ トランザクションはスレッド単位に管理されます。

・ MQDBEGINは、以下の契機で実行すると、エラー詳細コード“24”で復帰します。

- MQDBEGINを実行せずに、MQDPUTMSG、MQDGETMSGまたはMQDPEEKMSGを実行し、かつ、ユニットの 後まで処

理し終えていないとき

・ グローバルトランザクション処理中にMQDBEGINを実行すると、エラー詳細コード“27”で復帰します。

・ MQDBEGINがエラー詳細コード“27”以外のエラーコードで復帰した場合、処理中のトランザクションはシステムから取り消されま

す。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用してください。トランザクション内でMQDPEEKMSGEXによる複数メッセージキューからのメッセージ参照を行っている場合

には、MQDDISCONNECTQEXを使用して複数メッセージキューから切断を行い、MQDCONNECTQEXを使用して再度複数メッ

セージキューへ接続を行ってください。

当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.18 MQDCOMMIT (トランザクションを終了する)

機能説明

トランザクションを終了し、メッセージ処理をメッセージキューに反映します。

記述形式

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

CALL "MQDCOMMIT" USING MQDシステム情報アドレス格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 24 (NOTEOU),

27 (TRANMIX), 28 (NOBEGIN), 32 (IO), 33 (NOMEMORY),

39 (TRANFILE), 40 (MSGFILE), 74 (PURGEMSG)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

24 (NOTEOU), 27 (TRANMIX), 28 (NOBEGIN), 32 (IO),

33 (NOMEMORY), 39 (TRANFILE), 40 (MSGFILE), 74 (PURGEMSG)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

- 132 -

Page 150: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ トランザクションを終了するためには、MQDへ接続し、トランザクションを開始しておく必要があります。

・ MQDCOMMITは、以下の契機で実行すると、エラー詳細コード“24”で復帰します。

- 接続しているメッセージキューに、ユニット途中までしか処理していないメッセージが存在するとき

・ グローバルトランザクション処理中にMQDCOMMITを実行すると、エラー詳細コード“27”で復帰します。

・ MQDCOMMITがエラー詳細コード“27”以外のエラーコードで復帰した場合、処理中のトランザクションはシステムから取り消さ

れます。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用してください。トランザクション内でMQDPEEKMSGEXによる複数メッセージキューからのメッセージ参照を行っている場合

には、MQDDISCONNECTQEXを使用して複数メッセージキューから切断を行い、MQDCONNECTQEXを使用して再度複数メッ

セージキューへ接続を行ってください。

当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.19 MQDROLLBACK (トランザクションを取り消す)

機能説明

現在処理中のトランザクションを取り消します。

記述形式

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

CALL "MQDROLLBACK" USING MQDシステム情報アドレス格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 24 (NOTEOU),

27 (TRANMIX), 28 (NOBEGIN), 33 (NOMEMORY)

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

24 (NOTEOU), 27 (TRANMIX), 28 (NOBEGIN), 33 (NOMEMORY)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

- 133 -

Page 151: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ トランザクションを取り消すためには、MQDへ接続し、トランザクションを開始しておく必要があります。

・ MQDROLLBACKは、以下の契機で実行すると、エラー詳細コード“24”で復帰します。

- MQDBEGINを実行せずに、MQDPUTMSG、MQDGETMSGまたはMQDPEEKMSGを実行し、かつ、ユニットの 後まで処

理し終えていないとき

・ グローバルトランザクション処理中にMQDROLLBACKを実行すると、エラー詳細コード“27”で復帰します。

・ MQDROLLBACKがエラー詳細コード“27”以外のエラーコードで復帰した場合、処理中のトランザクションはシステムから取り消

されます。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するためには、MQDSEEKMSGを使用してください。トランザクション内でMQDPEEKMSGEXによる複数メッセージキューからのメッセージ参照を行っている場合

には、MQDDISCONNECTQEXを使用して複数メッセージキューから切断を行い、MQDCONNECTQEXを使用して再度複数メッ

セージキューへ接続を行ってください。

・ メッセージへのカーソル位置はトランザクション機能の対象外です。トランザクションを取り消しても、カーソルは現在の場所に留

まります。

当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本プログラムはエラー詳細コード“21”で復帰します。

8.2.20 MQDCONNECTQEX (複数のメッセージキューに接続する)

機能説明

当該アプリケーションを複数のメッセージキューに接続します。

記述形式

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

CALL "MQDCONNECTQEX" USING MQDシステム情報アドレス格納域名,

メッセージキュー名一覧域名, 個数格納域名, エラーメッセージキュー番号格納域名,

復帰情報域名, メッセージキューグループアドレス格納域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

メッセージキュー名一覧域

接続するメッセージキュー名の一覧を設定します。メッセージキュー名は、メッセージキューを作成したときに指定したメッセージキュー

の名前です。個数格納域で指定した分の領域を用意する必要があります。メッセージキュー名一覧の詳細については、“8.2.29 パラメ

タの詳細説明”を参照してください。

個数格納域: PIC 9(9) COMP-5

接続するメッセージキューの個数を指定します。

エラーメッセージキュー番号格納域: PIC S9(9) COMP-5

異常が発生したメッセージキューの番号が通知されます。番号は、メッセージキュー名一覧の出現番号で、以下のように通知されま

す。

- 134 -

Page 152: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

正数: 異常が発生したメッセージキューの出現番号(先頭は1) -1 : メッセージキューに関係なく異常復帰した場合

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

・ エラーメッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM), 21 (INVALIDAPI)

・ エラーメッセージキュー番号格納域に正数を通知するエラー詳細コード

49 (OPENQUEOVER), 66 (NOQUE), 75 (QUEUSE), 113 (QNAME)

・ エラーメッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

19 (NOCONNECT), 33 (NOMEMORY), 36 (PROCESSOVER)

メッセージキューグループアドレス格納域: POINTER

メッセージキューグループのアドレスが通知されます。メッセージキューグループは、メッセージキュー名一覧で指定した複数のメッ

セージキューを管理するものです。メッセージキューグループのアドレスは、後述のMQDDISCONNECTQEX・MQDGETMSGEX・

MQDPEEKMSGEX・MQDSEEKMSGEXの各プログラムの入力パラメタとして使用します。

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージキューに接続するためには、MQDを起動し、メッセージキューを作成しておく必要があります。

・ 本プログラムが異常復帰した場合は、メッセージキュー名一覧で指定したすべてのメッセージキューから切断します。

・ 本プログラムを、1つのスレッドで複数呼び出すことはできません。

8.2.21 MQDDISCONNECTQEX (複数のメッセージキューから切断する)

機能説明

当該アプリケーションを複数のメッセージキューからすべて切断します。

記述形式

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

CALL "MQDDISCONNECTQEX" USING メッセージキューグループアドレス格納域名,

エラーメッセージキュー番号格納域名, 復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューグループアドレス格納域: POINTER

MQDCONNECTQEXプログラムから通知されたメッセージキューグループのアドレスをそのまま指定します。

エラーメッセージキュー番号格納域: PIC S9(9) COMP-5

- 135 -

Page 153: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

異常が発生したメッセージキューの番号が通知されます。複数異常が発生した場合は 初のメッセージキューの番号が通知されま

す。番号は、MQDCONNECTQEXプログラムで指定したメッセージキュー名一覧の出現番号で、以下のように通知されます。

正数: 異常が発生したメッセージキューの出現番号(先頭は1) -1 : メッセージキューに関係なく異常復帰した場合

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

・ エラーメッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM)

・ エラーメッセージキュー番号格納域に正数を通知するエラー詳細コード

23 (ONTRAN), 24 (NOTEOU), 30 (BACKOUT), 51 (UNITMSGOVER),

52 (UNITSUMOVER), 66 (NOQUE), 72 (QUEWINHIBIT)

・ エラーメッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

19 (NOCONNECT), 22 (NOCONNECTQUE),

32 (IO), 33 (NOMEMORY), 34 (NODISK)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 本プログラムを使用する場合は、事前にMQDCONNECTQEXプログラムでメッセージキューに接続してください。

・ MQDBEGINプログラムによって開始したトランザクションの途中でメッセージキューからの切断を行った場合の注意事項を以下

に示します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“23”が通知されます。

- 処理中のトランザクションはシステムから取り消されます。

・ ユニットの途中(ユニット内の 後のメッセージを受信する前)でメッセージキューからの切断を行った場合の注意事項を以下に示

します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“24”が通知されます。

- ユニット内のすでに受信済のメッセージはすべて取り消されます。ただし、グローバルトランザクション処理中の場合を除きま

す。

- グローバルトランザクション処理中の場合には、グローバルトランザクションを終了(ロールバック)させて、ユニット内のすでに

受信済のメッセージを取り消す必要があります。

・ 本プログラムが異常復帰した場合でも、メッセージキューグループのすべてのメッセージキューから切断します。ただし、復帰情

報は 初に異常が発生したメッセージキューの復帰情報が通知されます。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。

- 本プログラムの前で、トランザクションの終了またはトランザクションの取消しを行ってください。

- 136 -

Page 154: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

- トランザクションの途中でメッセージキューからの切断を行った場合、アプリケーションはメッセージキューから切断されます。

この時、エラー詳細コードには“23”が通知されます。なお、処理中のトランザクションは取り消されないため、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。

8.2.22 MQDGETMSGEX (複数のメッセージキューからメッセージを受信する)

機能説明

指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージを受信します。

記述形式

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

CALL "MQDGETMSGEX" USING メッセージキューグループアドレス格納域名,

受信モード格納域名, 受信中止条件格納域名,

メッセージキュー番号格納域名, メッセージヘッダ域名,

メッセージ本体域名, 領域長格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューグループアドレス格納域: POINTER

MQDCONNECTQEXプログラムから通知されたメッセージキューグループのアドレスをそのまま指定します。

受信モード格納域: PIC 9(9) COMP-5

メッセージがない場合の対処を指定します。

1: 非同期モード。メッセージキューグループ内のすべてのメッセージキューにメッセージがない場合には、すぐに復帰します。

2: 同期モード。メッセージキューグループ内のいずれかのメッセージキューにメッセージが到着するまで待ちます。

受信中止条件格納域: PIC 9(9) COMP-5

メッセージの受信中止条件を指定します。

1: メッセージキューグループ内のいずれかのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの受信

を中止して復帰します。 2: メッセージキューグループ内のすべてのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの受信を

中止して復帰します。

メッセージキュー番号格納域: PIC S9(9) COMP-5

メッセージキューの番号が通知されます。番号は、MQDCONNECTQEXプログラムで指定したメッセージキュー名一覧の出現番号

で、以下のように通知されます。

正数: メッセージキューの出現番号(先頭は1) -1 : メッセージキューに関係なく異常復帰した場合

メッセージヘッダ域

メッセージヘッダを入れる領域を指定します。領域は発行元が用意します。メッセージヘッダの詳細については、“8.2.29 パラメタの

詳細説明”を参照してください。

メッセージ本体域

メッセージ本体を入れる領域を指定します。領域は発行元が用意します。メッセージ本体の詳細については、“8.2.29 パラメタの詳細

説明”を参照してください。

領域長格納域: PIC 9(9) COMP-5

メッセージ本体域の領域の長さを指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

- 137 -

Page 155: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT), 32 (IO),

33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK), 39 (TRANFILE),

40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 135 (MSGBODYLENGTH),

145 (GETMODE), 149 (GETCOND)

・ メッセージキュー番号格納域に正数を通知するエラー詳細コード

66 (NOQUE), 68 (NOMSG), 73 (QUERINHIBIT), 74 (PURGEMSG),

76 (UNITNOTCONT)

・ メッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

22 (NOCONNECTQUE)

・ メッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT), 31 (OTHERTHR),

32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK),

39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

135 (MSGBODYLENGTH), 145 (GETMODE), 149 (GETCOND)

・ メッセージキュー番号格納域に正数を通知するエラー詳細コード

66 (NOQUE), 68 (NOMSG), 73 (QUERINHIBIT), 74 (PURGEMSG),

76 (UNITNOTCONT)

・ メッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

22 (NOCONNECTQUE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 本プログラムを使用する場合は、事前にMQDCONNECTQEXプログラムでメッセージキューに接続してください。

・ 同一のメッセージキューグループのアドレスを用いて、本プログラムとMQDPEEKMSGEXプログラムを使用することはできませ

ん。

・ メッセージの受信は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に受信し

ます。ただし、受信したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを受信するまで同一のメッセー

ジキューより受信します。

・ 本プログラムでは、カーソルは使用しません。メッセージキューからは、プライオリティの高い先頭のメッセージから受信します。

・ 一つのアプリケーションが、複数のメッセージキューから受信する場合、必ずメッセージキューごとにユニット内の全メッセージを

受信するようにしてください。

- 138 -

Page 156: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。1ユニット複数メッセージの場合は、

処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。

・ エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中

に限り通知されます。

・ メッセージがない場合の対処として“同期モード”を指定している、かつ、メッセージの受信中止条件として“すべてのメッセー

キュー”を指定している場合の、待ち受けを解除して停止する方法を以下に示します。

- メッセージキューグループのすべてのメッセージキューをアクセス禁止にする。

- メッセージキューグループ内のメッセージキューに“停止”を指示するメッセージを送信する。

エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.23 MQDPEEKMSGEX (複数のメッセージキューからメッセージを参照する)

機能説明

指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージを参照します。

記述形式

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

CALL "MQDPEEKMSGEX" USING メッセージキューグループアドレス格納域名,

参照モード格納域名, 参照中止条件格納域名,

メッセージキュー番号格納域名, メッセージヘッダ域名,

メッセージ本体域名, 領域長格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

メッセージキューグループアドレス格納域: POINTER

MQDCONNECTQEXプログラムから通知されたメッセージキューグループのアドレスをそのまま指定します。

参照モード格納域: PIC 9(9) COMP-5

メッセージがない場合の対処を指定します。

1: 非同期モード。メッセージキューグループ内のすべてのメッセージキューにメッセージがない場合には、すぐに復帰します。

2: 同期モード。メッセージキューグループ内のいずれかのメッセージキューにメッセージが到着するまで待ちます。

参照中止条件格納域: PIC 9(9) COMP-5

メッセージの参照中止条件を指定します。

1: メッセージキューグループ内のいずれかのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの参照

を中止して復帰します。 2: メッセージキューグループ内のすべてのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの参照を

中止して復帰します。

メッセージキュー番号格納域: PIC S9(9) COMP-5

メッセージキューの番号が通知されます。番号は、MQDCONNECTQEXプログラムで指定したメッセージキュー名一覧の出現番号

で、以下のように通知されます。

正数: メッセージキューの出現番号(先頭は1) -1 : メッセージキューに関係なく異常復帰した場合

メッセージヘッダ域

メッセージヘッダを入れる領域を指定します。領域は発行元が用意します。メッセージヘッダの詳細については、“8.2.29 パラメタの

詳細説明”を参照してください。

メッセージ本体域

- 139 -

Page 157: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メッセージ本体を入れる領域を指定します。領域は発行元が用意します。メッセージ本体の詳細については、“8.2.29 パラメタの詳細

説明”を参照してください。

領域長格納域: PIC 9(9) COMP-5

メッセージ本体域の領域の長さを指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

・ メッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT), 32 (IO),

33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK), 39 (TRANFILE),

40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER), 135 (MSGBODYLENGTH),

146 (PEEKMODE), 150 (PEEKCOND)

・ メッセージキュー番号格納域に正数を通知するエラー詳細コード

66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT),

74 (PURGEMSG), 76 (UNITNOTCONT)

・ メッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

22 (NOCONNECTQUE)

・ メッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 21 (INVALIDAPI),

25 (DOWNRCV), 29 (DEADLOCK), 30 (BACKOUT), 31 (OTHERTHR),

32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER), 38 (BUFFERLACK),

39 (TRANFILE), 40 (MSGFILE), 51 (UNITMSGOVER), 52 (UNITSUMOVER),

135 (MSGBODYLENGTH), 146 (PEEKMODE), 150 (PEEKCOND)

・ メッセージキュー番号格納域に正数を通知するエラー詳細コード

66 (NOQUE), 68 (NOMSG), 70 (QUEEND), 73 (QUERINHIBIT),

74 (PURGEMSG), 76 (UNITNOTCONT)

・ メッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

22 (NOCONNECTQUE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、復帰値格納域と特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 本プログラムを使用する場合は、事前にMQDCONNECTQEXプログラムでメッセージキューに接続してください。

・ 同一のメッセージキューグループのアドレスを用いて、本プログラムとMQDGETMSGEXプログラムを使用することはできません。

- 140 -

Page 158: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージの参照は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に参照し

ます。ただし、参照したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを参照するまで同一のメッセー

ジキューより参照します。

・ カーソルは、指定したメッセージキューごとに以下の動作になります。

- メッセージ参照後、カーソルを次のメッセージに位置付けます。

・ 正しく参照されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、MQDSEEKMSGEXプログラムを使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本プログラムを実行してください。

・ 複数のアプリケーションが、同じメッセージキューから受信と参照を同時に行うことは避けてください。1ユニット複数メッセージの

場合は、処理結果が保証されません。

・ エラー詳細コード“29”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバルトランザクション処理中

に限り通知されます。

・ メッセージがない場合の対処として“同期モード”を指定している、かつ、メッセージの参照中止条件として“すべてのメッセー

キュー”を指定している場合の、待ち受けを解除して停止する方法を以下に示します。

- メッセージキューグループのすべてのメッセージキューをアクセス禁止にする。

- メッセージキューグループ内のメッセージキューに“停止”を指示するメッセージを送信する。

エラー詳細コード“31”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知されます。

8.2.24 MQDSEEKMSGEX (複数のメッセージキューのカーソルを移動する)

機能説明

指定した複数のメッセージキューのすべてのカーソルをメッセージキューの先頭メッセージに移動します。

記述形式

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

CALL "MQDSEEKMSGEX" USING メッセージキューグループアドレス格納域名,

メッセージキュー番号格納域名,復帰情報域名,復帰値格納域名

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

パラメタ

メッセージキューグループアドレス格納域: POINTER

MQDCONNECTQEXプログラムから通知されたメッセージキューグループのアドレスをそのまま指定します。

メッセージキュー番号格納域: PIC S9(9) COMP-5

メッセージキューの番号が通知されます。番号は、MQDCONNECTQEXプログラムで指定したメッセージキュー名一覧の出現番号

で、以下のように通知されます。

正数: メッセージキューの出現番号(先頭は1) -1 : メッセージキューに関係なく異常復帰した場合

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

・ メッセージキュー番号格納域に“-1”を通知するエラー詳細コード

16 (SYNTAX), 18 (NOSYSTEM), 19 (NOCONNECT), 33 (NOMEMORY)

- 141 -

Page 159: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージキュー番号格納域に正数を通知するエラー詳細コード

66 (NOQUE)

・ メッセージキュー番号格納域に正数、または、“-1”を通知するエラー詳細コード

22 (NOCONNECTQUE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 本プログラムを使用する場合は、事前にMQDCONNECTQEXプログラムでメッセージキューに接続してください。

・ 正しく移動できなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、MQDDISCONNECTQEXプログラムを使用して複数メッセージキューから切断を行い、MQDCONNECTQEXプログラム

を使用して再度複数メッセージキューへ接続を行ってください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けるために本プログラムを実行してください。

8.2.25 MQDOPENEVENT (運用イベントをオープンする)

機能説明

運用イベントをオープンし、受信の準備をします。

記述形式

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

CALL "MQDOPENEVENT" USING MQDシステム情報アドレス格納域名,

運用イベントハンドル格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

MQDシステム情報アドレス格納域: POINTER

MQDCONNECTプログラムから通知されたMQDシステム情報アドレスをそのまま指定します。

運用イベントハンドル格納域: PIC 9(9) COMP-5

運用イベントをオープンした場合には運用イベントへの接続ハンドルが通知されます。運用イベントへの接続ハンドルは、運用イベン

ト処理の各プログラムへの入力パラメタとして使用します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 19 (NOCONNECT), 33 (NOMEMORY), 41 (ELIMIT),

81 (EVENTOPENED)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

- 142 -

Page 160: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 運用イベントをオープンするためには、MQDへ接続しておく必要があります。

・ 運用イベントを多重にオープンすることはできません。多重にオープンしようとした場合にはエラー詳細コード“81”で復帰します。

・ 運用イベントのオープンはトランザクションおよび、各種メッセージ処理APIとの関連はありません。

8.2.26 MQDCLOSEEVENT (運用イベントをクローズする)

機能説明

運用イベントをクローズします。

記述形式

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

CALL "MQDCLOSEEVENT" USING 運用イベントハンドル格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

運用イベントハンドル格納域: PIC 9(9) COMP-5

MQDOPENEVENTプログラムから通知された運用イベントハンドルをそのまま指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 19 (NOCONNECT), 80 (EVENTNOOPEN), 83 (INVALIDHANDLE)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ 運用イベントをクローズするためには、運用イベントをオープンしておく必要があります。

・ 運用イベントのクローズはトランザクションおよび、各種メッセージ処理APIとの関連はありません。

8.2.27 MQDGETEVENT (運用イベントを受信する)

機能説明

運用イベントを1件受信します。

- 143 -

Page 161: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述形式

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

CALL "MQDGETEVENT" USING 運用イベントハンドル格納域名,

受信対象運用イベントID格納域名,

運用イベントID有効数格納域名, 受信モード格納域名,

運用イベント情報域名, 運用イベント拡張情報域名,

運用イベント拡張情報域長格納域名,

復帰情報域名, 復帰値格納域名

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

パラメタ

運用イベントハンドル格納域: PIC 9(9) COMP-5

MQDOPENEVENTプログラムから通知された運用イベントハンドルをそのまま指定します。

受信対象運用イベントID格納域:

受信対象にする運用イベントIDを設定してください。複数種の運用イベントを受信したい場合には受信したい運用イベントIDをすべ

て設定してください。すべての種類の運用イベントIDを受信したい場合には先頭に“0”を設定してください。受信対象運用イベントID一覧の詳細については、“8.2.29 パラメタの詳細説明”を参照してください。運用イベントIDの種類については“表8.14 運用イベントID一覧”を参照してください。

運用イベントID有効数格納域: PIC 9(9) COMP-5

受信対象運用イベントID一覧格納域に設定した運用イベントIDの有効数を設定してください。運用イベントIDに“0”を指定した場合

には“1”を指定してください。

受信モード格納域: PIC 9(9) COMP-5

運用イベントがない場合の対処を指定します。

1: 非同期モード。運用イベントがない場合には、すぐに復帰します。

2: 同期モード。運用イベントが発生するまで待ちます。

運用イベント情報域:

運用イベント情報を入れる領域を指定します。領域は発行元が用意します。運用イベント情報の詳細については、“8.2.29 パラメタの

詳細説明”を参照してください。

運用イベント拡張情報域:

運用イベント拡張情報を入れる領域を指定します。領域は発行元が用意します。運用イベント拡張情報がない運用イベントだけを受

信する場合には“ZERO”を指定します。運用イベント拡張情報の詳細については、“8.2.29 パラメタの詳細説明”を参照してください。

運用イベント拡張情報域長格納域: PIC 9(9) COMP-5

運用イベント拡張情報域の領域の長さを指定します。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 19 (NOCONNECT), 33 (NOMEMORY), 38 (BUFFERLACK),

80 (EVENTNOOPEN), 82 (NOEVENT), 83 (INVALIDHANDLE), 145 (GETMODE),

150 (IDMAX), 151 (EXTENDLENGTH)

復帰値格納域: PIC S9(5) COMP-5

本プログラムの処理結果が通知されます。詳細は復帰値の説明を参照してください。

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

- 144 -

Page 162: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ 運用イベントを受信するためには、運用イベントをオープンしておく必要があります。

・ 受信対象運用イベントID格納域に指定しなかったIDの運用イベントは通知しません。

・ 受信した運用イベントの拡張情報が準備した運用イベント拡張情報域よりも大きかった場合には、運用イベント拡張情報は通知

しません。運用イベント情報のみを通知します。またこのとき、本プログラムの処理結果には“-1”、エラー詳細コードには“38”を設

定します。

・ 運用イベントの受信はトランザクションおよび、各種メッセージ処理APIとの関連はありません。

8.2.28 MQDCONNECTRDB (Symfoware/RDBトランザクション連携機能を使用してMQDに接続する)

機能説明

Symfoware/RDBトランザクション連携機能を使用して当該アプリケーションをMQDに接続します。

記述形式

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

CALL "MQDCONNECTRDB" USING MQDシステム名域名, 復帰情報域名,

MQDシステム情報アドレス格納域名

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

パラメタ

MQDシステム名域: PIC X(9)

MQDシステム名を指定します。MQDシステム名は、mqdsetupコマンドを実行したときに指定したMQDのシステム環境の名前です。9バイト目は空白を設定してください。

復帰情報域

例外処理のための復帰情報が通知されます。エラー詳細コードには以下の値(10進数)が返されます。復帰情報の詳細について

は、“8.4 復帰情報の説明”を参照してください。

16 (SYNTAX), 17 (NOENV), 18 (NOSYSTEM), 20 (CONNECTED),

21 (INVALIDAPI), 32 (IO), 33 (NOMEMORY), 36 (PROCESSOVER),

37 (ACCESSDENY), 112 (SYSNAME)

MQDシステム情報アドレス格納域: POINTER

MQDシステム情報のアドレスが通知されます。

復帰値

本プログラムの処理結果が、特殊レジスタ“PROGRAM-STATUS”で以下のように通知されます。

正常時: 0 異常時: -1

注意事項

・ MQDに接続するためにはMQDを起動しておく必要があります。

・ 本プログラムの前に、業務用データベースと接続しておく必要があります。業務用データベースに接続してない場合は、エラー

詳細コードには“21”が通知されます。

・ 本プログラムの前に、トランザクションが開始している場合は、トランザクションの終了またはトランザクションの取り消しを行う必要

があります。トランザクションが開始している場合は、エラー詳細コードには“21”が通知されます。

- 145 -

Page 163: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

8.2.29 パラメタの詳細説明

各プログラムで設定または参照する以下のパラメタ情報について詳細内容を説明します。

・ メッセージキュー属性情報

・ メッセージキュー名一覧

・ メッセージヘッダ

・ メッセージ本体

・ 受信対象運用イベントID

・ 運用イベント情報

8.2.30 メッセージキュー属性情報

メッセージキュー属性情報は、メッセージキューの作成、メッセージキュー属性の設定または参照する場合に使用します。以下にメッ

セージキュー属性情報の形式を示します。また、内容および入出力関係を表8.2 メッセージキュー属性情報の内容および表8.3 メッセージキュー属性情報の入出力に示します。

メッセージキュー属性情報の形式

WORKING-STORAGE SECTION.

01 MQD-QUEUEATTR.

02 QNAME PIC X(64).

02 GUARANTEE PIC X(1).

02 FILLER PIC X(3).

02 QUOTA PIC 9(9) COMP-5.

02 MSG-MAXLEN PIC 9(9) COMP-5.

02 DEFAULT-PRIORITY PIC 9(9) COMP-5.

02 DEFAULT-TIMELIMIT PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 PUT-STATUS PIC 9(9) COMP-5.

02 GET-STATUS PIC 9(9) COMP-5.

02 NUM-OF-MSG PIC 9(9) COMP-5.

02 CREATE-TIMESTAMP PIC 9(9) COMP-5.

02 MODIFY-TIMESTAMP PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

02 FILLER PIC 9(9) COMP-5.

表8.2 メッセージキュー属性情報の内容

項目名 和名 データ型 意味説明

QNAME メッセージキュー

PIC X メッセージキューの名前です。 大63文字です。左詰めで記述し、

残りは空白で埋めます。また64バイト目には必ず空白を指定します。

GUARANTEE

メッセージ保証

レベル

PIC X 受信メッセージのメッセージ保証レベルです。

X’01’: メモリ型

X’02’: ディスク型

QUOTA 大ディスク容量 PIC 9 メッセージキューが利用できる 大ディスク容量です。

本バージョンでは必ず0を指定します。

MSG-MAXLEN

メッセージの 大長 PIC 9 メッセージキューに格納できるメッセージデータの 大長です。単位

はバイトです。780~ 2097152(2M)バイトの範囲で指定します。メッ

- 146 -

Page 164: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名 和名 データ型 意味説明

セージヘッダとメッセージ本体を合計した長さを指定してください。

メッセージヘッダは 780バイトの固定長です。

DEFAULT-PRIORITY

プライオリティの省略

PIC 9 メッセージキューにメッセージを入れる際、メッセージの優先度を省

略した場合に使用されます。小さい値ほど優先度が高くなります。

1~3の値を指定します。

1~7の値を指定します。

DEFAULT-TIMELIMIT

大保存時間の

省略値

PIC 9 メッセージキューにメッセージを入れる際、メッセージの 大保存時

間を省略した場合に使用されます。本バージョンでは必ず0を指定

します。

PUT-STATUS

送信状態 PIC 9 メッセージキューへの送信状態を以下の値で指定します。

0: 変更なし

1: 送信可能

2: 送信禁止

属性通知の場合は上記および以下の値が通知されます。

3: 使用禁止

GET-STATUS

受信状態 PIC 9 メッセージキューからの受信状態を以下の値で指定します。

0: 変更なし

1: 受信可能

2: 受信禁止

属性通知の場合は上記および以下の値が通知されます。

3: 使用禁止

NUM-OF-MSG

残存メッセージ数 PIC 9 メッセージキューに存在するメッセージの数です。

CREATE-TIMESTAMP

メッセージキュー

の作成日時

PIC 9BINARY

メッセージキューが作成された日時です。

1970/1/1 00:00:00 UTCからの秒数で表されます。

なお、当項目の値を表示する場合には、10桁の数字が表現できる

領域に転送して、それを表示するようにしてください。

MODIFY-TIMESTAMP

メッセージキュー

の 終更新日時

PIC 9BINARY

メッセージキュー情報が 後に更新された日時です。

1970/1/1 00:00:00 UTCからの秒数で表されます。

なお、当項目の値を表示する場合には、10桁の数字が表現できる

領域に転送して、それを表示するようにしてください。

表8.3 メッセージキュー属性情報の入出力

項目名インタフェース名

MQDCREATEQ MQDSETQATTR MQDGETQATTR

QNAME 入力 ― 出力

GUARANTEE 入力 ― 出力

QUOTA 入力 ― 出力

MSG-MAXLEN 入力 ― 出力

DEFAULT-PRIORITY 入力 ― 出力

DEFAULT-TIMELIMIT 入力 ― 出力

PUT-STATUS 入力 入力 出力

GET-STATUS 入力 入力 出力

NUM-OF-MSG 出力 ― 出力

- 147 -

Page 165: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名インタフェース名

MQDCREATEQ MQDSETQATTR MQDGETQATTR

CREATE-TIMESTAMP 出力 ― 出力

MODIFY-TIMESTAMP 出力 ― 出力

入力:入力情報、出力:出力情報、―:無効

8.2.31 メッセージキュー名一覧

メッセージキュー名一覧は、メッセージキュー名の一覧を参照する場合や複数のメッセージキューに接続する場合に使用します。以

下にメッセージキュー名一覧の形式を示します。また、内容および入出力関係を表8.4 メッセージキュー名一覧の内容および表8.5 メッセージキュー名一覧の入出力に示します。

メッセージキュー名一覧の形式

WORKING-STORAGE SECTION.

01 MQD-QNAME.

02 QNAME PIC X(64) OCCURS n. … n: メッセージキュー名の個数

表8.4 メッセージキュー名一覧の内容

項目名 和名 データ型 意味説明

QNAME メッセージ

キュー名

PIC X メッセージキューの名前です。 大63文字です。左詰めで

記述し、残りは空白で埋めます。また64バイト目は必ず空

白です。

表8.5 メッセージキュー名一覧の入出力

項目名インタフェース名

MQDGETQLIST MQDCONNECTQEX

QNAME 出力 入力

入力:入力情報、出力:出力情報

8.2.32 メッセージヘッダ

メッセージヘッダは、メッセージの送信、受信および参照時に使用します。以下にメッセージヘッダの形式を示します。また、内容お

よび入出力関係を表8.6 メッセージヘッダの内容および表8.7 メッセージヘッダの入出力に示します。

メッセージヘッダの形式

WORKING-STORAGE SECTION.

01 MQD-MESSAGEHEADER.

02 MSG-TYPE PIC X(1).

02 CODE-TYPE PIC X(1).

02 BODY-CODE PIC X(1).

02 FILLER PIC X(1).

02 UNIT-ID PIC X(128).

02 MSG-SERIALNO PIC 9(9) COMP-5.

02 EOU-FLAG PIC X(1).

02 FILLER PIC X(3).

02 FILLER PIC X(32).

02 ORIGINAL-SYSNAME PIC X(9).

02 FILLER PIC X(3).

02 VERSION PIC X(8).

02 FILLER PIC X(32).

02 ORIGINAL-QNAME PIC X(64).

- 148 -

Page 166: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

02 GUARANTEE PIC X(1).

02 FILLER PIC X(3).

02 FILLER PIC X(32).

02 ORIGINAL-TIMESTAMP PIC 9(9) COMP-5.

02 TRANS-TIMESTAMP PIC 9(9) COMP-5.

02 ARRIVE-TIMESTAMP PIC 9(9) COMP-5.

02 DELAY-TIME PIC 9(9) COMP-5.

02 QUEUING-TIME PIC 9(9) COMP-5.

02 FILLER PIC X(32).

02 MSG-NAME PIC X(64).

02 MSG-ID PIC 9(9) COMP-5.

02 PRIORITY PIC 9(9) COMP-5.

02 MSGBODY-LENGTH PIC 9(9) COMP-5.

02 RETURN-QNAME PIC X(64).

02 TIMELIMIT PIC 9(9) COMP-5.

02 ACCESS-RIGHT PIC 9(9) COMP-5.

02 FILLER PIC X(32).

02 FILLER PIC X(32).

02 FILLER PIC X(32).

02 FILLER PIC X(32).

02 FILLER PIC X(128).

表8.6 メッセージヘッダの内容

項目名 和名 データ型 意味説明

MSG-TYPE メッセージタイプ PIC X メッセージの種類です。以下があります。

X’02’: 一般のメッセージ

X’03’: ジャーナルチェックポイント(TJNL用)X’04’: ジャーナルログデータ(TJNL用)

CODE-TYPE

コード系情報 PIC X メッセージヘッダ部分のコード系です。以下があります。

X’01’: EUCコード

X’02’: SJISコード

X’03’: JEFコード

BODY-CODE

メッセージ本体の

コード系情報

PIC X メッセージ本体部分のコード系です。以下があります。

X’00’: 不明

X’01’: EUCコード

X’02’: SJISコード

X’04’: JEFKANAコード

X’05’: JEFASCIIコード

UNIT-ID ユニット識別子 PIC X ユニットの識別子です。左詰めで、残りは空白です。

MSG-SERIALNO

ユニット内メッセージ

通番

PIC 9 複数のメッセージをユニットとして送信する場合のユニット内のメッ

セージ通番です。1から始まる連続番号です。1ユニット1メッセージ

の場合には1が設定されます。

EOU-FLAG ユニット終了フラグ PIC X ユニットの終了を示すフラグです。

X’00’: ユニットの終端

X’01’: ユニットの途中

ORIGINAL-SYSNAME

送信MQDシステム

PIC X メッセージを送信したMQDの名前です。左詰めで、残りは空白で

す。

VERSION バージョン PIC X メッセージヘッダのバージョンです。

バージョンは8バイトの文字列です。左詰めで、残りは空白です。

ORIGINAL-QNAME

送信キュー名 PIC X メッセージを送信したメッセージキューの名前です。左詰めで、残り

は空白です。

GUARANTEE

メッセージ保証

レベル

PIC X メッセージキュー属性にあるメッセージ保証レベルです。以下のいず

れかが設定されます。

- 149 -

Page 167: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名 和名 データ型 意味説明

X’01’: メモリ型

X’02’: ディスク型

ORIGINAL-TIMESTAMP

送信タイムスタンプ PIC 9BINARY

メッセージが送信された日時です。1970/1/1 00:00:00 UTCからの秒

数です。

なお、当項目の値を表示する場合には、10桁の数字が表現できる

領域に転送して、それを表示するようにしてください。

TRANS-TIMESTAMP

転送タイムスタンプ PIC 9BINARY

連携サービスが他システムにメッセージを送信した日時です。1970/1/100:00:00 UTCからの秒数です。

なお、当項目の値を表示する場合には、10桁の数字が表現できる

領域に転送して、それを表示するようにしてください。

ARRIVE-TIMESTAMP

到着タイムスタンプ PIC 9BINARY

メッセージが受信された日時です。1970/1/1 00:00:00 UTCからの秒

数です。

なお、当項目の値を表示する場合には、10桁の数字が表現できる

領域に転送して、それを表示するようにしてください。

DELAY-TIME

転送遅延時間 PIC 9 連携サービスが他システムからメッセージを受信した日時と転送タイ

ムスタンプとの差の時間(秒数)の累積です。

QUEUING-TIME

キューイング時間 PIC 9 アプリケーションがメッセージを受信した日時と到着タイムスタンプと

の差の時間(秒数)です。

MSG-NAME

メッセージ名 PIC X メッセージの名前です。メッセージ名は、63文字以内の英数字とアン

ダースコアで指定します。左詰めで記述し、残りは空白で埋めます。

英字の大文字と小文字は区別されます。MSG-NAMEを使わない場

合は64文字の空白を指定します。

MSG-ID メッセージ識別子 PIC 9 メッセージ識別子です。任意の整数で指定します。MSG-IDを使わ

ない場合は0を指定します。

PRIORITY プライオリティ PIC 9 本メッセージの優先度です。0を指定した場合は、メッセージキュー

属性にあるプライオリティの省略値が適用されます。

なお、1ユニット複数メッセージの場合は、ユニット内の先頭メッセー

ジのプライオリティだけが有効です。

1~3の値で指定します。

1~7の値で指定します。

MSGBODY-LENGTH

メッセージ本体長 PIC 9 メッセージ本体の長さです。0~ 2088960(約2M)バイトの範囲で指定

します。

RETURN-QNAME

返信キュー名 PIC X 返信用のメッセージキュー名です。メッセージ送信時に送信側シス

テムのメッセージキュー名を指定します。左詰めで記述し、残りは空

白で埋めます。RETURN-QNAMEを使わない場合は64文字の空白

を指定します。メッセージ受信時には、返信キュー名に対応する受

信側システムのメッセージキュー名が設定されます。なお、1ユニット

複数メッセージの場合は、ユニット内の先頭メッセージの返信キュー

名だけが有効です。

TIMELIMIT 大保存時間 PIC 9 メッセージをメッセージキューに保存しておくことのできる 大時間

です。0を指定した場合は、メッセージキュー属性にある値が適用さ

れます。

本バージョンでは常に0を指定してください。

ACCESS-RIGHT

アクセス権 PIC 9 メッセージに対するアクセスの権利です。

本バージョンでは常に0を指定してください。

- 150 -

Page 168: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表8.7 メッセージヘッダの入出力

項目名インタフェース名

MQDPUTMSG MQDGETMSG MQDPEEKMSG

MSG-TYPE ― 出力 出力

CODE-TYPE ― 出力 出力

BODY-CODE ― 出力 出力

UNIT-ID ― 出力 出力

MSG-SERIALNO ― 出力 出力

EOU-FLAG ― 出力 出力

ORIGINAL-SYSNAME ― 出力 出力

VERSION ― 出力 出力

ORIGINAL-QNAME ― 出力 出力

GUARANTEE ― 出力 出力

ORIGINAL-TIMESTAMP

― 出力 出力

TRANS-TIMESTAMP ― 出力 出力

ARRIVE-TIMESTAMP ― 出力 出力

DELAY-TIME ― 出力 出力

QUEUING-TIME ― 出力 出力

MSG-NAME 入力 出力 出力

MSG-ID 入力 出力 出力

PRIORITY 入力 出力 出力

MSGBODY-LENGTH 入力 出力 出力

RETURN-QNAME 入力 出力 出力

TIMELIMIT 入力 出力 出力

ACCESS-RIGHT 入力 出力 出力

入力:入力情報、出力:出力情報、―:無効

8.2.33 メッセージ本体

メッセージ本体は、メッセージの送信、受信および参照時に使用します。以下にメッセージ本体の形式を示します。また、内容および

入出力関係を表8.8 メッセージ本体の内容および表8.9 メッセージ本体の入出力に示します。

メッセージ本体の形式

WORKING-STORAGE SECTION.

01 MSGBODY.

02 MSGPTR USAGE POINTER.

01 MSGBODYDATA PIC X(n).

表8.8 メッセージ本体の内容

項目名 和名 データ型 意味説明

MSGPTR メッセージ本体のア

ドレス

POINTER メッセージ本体のアドレスです。メッセージ本体のアド

レスを指定します。メッセージ送信時、メッセージ本体

がない場合は“ZERO”を指定します。

- 151 -

Page 169: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名 和名 データ型 意味説明

MSGBODYDATA

メッセージ本体 PIC X メッセージ本体の内容です。メッセージ送信時にメッ

セージデータを格納します。

表8.9 メッセージ本体の入出力

項目名インタフェース名

MQDPUTMSG MQDGETMSG MQDPEEKMSG

MSGPTR 入力 入力 入力

MSGBODYDATA 入力 出力 出力

入力:入力情報、出力:出力情報

8.2.34 受信対象運用イベントID 受信対象運用イベントIDは、運用イベントを受信する場合に使用します。以下に受信対象運用イベントIDの形式を示します。また、

内容および入出力関係を表8.10 受信対象運用イベントIDの内容および表8.11 受信対象運用イベントIDの入出力に示します。

受信対象運用イベントIDの形式

WORKING-STORAGE SECTION.

01 MQD-EVENTID.

02 EVENTID PIC 9(9) COMP-5 OCCURS n. n: 受信対象にする運用イベントIDの種類数

表8.10 受信対象運用イベントIDの内容

項目名 和名 データ型 意味説明

EVENTID イベントID PIC 9 受信対象にするイベントIDです。複数種の運用イベントを

受信したい場合には受信したい運用イベントIDをすべて設

定してください。すべての種類の運用イベントIDを受信し

たい場合には先頭に“0”を設定してください。

表8.11 受信対象運用イベントIDの入出力

項目名インタフェース名

MQDGETEVENT

EVENTID 入力

入力:入力情報

8.2.35 運用イベント情報

運用イベント情報は、運用イベントの受信時に使用します。以下に運用イベント情報の形式を示します。また、内容および入出力関係を

表8.12 運用イベント情報の内容および表8.13 運用イベント情報の入出力に、運用イベントID一覧および運用イベント情報の詳細を表

8.14 運用イベントID一覧および表8.15 運用イベント情報の詳細に示します。

運用イベント情報の形式

WORKING-STORAGE SECTION.

01 MQD-EVENTINFO.

02 EVENT-ID PIC 9(9) COMP-5.

02 TIMESTAMP PIC 9(9) COMP-5.

02 DATE-STR PIC X(12).

02 TIME-STR PIC X(12).

02 STRING1 PIC X(64).

02 STRING2 PIC X(64).

02 STRING3 PIC X(64).

- 152 -

Page 170: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

02 STRING4 PIC X(64).

02 VALUE1 PIC 9(9) COMP-5.

02 VALUE2 PIC 9(9) COMP-5.

02 VALUE3 PIC 9(9) COMP-5.

02 VALUE4 PIC 9(9) COMP-5.

02 EXTEND-LENGTH PIC 9(9) COMP-5.

表8.12 運用イベント情報の内容

項目名 和名 データ型 意味説明

EVENT-ID 運用イベントID PIC 9 運用イベントIDです。詳細は表8.14 運用イベントID一覧に示しま

す。

TIMESTAMP

日時 PIC 9BINARY

運用イベントが発生した日時です。1970/1/1 00:00:00 UTCからの秒

数です。

なお、当項目の値を表示する場合には、10桁の数字が表現できる

領域に転送して、それを表示するようにしてください。

DATE-STR 日付 PIC X 運用イベントが発生した日付です。左詰めで記述し、残りは空白で

埋めます。ACCEPT FROM DATE文とほぼ同じ形式で設定されま

す。ACCEPT FROM DATE文と違うところは、年が4桁で設定される

ことです。2002年7月5日は“20020705”と設定されます。日付は運用

イベントの発生したサーバのローカル時刻です。

TIME-STR 時刻 PIC X 運用イベントが発生した時刻です。左詰めで記述し、残りは空白で

埋めます。ACCEPT FROM TIME文と同じ形式で設定されます。午後

2時41分35秒の場合“14413500”と設定されます。時刻は運用イベン

トの発生したサーバのローカル時刻です。

STRING1 ~STRING4

運用イベント文字列

データ

PIC X 運用イベントデータが63文字までの文字列で設定されます。詳細は

表8.15 運用イベント情報の詳細に示します。左詰めで記述し、残り

は空白で埋めます。

VALUE1 ~VALUE4

運用イベント数値

データ

PIC 9 運用イベントデータが数値項目で設定されます。詳細は表8.15 運用

イベント情報の詳細に示します。

EXTEND-LENGTH

運用イベント拡張情

報長

PIC 9 運用イベント拡張情報の大きさが設定されます。拡張情報がない場

合には“0”が設定されます。詳細は表8.14 運用イベントID一覧に示

します。

表8.13 運用イベント情報の入出力

項目名インタフェース名

MQDGETEVENT

EVENT-ID 出力

TIMESTAMP 出力

DATE-STR 出力

TIME-STR 出力

STRING1 ~ STRING4 出力

VALUE1 ~ VALUE4 出力

EXTEND-LENGTH 出力

出力:出力情報

表8.14 運用イベントID一覧

運用イベントID 意味 運用イベント拡張情報長

1 メッセージ格納域の使用率が、設定した

警告値を超えました。

0

- 153 -

Page 171: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

運用イベントID 意味 運用イベント拡張情報長

2 メッセージ格納域の使用率が、設定した

安全値まで回復しました。

0

101 ACM連携サービスに関する通信異常が

発生しました。

本事象が発生したIDCMの通信パス配下の送信メッ

セージキュー数 × 8 + 4

102 ACM連携サービスに関する通信異常が

回復しました。

本事象が発生したIDCMの通信パス配下の送信メッ

セージキュー数 × 8 + 4

表8.15 運用イベント情報の詳細

運用

イベントID項目 値 内容説明

1 STRING1 “DISK” または “MEMORY” メッセージ格納域の種別

STRING2 MQDシステム名 MQDシステム名

STRING3 未設定 未使用

STRING4 未設定 未使用

VALUE1 503 MQDの出力するメッセージ番号

VALUE2 1~100 警告値(%)

VALUE3 1~100 使用率(%)

VALUE4 未設定 未使用

EXTEND-LENGTH

0 -

運用イベント拡張

情報

- -

2 STRING1 “DISK” または “MEMORY” メッセージ格納域の種別

STRING2 MQDシステム名 MQDシステム名

STRING3 未設定 未使用

STRING4 未設定 未使用

VALUE1 504 MQDの出力するメッセージ番号

VALUE2 0~99 安全値(%)

VALUE3 0~99 使用率(%)

VALUE4 未設定 未使用

EXTEND-LENGTH

0 -

運用イベント拡張

情報

- -

101 STRING1 “Client” 送信側のシステムに関するイベント情報

STRING2 IDCMの通信パス名 IDCMの通信パス名

STRING3 未設定 未使用

STRING4 未設定 未使用

VALUE1 未設定 未使用

VALUE2 未設定 未使用

VALUE3 未設定 未使用

VALUE4 未設定 未使用

- 154 -

Page 172: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

運用

イベントID項目 値 内容説明

EXTEND-LENGTH

本事象が発生したIDCMの通信パ

ス配下の送信メッセージキュー数 ×8 + 4

当該通信パス配下のすべての送信メッセージ

キュー名を格納する領域の大きさ

運用イベント拡張

情報

先頭4バイトは送信メッセージキュー

数(PIC 9(9) COMP-5)

5バイト目以降はメッセージキュー名

(PIC X(8)) × 送信メッセージキュー

数の配列

当該通信パス配下の送信メッセージキュー数お

よび送信メッセージキュー名

102 STRING1 “Client” 送信側のシステムに関するイベント情報

STRING2 IDCMの通信パス名 IDCMの通信パス名

STRING3 未設定 未使用

STRING4 未設定 未使用

VALUE1 未設定 未使用

VALUE2 未設定 未使用

VALUE3 未設定 未使用

VALUE4 未設定 未使用

EXTEND-LENGTH

本事象が発生したIDCMの通信パ

ス配下の送信メッセージキュー数 ×8 + 4

当該通信パス配下のすべての送信メッセージ

キュー名を格納する領域の大きさ

運用イベント拡張

情報

先頭4バイトは送信メッセージキュー

数(PIC 9(9) COMP-5)

5バイト目以降はメッセージキュー名

(PIC X(8)) × 送信メッセージキュー

数の配列

当該通信パス配下の送信メッセージキュー数お

よび送信メッセージキュー名

8.3 C言語インタフェース

C言語アプリケーションのためのプログラムインタフェースを以下の順に説明します。

・ 各インタフェースの説明

・ パラメタの詳細説明

C++言語で記述されたソース内でMQDのC言語インタフェースを使用する場合は、以下のように宣言する必要があります。

extern "C" {#include "mqdapi.h"}

8.3.1 各インタフェースの説明

各プログラムインタフェースを以下に説明します。

8.3.2 mqd_connect (MQDに接続する)

- 155 -

Page 173: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能説明

当該アプリケーションをMQDに接続します。

記述形式

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

#include "mqdapi.h"

int mqd_connect(char *sysname, MQD_Environment *env, MQD_System **system)

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

パラメタ

sysname

MQDシステム名へのポインタを指定します。MQDシステム名は、mqdsetupコマンドを実行したときに指定したMQDのシステム環境の

名前です。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOENV, MQD_ERR_NOSYSTEM,

MQD_ERR_CONNECTED, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_ACCESSDENY, MQD_ERR_SYSNAME

MQD_ERR_SYNTAX, MQD_ERR_NOENV, MQD_ERR_NOSYSTEM,

MQD_ERR_INVALIDAPI, MQD_ERR_CONNECTED, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER, MQD_ERR_ACCESSDENY,

MQD_ERR_SYSNAME

system

MQDに接続した場合にはMQDシステム情報(MQD_System構造体)へのポインタを返します。MQDシステム情報へのポインタは、後

述の各関数の入力パラメタとして使用します。

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ MQDに接続するためにはMQDを起動しておく必要があります。

・ マルチスレッドのアプリケーションでMQDのプログラムインターフェイスを使用する場合には、MQDのプログラムインターフェイス

を使用するスレッドでそれぞれmqd_connectを実行する必要があります。

・ MQDを利用するアプリケーションとJava言語で作成したアプリケーションを連携する場合、以下の制限があります。本制限を厳守

しなかった場合、MQDシステムが異常終了するなどの事象が発生します。システムプログラムの動作保証外となりますので注意し

てください。

- Java言語で作成したアプリケーションからMQDを利用するアプリケーションをJNI経由で利用することはできません。

- Java言語で作成したアプリケーションと同じプロセスでMQDのアプリケーションインタフェースを利用することはできません。

- Java言語で作成したアプリケーションから非同期通信機能を利用する場合は、“Interstage JMS”を利用してください。“InterstageJMS”の詳細は、“J2EEユーザーズガイド”を参照してください。

- 156 -

Page 174: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

8.3.3 mqd_disconnect (MQDから切断する)

機能説明

当該アプリケーションをMQDから切断します。このとき、アプリケーションがメッセージキューに接続している場合には、アプリケーショ

ンをメッセージキューから切断します。

記述形式

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

#include "mqdapi.h"

int mqd_disconnect(MQD_System *system, MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_ONTRAN, MQD_ERR_NOTEOU, MQD_ERR_NOMEMORY

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ グローバルトランザクション処理中に、アプリケーションをMQDから切断することはできません。MQDからの切断は、ワークユニッ

トの後出口プログラムで実行する必要があります。

・ mqd_beginによって開始したトランザクションの途中でMQDからの切断を行った場合の注意事項を以下に示します。

- アプリケーションはメッセージキューおよびMQDから切断されます。ただし、エラー詳細コードには“MQD_ERR_ONTRAN”

が通知されます。

- 処理中のトランザクションはシステムから取り消されます。

・ トランザクションを使用せずにユニットの途中(ユニット内の 後のメッセージを送信または受信する前)で MQDからの切断を行っ

た場合の注意事項を以下に示します。

- アプリケーションはメッセージキューおよびMQDから切断されます。ただし、エラー詳細コードには“MQD_ERR_NOTEOU”

が通知されます。

- ユニット内のすでに送信済または受信済のメッセージはすべて取り消されます。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。

- 本関数の後で、データベースとの切断をしてください。

- 157 -

Page 175: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

- トランザクションの途中でMQDからの切断を行った場合、アプリケーションはメッセージキューおよびMQDからは切断されま

せん。この時、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されます。なお、処理中のトランザクションは取り消され

ないため、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。

8.3.4 mqd_createq (メッセージキューを作成する)

機能説明

メッセージキューを作成します。

記述形式

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

#include "mqdapi.h"

int mqd_createq(MQD_System *system, MQD_QueueAttribute *qattribute,

MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

qattribute

メッセージキュー属性情報へのポインタを指定します。メッセージキュー属性情報(MQD_QueueAttribute構造体)の詳細について

は、“8.3.29 パラメタの詳細説明”を参照してください。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_NODISK,

MQD_ERR_MSGFILE, MQD_ERR_QUEOVER, MQD_ERR_QUEEXIST,

MQD_ERR_QNAME, MQD_ERR_GUARANTEE, MQD_ERR_QUOTA,

MQD_ERR_MSGMAXLEN, MQD_ERR_PRIORITY, MQD_ERR_TIMELIMIT,

MQD_ERR_PUTSTATUS, MQD_ERR_GETSTATUS

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_NODISK, MQD_ERR_MSGFILE, MQD_ERR_QUEOVER,

MQD_ERR_QUEEXIST, MQD_ERR_QNAME, MQD_ERR_GUARANTEE,

MQD_ERR_QUOTA, MQD_ERR_MSGMAXLEN, MQD_ERR_PRIORITY,

MQD_ERR_TIMELIMIT, MQD_ERR_PUTSTATUS, MQD_ERR_GETSTATUS

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージキューを作成するためには、MQDへ接続しておく必要があります。

- 158 -

Page 176: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

8.3.5 mqd_deleteq (メッセージキューを削除する)

機能説明

メッセージキューを削除します。通常は、以下の状態のメッセージキューが削除の対象となります。

・ メッセージキューへ接続している利用者がいない かつ、

・ メッセージが存在していない

上記条件を満たしていない場合でも強制的にメッセージキューを削除することができます。

記述形式

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

#include "mqdapi.h"

int mqd_deleteq(MQD_System *system, char *qname, int mode, MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

qname

メッセージキュー名へのポインタを指定します。メッセージキュー名は、メッセージキューを作成したときに指定したメッセージキューの

名前です。

mode

削除モードを指定します。

MQD_Q_MODE_SAFE:

通常モード。利用者もメッセージも存在しないメッセージキューを削除します。

MQD_Q_MODE_FORCE:

強制モード。無条件にメッセージキューを削除します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_CONNECTED, MQD_ERR_ONTRAN, MQD_ERR_DOWNRCV,

MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_OPENQUEOVER,

MQD_ERR_NOQUE, MQD_ERR_MSGEXIST, MQD_ERR_QNAME,

MQD_ERR_DELMODE

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_CONNECTED, MQD_ERR_INVALIDAPI, MQD_ERR_ONTRAN,

MQD_ERR_DOWNRCV, MQD_ERR_IO, MQD_ERR_NOMEMORY,

- 159 -

Page 177: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_OPENQUEOVER, MQD_ERR_NOQUE, MQD_ERR_MSGEXIST,

MQD_ERR_QNAME, MQD_ERR_DELMODE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージキューを削除するためには、MQDへ接続しておく必要があります。

・ メッセージキューを強制モードで削除する場合には、上記以外にいくつかの注意すべき事項があります。詳細については、“2.4.3メッセージキューの削除”を参照してください。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

8.3.6 mqd_connectq (メッセージキューに接続する)

機能説明

当該アプリケーションをメッセージキューに接続します。

記述形式

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

#include "mqdapi.h"

int mqd_connectq(MQD_System *system, char *qname, MQD_Environment *env,

MQD_MessageQueue **queue)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

qname

メッセージキュー名へのポインタを指定します。メッセージキュー名は、メッセージキューを作成したときに指定したメッセージキューの

名前です。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER, MQD_ERR_OPENQUEOVER,

MQD_ERR_NOQUE, MQD_ERR_QNAME

queue

メッセージキューに接続できた場合にはメッセージキュー(MQD_MessageQueue構造体)へのポインタを返します。メッセージキューへ

のポインタは、後述の各関数の入力パラメタとして使用します。

復帰値

本関数の処理結果が以下の復帰値で通知されます。

- 160 -

Page 178: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

正常時: 0 異常時: -1

注意事項

メッセージキューに接続するためには、MQDを起動し、メッセージキューを作成しておく必要があります。

8.3.7 mqd_disconnectq (メッセージキューから切断する)

機能説明

当該アプリケーションをメッセージキューから切断します。

記述形式

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

#include "mqdapi.h"

int mqd_disconnectq(MQD_MessageQueue *queue, MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOCONNECTQUE, MQD_ERR_ONTRAN, MQD_ERR_NOTEOU,

MQD_ERR_BACKOUT, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_NODISK, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER,

MQD_ERR_NOQUE, MQD_ERR_QUEWINHIBIT

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0異常時: -1

注意事項

・ mqd_beginによって開始したトランザクションの途中で MQDからの切断を行った場合の注意事項を以下に示します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されま

す。

- 処理中のトランザクションはシステムから取り消されます。

・ ユニットの途中(ユニット内の 後のメッセージを送信または受信する前)でメッセージキューからの切断を行った場合の注意事項

を以下に示します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“MQD_ERR_NOTEOU”が通知されま

す。

- ユニット内のすでに送信済または受信済のメッセージはすべて取り消されます。ただし、グローバルトランザクション処理中の

場合を除きます。

- グローバルトランザクション処理中の場合には、グローバルトランザクションを終了(ロールバック)させて、ユニット内のすでに

送信済または受信済のメッセージを取り消す必要があります。

- 161 -

Page 179: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。

- 本関数の前で、トランザクションの終了またはトランザクションの取消しを行ってください。

- トランザクションの途中でメッセージキューからの切断を行った場合、アプリケーションはメッセージキューから切断されます。

この時、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されます。なお、処理中のトランザクションは取り消されないた

め、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。

8.3.8 mqd_getqlist (メッセージキュー名の一覧を通知する)

機能説明

MQDの管理しているメッセージキューの名前の一覧を通知します。

記述形式

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

#include "mqdapi.h"

int mqd_getqlist(MQD_System *system, MQD_QueueName *qnamearray, int *qnum,

MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

qnamearray

メッセージキュー名の配列の先頭を指すポインタを指定します。メッセージキュー名の一覧が通知されます。qnumで指定した分の領

域を用意する必要があります。メッセージキュー名の一覧(MQD_QueueName構造体)の詳細については、“8.3.29 パラメタの詳細説

明”を参照してください。

qnum

作成済のメッセージキューの総数を指定します。本関数から復帰したときに、qnumで指定した数が、実際のメッセージキューの個数

に置き換えられます。また、この数が実際のメッセージキューの個数より小さい場合には、指定した数のメッセージキュー名の一覧が通

知され、エラー詳細コード“MQD_ERR_ARRAYLACK ”が返されます。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_ARRAYLACK,

MQD_ERR_NOQUEEXIST, MQD_ERR_QNUM

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

メッセージキュー名の一覧を通知する場合には、MQDへ接続しておく必要があります。

8.3.9 mqd_putmsg (メッセージを送信する)

- 162 -

Page 180: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能説明

メッセージを送信します。

記述形式

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

#include "mqdapi.h"

int mqd_putmsg(MQD_MessageQueue *queue, int unitflg,

MQD_MessageHeader *mheader, MQD_MessageBody *mbody,

MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

unitflg

ユニット内のメッセージの位置を指定します。

MQD_Q_UNIT_END:

ユニットの終了。一つのメッセージを一つのユニットで送信する場合に指定します。また、複数のメッセージを一つのユニットで送

信する場合には、ユニット内の 後のメッセージを送信する際に指定します。

MQD_Q_UNIT_CONT:

ユニットの途中。複数のメッセージを一つのユニットで送信する場合は、ユニット内の先頭および途中のメッセージを送信する際

に指定します。

mheader

メッセージヘッダへのポインタを指定します。事前にメッセージヘッダを作成しておく必要があります。メッセージヘッダ

(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mbody

メッセージ本体へのポインタを指定します。事前にメッセージ本体を作成しておく必要があります。メッセージ本体(MQD_MessageBody構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_BACKOUT, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_NODISK, MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE,

MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER,

MQD_ERR_NOQUE, MQD_ERR_LONGMSG, MQD_ERR_QUEWINHIBIT,

MQD_ERR_PURGEMSG, MQD_ERR_QNAME, MQD_ERR_MSGNAME,

MQD_ERR_PRIORITY, MQD_ERR_TIMELIMIT, MQD_ERR_MSGBODYLENGTH,

MQD_ERR_ACCESSRIGHT, MQD_ERR_UNITFLAG

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_NODISK, MQD_ERR_PROCESSOVER,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER,

- 163 -

Page 181: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE, MQD_ERR_LONGMSG,

MQD_ERR_QUEWINHIBIT, MQD_ERR_PURGEMSG, MQD_ERR_QNAME,

MQD_ERR_MSGNAME, MQD_ERR_PRIORITY, MQD_ERR_TIMELIMIT,

MQD_ERR_MSGBODYLENGTH, MQD_ERR_ACCESSRIGHT, MQD_ERR_UNITFLAG

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 一つのアプリケーションから複数のメッセージキューに対して送信する場合は、必ずメッセージキューごとにユニット内の全メッセー

ジを送信するようにしてください。

・ エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.10 mqd_getmsg (メッセージを受信する)

機能説明

メッセージを受信します。メッセージを受信するとカーソルは次のメッセージに移動します。

記述形式

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

#include "mqdapi.h"

int mqd_getmsg(MQD_MessageQueue *queue, int mode, MQD_MessageHeader *mhbuffer,

MQD_MessageBody *mbbuffer, long mblength, MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

mode

メッセージがない場合の対処を指定します。

MQD_Q_MODE_ASYNC: 非同期モード

メッセージがない場合には、すぐに復帰します。

MQD_Q_MODE_SYNC: 同期モード

メッセージが到着するまで待ちます。

mhbuffer

メッセージヘッダを入力する領域へのポインタを指定します。領域は発行元が用意します。メッセージヘッダ(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mbbuffer

メッセージ本体を入力する領域へのポインタを指定します。領域は発行元が用意します。メッセージ本体(MQD_MessageBody構造

体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mblength

mbbufferで指定した領域の長さを指定します。

- 164 -

Page 182: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_BUFFERLACK, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE,

MQD_ERR_NOMSG, MQD_ERR_QUEEND, MQD_ERR_QUERINHIBIT,

MQD_ERR_PURGEMSG, MQD_ERR_MSGBODYLENGTH, MQD_ERR_GETMODE

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR,

MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_BUFFERLACK, MQD_ERR_TRANFILE,

MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER,

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUEEND,

MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG, MQD_ERR_MSGBODYLENGTH,

MQD_ERR_GETMODE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 正しく受信されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、mqd_seekmsgを使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。

・ 一つのアプリケーションが、複数のメッセージキューから受信する場合、必ずメッセージキューごとにユニット内の全メッセージを

受信するようにしてください。

・ 複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。 1ユニット複数メッセージの場合は、

処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。

・ エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバル

トランザクション処理中に限り通知されます。

・ エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.11 mqd_peekmsg (メッセージを参照する)

機能説明

メッセージキュー内のメッセージを参照します。

- 165 -

Page 183: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述形式

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

#include "mqdapi.h"

int mqd_peekmsg(MQD_MessageQueue *queue, int mode, MQD_MessageHeader *mhbuffer,

MQD_MessageBody *mbbuffer, long mblength, int cursor,

MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

mode

メッセージがない場合の対処を指定します。

MQD_Q_MODE_ASYNC: 非同期モード

メッセージがない場合は、すぐに復帰します。

MQD_Q_MODE_SYNC: 同期モード

メッセージが到着するまで待ちます。

mhbuffer

メッセージヘッダを入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージヘッダ(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mbbuffer

メッセージ本体を入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージ本体(MQD_MessageBody構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mblength

mbbufferで指定した領域の長さを指定します。

cursor

メッセージを参照した後のカーソルの位置づけを指定します。

MQD_Q_CURSOR_NEXTUNIT:

メッセージを参照した後カーソルを次のユニットの先頭メッセージに位置づけます。

MQD_Q_CURSOR_CURRENT:

メッセージを参照した後カーソルを動かしません。

MQD_Q_CURSOR_NEXTMSG:

メッセージを参照した後カーソルを次のメッセージに位置づけます。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_BUFFERLACK, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE,

MQD_ERR_NOMSG, MQD_ERR_QUEEND, MQD_ERR_QUERINHIBIT,

- 166 -

Page 184: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQD_ERR_PURGEMSG, MQD_ERR_MSGBODYLENGTH, MQD_ERR_PEEKMODE,

MQD_ERR_CURSORMODE

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR,

MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_BUFFERLACK, MQD_ERR_TRANFILE,

MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER,

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUEEND,

MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG, MQD_ERR_MSGBODYLENGTH,

MQD_ERR_PEEKMODE, MQD_ERR_CURSORMODE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 正しく参照されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、mqd_seekmsgを使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。

・ 複数のアプリケーションが、同じメッセージキューから受信と参照を同時に行うことは避けてください。1ユニット複数メッセージの

場合は、処理結果が保証されません。

・ エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバル

トランザクション処理中に限り通知されます。

・ エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.12 mqd_seekmsg (カーソルを移動する)

機能説明

パラメタで指定した位置にカーソルを移動します。

記述形式

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

#include "mqdapi.h"

int mqd_seekmsg(MQD_MessageQueue *queue, int cursor, MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

cursor

カーソルの移動先を指定します。

- 167 -

Page 185: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQD_Q_CURSOR_NEXTUNIT:

カーソルを次のユニットの先頭メッセージに移動します。

MQD_Q_CURSOR_FIRST:

カーソルをメッセージキューの先頭メッセージに移動します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_OPENQUEOVER,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE,

MQD_ERR_NOMSG, MQD_ERR_QUEEND, MQD_ERR_QUERINHIBIT,

MQD_ERR_PURGEMSG, MQD_ERR_CURSORMODE

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR,

MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_OPENQUEOVER, MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER,

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUEEND,

MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG, MQD_ERR_CURSORMODE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 正しく移動できなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、mqd_disconnectqを使用してメッセージキューから切断を行い、mqd_connectqを使用して再度メッセージキューへ接続を

行ってください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。

・ エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバル

トランザクション処理中に限り通知されます。

・ エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.13 mqd_deletemsg (メッセージを削除する)

機能説明

メッセージをユニット単位に削除します。メッセージを削除するとカーソルは次のユニットの先頭メッセージに移動します。

- 168 -

Page 186: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述形式

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

#include "mqdapi.h"

int mqd_deletemsg(MQD_MessageQueue *queue, MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER,

MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE, MQD_ERR_NOCURSORMSG,

MQD_ERR_NOMSG, MQD_ERR_QUEEND, MQD_ERR_QUERINHIBIT,

MQD_ERR_PURGEMSG

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_DOWNRCV,

MQD_ERR_DEADLOCK, MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR,

MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE,

MQD_ERR_NOCURSORMSG, MQD_ERR_NOMSG, MQD_ERR_QUEEND,

MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージを削除するとき、カーソルはユニット内の先頭メッセージを指しておく必要があります。

・ 正 し く 削 除 さ れ な か っ た 場 合 に は 、 カ ー ソ ル 位 置 は 保 証 さ れ ま せ ん 。 た だ し 、 エ ラ ー 詳 細 コ ー ド

が“MQD_ERR_NOCURSORMSG”の場合には、カーソルは次のメッセージに位置づけられます。カーソルをメッセージキューの

先頭メッセージに移動するためには、mqd_seekmsgを使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。

・ エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバル

トランザクション処理中に限り通知されます。

・ 同一メッセージキューに対して複数アプリケーションが同時にメッセージを削除しようとする場合、タイミングによってはカーソルが

指していたメッセージを他のアプリケーションが消してしまうという現象が発生します。その場合には、エラー詳細コー

ド“MQD_ERR_NOCURSORMSG”または“MQD_ERR_NOMSG”が通知されます。

- 169 -

Page 187: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.14 mqd_purgemsg (メッセージを一括削除する)

機能説明

メッセージキュー内の全メッセージを削除します。

記述形式

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

#include "mqdapi.h"

int mqd_purgemsg(MQD_MessageQueue *queue, MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOCONNECTQUE, MQD_ERR_ONTRAN, MQD_ERR_DOWNRCV,

MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_NOQUE,

MQD_ERR_MSGEXIST, MQD_ERR_PURGEMSG

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOCONNECTQUE, MQD_ERR_ONTRAN,

MQD_ERR_DOWNRCV, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_NOQUE, MQD_ERR_MSGEXIST, MQD_ERR_PURGEMSG

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージを一括削除する場合には、いくつかの注意すべき事項があります。詳細については、“2.2.7 メッセージの一括削除”を

参照してください。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

- 170 -

Page 188: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

8.3.15 mqd_getqattr (メッセージキュー属性を通知する)

機能説明

メッセージキューの属性情報を通知します。

記述形式

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

#include "mqdapi.h"

int mqd_getqattr(MQD_MessageQueue *queue, MQD_QueueAttribute *qattr,

MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

qattr

メッセージキュー属性情報を通知する領域へのポインタを指定します。この領域は発行元が用意します。メッセージキュー属性情報

(MQD_QueueAttribute構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOCONNECTQUE, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_NOQUE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

8.3.16 mqd_setqattr (メッセージキュー属性を設定する)

機能説明

メッセージキューの属性情報を設定します。

記述形式

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

#include "mqdapi.h"

int mqd_setqattr(MQD_MessageQueue *queue, MQD_QueueAttribute *qattr,

MQD_Environment *env)

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

パラメタ

queue

mqd_connectq関数から返されたメッセージキューへのポインタをそのまま指定します。

qattr

メッセージキュー属性情報へのポインタを指定します。事前にメッセージキュー属性情報を設定しておく必要があります。メッセージ

キュー属性情報(QueueAttribute構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

- 171 -

Page 189: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOCONNECTQUE, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_NOQUE, MQD_ERR_PURGEMSG, MQD_ERR_PUTSTATUS,

MQD_ERR_GETSTATUS

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

8.3.17 mqd_begin (トランザクションを開始する)

機能説明

トランザクションを開始します。

記述形式

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

#include "mqdapi.h"

int mqd_begin(MQD_System *system, MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_ONTRAN, MQD_ERR_DOWNRCV, MQD_ERR_NOTEOU,

MQD_ERR_OVERTRAN, MQD_ERR_TRANMIX, MQD_ERR_NOMEMORY

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_ONTRAN, MQD_ERR_DOWNRCV,

MQD_ERR_NOTEOU, MQD_ERR_OVERTRAN, MQD_ERR_TRANMIX,

MQD_ERR_NOMEMORY

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

- 172 -

Page 190: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ トランザクションを開始するためには、MQDへ接続しておく必要があります。

・ トランザクションはスレッド単位に管理されます。

・ mqd_begin関数は、以下の契機で実行すると、エラー詳細コード“MQD_ERR_NOTEOU”で復帰します。

- mqd_begin関数を実行せずに、mqd_putmsg、mqd_getmsgまたはmqd_peekmsgを実行し、かつ、ユニットの 後まで処理し終

えていないとき

・ グローバルトランザクション処理中にmqd_begin関数を実行すると、エラー詳細コード“MQD_ERR_TRANMIX”で復帰します。

・ mqd_begin関数がエラー詳細コード“MQD_ERR_TRANMIX”以外のエラーコードで復帰した場合、処理中のトランザクションは

システムから取り消されます。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、mqd_seekmsgを使用してください。トランザクション内でmqd_peekmsgexによる複数メッセージキューからのメッセージ参照

を行っている場合には、mqd_disconnectqexを使用して複数メッセージキューから切断を行い、mqd_connectqexを使用して再度複

数メッセージキューへ接続を行ってください。

当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

8.3.18 mqd_commit (トランザクションを終了する)

機能説明

トランザクションを終了し、メッセージ処理をメッセージキューに反映します。

記述形式

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

#include "mqdapi.h"

int mqd_commit(MQD_System *system, MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOTEOU, MQD_ERR_TRANMIX, MQD_ERR_NOBEGIN,

MQD_ERR_IO, MQD_ERR_NOMEMORY, MQD_ERR_TRANFILE,

MQD_ERR_MSGFILE, MQD_ERR_PURGEMSG

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOTEOU, MQD_ERR_TRANMIX,

MQD_ERR_NOBEGIN, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_PURGEMSG

- 173 -

Page 191: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ トランザクションを終了するためには、MQDへ接続し、トランザクションを開始しておく必要があります。

・ mqd_commit関数は、以下の契機で実行すると、エラー詳細コード“MQD_ERR_NOTEOU”で復帰します。

- 接続しているメッセージキューに、ユニット途中までしか処理していないメッセージが存在するとき

・ グローバルトランザクション処理中にmqd_commit関数を実行すると、エラー詳細コード“MQD_ERR_TRANMIX”で復帰します。

・ mqd_commit関数がエラー詳細コード“MQD_ERR_TRANMIX”以外のエラーコードで復帰した場合、処理中のトランザクション

はシステムから取り消されます。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動する

ためには、mqd_seekmsgを使用してください。トランザクション内でmqd_peekmsgexによる複数メッセージキューからのメッセージ参

照を行っている場合には、mqd_disconnectqexを使用して複数メッセージキューから切断を行い、mqd_connectqexを使用して再度

複数メッセージキューへ接続を行ってください。

当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

8.3.19 mqd_rollback (トランザクションを取り消す)

機能説明

現在処理中のトランザクションを取り消します。

記述形式

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

#include "mqdapi.h"

int mqd_rollback(MQD_System *system, MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOTEOU, MQD_ERR_TRANMIX, MQD_ERR_NOBEGIN,

MQD_ERR_NOMEMORY

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_NOTEOU, MQD_ERR_TRANMIX,

MQD_ERR_NOBEGIN, MQD_ERR_NOMEMORY

- 174 -

Page 192: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ トランザクションを取り消すためには、MQDへ接続し、トランザクションを開始しておく必要があります。

・ mqd_rollback関数は、以下の契機で実行すると、エラー詳細コード“MQD_ERR_NOTEOU”で復帰します。

- mqd_begin関数を実行せずに、mqd_putmsg、mqd_getmsgまたはmqd_peekmsgを実行し、かつ、ユニットの 後まで処理し終

えていないとき

・ グローバルトランザクション処理中にmqd_rollback関数を実行すると、エラー詳細コード“MQD_ERR_TRANMIX”で復帰します。

・ mqd_rollback関数がエラー詳細コード“MQD_ERR_TRANMIX”以外のエラーコードで復帰した場合、処理中のトランザクション

はシステムから取り消されます。また、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動する

ためには、mqd_seekmsgを使用してください。トランザクション内でmqd_peekmsgexによる複数メッセージキューからのメッセージ参

照を行っている場合には、mqd_disconnectqexを使用して複数メッセージキューから切断を行い、mqd_connectqexを使用して再度

複数メッセージキューへ接続を行ってください。

・ メッセージへのカーソル位置はトランザクション機能の対象外です。トランザクションを取り消しても、カーソルは現在の場所に留

まります。

当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合、本関数はエラー詳細コー

ド“MQD_ERR_INVALIDAPI”で復帰します。

8.3.20 mqd_connectqex (複数のメッセージキューに接続する)

機能説明

当該アプリケーションを複数のメッセージキューに接続します。

記述形式

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

#include "mqdapi.h"

int mqd_connectqex(MQD_System *system, MQD_QueueName *qnamearray, int qnum,

int *errqueindex, MQD_Environment *env,

MQD_MessageQueueex **queuegroup)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

qnamearray

接続するメッセージキュー名の配列の先頭を指すポインタを指定します。メッセージキュー名は、メッセージキューを作成したときに指

定したメッセージキューの名前です。qnumで指定した分の領域を用意する必要があります。メッセージキュー名の一覧(MQD_QueueName構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

qnum

接続するメッセージキューの個数を指定します。

errqueindex

異常が発生したメッセージキューのインデックスが通知されます。インデックスは、メッセージキュー名の配列のインデックスで、以下

のように通知されます。

- 175 -

Page 193: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

0,1,2,…,n: 異常が発生したメッセージキューのインデックス

-1 : メッセージキューに関係なく異常復帰した場合

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

・ errqueindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_INVALIDAPI

・ errqueindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_OPENQUEOVER, MQD_ERR_NOQUE, MQD_ERR_QUEUSE,

MQD_ERR_QNAME

・ errqueindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECT, MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER

queuegroup

メッセージキューに接続できた場合にはメッセージキューグループ(MQD_MessageQueueex構造体)へのポインタを返します。メッセー

ジキューグループは、メッセージキュー名の一覧で指定した複数のメッセージキューを管理するものです。メッセージキューグループ

へのポインタは、後述のmqd_disconnectqex・mqd_getmsgex・mqd_peekmsgex・mqd_seekmsgexの各関数の入力パラメタとして使用し

ます。

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ メッセージキューに接続するためには、MQDを起動し、メッセージキューを作成しておく必要があります。

・ 本関数が異常復帰した場合は、qnamearrayで指定したすべてのメッセージキューから切断します。

・ 本関数を、1つのスレッドで複数呼び出すことはできません。

8.3.21 mqd_disconnectqex (複数のメッセージキューから切断する)

機能説明

当該アプリケーションを複数のメッセージキューからすべて切断します。

記述形式

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

#include "mqdapi.h"

int mqd_disconnectqex(MQD_MessageQueueex *queuegroup, int *errqueindex,

MQD_Environment *env)

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

パラメタ

queuegroup

mqd_connectqex関数から返されたメッセージキューグループへのポインタをそのまま指定します。

errqueindex

- 176 -

Page 194: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

異常が発生したメッセージキューのインデックスが通知されます。複数異常が発生した場合は 初のメッセージキューのインデックス

が通知されます。インデックスは、mqd_connectqex関数で指定したメッセージキュー名の配列のインデックスで、以下のように通知され

ます。

0,1,2,…,n: 異常が発生したメッセージキューのインデックス

-1 : メッセージキューに関係なく異常復帰した場合

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

・ errqueindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM

・ errqueindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_ONTRAN, MQD_ERR_NOTEOU, MQD_ERR_BACKOUT,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_NOQUE,

MQD_ERR_QUEWINHIBIT

・ errqueindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECT, MQD_ERR_NOCONNECTQUE, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_NODISK

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0異常時: -1

注意事項

・ 本関数を使用する場合は、事前にmqd_connectqex関数でメッセージキューに接続してください。

・ mqd_beginによって開始したトランザクションの途中で MQDからの切断を行った場合の注意事項を以下に示します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されま

す。

- 処理中のトランザクションはシステムから取り消されます。

・ ユニットの途中(ユニット内の 後のメッセージを受信する前)でメッセージキューからの切断を行った場合の注意事項を以下に示

します。

- アプリケーションはメッセージキューから切断されます。ただし、エラー詳細コードには“MQD_ERR_NOTEOU”が通知されま

す。

- ユニット内のすでに受信済のメッセージはすべて取り消されます。ただし、グローバルトランザクション処理中の場合を除きま

す。

- グローバルトランザクション処理中の場合には、グローバルトランザクションを終了(ロールバック)させて、ユニット内のすでに

受信済のメッセージを取り消す必要があります。

・ 本関数が異常復帰した場合でも、メッセージキューグループのすべてのメッセージキューから切断します。ただし、復帰情報は

初に異常が発生したメッセージキューの復帰情報が通知されます。

・ 当該アプリケーションがSymfoware/RDBトランザクション連携機能を使用している場合の注意事項を以下に示します。

- 本関数の前で、トランザクションの終了またはトランザクションの取消しを行ってください。

- 177 -

Page 195: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

- トランザクションの途中でメッセージキューからの切断を行った場合、アプリケーションはメッセージキューから切断されます。

この時、エラー詳細コードには“MQD_ERR_ONTRAN”が通知されます。なお、処理中のトランザクションは取り消されないた

め、“SQL ROLLBACK文”を使用してトランザクションを取り消してください。

8.3.22 mqd_getmsgex (複数のメッセージキューからメッセージを受信する)

機能説明

指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージを受信します。

記述形式

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

#include "mqdapi.h"

int mqd_getmsgex(MQD_MessageQueueex *queuegroup, int mode, int cond,

int *queindex, MQD_MessageHeader *mhbuffer,

MQD_MessageBody *mbbuffer, long mblength, MQD_Environment *env)

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

パラメタ

queuegroup

mqd_connectqex関数から返されたメッセージキューグループへのポインタをそのまま指定します。

mode

メッセージがない場合の対処を指定します。

MQD_Q_MODE_ASYNC: 非同期モード

メッセージキューグループ内のすべてのメッセージキューにメッセージがない場合には、すぐに復帰します。

MQD_Q_MODE_SYNC: 同期モード

メッセージキューグループ内のいずれかのメッセージキューにメッセージが到着するまで待ちます。

cond

メッセージの受信中止条件を指定します。

MQD_Q_COND_ANYQUEUE:

メッセージキューグループ内のいずれかのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの受

信を中止して復帰します。

MQD_Q_COND_ALLQUEUE:

メッセージキューグループ内のすべてのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの受信

を中止して復帰します。

queindex

メッセージキューのインデックスが通知されます。インデックスは、mqd_connectqex関数で指定したメッセージキュー名の配列のイン

デックスで、以下のように通知されます。

0,1,2,…,n: メッセージキューのインデックス

-1 : メッセージキューに関係なく異常復帰した場合

mhbuffer

メッセージヘッダを入力する領域へのポインタを指定します。領域は発行元が用意します。メッセージヘッダ(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mbbuffer

メッセージ本体を入力する領域へのポインタを指定します。領域は発行元が用意します。メッセージ本体(MQD_MessageBody構造

体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mblength

- 178 -

Page 196: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

mbbufferで指定した領域の長さを指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

・ queindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_DOWNRCV, MQD_ERR_DEADLOCK,

MQD_ERR_BACKOUT, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_BUFFERLACK,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER,

MQD_ERR_UNITSUMOVER, MQD_ERR_MSGBODYLENGTH, MQD_ERR_GETMODE,

MQD_ERR_GETCOND

・ queindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUERINHIBIT,

MQD_ERR_PURGEMSG, MQD_ERR_UNITNOTCONT

・ queindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECTQUE

・ queindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_DOWNRCV, MQD_ERR_DEADLOCK,

MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_BUFFERLACK, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_MSGBODYLENGTH,

MQD_ERR_GETMODE, MQD_ERR_GETCOND

・ queindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUERINHIBIT,

MQD_ERR_PURGEMSG, MQD_ERR_UNITNOTCONT

・ queindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECTQUE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 本関数を使用する場合は、事前にmqd_connectqex関数でメッセージキューに接続してください。

・ 同一のメッセージキューグループのポインタを用いて、本関数とmqd_peekmsgex関数を使用することはできません。

・ メッセージの受信は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に受信し

ます。ただし、受信したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを受信するまで同一のメッセー

ジキューより受信します。

- 179 -

Page 197: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 本関数では、カーソルは使用しません。メッセージキューからは、プライオリティの高い先頭のメッセージから受信します。

・ 一つのアプリケーションが、複数のメッセージキューから受信する場合、必ずメッセージキューごとにユニット内の全メッセージを

受信するようにしてください。

・ 複数のアプリケーションが、同じメッセージキューから同時に受信することは避けてください。 1ユニット複数メッセージの場合は、

処理結果が保証されません。単一メッセージの場合は、先に受信要求を行ったアプリケーションにメッセージが渡ります。

・ エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバル

トランザクション処理中に限り通知されます。

・ メッセージがない場合の対処として“同期モード”を指定している、かつ、メッセージの受信中止条件として“すべてのメッセー

キュー”を指定している場合の、待ち受けを解除して停止する方法を以下に示します。

- メッセージキューグループのすべてのメッセージキューをアクセス禁止にする。

- メッセージキューグループ内のメッセージキューに“停止”を指示するメッセージを送信する。

エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.23 mqd_peekmsgex (複数のメッセージキューからメッセージを参照する)

機能説明

指定した複数のメッセージキューのいずれかのメッセージキューよりメッセージを参照します。

記述形式

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

#include "mqdapi.h"

int mqd_peekmsgex(MQD_MessageQueueex *queuegroup, int mode, int cond,

int *queindex, MQD_MessageHeader *mhbuffer,

MQD_MessageBody *mbbuffer, long mblength, MQD_Environment *env)

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

パラメタ

queuegroup

mqd_connectqex関数から返されたメッセージキューグループへのポインタをそのまま指定します。

mode

メッセージがない場合の対処を指定します。

MQD_Q_MODE_ASYNC: 非同期モード

メッセージキューグループ内のすべてのメッセージキューにメッセージがない場合には、すぐに復帰します。

MQD_Q_MODE_SYNC: 同期モード

メッセージキューグループ内のいずれかのメッセージキューにメッセージが到着するまで待ちます。

cond

メッセージの参照中止条件を指定します。

MQD_Q_COND_ANYQUEUE:

メッセージキューグループ内のいずれかのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの参

照を中止して復帰します。

MQD_Q_COND_ALLQUEUE:

メッセージキューグループ内のすべてのメッセージキューが、削除・切断・使用禁止またはアクセス禁止の場合、メッセージの参照

を中止して復帰します。

- 180 -

Page 198: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

queindex

メッセージキューのインデックスが通知されます。インデックスは、mqd_connectqex関数で指定したメッセージキュー名の配列のイン

デックスで、以下のように通知されます。

0,1,2,…,n: メッセージキューのインデックス

-1 : メッセージキューに関係なく異常復帰した場合

mhbuffer

メッセージヘッダを入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージヘッダ(MQD_MessageHeader構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mbbuffer

メッセージ本体を入れる領域へのポインタを指定します。領域は発行元が用意します。メッセージ本体(MQD_MessageBody構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

mblength

mbbufferで指定した領域の長さを指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

・ queindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_DOWNRCV, MQD_ERR_DEADLOCK,

MQD_ERR_BACKOUT, MQD_ERR_IO, MQD_ERR_NOMEMORY,

MQD_ERR_PROCESSOVER, MQD_ERR_BUFFERLACK,

MQD_ERR_TRANFILE, MQD_ERR_MSGFILE, MQD_ERR_UNITMSGOVER,

MQD_ERR_UNITSUMOVER, MQD_ERR_MSGBODYLENGTH, MQD_ERR_PEEKMODE,

MQD_ERR_PEEKCOND

・ queindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUEEND,

MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG, MQD_ERR_UNITNOTCONT

・ queindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECTQUE

・ queindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_INVALIDAPI, MQD_ERR_DOWNRCV, MQD_ERR_DEADLOCK,

MQD_ERR_BACKOUT, MQD_ERR_OTHERTHR, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER,

MQD_ERR_BUFFERLACK, MQD_ERR_TRANFILE, MQD_ERR_MSGFILE,

MQD_ERR_UNITMSGOVER, MQD_ERR_UNITSUMOVER, MQD_ERR_MSGBODYLENGTH,

MQD_ERR_PEEKMODE, MQD_ERR_PEEKCOND

・ queindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_NOQUE, MQD_ERR_NOMSG, MQD_ERR_QUEEND,

MQD_ERR_QUERINHIBIT, MQD_ERR_PURGEMSG, MQD_ERR_UNITNOTCONT

- 181 -

Page 199: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ queindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECTQUE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 本関数を使用する場合は、事前にmqd_connectqex関数でメッセージキューに接続してください。

・ 同一のメッセージキューグループのポインタを用いて、本関数とmqd_getmsgex関数を使用することはできません。

・ メッセージの参照は、特定のメッセージキューに集中しないようにメッセージが存在するメッセージキューの中から任意に参照し

ます。ただし、参照したメッセージが1ユニット複数メッセージの場合は、1ユニットすべてのメッセージを参照するまで同一のメッセー

ジキューより参照します。

・ カーソルは、指定したメッセージキューごとに以下の動作になります。

- メッセージ参照後、カーソルを次のメッセージに位置付けます。

・ 正しく参照されなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、mqd_seekmsgex関数を使用してください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けてから本関数を実行してください。

・ 複数のアプリケーションが、同じメッセージキューから受信と参照を同時に行うことは避けてください。1ユニット複数メッセージの

場合は、処理結果が保証されません。

・ エラー詳細コード“MQD_ERR_DEADLOCK”は、メッセージ格納ファイルとしてデータベースを使用している場合に、グローバル

トランザクション処理中に限り通知されます。

・ メッセージがない場合の対処として“同期モード”を指定している、かつ、メッセージの参照中止条件として“すべてのメッセー

キュー”を指定している場合の、待ち受けを解除して停止する方法を以下に示します。

- メッセージキューグループのすべてのメッセージキューをアクセス禁止にする。

- メッセージキューグループ内のメッセージキューに“停止”を指示するメッセージを送信する。

エラー詳細コード“MQD_ERR_OTHERTHR”は、Symfoware/RDBトランザクション連携機能を使用している場合に限り通知され

ます。

8.3.24 mqd_seekmsgex (複数のメッセージキューのカーソルを移動する)

機能説明

指定した複数のメッセージキューのすべてのカーソルをメッセージキューの先頭メッセージに移動します。

記述形式

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

#include "mqdapi.h"

int mqd_seekmsgex(MQD_MessageQueueex *queuegroup, int *queindex,

MQD_Environment *env)

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

- 182 -

Page 200: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

パラメタ

queuegroup

mqd_connectqex関数から返されたメッセージキューグループへのポインタをそのまま指定します。

queindex

メッセージキューのインデックスが通知されます。インデックスは、mqd_connectqex関数で指定したメッセージキュー名の配列のイン

デックスで、以下のように通知されます。

0,1,2,…,n: メッセージキューのインデックス

-1 : メッセージキューに関係なく異常復帰した場合

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

・ queindexに“-1”を通知するエラー詳細コード

MQD_ERR_SYNTAX, MQD_ERR_NOSYSTEM, MQD_ERR_NOCONNECT,

MQD_ERR_NOMEMORY

・ queindexにメッセージキューのインデックスを通知するエラー詳細コード

MQD_ERR_NOQUE

・ queindexにメッセージキューのインデックス、または、“-1”を通知するエラー詳細コード

MQD_ERR_NOCONNECTQUE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 本関数を使用する場合は、事前にmqd_connectqex関数でメッセージキューに接続してください。

・ 正しく移動できなかった場合には、カーソル位置は保証されません。カーソルをメッセージキューの先頭メッセージに移動するた

めには、mqd_disconnectqex関数を使用して複数メッセージキューから切断を行い、mqd_connectqex関数を使用して再度複数メッ

セージキューへ接続を行ってください。

・ 直前のトランザクションを取り消した場合には、カーソルを先頭メッセージに位置付けるために本関数を実行してください。

8.3.25 mqd_openevent (運用イベントをオープンする)

機能説明

運用イベントをオープンし、受信の準備をします。

記述形式

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

#include "mqdapi.h"

int mqd_openevent(MQD_System *system, int *handle, MQD_Environment *env)

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

パラメタ

system

mqd_connect関数から返されたMQDシステム情報へのポインタをそのまま指定します。

- 183 -

Page 201: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

handle

運用イベントをオープンした場合には運用イベントへの接続ハンドルを返します。運用イベントへの接続ハンドルは、運用イベント処

理の各関数への入力パラメタとして使います。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOCONNECT, MQD_ERR_NOMEMORY, MQD_ERR_ELIMIT,

MQD_ERR_EVENTOPENED

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 運用イベントをオープンするためには、MQDへ接続しておく必要があります。

・ 運用イベントを多重にオープンすることはできません。多重にオープンしようとした場合にはエラー詳細コー

ド“MQD_ERR_EVENTOPENED”で復帰します。

・ 運用イベントのオープンはトランザクションおよび、各種メッセージ処理APIとの関連はありません。

8.3.26 mqd_closeevent (運用イベントをクローズする)

機能説明

運用イベントをクローズします。

記述形式

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

#include "mqdapi.h"

int mqd_closeevent(int handle, MQD_Environment *env)

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

パラメタ

handle

mqd_openevent関数から返された運用イベントへのハンドルをそのまま指定します。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOCONNECT, MQD_ERR_EVENTNOOPEN, MQD_ERR_INVALIDHANDLE

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 運用イベントをクローズするためには、運用イベントをオープンしておく必要があります。

- 184 -

Page 202: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 運用イベントのクローズはトランザクションおよび、各種メッセージ処理APIとの関連はありません。

8.3.27 mqd_getevent (運用イベントを受信する)

機能説明

運用イベントを1件受信します。

記述形式

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

#include "mqdapi.h"

int mqd_getevent(int handle, int eventID[], int IDmax, int mode,

MQD_EventInfo *header, char *extend,

long *length, MQD_Environment *env)

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

パラメタ

handle

mqd_openevent関数から返された運用イベントへのハンドルをそのまま指定します。

eventID

受信対象にする運用イベントIDを設定してください。複数種の運用イベントを受信したい場合には受信したい運用イベントIDをすべ

て設定してください。すべての種類の運用イベントIDを受信したい場合には配列の先頭に“0”を設定してください。運用イベントIDの

種類については“表8.26 運用イベントID一覧”を参照してください。

IDmax

eventIDに設定した運用イベントIDの有効数を設定してください。eventIDに“0”を指定した場合には“1”を指定してください。

mode

運用イベントがない場合の対処を指定します。

MQD_Q_MODE_ASYNC: 非同期モード

運用イベントがない場合には、すぐに復帰します。

MQD_Q_MODE_SYNC: 同期モード

運用イベントが発生するまで待ちます。

header

運用イベント情報を入れる領域へのポインタを指定します。領域は発行元が用意します。運用イベント情報(MQD_EventInfo構造体)の詳細については、“8.3.29 パラメタの詳細説明”を参照してください。

extend

運用イベント拡張情報を入れる領域へのポインタを指定します。領域は発行元が用意します。運用イベント拡張情報がない運用イベ

ントだけを受信する場合にはNULLを指定します。運用イベント拡張情報の詳細については、“8.3.29 パラメタの詳細説明”を参照して

ください。

length

extendで指定した領域の長さを指定します。extendにNULLを指定した場合には“0”を指定してください。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOCONNECT, MQD_ERR_NOMEMORY, MQD_ERR_BUFFERLACK,

MQD_ERR_EVENTNOOPEN, MQD_ERR_NOEVENT, MQD_ERR_INVALIDHANDLE, MQD_ERR_GETMODE,

MQD_ERR_IDMAX, MQD_ERR_EXTENDLENGTH

- 185 -

Page 203: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

注意事項

・ 運用イベントを受信するためには、運用イベントをオープンしておく必要があります。

・ eventIDに指定しなかったIDの運用イベントは通知しません。

・ 受信した運用イベント拡張情報が準備した領域よりも大きかった場合には、運用イベント拡張情報は通知しません。運用イベント

情報のみを通知します。またこのとき、本関数の処理結果には“-1”、エラー詳細コードにはMQD_ERR_BUFFERLACKを設定し

ます。

・ 運用イベントの受信はトランザクションおよび、各種メッセージ処理APIとの関連はありません。

8.3.28 mqd_connectrdb (Symfoware/RDBトランザクション連携機能を使用してMQDに接続する)

機能説明

Symfoware/RDBトランザクション連携機能を使用して当該アプリケーションをMQDに接続します。

記述形式

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

#include "mqdapi.h"

int mqd_connectrdb(char *sysname, MQD_Environment *env, MQD_System **system)

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

パラメタ

sysname

MQDシステム名へのポインタを指定します。MQDシステム名は、mqdsetupコマンドを実行したときに指定したMQDのシステム環境の

名前です。

env

例外処理のための復帰情報へのポインタを指定します。エラー詳細コードに以下の値が返されます。復帰情報(MQD_Environment構造体)の詳細については、“8.4 復帰情報の説明”を参照してください。

MQD_ERR_SYNTAX, MQD_ERR_NOENV, MQD_ERR_NOSYSTEM,

MQD_ERR_CONNECTED, MQD_ERR_INVALIDAPI, MQD_ERR_IO,

MQD_ERR_NOMEMORY, MQD_ERR_PROCESSOVER, MQD_ERR_ACCESSDENY,

MQD_ERR_SYSNAME

system

MQDに接続した場合にはMQDシステム情報(MQD_System構造体)へのポインタを返します。

復帰値

本関数の処理結果が以下の復帰値で通知されます。

正常時: 0 異常時: -1

- 186 -

Page 204: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ MQDに接続するためにはMQDを起動しておく必要があります。

・ 本関数の前に、業務用データベースと接続しておく必要があります。業務用データベースに接続してない場合は、エラー詳細

コードには“MQD_ERR_INVALIDAPI”が通知されます。

・ 本関数の前に、トランザクションが開始している場合は、トランザクションの終了またはトランザクションの取り消しを行う必要があり

ます。トランザクションが開始している場合は、エラー詳細コードには“MQD_ERR_INVALIDAPI”が通知されます。

8.3.29 パラメタの詳細説明

各インタフェースで設定または参照する以下の構造体について詳細内容を説明します。

・ MQD_QueueAttribute構造体(メッセージキュー属性情報)

・ MQD_QueueName構造体(メッセージキュー名一覧)

・ MQD_MessageHeader構造体(メッセージヘッダ)

・ MQD_MessageBody構造体(メッセージ本体)

・ MQD_EventInfo(運用イベント情報)

8.3.30 MQD_QueueAttribute構造体

MQD_QueueAttribute構造体は、メッセージキューの作成、メッセージキュー属性の設定または参照する場合に使用します。以下に

MQD_QueueAttributeの形式を示します。また、内容および入出力関係を表8.16 MQD_QueueAttributeの内容および表8.17MQD_QueueAttributeの入出力に示します。

MQD_QueueAttributeの形式

Typedef struct mqd_queueattribute_t{

MQDCHAR qname[64];

MQDBYTE guarantee;

MQDBYTE reserve0[3];

MQDLONG quota;

MQDLONG msg_maxlen;

MQDLONG default_priority;

MQDLONG default_timelimit;

MQDLONG reserve1;

MQDLONG reserve2;

MQDLONG reserve3;

MQDLONG reserve4;

MQDLONG reserve5;

MQDLONG put_status;

MQDLONG get_status;

MQDLONG num_of_msg;

MQDLONG create_timestamp;

MQDLONG modify_timestamp:

MQDLONG reserve6;

MQDLONG reserve7;

MQDLONG reserve8;

MQDLONG reserve9;

MQDLONG reserve10;

} MQD_QueueAttribute;

表8.16 MQD_QueueAttributeの内容

メンバ名 和名 データ型 意味説明

qname メッセージキュー名 char メッセージキューの名前です。

- 187 -

Page 205: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メンバ名 和名 データ型 意味説明

guarantee メッセージ保証

レベル

char 受信メッセージのメッセージ保証レベルです。

MQD_MH_VOLATILE: メモリ型

MQD_MH_NONVOLATILE: ディスク型

quota 大ディスク容量 long メッセージキューが利用できる 大ディスク容量です。

本バージョンでは必ず0を指定します。

msg_maxlen メッセージの 大長 long メッセージキューに格納できるメッセージデータの 大長です。単位

はバイトです。780~ 2097152(2M)バイトの範囲で指定します。メッ

セージヘッダとメッセージ本体を合計した長さを指定してください。

メッセージヘッダは 780バイトの固定長です。

default_priority

プライオリティの省略

long メッセージキューにメッセージを入れる際、メッセージの優先度を省

略した場合に使用されます。小さい値ほど優先度が高くなります。

1~3の値を指定します。

1~7の値を指定します。

default_timelimit

大保存時間の

省略値

long メッセージキューにメッセージを入れる際、メッセージの 大保存時

間を省略した場合に使用されます。本バージョンでは必ず0を指定

します。

put_status 送信状態 long メッセージキューへの送信状態を以下の値で指定します。

0 : 変更なし

MQD_QUE_ACTIVE : 送信可能

MQD_QUE_INHIBIT: 送信禁止

属性通知の場合は上記および以下の値が通知されます。

MQD_QUE_PURGE: 使用禁止

get_status 受信状態 long メッセージキューからの受信状態を以下の値で指定します。

0 : 変更なし

MQD_QUE_ACTIVE : 受信可能

MQD_QUE_INHIBIT: 受信禁止

属性通知の場合は上記および以下の値が通知されます。

MQD_QUE_PURGE: 使用禁止

num_of_msg 残存メッセージ数 long メッセージキューに存在するメッセージの数です。

create_timestamp

メッセージキューの作

成日時

long メッセージキューが作成された日時です。

1970/1/1 00:00:00 UTCからの秒数で表されます。

modify_timestamp

メッセージキューの

終更新日時

long メッセージキュー情報が 後に更新された日時です。

1970/1/1 00:00:00 UTCからの秒数で表されます。

表8.17 MQD_QueueAttributeの入出力

メンバ名インタフェース(関数)名

mqd_createq mqd_setqattr mqd_getqattr

qname 入力 ― 出力

guarantee 入力 ― 出力

quota 入力 ― 出力

msg_maxlen 入力 ― 出力

default_priority 入力 ― 出力

default_timelimit 入力 ― 出力

put_status 入力 入力 出力

- 188 -

Page 206: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メンバ名インタフェース(関数)名

mqd_createq mqd_setqattr mqd_getqattr

get_status 入力 入力 出力

num_of_msg 出力 ― 出力

create_timestamp 出力 ― 出力

modify_timestamp 出力 ― 出力

入力:入力情報、出力:出力情報、―:無効

8.3.31 MQD_QueueName構造体

MQD_QueueName構造体は、メッセージキュー名の一覧を参照する場合や複数のメッセージキューに接続する場合に使用します。以下に

MQD_QueueNameの形式を示します。また、内容および入出力関係を表 8.18 MQD_QueueNameの内容および表 8.19MQD_QueueNameの入出力に示します。

MQD_QueueNameの形式

typedef struct mqd_queuename_t{

MQD_CHAR qname[64];

} MQD_QueueName;

表8.18 MQD_QueueNameの内容

メンバ名 和名 データ型 意味説明

qname メッセージ

キュー名

char メッセージキューの名前です。 大64文字です(NULL文字を含む)。

表8.19 MQD_QueueNameの入出力

メンバ名インタフェース(関数)名

mqd_getqlist mqd_connectqex

qname 出力 入力

入力:入力情報、出力:出力情報

8.3.32 MQD_MessageHeader構造体

MQD_MessageHeader構造体は、メッセージの送信、受信および参照時に使用します。以下にMQD_MessageHeaderの形式を示しま

す。また、内容および入出力関係を表8.20 MQD_MessageHeaderの内容および表8.21 MQD_MessageHeaderの入出力に示します。

MQD_MessageHeaderの形式

typedef struct mqd_messageheader_t{

MQDBYTE msg_type;

MQDBYTE code_type;

MQDBYTE body_code;

MQDBYTE reserve1_1[1];

MQDCHAR unit_id[128];

MQDLONG msg_serialno;

MQDBYTE EOU_flag;

MQDBYTE reserve1_2[3];

MQDLONG reserve1_3[8];

MQDCHAR original_sysname[9];

MQDBYTE reserve2_1[3];

MQDCHAR version[8];

MQDLONG reserve2_2[8];

- 189 -

Page 207: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQDCHAR original_qname[64];

MQDBYTE guarantee;

MQDBYTE reserve3_1[3];

MQDLONG reserve3_2[8];

MQDLONG original_timestamp;

MQDLONG trans_timestamp;

MQDLONG arrive_timestamp;

MQDLONG delay_time;

MQDLONG queuing_time;

MQDLONG reserve4_1[8];

MQDCHAR msg_name[64];

MQDLONG msg_id;

MQDLONG priority;

MQDLONG msgbody_length;

MQDCHAR return_qname[64];

MQDLONG timelimit;

MQDLONG access_right;

MQDLONG reserve5_1[8];

MQDLONG reserve6_1[8];

MQDLONG reserve6_2[8];

MQDLONG reserve6_3[8];

MQDCHAR reserve7_1[128];

} MQD_MessageHeader;

表8.20 MQD_MessageHeaderの内容

メンバ名 和名 データ型 意味説明

msg_type メッセージタイプ char メッセージの種類です。以下があります。

MQD_MH_USRMSG: 一般のメッセージ

MQD_MH_JNLCKPT: ジャーナルチェックポイント(TJNL用)MQD_MH_JNLDATA: ジャーナルログデータ(TJNL用)

code_type コード系情報 char メッセージヘッダ部分のコード系です。以下があります。

MQD_MH_EUC : EUCコード

MQD_MH_SJIS: SJISコード

MQD_MH_JEF : JEFコード

body_code メッセージ本体の

コード系情報

char メッセージ本体部分のコード系です。以下があります。

0 : 不明

MQD_BODY_EUC : EUCコード

MQD_BODY_SJIS : SJISコード

MQD_BODY_JEFKANA : JEFKANAコード

MQD_BODY_JEFASCII : JEFASCIIコード

unit_id ユニット識別子 char ユニットの識別子です。

msg_serialno

ユニット内メッセージ

通番

long 複数のメッセージをユニットとして送信する場合のユニット内のメッ

セージ通番です。1から始まる連続番号です。1ユニット1メッセージ

の場合には1が設定されます。

EOU_flag ユニット終了フラグ char ユニットの終了を示すフラグです。

MQD_MH_EOU: ユニットの終端

MQD_MH_NOTEOU: ユニットの途中

original_sysname

送信MQDシステム

char メッセージを送信したMQDの名前です。

version バージョン char メッセージヘッダのバージョンです。

バージョンは8バイトの文字列です。

original_qname

送信キュー名 char メッセージを送信したメッセージキューの名前です。

guarantee メッセージ保証

レベル

char メッセージキュー属性にあるメッセージ保証レベルです。

以下のいずれかが設定されます。

- 190 -

Page 208: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メンバ名 和名 データ型 意味説明

MQD_MH_VOLATILE: メモリ型

MQD_MH_NOVOLATILE: ディスク型

original_timestamp

送信タイムスタンプ long メッセージが送信された日時です。1970/1/1 00:00:00 UTCからの秒

数です。

trans_timestamp

転送タイムスタンプ long 連携サービスが他システムにメッセージを送信した日時です。1970/1/100:00:00 UTCからの秒数です。

arrive_timestamp

到着タイムスタンプ long メッセージが受信された日時です。1970/1/1 00:00:00 UTCからの秒

数です。

delay_time 転送遅延時間 long 連携サービスが他システムからメッセージを受信した日時と転送タイ

ムスタンプとの差の時間(秒数)の累積です。

queuing_time

キューイング時間 long アプリケーションがメッセージを受信した日時と到着タイムスタンプと

の差の時間(秒数)です。

msg_name メッセージ名 char メッセージの名前です。メッセージ名は、63文字以内の英数字とアン

ダースコアで指定します。英字の大文字と小文字は区別されます。

msg_nameを使わない場合はNULL文字を指定します。

msg_id メッセージ識別子 long メッセージ識別子です。任意の整数で指定します。msg_idを使わな

い場合は0を指定します。

priority プライオリティ long 本メッセージの優先度です。0を指定した場合は、メッセージキュー

属性にあるプライオリティの省略値が適用されます。

なお、1ユニット複数メッセージの場合は、ユニット内の先頭メッセー

ジのプライオリティだけが有効です。

1~3の数値で指定します。

1~7の数値で指定します。

msgbody_length

メッセージ本体長 long メッセージ本体の長さです。0~ 2088960(約2M)バイトの範囲で指定

します。

return_qname

返信キュー名 char 返信用のメッセージキュー名です。メッセージ送信時に送信側シス

テムのメッセージキュー名を指定します。return_qnameを使わない場

合はNULL文字を指定します。メッセージ受信時には、返信キュー

名に対応する受信側システムのメッセージキュー名が設定されます。

なお、1ユニット複数メッセージの場合は、ユニット内の先頭メッセー

ジの返信キュー名だけが有効です。

timelimit 大保存時間 long メッセージをメッセージキューに保存しておくことのできる 大時間

です。0を指定した場合は、メッセージキュー属性にある値が適用さ

れます。

本バージョンでは常に0を指定してください。

access_right

アクセス権 long メッセージに対するアクセスの権利です。

本バージョンでは常に0を指定してください。

表8.21 MQD_MessageHeaderの入出力

メンバ名インタフェース(関数)名

mqd_putmsg mqd_getmsg mqd_peekmsg

msg_type ― 出力 出力

code_type ― 出力 出力

body_code ― 出力 出力

unit_id ― 出力 出力

- 191 -

Page 209: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メンバ名インタフェース(関数)名

mqd_putmsg mqd_getmsg mqd_peekmsg

msg_serialno ― 出力 出力

EOU_flag ― 出力 出力

original_sysname ― 出力 出力

version ― 出力 出力

original_qname ― 出力 出力

guarantee ― 出力 出力

original_timestamp ― 出力 出力

trans_timestamp ― 出力 出力

arrive_timestamp ― 出力 出力

delay_time ― 出力 出力

queuing_time ― 出力 出力

msg_name 入力 出力 出力

msg_id 入力 出力 出力

priority 入力 出力 出力

msgbody_length 入力 出力 出力

return_qname 入力 出力 出力

timelimit 入力 出力 出力

access_right 入力 出力 出力

入力:入力情報、出力:出力情報、―:無効

8.3.33 MQD_MessageBody構造体

MQD_MessageBody構造体は、メッセージの送信、受信および参照時に使用します。以下にMQD_MessageBodyの形式を示します。

また、内容および入出力関係を表8.22 MQD_MessageBodyの内容および表8.23 MQD_MessageBodyの入出力に示します。

MQD_MessageBodyの形式

typedef struct mqd_messagebody_t{

MQDCHAR *data;

} MQD_MessageBody;

表8.22 MQD_MessageBodyの内容

メンバ名 和名 データ型 意味説明

*data メッセージ本体のア

ドレス

char型ポインタ

メッセージ本体のアドレスです。メッセージ本体を

入れる領域のアドレスを指定します。メッセージ送

信時、メッセージ本体がない場合は“NULL”を指

定します。

表8.23 MQD_MessageBodyの入出力

メンバ名インタフェース(関数)名

mqd_putmsg mqd_getmsg mqd_peekmsg

*data 入力 入力 入力

入力:入力情報

- 192 -

Page 210: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

8.3.34 MQD_EventInfo構造体

MQD_EventInfo構造体は、運用イベントの受信時に使用します。以下にMQD_EventInfoの形式を示します。また、内容および入出

力関係を表8.24 MQD_EventInfoの内容および表8.25 MQD_EventInfoの入出力に、運用イベントID一覧および運用イベント情報の

詳細を表8.26 運用イベントID一覧および表8.27 運用イベント情報の詳細に示します。

MQD_EventInfoの形式

typedef struct mqd_EventInfo_t{

MQDLONG eventID;

time_t timestamp;

MQDCHAR date_str[MQD_DATESTR_MAX];

MQDCHAR time_str[MQD_DATESTR_MAX];

MQDCHAR string1[MQD_EVTSTR_MAX];

MQDCHAR string2[MQD_EVTSTR_MAX];

MQDCHAR string3[MQD_EVTSTR_MAX];

MQDCHAR string4[MQD_EVTSTR_MAX];

MQDLONG value1;

MQDLONG value2;

MQDLONG value3;

MQDLONG value4;

MQDLONG extend_length;

} MQD_EventInfo;

表8.24 MQD_EventInfoの内容

メンバ名 和名 データ型 意味説明

eventID 運用イベントID long 運用イベントIDです。詳細は表8.26 運用イベント

ID一覧に示します。

timestamp タイムスタンプ time_t 運用イベントが発生した日時です。1970/1/100:00:00 UTCからの秒数です。

date_str 日付 char 運用イベントが発生した日付を文字列で設定しま

す。2002年7月05日は“20020705”と設定されま

す。日付は運用イベントの発生したサーバのロー

カル時刻です。

time_str 時刻 char 運用イベントが発生した時刻を文字列で設定しま

す。午後2時41分35秒の場合“14413500”と設定

されます。時刻は運用イベントの発生したサーバ

のローカル時刻です。

string1 ~string4

運用イベント文字列

データ

char 運用イベントデータが63文字までの文字列で設

定されます。詳細は表8.27 運用イベント情報の

詳細に示します。

value1 ~value4

運用イベント数値

データ

long 運用イベントデータが数値項目で設定されます。

詳細は表8.27 運用イベント情報の詳細に示しま

す。

extend_length

運用イベント拡張情

報長

long 運用イベント拡張情報の大きさが設定されます。

拡張情報がない場合には“0”が設定されます。

詳細は表8.26 運用イベントID一覧に示します。

表8.25 MQD_EventInfoの入出力

項目名インタフェース名

mqd_getevent

eventID 出力

timestamp 出力

- 193 -

Page 211: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名インタフェース名

mqd_getevent

date_str 出力

time_str 出力

string1 ~ string4 出力

value1 ~ value4 出力

extend_length 出力

出力:出力情報

表8.26 運用イベントID一覧

運用イベントID 意味 運用イベント拡張情報長

1 メッセージ格納域の使用率が、設定した警告

値を超えました。

0

2 メッセージ格納域の使用率が、設定した安全

値まで回復しました。

0

101 ACM連携サービスに関する通信異常が発生

しました。

本事象が発生したIDCMの通信パス配下の送

信メッセージキュー数 × 8 + 4

102 ACM連携サービスに関する通信異常が回復

しました。

本事象が発生したIDCMの通信パス配下の送

信メッセージキュー数 × 8 + 4

表8.27 運用イベント情報の詳細

運用

イベントID項目 値 内容説明

1 srting1 “DISK” または “MEMORY” メッセージ格納域の種別

string2 MQDシステム名 MQDシステム名

string3 未設定 未使用

string4 未設定 未使用

value1 503 MQDの出力するメッセージ番号

value2 1~100 警告値(%)

value3 1~100 使用率(%)

value4 未設定 未使用

extend_length 0 -

運用イベント拡張

情報

- -

2 srting1 “DISK” または “MEMORY” メッセージ格納域の種別

string2 MQDシステム名 MQDシステム名

string3 未設定 未使用

string4 未設定 未使用

value1 504 MQDの出力するメッセージ番号

value2 0~99 安全値(%)

value3 0~99 使用率(%)

value4 未設定 未使用

extend_length 0 -

- 194 -

Page 212: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

運用

イベントID項目 値 内容説明

運用イベント拡張

情報

- -

101 STRING1 “Client” 送信側のシステムに関するイベント情報

STRING2 IDCMの通信パス名 IDCMの通信パス名

STRING3 未設定 未使用

STRING4 未設定 未使用

VALUE1 未設定 未使用

VALUE2 未設定 未使用

VALUE3 未設定 未使用

VALUE4 未設定 未使用

EXTEND-LENGTH

本事象が発生したIDCMの通信パ

ス配下の送信メッセージキュー数 ×8 + 4

当該通信パス配下のすべての送信メッセージ

キュー名を格納する領域の大きさ

運用イベント拡張

情報

先頭4バイトは送信メッセージキュー

数(int)

5バイト目以降はメッセージキュー名

(char[8]) × 送信メッセージキュー

数の配列

当該通信パス配下の送信メッセージキュー数お

よび送信メッセージキュー名

102 STRING1 “Client” 送信側のシステムに関するイベント情報

STRING2 IDCMの通信パス名 IDCMの通信パス名

STRING3 未設定 未使用

STRING4 未設定 未使用

VALUE1 未設定 未使用

VALUE2 未設定 未使用

VALUE3 未設定 未使用

VALUE4 未設定 未使用

EXTEND-LENGTH

本事象が発生したIDCMの通信パ

ス配下の送信メッセージキュー数 ×8 + 4

当該通信パス配下のすべての送信メッセージ

キュー名を格納する領域の大きさ

運用イベント拡張

情報

先頭4バイトは送信メッセージキュー

数(int)

5バイト目以降はメッセージキュー名

(char[8]) × 送信メッセージキュー

数の配列

当該通信パス配下の送信メッセージキュー数お

よび送信メッセージキュー名

8.4 復帰情報の説明

各インタフェースの処理において例外事象(エラー)が発生した場合には、復帰情報の領域( C言語の場合は“env”ポインタで指され

た“MQD_Environment”構造体)にエラー種別とエラー詳細コードが通知されます。

以下に復帰情報の形式を示します。また、表8.28 エラー種別一覧にエラー種別を、表8.29 エラー詳細コード一覧にエラー詳細コー

ドをそれぞれ一覧します。

復帰情報の形式

COBOL言語の場合

- 195 -

Page 213: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

WORKING-STORAGE SECTION.

01 MQD-ENVIRONMENT.

02 LEVEL PIC 9(5) COMP-5. … エラー種別

02 RCODE PIC 9(5) COMP-5. … エラー詳細コード

C言語の場合

typedef struct mqd_environment_t{

MQDLONG level; /* エラー種別 */

MQDLONG code; /* エラー詳細コード */

}MQD_Environment;

エラー種別

表8.28 エラー種別一覧

エラー種別意味内容

値 マクロ名(注)

0 MQD_SUCCESS

正常復帰

0以外 MQD_ERROR 異常復帰

注) C言語の場合に有効

エラー詳細コード

表8.29 エラー詳細コード一覧

エラー詳細コード意味内容 対処方法

値 マクロ名(注)

16 MQD_ERR_SYNTAX

パラメタの内容に誤りがあります。 パラメタを確認してください。

17 MQD_ERR_NOENV

MQDのシステム環境がありません。 MQDのシステム環境を作成してください。

クラスタ環境用のMQDシステムを作成す

る時の、SystemDirectoryの値に誤りがあ

ります。

クラスタ環境の設定を修正したMQDシステム

を再作成した後に、再実行してください。

18 MQD_ERR_NOSYSTEM

MQDが起動されていません。 MQDを起動してください。

19 MQD_ERR_NOCONNECT

MQDに接続されていません。 アプリケーションをMQDに接続してください。

20 MQD_ERR_CONNECTED

すでにMQDに接続されています。 MQDへの接続が重複しないようにアプリケー

ションを修正してください。

指定されたメッセージキューは、アプリ

ケーションから使用されているため、削除

できません。

メッセージキューの削除を行う場合は、メッセー

ジキューからの切断を行ってください。

21 MQD_ERR_INVALIDAPI

プログラムの実行順番が間違っていま

す。

アプリケーションを修正してください。

22 MQD_ERR_NOCONNECTQUE

メッセージキューに接続されていません。 アプリケーションをメッセージキューに接続し

てください。

- 196 -

Page 214: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

エラー詳細コード意味内容 対処方法

値 マクロ名(注)

23 MQD_ERR_ONTRAN

トランザクション処理中です。 当プログラムは、トランザクション処理区間外

で実行してください。

24 MQD_ERR_NOTEOU

ユニット内の 終メッセージの送信また

は受信が行われていません。

当プログラムは、ユニット内の 終メッセージ

を送信または受信してから実行してください。

25 MQD_ERR_DOWNRCV

ダウンリカバリが完了していません。 Interstageを起動した後、再実行してください。

26 MQD_ERR_OVERTRAN

トランザクションの数がトランザクション多

重度を超えました。

MQDを使用するアプリケーションの数を減ら

してください。

また、トランザクションの取り消し、メッセージ

操作を伴わないトランザクションの終了、メッ

セージのないメッセージキューへの非同期

モードでのメッセージの受信や参照を非常に

短い期間に連続して実行すると、本エラーが

返ることがあります。そのようなMQD-APIの使

い方をしている場合には、アプリケーションを

修正してください。

27 MQD_ERR_TRANMIX

グローバルトランザクション中です。 グローバルトランザクション配下ではMQDの

トランザクション機能を利用しないでください。

28 MQD_ERR_NOBEGIN

トランザクションが開始されていません。 MQDBEGIN(mqd_begin)を発行してトランザ

クションを開始してください。

29 MQD_ERR_DEADLOCK

プログラムによって、データベースがデッ

ドロック状態になりました。

トランザクションを取り消した後、再度同じトラ

ンザクションを実行してください。

30 MQD_ERR_BACKOUT

グローバルトランザクションがロールバッ

クされました。

グローバルトランザクションを取り消した後、再

度同じトランザクションを実行してください。

31

MQD_ERR_OTHERTHR

他のスレッドですでにメッセージ操作が

行われています。

アプリケーションを修正してください。

32 MQD_ERR_IO I/Oエラーが発生しました。 ディスク装置を確認してください。

33 MQD_ERR_NOMEMORY

実メモリ、スワップ、共有メモリ、メッセー

ジバッファ、トランザクション多重度、トラ

ンザクション用管理用ファイル容量のい

ずれかが不足しています。

一時的資源不足の可能性があるので、リトラ

イしてください。その場合には、ユニットまたは

トランザクションの先頭からリトライしてくださ

い。

リトライしても同様のエラーになる場合には、

メモリ領域、MQD環境定義の

MessageBufferMaxSize、Max_Size の値を確

認してください。

34 MQD_ERR_NODISK

空きのディスク領域が不足しています。 不要なファイルなどを消してディスク領域を確

保してください。

35 MQD_ERR_ARRAYLACK

指定された数よりも多くのメッセージキュー

があるため、すべてのメッセージキュー名

を通知することができません。

個数格納域 (C言語の場合はqnum)に通知さ

れたメッセージキューの数を参照し、十分な

だけの配列を準備して再実行してください。

36 MQD_ERR_PROCESSOVER

MQD内のプロセスの数が多過ぎます。 MQD内で起動するアプリケーションの数を減

らしてください。

また、トランザクションの取り消し、メッセージ

操作を伴わないトランザクションの終了、メッ

セージのないメッセージキューへの非同期

- 197 -

Page 215: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

エラー詳細コード意味内容 対処方法

値 マクロ名(注)

モードでのメッセージの受信や参照を非常に

短い期間に連続して実行すると、本エラーが

返ることがあります。そのようなMQD-APIの使

い方をしている場合には、アプリケーションを

修正してください。

37 MQD_ERR_ACCESSDENY

MQDのシステム環境のファイルへのアク

セス権がありません。

アプリケーションの実行者の権限を確認して

ください。

38 MQD_ERR_BUFFERLACK

メッセージ本体を格納する領域が不足し

ています。

メッセージ本体を格納する領域を大きくしてく

ださい。

運用イベント拡張情報を格納する領域が

不足しています。

運用イベント拡張情報を格納する領域を大き

くしてください。

39 MQD_ERR_TRANFILE

トランザクションファイルの空き容量が不

足しています。

他のアプリケーションの処理が終了した後、再

実行してください。

40 MQD_ERR_MSGFILE

メッセージ格納域の空き容量が不足して

います。

メッセージの受信側を起動してください。また

はメッセージ格納域の容量変更をしてくださ

い。

41 MQD_ERR_ELIMIT

システム資源の制限値に違反していま

す。

システム資源の設定値を見直してください。シ

ステム資源の設定値については“インストール

ガイド”を参照してください。

48 MQD_ERR_QUEOVER

メッセージキュー数の 大に達したため、

メッセージキューが作成できません。

不要なメッセージキューを削除してください。

49 MQD_ERR_OPENQUEOVER

1プロセス内でシステムに接続できるメッ

セージキューの 大数(4096)に達したた

め、メッセージキューに接続できません。

または、1MQDシステムで同時に接続で

きるメッセージキューの 大数(65535)に達したため、メッセージキューに接続でき

ません。

mqd_disconnectq(C言語の場合)または、

MQDDISCONNECTQ(COBOL言語の場合)を使用して、不要なメッセージキューから切断

してください。

50 MQD_ERR_FILEOVER

プロセス内でのファイルオープン数が上

限に達しました。

プロセス内でのメッセージキューのシステムへ

の接続数を減らしてください。

51 MQD_ERR_UNITMSGOVER

トランザクション機能を使用している場

合、一つのトランザクションで扱うことので

きるメッセージ数の 大に達したため、

メッセージを格納できません。

トランザクションの単位を変えて、一つのトラン

ザクション内で扱うメッセージ数を少なくしてく

ださい。

トランザクション機能を使用していない場

合、一つのユニットで扱うことのできるメッ

セージ数の 大に達したため、メッセー

ジを格納できません。

ユニットの分割単位を変えて、一つのユニット

内のメッセージ数を小さくしてください。

52 MQD_ERR_UNITSUMOVER

トランザクション機能を使用している場

合、一つのトランザクションで扱うことので

きるメッセージ合計サイズの上限に達し

たため、メッセージを格納できません。

トランザクションの単位を変えて、一つのトラン

ザクション内で扱うメッセージサイズを小さくし

てください。または、MQD環境定義の

Transactionセクションの Max_Size を見直した

上で、MQD環境を再作成してください。

トランザクション機能を使用していない場

合、一つのユニットで扱うことのできるメッ

セージ合計サイズの上限に達したため、

メッセージを格納できません。

ユニットの分割単位を変えて、一つのユニット

内のメッセージサイズを小さくしてください。ま

たは、MQD環境定義の Transactionセクショ

ンの Max_Size を見直した上で、MQD環境を

再作成してください。

- 198 -

Page 216: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

エラー詳細コード意味内容 対処方法

値 マクロ名(注)

64 MQD_ERR_QUEEXIST

作成しようとしたメッセージキューはすで

に存在します。

作成するメッセージキューの名前を変更して

ください。

65 MQD_ERR_NOQUEEXIST

MQDにメッセージキューが一つもありま

せん。

なし。

66 MQD_ERR_NOQUE

指定されたメッセージキューは存在しま

せん。

メッセージキュー名を確認してください。

67 MQD_ERR_NOCURSORMSG

指定されたメッセージはすでに他の利用

者から受信または削除されています。

カーソルは次のメッセージに位置づけら

れます。

なし。

68 MQD_ERR_NOMSG

指定されたメッセージキューにメッセージ

が存在しません。

なし。

69 MQD_ERR_LONGMSG

メッセージ長が 大値を超えています。 メッセージを複数のメッセージに分割してくだ

さい。

70 MQD_ERR_QUEEND

カーソルがメッセージキューの終端に達

しました。

カーソルの移動を行い、カーソルをメッセージ

キューの先頭に位置付けてください。または

メッセージキューを一端システムから切断し、

再度接続してください。

71 MQD_ERR_MSGEXIST

メッセージキューにメッセージが残ってい

るため、通常モードのメッセージキューの

削除ができません。

該当メッセージキューの中の全メッセージを

削除した後、再実行してください。

他のアプリケーションがメッセージ受信中

またはメッセージ削除中のため、メッセー

ジの一括削除または強制モードのメッ

セージキューの削除ができません。

他のアプリケーションの処理が終了した後、再

実行してください。

72 MQD_ERR_QUEWINHIBIT

メッセージキューが送信禁止状態です。 mqdchgqコマンドを実行してメッセージキュー

を送信可能状態にしてください。

73 MQD_ERR_QUERINHIBIT

メッセージキューが受信禁止状態です。 mqdchgqコマンドを実行してメッセージキュー

を受信可能状態にしてください。

74 MQD_ERR_PURGEMSG

メッセージキューが使用禁止状態です。 しばらく待って使用禁止状態が解除されてか

ら再実行してください。使用禁止状態が解除

されない場合は、mqdprgmsgコマンドを実行

してメッセージキューの使用禁止状態を解除

してから、再実行してください。

75 MQD_ERR_QUEUSE

メッセージキューはすでに使用されてい

ます。

メッセージキューへの接続が重複しないように

アプリケーションを修正してください。

76 MQD_ERR_UNITNOTCONT

メッセージキューからユニット途中または

後のメッセージを受信または参照する

ことができません。

メッセージキューが受信禁止状態や使用禁止

状態の場合は禁止状態を解除した後、メッ

セージキューを一端システムから切断し、再

度接続してください。

80 MQD_ERR_EVENTNOOPEN

運用イベントがオープンされていません。 運用イベントをオープンしてください。

81 MQD_ERR_EVENTOPENED

すでに運用イベントがオープンされてい

ます。

他の運用イベントアプリケーションの処理が終

了した後、再実行してください。

82 MQD_ERR_NOEVENT

運用イベントが発生していません。 なし。

- 199 -

Page 217: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

エラー詳細コード意味内容 対処方法

値 マクロ名(注)

83 MQD_ERR_INVALIDHANDLE

運用イベントへのハンドルが無効(不正)です。

mqd_openevent(MQD_OPENEVENT)から通

知されたイベントへのハンドルを正しく指定す

るようにアプリケーションを修正してください。

112 MQD_ERR_SYSNAME

MQDシステム名が誤っています。 正しく指定してください。

113 MQD_ERR_QNAME

メッセージキュー名、または返信キュー

名が誤っています。

正しく指定してください。省略する場合は

NULL文字を指定してください。

114 MQD_ERR_MSGNAME

メッセージ名が誤っています。 正しく指定してください。

128 MQD_ERR_GUARANTEE

メッセージ保証レベルの指定が誤ってい

ます。

正しく指定してください。

129 MQD_ERR_QUOTA

大ディスク容量の指定が誤っていま

す。

0を指定してください。

130 MQD_ERR_MSGMAXLEN

メッセージの 大長の指定が誤っていま

す。

正しく指定してください。

131 MQD_ERR_PRIORITY

プライオリティの指定が誤っています。 正しく指定してください。

132 MQD_ERR_TIMELIMIT

大保存時間の指定が誤っています。 0を指定してください。

133 MQD_ERR_PUTSTATUS

送信状態の指定が誤っています。 正しく指定してください。

134 MQD_ERR_GETSTATUS

受信状態の指定が誤っています。 正しく指定してください。

135 MQD_ERR_MSGBODYLENGTH

メッセージ本体長が誤っています。 正しく指定してください。

136 MQD_ERR_ACCESSRIGHT

アクセス権の指定が誤っています。 0を指定してください。

137 MQD_ERR_QNUM

メッセージキュー名の個数の指定が誤っ

ています。

正しく指定してください。

144 MQD_ERR_DELMODE

削除モードの指定が誤っています。 正しく指定してください。

145 MQD_ERR_GETMODE

受信モードの指定が誤っています。 正しく指定してください。

146 MQD_ERR_PEEKMODE

参照モードの指定が誤っています。 正しく指定してください。

147 MQD_ERR_CURSORMODE

カーソル情報の指定が誤っています。 正しく指定してください。

148 MQD_ERR_UNITFLAG

ユニットフラグの指定が誤っています。 正しく指定してください。

149 MQD_ERR_GETCOND

受信中止条件の指定が誤っています。 正しく指定してください。

150 MQD_ERR_PEEKCOND

参照中止条件の指定が誤っています。 正しく指定してください。

151 MQD_ERR_IDMAX

運用イベントIDの有効数の指定が誤っ

ています。

正しく指定してください。

- 200 -

Page 218: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

エラー詳細コード意味内容 対処方法

値 マクロ名(注)

152 MQD_ERR_EXTENDLENGTH

運用イベント拡張情報を格納する領域長

の指定が誤っています。

正しく指定してください。

注) C言語の場合に有効

- 201 -

Page 219: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第2部 拡張機能編 第2部では、MessageQueueDirector(以降、MQDと略します)の基本機能に付加して使用する各種の拡張機能(サービスと呼びます)について説明しています。ここでは、以下の各章の順に説明します。

第9章 同報配信サービス................................................................................................................................203

第10章 ACM連携サービス.............................................................................................................................222

第11章 イベントチャネル連携サービス............................................................................................................256

第12章 SMTP連携サービス...........................................................................................................................345

- 202 -

Page 220: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第9章 同報配信サービス

本章では、同報配信サービスについて以下の順に説明しています。

9.1 概要

9.2 機能

9.3 環境作成

9.4 運用

9.5 コマンド

なお、本章では、“同報配信サービス”、“同報配信サービスのサービス環境”および“同報配信サービスのサービス定義”を“サービ

ス”、“サービス環境”および“サービス定義”と略して呼ぶことがあります。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で本機能を利用することはできません。コンソー

ル上で利用してください。

9.1 概要

同報配信サービスは、同じメッセージを同時に複数の相手へ送信するサービスです。同報配信サービスは、アプリケーションがメッ

セージキューに送信したメッセージを他の複数のメッセージキューへ複写することにより実現しています。

同報配信サービスをACM連携サービス、イベントチャネル連携サービス、SMTP連携サービスと併用することにより、他システムを含

む同報配信が実現できます。各連携サービスの詳細については、“第10章 ACM連携サービス”、“第11章 イベントチャネル連携サー

ビス”、“第12章 SMTP連携サービス”を参照してください。

図9.1 同報配信サービスの概要に同報配信サービスの概要を示します。

図9.1 同報配信サービスの概要

- 203 -

Page 221: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

以下に同報配信サービスの主な特徴を示します。

送信相手の数に無依存

同報配信サービスを使用する場合でも、アプリケーションは、ある一つのメッセージキューに対してだけメッセージを送信すればよく、

複数の送信相手を意識する必要はありません。

また、メッセージの送信相手が増減してもアプリケーションの変更は不要です。メッセージの送信相手が増える場合は、メッセージ

キューの作成と同報配信サービスのサービス定義の変更を行うだけで済みます。サービス定義の詳細については、“9.3.3.2 サービス

定義の記述”を参照してください。

メッセージ保証

同報配信サービスでは、システムの各種異常事態からメッセージの欠落や重複を防止するためのメッセージ保証機能を装備してい

ます。メッセージキュー間でのデータ転送中にシステムダウンなどのシステム異常が発生してもメッセージは保証されます。

メッセージ保証の詳細については、“9.2.2 メッセージ保証”を参照してください。

9.2 機能

ここでは、同報配信サービス固有の機能を中心に以下の順に説明します。

・ 同報配信

・ メッセージ保証

・ 異常時のメッセージの扱い

MQDの基本機能については、“第2章 機能”を参照してください。

9.2.1 同報配信

同報配信サービスは、メッセージキューを介して、同じメッセージを同時に複数の相手へ配信する機能です。同報配信サービスを利

用するためには、同報配信を行う相手先の数と同じ数のメッセージキューが必要です。事前にメッセージキューを作成して、同報配信

サービスのサービス定義に記述しておく必要があります。

同報配信サービスは、同報配信サービスの起動を行うことにより開始し、メッセージの送信を待ち合わせるために、配信元のすべて

のメッセージキューを監視します。アプリケーションが配信元のメッセージキューにメッセージを送信すると、事前に定義されたサービ

ス定義の内容に基づいて、同報配信サービスがメッセージの配信(メッセージの受信と送信)を自動的に行います。

なお、配信元から配信先へメッセージを送信(複写)するとき、メッセージの複写順番は、配信元のメッセージキュー内のプライオリティ

に従います。

同報配信の処理概要を図9.2 同報配信の処理概要に示します。

- 204 -

Page 222: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図9.2 同報配信の処理概要

同報グループ

同報配信サービスでは、同報配信を行うメッセージキュー群を一つのグループとして管理しています。このグループは同報グループ

と呼ばれ、以下のメッセージキューから構成されています。

・ 配信元のメッセージキュー

・ 配信先のメッセージキュー

配信元のメッセージキューはアプリケーションがメッセージを送信するメッセージキューであり、1個だけ必要です。

配信先のメッセージキューは、メッセージを送信する相手に対応するメッセージキューであり、相手の数分だけ必要です。一つの同

報グループ内に 大500個まで定義できます。

同報グループは、同報配信サービスのサービス定義で記述し、同報グループに含まれるメッセージキューの名前を定義します。 大

64グループまで記述できます。サービス定義の詳細については、“9.3.2.4 サービス定義の作成”を参照してください。

同報グループの構成を図9.3 同報グループの構成に示します。

- 205 -

Page 223: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図9.3 同報グループの構成

9.2.2 メッセージ保証

同報配信サービスでは、システムの各種異常事態からメッセージの欠落や重複を防止するために、メッセージ保証機能を装備してい

ます。システムの各種異常事態には、サーバのシステムダウンやMQDの異常終了などが考えられます。

同報配信サービスでは、メッセージ配信中に上記の異常事態が発生しても、MQDの再起動時に、メッセージ格納ファイルに対するリ

カバリ処理を行います。配信途中のメッセージについては、配信処理開始直前の状態まで戻します。その後、配信処理を再開します。

9.2.3 異常時のメッセージの扱い

メッセージ配信異常時のメッセージの取扱いについて説明します。

メッセージキューの環境条件によっては、メッセージを同報グループ内のすべての配信先のメッセージキューへ配信できない場合が

あります。

配信保留

以下のような原因によりメッセージを配信できない場合、メッセージは、配信元のメッセージキューに保存され滞留します。

・ 配信元のメッセージキューが受信禁止状態である。

・ 配信先のメッセージキューが送信禁止状態である。

・ 配信先のメッセージキューにメッセージを格納する分の空き領域がない。

・ 配信先のメッセージキューのメッセージの 大長が送信メッセージの長さより小さい。

- 206 -

Page 224: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

滞留中のメッセージについては、サービス環境定義(MC_MAINセクションのretryキーワード)で指定された“再配信リトライ間隔”に

従って再配信が試みられます。サービス環境定義の詳細については、“9.3.3.1 サービス環境定義の記述”を参照してください。

9.3 環境作成

ここでは、同報配信サービスの環境作成の手順や方法について以下の順に説明します。

・ 環境作成の手順

・ 環境作成の説明

・ 環境定義の記述

なお、MQDが動作するためのMQDのシステム環境の作成方法については、“第3章 環境作成”を参照してください。

また、ここに記述されているMQDのコマンドの詳細については、“第7章 コマンド”および“9.5 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で環境を作成することはできません。コンソール

上で環境を作成してください。

9.3.1 環境作成の手順

同報配信サービスを使用するためには、図9.4 サービス環境作成の流れの手順に従って、同報配信サービスが動作するためのサー

ビス環境を作成する必要があります。

図9.4 サービス環境作成の流れ

9.3.2 環境作成の説明

以下の操作や環境作成の方法について説明します。

・ MQDの起動

- 207 -

Page 225: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ サービス環境の作成

・ メッセージキューの作成

・ サービス定義の作成

9.3.2.1 MQDの起動

同報配信サービスの環境を作成するためには、MQDの各種のコマンドを使用します。これらのコマンドを使用するためには、事前に

MQDを起動しておく必要があります。

MQDはWindows®のサービスとして動作します。このため、MQDの起動は以下のいずれかの方法で行います。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ MQDのシステム環境の作成後に、サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システ

ムの起動時に自動的にMQDサービスを開始する。

MQDの起動は、mqdstrコマンドを使用して行います。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

9.3.2.2 サービス環境の作成

サービス環境の作成では、以下の二つの作業があります。

・ サービス環境定義ファイルの作成

・ サービス環境の作成操作

サービス環境定義ファイルの作成

サービス環境定義は、同報配信サービスの動作環境を定義します。サービス環境定義を格納するファイルをサービス環境定義ファ

イルと呼びます。サービス環境定義ファイルは、ユーザが任意の通常ファイル上にテキストファイルとして作成します。サービス環境定

義の省略値を用いる場合、このファイルの作成は不要です。このファイルは、後述のサービス環境の作成操作時に使用されます。

サービス環境定義では、以下の情報を定義します。

・ サービス環境情報

テキスト編集ツールを使用して定義してください。サービス環境定義の記述方法の詳細については、“9.3.3 環境定義の記述”を参照

してください。

サービス環境の作成操作

サービス環境定義ファイルを作成した後、サービス環境の作成操作を行います。サービス環境の作成操作は、mqdmcassetupコマン

ドを使用して行います。

以下にmqdmcassetupコマンドの入力例を示します。

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

mqdmcassetup -f MCASenv.def

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

なお、サービス環境を再作成する場合は、サービス環境を削除した後、再度、上記のmqdmcassetupコマンドを実行してください。サー

ビス環境の削除は、mqdmcasunsetupコマンドを使用して行います。

以下にmqdmcasunsetupコマンドの入力例を示します。

- 208 -

Page 226: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdmcasunsetup

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

9.3.2.3 メッセージキューの作成

サービス環境を作成した後、次に同報配信サービスの対象となるメッセージキューを作成します。アプリケーションがメッセージを送

信する配信元のメッセージキューおよび配信先のメッセージキューを同報グループごとに作成します。このとき、同じ同報グループ内

のメッセージキューは、メッセージキューの属性を同じにしてください。ここで作成したメッセージキューは、サービス定義で指定します。

サービス定義の詳細については、“9.3.3 環境定義の記述”を参照してください。

なお、メッセージキューに関する以下の操作については、“4.2 運用操作の説明”を参照してください。

・ メッセージキューの作成

・ メッセージキュー情報の表示

・ メッセージキューの削除

9.3.2.4 サービス定義の作成

サービス定義の作成では、以下の二つの作業があります。

・ サービス定義ファイルの作成

・ サービス定義の登録/反映

サービス定義ファイルの作成

サービス定義は、同報配信サービスで使用するメッセージキューの対応関係(配信元と配信先のメッセージキュー名)を同報グループ

ごとに定義します。サービス定義を格納するファイルをサービス定義ファイルと呼びます。サービス定義ファイルは、ユーザが任意の通

常ファイル上にテキストファイルとして作成します。このファイルは、後述のサービス定義の登録時に使用されます。

サービス定義では、同報グループごとに以下の情報を定義します。

・ 配信元のメッセージキュー名(同報グループ名)

・ 配信先のメッセージキュー名

サービス定義は、テキスト編集ツールを使用して記述してください。サービス定義の記述方法の詳細については、“9.3.3 環境定義の

記述”を参照してください。

サービス定義の登録/反映

サービス定義ファイルを作成した後、サービス定義の登録および反映を行います。サービス定義の登録は、mqdmcasdefコマンドを使

用して行います。

以下にmqdmcasdefコマンドの入力例を示します。

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

mqdmcasdef -a -f MCASsvc.def

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

すでにサービス定義を登録している場合は、新しい定義が同報グループごとに既存の定義に追加されます。同じ同報グループに対

する定義の登録は無視されます。

サービス定義を登録した後、次にサービス定義の反映を行います。サービス定義の反映は、mqdstrコマンドまたはmqdstrsvcコマンド

を使用して行います。

以下にmqdstrsvcコマンドを使用して定義の反映を行う場合の入力例を示します。

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

mqdstrsvc -n MCAS

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

- 209 -

Page 227: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

なお、配信先のメッセージキューを追加または削除する場合など、同報グループの内容を変更するときには、サービス定義を再作成

する必要があります。この場合には、サービス定義の全体または該当の同報グループだけを削除した後、再度、上記のサービス定義

の登録/反映の操作を行ってください。

サービス定義の削除は、mqdmcasdefコマンドを使用して行います。サービス定義ファイルには、事前に削除する同報グループを登

録時と同じ形式で記述してください。指定した同報グループの部分だけが削除されます。全体を削除するためには、登録済のすべて

の同報グループを記述したサービス定義ファイルを指定してください。

以下にmqdmcasdefコマンドの入力例を示します。

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

mqdmcasdef -d -f MCASsvc.def

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

9.3.3 環境定義の記述

ここでは、同報配信サービスの環境定義について以下を説明します。

・ サービス環境定義の記述

・ サービス定義の記述

なお、記述規約については、“付録A 定義記述規約”を参照してください。

9.3.3.1 サービス環境定義の記述

サービス環境定義は、サービス環境を作成するための定義です。サービス環境定義は以下の形式で記述します。

記述形式

[MC_MAIN]retry = 再配信リトライ間隔 (分)

記述内容の説明

MC_MAINセクション

サービス環境情報を設定するセクションです。記述内容を表9.1 MC_MAINセクションの記述内容に示します。

なお、このセクションは省略可能です。省略した場合、サービス環境定義ファイルを作成する必要はありません。

表9.1 MC_MAINセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

retry 可 数値 分単位で1~1440の範囲で指定し

ます。

省略値は1分です。

配信に失敗したメッセージを再配信す

る間隔を指定します。

記述例

サービス環境定義の記述例をサービス環境定義の記述例 (同報配信サービス)に示します。

サービス環境定義の記述例 (同報配信サービス)

[MC_MAIN]retry = 3 # 再配信リトライ間隔(分)

9.3.3.2 サービス定義の記述

サービス定義は、同報配信を行うメッセージキューの対応関係を記述します。一つまたは複数のMC_GROUPセクションから構成され

ます。

サービス定義は以下の形式で記述します。

- 210 -

Page 228: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述形式

[MC_GROUP]

name = 同報グループ名 (配信元のメッセージキュー名)

outquename = 配信先のメッセージキュー名

outquename = 配信先のメッセージキュー名

[MC_GROUP]

name = 同報グループ名 (配信元のメッセージキュー名)

outquename = 配信先のメッセージキュー名

outquename = 配信先のメッセージキュー名

outquename = 配信先のメッセージキュー名

記述内容の説明

MC_GROUPセクション

同報グループごとに同報グループ内のメッセージキュー情報を記述します。このセクションは、 大64個まで記述できます。記述内容を

表9.2 MC_GROUPセクションの記述内容に示します。

表9.2 MC_GROUPセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

name 不可 文字列 mqdcrtqコマンドで指定したメッセー

ジキュー名を記述します。

同報グループ名を指定します。同報グ

ループ名には配信元のメッセージ

キュー名を指定してください。

outquename 不可 文字列 同上 配信先のメッセージキューの名前を指

定します。このキーワードは 大500個まで指定できます。

備考1. サービス定義に記述できるメッセージキューの数は 大8190です。

備考2. 同じメッセージキュー名を複数の同報グループのoutquenameに記述することができます。

備考3. 同じメッセージキュー名をnameとoutquenameの両方に記述することはできません。

記述例

サービス定義の記述例をサービス定義の記述例 (同報配信サービス)に示します。

サービス定義の記述例 (同報配信サービス)

[MC_GROUP] # 同報グループ1 (2箇所へ配信する場合)

name = INQ0011 # 同報グループ名 = 配信元のメッセージキュー名

outquename = OUTQ0011 # 配信先のメッセージキュー名

outquename = OUTQ0012 # 配信先のメッセージキュー名

[MC_GROUP] # 同報グループ2 (3箇所へ配信する場合)

name = INQ0021 # 同報グループ名 = 配信元のメッセージキュー名

outquename = OUTQ0021 # 配信先のメッセージキュー名

outquename = OUTQ0022 # 配信先のメッセージキュー名

outquename = OUTQ0023 # 配信先のメッセージキュー名

[MC_GROUP] # 同報グループ3 (重複して配信する場合)

name = INQ0031 # 同報グループ名 = 配信元のメッセージキュー名

outquename = OUTQ0011 # 配信先のメッセージキュー名

outquename = OUTQ0021 # 配信先のメッセージキュー名

- 211 -

Page 229: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

9.4 運用

ここでは、同報配信サービスを使用する場合の運用(サービスの起動からサービスの停止まで) の手順や方法について、以下の順に

説明しています。

・ 運用操作の手順

・ 運用操作の説明

なお、ここに記述されているMQDのコマンドの詳細については、“第7章 コマンド”および“9.5 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で運用操作をすることはできません。コンソール

上で運用操作をしてください。

9.4.1 運用操作の手順

同報配信サービスを使用するための操作手順を図9.5 同報配信サービスの運用操作手順に示します。

図9.5 同報配信サービスの運用操作手順

9.4.2 運用操作の説明

以下の各運用操作について説明します。

・ MQDの起動

- 212 -

Page 230: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ Interstageの起動

・ 同報配信サービスの起動

・ サービス定義/状態の表示

・ 同報配信サービスの停止

・ Interstageの停止

・ MQDの停止

9.4.2.1 MQDの起動

同報配信サービスを使用するためには、MQDを起動する必要があります。

MQDはWindows®のサービスとして動作します。このため、MQDの起動は以下のいずれかの方法で行います。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ Windows®サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システムの起動時に自動的に

MQDサービスを開始する。

MQDを起動する場合、[サービス]画面のスタートアップパラメタに以下のいずれかの値を指定することにより、MQDの起動形態を選

択することができます。

・ -a: 同報配信サービスを起動する。未反映のサービス定義の反映は行われない。

・ -n: 未反映のサービス定義を反映してから同報配信サービスを起動する。

・ -p: 同報配信サービスを起動しない。

[サービス]画面のスタートアップパラメタに何も指定しない場合、およびWindows®システムの起動時に自動的にMQDを起動する場

合の起動形態は、MQDのシステム環境の作成時に指定した起動形態となります。

MQDの起動は、mqdstrコマンドを使用して行います。MQDを起動することにより、同報配信サービスも起動されます。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

9.4.2.2 Interstageの起動

InterstageのアプリケーションがMQDを使用する場合は、MQDの起動後にInterstageを起動する必要があります。Interstageの起動は、

Interstageのisstartコマンドを使用して行います。Interstageの起動方法は、“運用ガイド(基本編)”を参照してください。

9.4.2.3 同報配信サービスの起動

通常、同報配信サービスの起動は、MQDの起動時に自動的に行うため不要です。ただし、“-p”オプションを指定してMQDを起動し

た場合やMQD起動時にメッセージ“MQD4112”が出力された場合(グローバルトランザクションのダウンリカバリが未完了)には、同報

配信サービスが起動されません。この場合には、Interstageの起動後に同報配信サービスを起動する必要があります。同報配信サービ

スの起動は、mqdstrsvcコマンドを使用して行います。

以下にmqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc MCAS

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

- 213 -

Page 231: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

9.4.2.4 サービス定義/状態の表示

同報配信サービスのサービス定義/状態の表示は、mqdmcasprtコマンドを使用して行います。このコマンドは、サービス関連定義の内

容を確認する場合や運用中のサービスの状態を見る場合に使用します。

mqdmcasprtコマンドには以下の三つの表示内容があります。

・ サービス環境定義の内容表示

・ サービス定義の内容表示

・ サービスの状態表示

以下にmqdmcasprtコマンドを使用してサービスの状態表示を行う場合の入力例を示します。

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

mqdmcasprt -v

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

9.4.2.5 同報配信サービスの停止

通常、同報配信サービスの停止は、MQDの停止時に自動的に行うため不要です。MQD運用中に同報配信サービスを停止する場

合には、mqdstpsvcコマンドを使用して行います。

以下にmqdstpsvcコマンドの入力例を示します。

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

mqdstpsvc MCAS

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

9.4.2.6 Interstageの停止

InterstageのアプリケーションからMQDを使用している場合は、MQDの停止前にInterstageを停止する必要があります。Interstageの停

止は、Interstageのisstopコマンドを使用して行います。Interstageの停止方法は、“運用ガイド(基本編)”を参照してください。

9.4.2.7 MQDの停止

MQDの停止を行う前に、MQDを使用するすべてのアプリケーションおよびMQDのコマンドを終了させておく必要があります。

MQDの停止は、Windows®の[サービス]画面で行います。

MQDの停止は、mqdstpコマンドを使用して行います。

以下にmqdstpコマンドの入力例を示します。

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

mqdstp

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

9.5 コマンド

本節では、同報配信サービス固有のコマンドの文法について説明します。

同報配信サービスには、表9.3 同報配信サービスのコマンド一覧に示すコマンドがあります。

表9.3 同報配信サービスのコマンド一覧

コマンド名 機能概要

mqdmcassetup サービス環境を作成する

- 214 -

Page 232: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

コマンド名 機能概要

mqdmcasunsetup サービス環境を削除する

mqdmcasdef サービス定義を登録/削除する

mqdstrsvc サービスを起動する

mqdstpsvc サービスを停止する

mqdmcasprt サービス定義/状態を表示する

以降、各コマンドの文法を説明します。コマンドの記述形式および基本機能のコマンドについては、“第7章 コマンド”を参照してくだ

さい。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コンソー

ル上でコマンドを実行してください。

9.5.1 mqdmcassetup (サービス環境を作成する)

機能説明

同報配信サービスのサービス環境を新規に作成するコマンドです。

入力形式

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

mqdmcassetup [-s sysname][-f filename]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-f filename

同報配信サービスのサービス環境定義ファイルのファイル名を指定します。このパラメタを省略した場合、サービス環境定義で指定

する項目には省略値が設定されます。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドを実行する前に、サービス環境定義ファイルを作成しておく必要があります。作成方法については、“9.3.2.2 サービス

環境の作成”を参照してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

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

mqdmcassetup -f MCASenv.def

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

- 215 -

Page 233: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

9.5.2 mqdmcasunsetup (サービス環境を削除する)

機能説明

同報配信サービスのサービス環境を削除するコマンドです。本コマンド実行時には、コマンドの実行を再確認するための問合せが行

われます。

入力形式

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

mqdmcasunsetup [-s sysname]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは、同報配信サービスが停止している状態で実行してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

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

mqdmcasunsetup

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

9.5.3 mqdmcasdef (サービス定義を登録/削除する)

機能説明

同報配信サービスのサービス定義の登録または削除を行うコマンドです。

サービス定義の登録は、事前に作成されたサービス定義をMQDへ登録します。登録はサービス定義の各セクションごとに行います。

登録された定義を新サービス定義と呼びます。

サービス定義の削除は、新サービス定義の全体または一部を削除します。削除は新サービス定義の各セクションごとに行います。

なお、登録したサービス定義は、同報配信サービスを起動するときに、システムに反映してから使用します。反映された定義を現サー

ビス定義と呼びます。

入力形式

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

mqdmcasdef [-s sysname]{-a|-d} -f filename

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-d}

- 216 -

Page 234: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

処理内容を指定します。

-a: サービス定義を登録する

-d: サービス定義を削除する

-f filename

サービス定義を格納したファイルのファイル名を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドを実行する前に、同報配信サービスのサービス定義を作成しておく必要があります。詳細については、“9.3.2.4 サービ

ス定義の作成”を参照してください。

・ 登録済のサービス定義の全体を削除したい場合は、登録時に指定したサービス定義と同じ内容のサービス定義を指定してくだ

さい。

・ サービス定義を再作成する場合は、登録済のサービス定義の全体を削除した後、再度、サービス定義の登録と反映の操作を行

う必要があります。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例1. サービス定義を登録する

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

mqdmcasdef -a -f MCASsvc.def

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

例2. サービス定義を削除する

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

mqdmcasdef -d -f MCASsvc.def

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

9.5.4 mqdstrsvc (サービスを起動する)

機能説明

同報配信サービスを起動するコマンドです。

入力形式

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

mqdstrsvc [-s sysname] [-n] svcname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-n

新サービス定義を現サービス定義に反映してから同報配信サービスを起動する場合に指定します。現サービス定義が空の場合は、

必ず本オプションを指定する必要があります。

svcname

- 217 -

Page 235: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス名として“mcas”または“MCAS”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

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

mqdstrsvc MCAS

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

9.5.5 mqdstpsvc (サービスを停止する)

機能説明

同報配信サービスを停止するコマンドです。

入力形式

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

mqdstpsvc [-s sysname] svcname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

svcname

サービス名として“mcas”または“MCAS”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

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

mqdstpsvc MCAS

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

9.5.6 mqdmcasprt (サービス定義/状態を表示する)

機能説明

同報配信サービスの定義情報や状態情報を表示するコマンドです。以下の三つの表示内容があります。

・ サービス環境定義の内容表示

- 218 -

Page 236: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ サービス定義の内容表示

・ サービスの状態表示

入力形式

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

mqdmcasprt [-s sysname]{-e|-c|-n|-v} [grpname-1 [grpname-2 …[grpname-n]]]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-e|-c|-n|-v}

表示内容を指定します。

-e: サービス環境定義の内容を表示する

-c: 現サービス定義の内容を表示する

-n: 新サービス定義の内容を表示する

-v: サービスの状態を表示する

grpname-1 grpname-2 … grpname-n

表示する同報グループ名を指定します。同報グループ名は、同報配信サービスのサービス定義(MC_GROUPセクションのnameキー

ワード)で指定した名前です。この指定は、“-v”オプションを指定した場合にだけ有効です。同報グループ名を省略した場合は、すべ

ての同報グループについて表示します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ サービスの状態表示は、同報配信サービスを起動した状態で実行してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例1. サービス環境定義の内容を表示する

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

mqdmcasprt -e

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

図9.6 サービス環境定義の内容表示例

表示例の説明

サービス環境定義ファイルの内容が表示されます。

例2. サービス定義の内容を表示する

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

mqdmcasprt {-c|-n}

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

- 219 -

Page 237: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図9.7 サービス定義の内容表示例

表示例の説明

現サービス定義または新サービス定義の内容が表示されます。

例3. サービスの状態を表示する

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

mqdmcasprt -v

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

図9.8 サービスの状態表示例

表示例の説明

name : 同報グループ名(配信元のメッセージキュー名)

outquename: 配信先のメッセージキュー名

status: メッセージキューの運用状態

active : 送受信可能状態

r_close : 受信禁止状態

w_close : 送信禁止状態

rw_close: 送受信禁止状態

purge : 一括削除中

retry : 再配信処理中

- 220 -

Page 238: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

messages: メッセージキュー内のメッセージ数

- 221 -

Page 239: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第10章 ACM連携サービス

本章では、ACM連携サービスについて以下の順に説明しています。

10.1 概要

10.2 機能

10.3 環境作成

10.4 運用

10.5 コマンド

なお、本章では、“ACM連携サービス”、“ACM連携サービスのサービス環境”および“ACM連携サービスのサービス定義”を“サー

ビス”、“サービス環境”および“サービス定義”と略して呼ぶことがあります。

Solaris 9 オペレーティングシステム以降では、ACM連携サービスは使用できません。

Windows Server 2003以降では、ACM連携サービスは使用できません。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で本機能を利用することはできません。コンソー

ル上で利用してください。

10.1 概要

ACM連携サービスでは、以下の各サーバ上の製品と連携して、サーバ間の非同期メッセージ交換を実現します。

・ グローバルサーバ上のAIMのAIM特化型ACM(Asynchronous CoMmunication)機能

・ UNIXサーバまたはWindowsサーバ上のMQD

・ UNIXサーバまたはWindowsサーバ上のMessageQueueDirector MQゲートウェイ(以降,MQD MQゲートウェイと呼ぶ)

図10.1 ACM連携サービスを利用した連携形態にACM連携サービスを利用した連携形態を示します。なお、各製品の詳細について

は、“OS IV AIM ACM使用手引書”、および“MessageQueueDirector MQゲートウェイ 説明書”を参照してください。

- 222 -

Page 240: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図10.1 ACM連携サービスを利用した連携形態

AIM : Advanced Information Manager IDCM : Integration Data Communication Manager ACM : Asyncronous CoMmunication APPL : APPLication program MQSeries : IBM社の非同期メッセージング機能を実装したソフトウェアです。

以下にACM連携サービスの主な特徴を示します。

メッセージ保証

ACM連携サービスは、システムの各種異常事態からメッセージの欠落や重複を防止するためのメッセージ保証機能を装備していま

す。メッセージ送受信中にシステムダウンや通信パス異常が発生してもメッセージは保証されます。

利用できるACM種別

グローバルサーバと連携する場合、利用できるACM種別としては、グローバルサーバ内に構築するAIMシステム環境を前提としたAIM特化型ACMが利用できます。AIM特化型ACMでは、AIM操作コマンドによる運用管理、およびホットスタンバイシステムなどのAIMの高度な機能を利用することができます。詳細については、“OS IV AIM ACM使用手引書”を参照してください。

- 223 -

Page 241: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

10.2 機能

ACM連携サービスでは、以下の機能を提供します。

・ メッセージ交換

・ プライオリティ

・ メッセージ保証

・ 文字コード変換

・ パッキング転送機能

本節では、AIM特化型ACMの論理あて先およびMQSeriesのキューをすべてメッセージキューに置き換えて説明します。なお、MQDの基本機能については、“第2章 機能”を参照してください。

10.2.1 メッセージ交換

ACM連携サービスを利用することにより、他サーバ(UNIXサーバ、Windowsサーバまたはグローバルサーバ)上のアプリケーションと

の間で、サーバ間のメッセージ交換を実現できます。

アプリケーションは、サーバ間のメッセージ転送を意識することなく、サーバ内の通信と同様にメッセージ交換を行うことができます。

ACM連携サービスでのメッセージ交換のモデル(サーバ間)を図10.2 サーバ間のメッセージ交換のモデルに示します。

図10.2 サーバ間のメッセージ交換のモデル

1. アプリケーションAは要求メッセージをメッセージキューa1に送信します。

2. 要求メッセージはメッセージキューa1に対応するメッセージキューb1にMQDによって転送されます。

3. アプリケーションBはメッセージキューb1から要求メッセージを受信し、応答メッセージをメッセージキューb2に送信します。

4. 応答メッセージはメッセージキューb2に対応するメッセージキューa2にMQDによって転送されます。

5. 後に、アプリケーションAはメッセージキューa2から応答メッセージを受信することで要求/応答型のメッセージ交換が実現

できます。

10.2.1.1 DPCF通信パスの確立

サーバ間のメッセージ交換を行うためには、事前にIDCMのDPCF通信パスを確立する必要があります。DPCF通信パスの確立の操

作方法については、“OS IV IDCM使用手引書”、“IDCM使用手引書”、および“IDCMヘルプ”を参照してください。

- 224 -

Page 242: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

10.2.1.2 送信キューと受信キューの結合

サーバ間のメッセージ交換では、メッセージ送信および受信するために以下のメッセージキューを使用します。

・ 送信キュー

・ 受信キュー

送信キューとは、メッセージ送信するために使用するメッセージキューです。一つの送信キューに対して、一つの受信キューを対応

づけます。一つの送信キューに対して、複数の受信キューを対応づけることはできません。また、ディスク型のメッセージキューとメモリ

型のメッセージキューを対応付けることはできません。

受信キューは、メッセージ受信するために使用するメッセージキューです。一つの受信キューに対して、複数の送信キューを対応づ

けることができます。複数の送信キューと対応づけることにより、複数のサーバ上のMQDまたはグローバルサーバ上のAIMから一つの

サーバ上のMQDに対してメッセージ送信する集信型のメッセージ交換が実現できます。送信キューと受信キューの対応関係につい

て、図10.3 送信キューと受信キューの対応関係に示します。

図10.3 送信キューと受信キューの対応関係

送信キューと受信キューの対応関係は、ACM連携サービスの環境定義で指定します。詳細については、“10.3 環境作成”を参照し

てください。

送信キューと受信キューの結合は、以下の契機で自動的に行われます。

[AIM特化型ACMとメッセージ交換を行う場合]

・ DPCF通信パスが確立されている状態で、自サーバのACM連携サービスおよびグローバルサーバ上のACMコミュニケータを起

動した契機

・ 自サーバのACM連携サービスおよびグローバルサーバ上のACMコミュニケータを起動している状態で、DPCF通信パスを確立

した契機

[MQDとメッセージ交換を行う場合]

・ DPCF通信パスが確立されている状態で、自サーバのACM連携サービスおよび相手サーバのACM連携サービスを起動した契

・ 自サーバのACM連携サービスおよび相手サーバのACM連携サービスを起動している状態で、DPCF通信パスを確立した契機

[MQD MQゲートウェイとメッセージ交換を行う場合]

・ DPCF通信パスが確立されている状態で、自サーバのACM連携サービスおよび相手サーバのMQD MQゲートウェイのMQゲー

トウェイサービス(以降、MQゲートウェイサービスと呼びます)を起動した契機

- 225 -

Page 243: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 自サーバのACM連携サービスおよび相手サーバのMQゲートウェイサービスを起動している状態で、DPCF通信パスを確立した

契機

・ MQDとMQD MQゲートウェイが同一サーバ内で通信を行う場合は、ACM連携サービスおよびMQゲートウェイサービスを起動し

た契機

また、一つのサーバ内で複数のMQDシステムを運用する場合、以下の注意点があります。

・ 自サーバ内の一つのMQDシステムとメッセージ交換可能な、一つの相手サーバ内のMQDシステム、MQD MQゲートウェイおよび

AIM特化型ACMは一つです。

・ 自サーバ内の一つのMQDシステムとメッセージ交換可能な、自サーバ内のMQDシステムおよびMQD MQゲートウェイは一つで

す。

10.2.1.3 メッセージ送信

サーバ間でメッセージ送信する機能です。ACM連携サービスの環境定義で、メッセージキューをACM連携サービスの送信キューと

して定義して、その送信キューと相手サーバの受信キューの対応関係を定義することで、自サーバのMQDから相手サーバにメッセー

ジ送信されます。

サーバ間のメッセージ送信の流れを図10.4 メッセージ送信の流れに示します。

図10.4 メッセージ送信の流れ

[図の説明]

1. メッセージキュー(送信キュー)から、送信メッセージを取り出します。

2. IDCMを使用して相手サーバの受信キューにメッセージを送信します。

注意事項

ACM連携サービスのメッセージ送信機能を使用する場合、以下の点に注意してください。

・ 大メッセージ長

相手サーバにメッセージ送信する場合の 大メッセージ長は32000バイトです。 大メッセージ長を超えるメッセージを送信した

場合は、相手サーバへのメッセージ送信は処理されず、エラーメッセージ(MQD3353 原因コード=QMNG、復帰コード=37)が出力

されます。また、それ以降に送信要求したメッセージはすべて相手サーバに送信されず、送信キューに滞留します。エラーメッセー

ジの対処にしたがって、メッセージ送信を再開してください。

・ ユニット

ACM連携サービスのメッセージ送信ではユニット機能は利用できません。

複数メッセージを一つのユニットで送信した場合は、相手サーバにメッセージ送信されますが、ユニット情報は相手サーバのアプ

リケーションには通知されません。ユニット機能については、“2.1.3 ユニット”を参照してください。

- 226 -

Page 244: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

10.2.1.4 メッセージ受信

相手サーバからのメッセージを受信する機能です。相手サーバの環境定義で、送信キューと受信キューの対応関係を定義します。ACM連携サービスは、この定義で対応づけられた送信キューからメッセージを受信し、該当の受信キューにメッセージを格納します。

サーバ間のメッセージ受信の流れを図10.5 メッセージ受信の流れに示します。

図10.5 メッセージ受信の流れ

[図の説明]

1. IDCMを使用して相手サーバからのメッセージを受信します。

2. プロトコル情報の送信キューと受信キューの対応関係から受信キューを特定し、メッセージを格納します。

10.2.1.5 メッセージヘッダ

AIM特化型ACM、またはMQD MQゲートウェイと連携したメッセージ交換では、相手サーバのアプリケーションにメッセージヘッダが

通知されません。AIM特化型ACMまたはMQD MQゲートウェイ連携時のメッセージヘッダに対する処理内容について以下に説明し

ます。なお、UNIXサーバおよびWindowsサーバ上のMQDと連携した場合のメッセージヘッダについては、“8.2.32 メッセージヘッダ”

を参照してください。

・ メッセージ送信

メッセージ送信ときは、送信キューより取り出したメッセージのメッセージヘッダ部分を取り除き、メッセージ本体だけを相手サーバ

に送信します。

・ メッセージ受信

相手サーバよりメッセージ受信した場合は、メッセージヘッダを自動生成し、メッセージの先頭に付加して、受信キューに格納し

ます。

図10.6 メッセージヘッダの取り扱いにAIM特化型ACMおよびMQD MQゲートウェイと連携した場合のメッセージヘッダの取り扱いに

ついて示します。

- 227 -

Page 245: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図10.6 メッセージヘッダの取り扱い

次に、相手サーバからメッセージ受信した時、ACM連携サービスが自動生成するメッセージヘッダの内容について、表10.1 メッセー

ジ受信時のメッセージヘッダの内容に示します。

表10.1 メッセージ受信時のメッセージヘッダの内容

項目名 和名 データ型 設定値

MSG-TYPE メッセージタイプ PIC X(1) X’02’

CODE-TYPE

コード系情報 PIC X(1)X’02’

X’01’

BODY-CODE

メッセージ本体のコード系

情報PIC X(1)

X’00’: 文字コード変換を使用しない場合

X’02’: 文字コード変換を使用した場合

X’01’: 文字コード変換を使用した場合

UNIT-ID ユニット識別子 PIC X(128) タイムスタンプ.スレッドID.プロセスID.

キュー名.MQDシステム名

MSG-SERIALNO

メッセージ通番 PIC 9(9)COMP-5

1

EOU-FLAG ユニット終了フラグ PIC X(1) X’00’

ORIGINAL-SYSNAME

送信MQDシステム名 PIC X(9) DPCF通信パス名

- 228 -

Page 246: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名 和名 データ型 設定値

VERSION バージョン PIC X(8) “1.1”

ORIGINAL-QNAME

送信キュー名 PIC X(64) 送信用メッセージキュー名(論理あて先、ま

たはMQSeriesのキュー名)

GUARANTEE

メッセージ保証レベル PIC X(1) X’02’

ORIGINAL-TIMESTAMP

送信タイムスタンプ PIC 9(9)COMP-5

0

TRANS-TIMESTAMP

転送タイムスタンプ PIC 9(9)COMP-5

0

ARRIVE-TIMESTAMP

到着タイムスタンプ PIC 9(9)COMP-5

ACM連携サービスがメッセージを受信した

時刻

DELAY-TIME

転送遅延時間 PIC 9(9)COMP-5

0

QUEUING-TIME

キューイング時間 PIC 9(9)COMP-5

ACM連携サービスがメッセージを受信して

からアプリケーションがメッセージを受信す

るまでの時刻

MSG-NAME

メッセージ名 PIC X(64) “ACOM”

MSG-ID メッセージ識別子 PIC 9(9)COMP-5

0

PRIORITY プライオリティ PIC 9(9)COMP-5

相手サーバから受信したプライオリティ値

MSGBODY-LENGTH

メッセージ本体長 PIC 9(9)COMP-5

相手サーバから受信したメッセージ長

RETURN-QNAME

返信キュー名 PIC X(64) 空白

TIMELIMIT 大保存時間 PIC 9(9)COMP-5

0

ACCESS-RIGHT

アクセス権 PIC 9(9)COMP-5

0

注) 項目名とデータ型はCOBOLの場合の例です。

10.2.2 プライオリティ

プライオリティとは、メッセージ送受信の優先度を意味します。メッセージのプライオリティを設定することにより、緊急のメッセージを優

先的に処理させることができます。

プライオリティは以下に示す複数の段階あり、メッセージ送信時にアプリケーションが指定します。

1(高レベル)から3(低レベル)までの3段階

1(高レベル)から7(低レベル)までの7段階

これに対応して、グローバルサーバのAIM特化型ACMのプライオリティは、1(高レベル)から3(低レベル)までの3段階しかありません。

また、MQD MQゲートウェイ連携時に使用するMQSeriesのプライオリティは、9(高レベル)から0(低レベル)までの10段階あります。この

- 229 -

Page 247: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ように、プラリオリティ値が相違するサーバ間でメッセージ交換する場合はプライオリティ値の変換が必要であり、ACM連携サービスで

は以下に示すようにプライオリティ値を変換しています。

MQDまたはAIM特化型ACMとメッセージ交換する場合のプライオリティ値の対応関係

[メッセージ送信の場合]

自サーバのアプリケーションが送信キューにメッ

セージを格納した時のプライオリティ値

相手サーバの受信キューにメッセージが格納さ

れた時のプライオリティ値

1 1

2 2

3

3 ~ 7

3

[メッセージ受信の場合]

自サーバの受信キューにメッセージが格納され

た時のプライオリティ値

相手サーバのアプリケーションが送信キューに

メッセージを格納した時のプライオリティ値

1 1

2 2

3 3

MQD MQゲートウェイとメッセージ交換する場合のプライオリティ値の対応関係

[メッセージ送信の場合]

自サーバのアプリケーションが送信キューにメッ

セージを格納した時のプライオリティ値

相手サーバの受信キューにメッセージが格納さ

れた時のプライオリティ値

1 9

2 8

3

3 ~ 7

7

[メッセージ受信の場合]

自サーバの受信キューにメッセージが格納され

た時のプライオリティ値

相手サーバのアプリケーションが送信キューに

メッセージを格納した時のプライオリティ値

1 9

2 8

3 7 ~ 0

- 230 -

Page 248: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

10.2.3 メッセージ保証

MQDは、システムの各種異常事態からメッセージの欠落や重複通知を防止するためメッセージ保証機能を装備しています。

メッセージ送受信中の主な異常事象を以下に説明します。

・ システムダウン

・ 通信パス異常

なお、メモリ型のメッセージキューを使用した通信を行う場合は、通信パス異常時のみメッセージ保証を行うことができます。

システムダウン

システムダウンとは、自サーバまたは相手サーバのシステムダウンと、MQD、AIM、IDCMまたはMQD MQゲートウェイの異常終了を

意味します。

サーバ間でメッセージ交換中に、システムダウンが発生した場合、相手サーバにメッセージが到達したかどうか判断できません。そこ

で、システム再起動後、ACM連携サービスは、メッセージの送達確認(相手サーバが受信したかどうかの確認)を行い、受信していな

いメッセージを再送することでメッセージを保証します。

通信パス異常

サーバ間でメッセージ交換中の通信異常(LDコネクション切断、DPCF通信パスの解放、通信機器異常など)を、通信パス異常と呼び

ます。通信パス異常が発生した場合、ACM連携サービスは、メッセージの送達確認(相手サーバが受信したかどうかの確認)を行い、

受信していないメッセージを再送することでメッセージを保証します。

10.2.4 文字コード変換

異なる文字コードを使用するサーバと連携する場合は、アプリケーションで文字コードの違いを考慮する必要があります。表10.2 各サーバで使用される文字コードに各サーバで使用される文字コードを示します。

表10.2 各サーバで使用される文字コード

サーバ名 文字コード

グローバルサーバ EBCDICおよびJEF

UNIXサーバ ASCIIおよびEUC

Windowsサーバ ASCIIおよびシフトJIS

ここでは、文字コードを相手サーバのアプリケーションに合わせる場合の文字コード変換の方法について説明します。

文字コード変換の方法

メッセージがすべて文字列の場合は、MQDの文字コード変換機能を使用することができます。MQDの文字コード変換により変換可

能な文字コードの組合せを以下にに示します。MQDの文字コード変換の定義方法については、表10.6 QUEUEセクションの記述内容

および表10.7 RQUEUEセクションの記述内容を参照してください。

なお、MQDでは利用する標準コード変換の機能範囲でEUC(U90またはS90)およびSJIS(R90,DOSまたはMS)に対して任意のコード

系に対応できます。コード系は、環境に合わせて標準コード変換の変換仕様変更プログラムまたは環境変数で切替えて運用してくだ

さい。詳しい設定方法は標準コード変換のマニュアルを参照願います。

文字コードの組合せ

自サーバの文字コード 相手サーバの文字コード

ASCII、およびシフトJIS EBCDIC、およびJEF(英小文字使用)

EBCDIC、およびJEF(半角カナ使用)

ASCII、およびEUC

- 231 -

Page 249: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メッセージに数値がある場合、アプリケーションで文字コード変換を行ってください。文字コードは、ADJUSTの関数“iconv”を使用す

ることにより変換することができます。

自サーバの文字コード 相手サーバの文字コード

ASCII、およびEUC EBCDIC、およびJEF(英小文字使用)

EBCDIC、およびJEF(半角カナ使用)

ASCII、およびシフトJIS

メッセージに数値がある場合、アプリケーションで文字コード変換を行ってください。文字コードは、標準日本語コード変換の関

数“iconv”を使用することにより変換することができます。

10.2.5 パッキング転送機能

パッキング転送機能は、ACM連携サービスのメッセージ転送性能を向上させるための機能です。アプリケーションの介在なしでACM連携サービスが複数のメッセージをパッキングして一括送信します。パッキング転送機能は、メッセージのデータ長が小さい(15220バイト以下)場合に有効に機能します。

図10.7 パッキング転送機能の概要にパッキング転送機能の概要を示します。

図10.7 パッキング転送機能の概要

送信側および受信側のACM連携サービスでは、以下の処理を行います。

1. 送信側のACM連携サービスは、メッセージキューから複数のメッセージを取り出し、一つにパッキングします。

2. 一つにパッキングしたメッセージを転送します。

3. 受信側のACM連携サービスは、パッキングされた複数のメッセージをアンパッキング(パッキング前の状態に戻す処理)してメッ

セージキューに格納します。

なお、相手システムがパッキング転送機能をサポートしてない場合、従来通り1通ずつメッセージを転送します。

パッキング転送機能を使用する場合、サービス定義に以下の項目が必要です。

・ パッキング数

パッキングするメッセージ数。1度の送信で、2~40メッセージを転送できます。パッキング数の設定の目安は、表10.3 パッキング

数の設定の目安を参考に設計してください。

- 232 -

Page 250: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表10.3 パッキング数の設定の目安

平均メッセージ長 パッキング数

20バイト 40

500バイト 25

1000バイト 17

2000バイト 11

4000バイト 6

・ 大遅延時間

メッセージがパッキング数に達しない場合に、待ち合わせをするための送信待ち時間(秒)を指定します。 大遅延時間( 大5分)以内の転送を保証し、かつ、パッキングすることで効率よくメッセージを転送します。 大遅延時間の設定の目安は、送信キュー

にパッキング数分のメッセージが溜まる時間となります。なお、当項目は、パッキング転送機能を使用する場合にだけ有効です。

パッキング転送機能の定義方法については、表10.6 QUEUEセクションの記述内容を参照してください。

10.3 環境作成

ここでは、ACM連携サービスの環境作成の手順と方法について以下の順に説明します。

・ 環境作成の手順

・ 環境作成の説明

・ 環境定義の記述

なお、MQDが動作するためのMQDのシステム環境の作成方法については、“第3章 環境作成”を参照してください。

また、ここに記述されているMQDのコマンドの詳細については、“第7章 コマンド”および“10.5 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で環境を作成することはできません。コンソール

上で環境を作成してください。

10.3.1 環境作成の手順

ACM連携サービスを使用するためには、図10.8 サービス環境作成の流れの手順に従って、ACM連携サービスが動作するための

サービス環境を作成する必要があります。

- 233 -

Page 251: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図10.8 サービス環境作成の流れ

10.3.2 環境作成の説明

以下の操作や環境作成の方法について説明します。

・ IDCM環境の作成

・ MQDの起動

・ サービス環境の作成

・ メッセージキューの作成

・ サービス定義の作成

10.3.2.1 IDCM環境の作成

サーバ間で通信を行う場合は、事前にIDCMをインストールし、IDCMの通信環境を作成する必要があります。IDCMの通信環境の

作成方法については、“IDCM使用手引書”を参照してください。

なお、すでにIDCMの通信環境を作成している場合、本操作は不要です。

10.3.2.2 MQDの起動

ACM連携サービスの環境を作成するためには、MQDの各種のコマンドを使用します。これらのコマンドを使用するためには、事前に

MQDを起動しておく必要があります。

MQDはWindows®のサービスとして動作し、以下のいずれかの方法で起動します。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ MQDのシステム環境の作成後に、サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システ

ムの起動時に自動的にMQDサービスを開始する。

- 234 -

Page 252: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQDの起動は、mqdstrコマンドを使用して行います。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

10.3.2.3 サービス環境の作成

ACM連携サービスのサービス環境の作成は、mqdacomsetupコマンドを使用して行います。

以下にmqdacomsetupコマンド(作成)の入力例を示します。

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

mqdacomsetup

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

なお、サービス環境を再作成する場合は、サービス環境を削除した後、再度、上記のmqdacomsetupコマンドを実行してください。サー

ビス環境の削除は、mqdacomunsetupコマンドを使用して行います。

以下にmqdacomunsetupコマンド(削除)の入力例を示します。

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

mqdacomunsetup

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

10.3.2.4 メッセージキューの作成

サービス環境を作成した後、サーバ間でメッセージ送受信を行うためのメッセージキューを作成します。メッセージを送信するための

メッセージキュー(送信キュー)、およびメッセージを受信するためのメッセージキュー(受信キュー)を作成します。メッセージキューは、

メッセージキュー名を8バイト以内の大文字の英数字で作成してください。送信キュー名については、後述のサービス定義で使用しま

す。

メッセージキューに関する以下の操作については、“10.4.2 運用操作の説明”を参照してください。

・ メッセージキューの作成

・ メッセージキュー情報の表示

・ メッセージキューの削除

10.3.2.5 サービス定義の作成

サービス定義の作成では、以下の二つの作業があります。

・ サービス定義ファイルの作成

・ サービス定義の登録/反映

サービス定義ファイルの作成

サービス定義は、サーバ間のメッセージキューの対応関係やIDCMのサービスを使用するために必要な情報を定義します。サービス

定義を格納するファイルをサービス定義ファイルと呼びます。サービス定義ファイルは、ユーザが任意のファイル上にテキストファイル

として作成します。このファイルは、後述のサービス定義の登録時に使用されます。

サービス定義では、主に以下の情報を定義します。

・ 送信キューと受信キュー(論理あて先、またはMQSeriesのキュー)の対応関係

・ IDCMのサービス名や会話に関する情報

サービス定義は、テキスト編集ツールを使用して記述してください。サービス定義の記述方法の詳細については、“10.3.3 環境定義

の記述”を参照してください。

- 235 -

Page 253: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス定義の登録/反映

サービス定義ファイルを作成した後、次にサービス定義の登録/反映の操作を行います。サービス定義の登録は、mqdacomdefコマン

ドを使用して行います。サービス定義の反映は、MQD起動時のオプションまたはサービス起動時のオプションで指定します。

以下にmqdacomdef(登録)コマンドの入力例を示します。

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

mqdacomdef -a -f acomsrv01

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

サービス定義の登録をした後、次にサービス定義の反映を行います。以下にmqdstrsvc(反映)コマンドの入力例を示します。

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

mqdstrsvc -n ACOM

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

なお、サービス定義を再作成する場合は、サービス定義の全体を削除した後、再度、上記のサービス定義の登録/反映の操作を行っ

てください。サービス定義の削除は、mqdacomdefコマンドを使用して行います。指定したサービス定義ファイルに記述された部分だけ

が削除されます。全体を削除するためには、登録時に使用したサービス定義ファイルを指定してください。

以下にmqdacomdef(削除)コマンドの入力例を示します。

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

mqdacomdef -d -f acomsrv01

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

10.3.3 環境定義の記述

ここでは、ACM連携サービスの環境定義について以下を説明します。

・ サービス定義の記述

なお、記述規約については、“付録A 定義記述規約”を参照してください。

10.3.3.1 サービス定義の記述

サービス定義は、メッセージの送受信で使用するメッセージキューに関する各種情報とIDCMを使用する上で必要な各種情報を記

述します。サービス定義は以下のセクションから構成されます。

・ 一つのMNGRセクション

・ 一つまたは複数のPSYSセクション

・ 一つまたは複数のQUEUEセクション

・ 一つまたは複数のRQUEUEセクション

サービス定義は以下の形式で記述します。

記述形式

[MNGR]

cproc = クライアントプロセスのプロセス数

sproc = サーバプロセスのプロセス数

servicenm = IDCMのサービス名

servicenm2 = IDCMのサービス名2

[PSYS]

name = DPCF通信パス名

sesno = 会話数

pservicenm = IDCMのサービス名

msghinf = メッセージヘッダ情報

[QUEUE]

- 236 -

Page 254: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

name = 送信キュー名

pldname = 受信キュー名(論理あて先、またはMQSeriesのキュー名)

psysname = DPCF通信パス名

codecnv = 送信時のコード変換情報

attribute = 送信キューの属性

packmsg_cnt = パッキング数

packmsg_wtime = 最大遅延時間

[RQUEUE]

name = 受信キュー名

codecnv = 受信時のコード変換情報

記述内容の説明

a) MNGRセクション

ACM連携サービスの動作する基本情報を記述します。記述内容を表10.4 MNGRセクションの記述内容に示します。

表10.4 MNGRセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

cproc 可 数値 0または1を指定します。

省略値は1です。

送信処理で使用するプロセスの数を指

定します。

メッセージ受信だけを行う場合は0を指

定してください。

sproc 可 数値 0または1を指定します。

省略値は1です。

受信処理で使用するプロセスの数を指

定します。

メッセージ送信だけを行う場合は0を指

定してください。

servicenm 可 文字列 “ACMSE”,“ACMnn”(nnは00から99までの数値),または“MQDnn”(nnは00から99までの数値)のいずれかを指定

します。

なお、同一サーバ内に複数のMQDシ

ステムが存在する場合は、MQDシステ

ム毎に一意な値を設定してください。

省略値は“ACMSE”です。

なお、MQD MQゲートウェイと通信を

行う場合は、“MQDnn”を指定してくだ

さい。

ACM連携サービスのサーバプロセスが

使用するIDCMのサービス名を指定しま

す。

・ AIM特化型ACMと通信を行う場合

は、ACMコミュニケータ制御文の

DESTSYS文のDESTNAMEオペラン

ドの値を指定してください。なお、

DESTSYS文を省略している場合は、

CTRL文のDESTNAMEオペランドの

値を指定してください

・ MQDまたはMQD MQゲートウェイと

通信を行う場合は、相手サーバの

ACM連携サービスのサービス定義、

またはMQD MQゲートウェイのサービ

ス 定 義 の PSYS セ ク シ ョ ン の

pservicenmキーワードの値を指定して

ください。

・ 同一サーバ内で複数のMQDシステ

ムを使用する場合は、servicenmと

servicenm2のキーワード値が、サーバ

内で一意となるように値を指定してく

ださい。

・ 同一サーバ内のMQD MQゲートウェ

イとシステム内通信を行う場合は、

MQD MQゲートウェイのサービス定

- 237 -

Page 255: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

義のMNGRセクションの servicenmキーワードの値と異なる値を指定して

ください。

servicenm2 可 文字列 “MQDnn”(nnは00から99までの数値)を指定します。

なお、同一サーバ内に複数のMQDシ

ステムが存在する場合は、MQDシステ

ム毎に一意な値を設定してください。

本キーワードを省略した場合、または

servicenmキーワードと同じ値を指定し

た場合、本キーワードは無効となりま

す。

AIM特化型ACM、およびMQD MQゲー

トウェイの両方と通信する場合は、本キー

ワードの指定が必要となります。

AIM特化型ACM用のIDCMのサービス

名をservicenmキーワードに指定し、MQDMQゲートウェイ用のIDCMのサービス名

を本キーワードに指定してください。

b) PSYSセクション

ACM連携サービスが他サーバにメッセージを送信する際に使用する通信パスに関する情報を記述します。一つのMNGRセクションで

PSYSセクションは以下に示す数まで定義できます。

・ 1~ 大240 (注1)

・ 1~ 大999 (注1)

記述内容については表10.5 PSYSセクションの記述内容を参照してください。なお、この定義は、メッセージ送信側サーバにだけ必

要です。

表10.5 PSYSセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

name 不可 文字列 8バイト以内の英数字および特殊記号

で指定します。詳細について

は、“IDCM使用手引書”を参照してく

ださい。

なお、同一サーバ内のMQD MQゲー

トウェイとシステム内通信を行う場合は、

&SYSTEMを指定してください。

メッセージを送信する際に使用するDPCF通信パス名を指定します。

sesno 可 数値

1~240の範囲で指定します。(注2)

1~1024の範囲で指定します。(注2) 省略値は3です。

ACM連携サービスが他サーバと通信す

る際に使用する会話数(ACMセション数)を指定します。

pservicenm 可 文字列 “ACMSE”,“ACMnn”(nnは00から99までの数値),または“MQDnn”(nnは00から99までの数値)のいずれかを指定しま

す。省略値は“ACMSE”です。

なお、相手サーバに複数のMQDシス

テムが存在する場合は、通信を行いた

いMQDシステムのACM連携サービス

のサービス定義(MNGRセクションの

servicenmキーワードの値)と同一の値

相手サーバのサーバプロセスが使用する

IDCMのサービス名を指定します。

・ AIM特化型ACMと通信を行う場合

は、ACMコミュニケータ制御文の

CTRL文のDESTNAMEオペランドの

値を指定してください。

・ MQDまたはMQD MQゲートウェイと

通信を行う場合は、相手サーバの

- 238 -

Page 256: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

を指定してください。

また、MQD MQゲートウェイと通信を

行う場合は、“MQDnn”を指定してくだ

さい。

ACM連携サービスのサービス定義、

またはMQD MQゲートウェイのサービ

ス 定 義 の MNGR セ ク シ ョ ン の

servicenmキーワードの値を指定して

ください。

msghinf 可 文字列 “SEND”、または“UNSEND”を指定し

ます。

省略値は“UNSEND”です。

本キーワードは、MQD間のメッセージ交

換を行うときに有効です。

相手サーバにメッセージヘッダを送信す

る場合は、“SEND”を指定します。

なお、本キーワードに“UNSEND”を指定

した場合、または本キーワードを省略した

場合、メッセージヘッダは相手サーバに

送信されません。相手サーバのMQDアプ

リケーションがメッセージを受信する時の

メッセージヘッダは、表10.1 メッセージ受

信時のメッセージヘッダの内容の形式と

なります。

注1) 実際に通信できる相手サーバの 大数は以下の計算式で決定します。

相手サーバ数

Σ(送信に使用するIDCMの会話数 + 受信に使用するIDCMの会話数) ≦ 240

相手サーバ数

Σ(送信に使用するIDCMの会話数 + 受信に使用するIDCMの会話数) ≦ 1024

注2) ACMセション数の見積もり方法

ACMセション数は以下の計算式を目安に求めてください。

(送信メッセージ長+100) / 回線速度(bps) + 0.03

ACMセション数 = --------------------------------------------------------

0.03

c) QUEUEセクション

メッセージの送信で使用するメッセージキューについて、送信キューと受信キュー(論理あて先、またはMQSeriesのキュー)との対応

関係を記述します。一つのMNGRセクションでQUEUEセクションは1~999まで定義できます。記述内容については表10.6 QUEUEセクションの記述内容を参照してください。なお、この定義は、メッセージ送信側サーバにだけ必要です。

表10.6 QUEUEセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

name 不可 文字列 8バイト以内の大文字の英数字で指定

します。

送信キュー名を指定します。

pldname 不可 文字列 8バイト以内の大文字の英数字で指定

します。

メッセージ送信先の受信キュー名(論理あて先、またはMQSeriesのキュー

名)を指定します。

psysname 不可 文字列 8バイト以内の英数字、および特殊記

号で指定します。詳細について

は、“IDCM使用手引書”を参照してく

ださい。

なお、同一サーバ内のMQD MQゲー

メッセージ送信先のサーバに対応す

るDPCF通信パス名を指定します。

- 239 -

Page 257: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

トウェイとシステム内通信を行う場合は、

&SYSTEMを指定してください。

codecnv 可 文字列 以下のいずれかを指定します。

・ JEFASCII

・ JEFKANA

・ NOCNV

・ EUC

・ SJIS

省略値は、“NOCNV”です。

メッセージ送信時に各サーバのコー

ド系に文字コード変換を行う場合、変

換後の文字コード種別を指定します。

・ JEFASCII :JEF(英小文字使用)に変換しま

す。

・ JEFKANA :JEF(半角カナ使用)に変換します。

・ NOCNV :コード変換しません。

・ EUC :EUCに変換します。

・ SJIS :シフトJISに変換します。

attribute 可 文字列 “DISK”,または“MEMORY”のいずれ

かを指定します。

省略値は、“DISK”です。

メッセージキューの属性を指定しま

す。送信キューの属性と受信キューの

属性は同一にしてください。

・ DISK :ディスク型のメッセージキューを使

用して通信を行う場合に指定しま

す。

・ MEMORY :メモリ型のメッセージキューを使用

して通信を行う場合に指定しま

す。

packmsg_cnt 可 数値 1~40の範囲で指定します。

省略値は“1”(本機能を使用しない)です。

複数のメッセージをパッキングして送

信する場合に、パッキングするメッセー

ジの 大数を指定します。実際にパッ

キング可能な数は(注1)で示す値とな

ります。

packmsg_wtimeキーワード値に指定

した時間(秒)が経過しても、本キー

ワード値に指定した数にメッセージ数

が満たない場合、その時点でメッセー

ジを相手システムに送信します。

パッキング転送機能を使用する場

合、[PSYS]セクションのmsghinfキー

ワードの値に関わらず、メッセージヘッ

ダが相手システムに送信されます。

packmsg_wtime

可 数値 0~300(秒)の範囲で指定します。

省略値は“0”です。

メッセージがパッキング数に達しない

場合に、待ち合わせをするための送

信待ち時間(秒)を指定します。

- 240 -

Page 258: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

パッキング転送機能を使用する場合

にだけ有効です。

注1) 実際にパッキングできるメッセージの 大数は以下の計算式で決定します。

メッセージの最大数 = 32000 / (780 + 平均メッセージ長)

d) RQUEUEセクション

メッセージの受信で使用するメッセージキューについて、ACM連携サービスを使用する際の属性を記述します。一つのMNGRセクションで

RQUEUEセクションは1~999まで定義できます。記述内容については表10.7 RQUEUEセクションの記述内容を参照してください。な

お、この定義は、メッセージ受信時にMQDのコード変換機能を使用する場合にだけ必要です。

表10.7 RQUEUEセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

name 不可 文字列 8バイト以内の大文字の英数字で指定

します。

受信キュー名を指定します。

codecnv 可 文字列 以下のいずれかを指定します。

・ JEFASCII

・ JEFKANA

・ MSGHINF

・ NOCNV

・ EUC

・ SJIS

省略値は、“NOCNV”です。

メッセージ受信時に各サーバのコー

ド系から文字コード変換を行う場合、

変換元の文字コード種別を指定しま

す。

・ JEFASCII :JEF(英小文字使用)から変換しま

す。

・ JEFKANA :JEF(半角カナ使用)から変換しま

す。

・ MSGHINF :メッセージヘッダに設定されてい

る 文 字 コ ー ド

(EUC,SJIS,JEFKANA, ま た は

JEFASCIIのいずれか)を元に変

換します。なお、メッセージヘッダ

の文字コードを元に文字コード変

換を行うためには、送信元のACM連携サービスのサービス定義の

PSYSセクションのmsghinfキー

ワードに“SEND”を指定してくださ

い。

・ NOCNV :コード変換しません。

・ EUCEUCから変換します。

・ SJISシフトJISから変換します。

- 241 -

Page 259: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述例

サービス定義の記述例をサービス定義の記述例に示します。

サービス定義の記述例

[MNGR] # 基本情報

cproc = 1 # 送信処理用プロセス数

sproc = 1 # 受信処理用プロセス数

servicenm = ACMSE # IDCMのサービス名

[PSYS] # 通信パス情報

name = PSYS01 # DPCF通信パス名

sesno = 3 # 会話数

pservicenm = ACMSE # IDCMのサービス名

msghinf = UNSEND # メッセージヘッダ情報

[QUEUE] # 送信キュー

name = ACOMQUE1 # 送信キュー名

pldname = ACMLD01 # 送信先の受信キュー名(論理あて先、またはMQSeriesの

キュー名)

psysname = PSYS01 # DPCF通信パス名

codecnv = JEFASCII # 文字コード変換情報(送信時変換)

attribute = DISK # 送信キューの属性

packmsg_cnt = 30 # パッキング数

packmsg_wtime = 10 # 最大遅延時間

[RQUEUE] # 受信キュー

name = ACOMQUE2 # 受信キュー名

codecnv = JEFASCII # 文字コード変換情報(受信時変換)

10.4 運用

ここでは、ACM連携サービスを使用する場合の運用の手順や方法について、以下の順に説明しています。

・ 運用操作の手順

・ 運用操作の説明

なお、ここに記述されているMQDのコマンドの詳細については、“第7章 コマンド”および“10.5 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由で運用操作をすることはできません。コンソール

上で運用操作をしてください。

10.4.1 運用操作の手順

ACM連携サービスを使用するための操作手順を図10.9 ACM連携サービスの運用操作手順に示します。

- 242 -

Page 260: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図10.9 ACM連携サービスの運用操作手順

ACM連携サービスを停止する前に、DPCF通信パスの解放を行わないでください。ACM連携サービスはIDCM上で動作するアプリ

- 243 -

Page 261: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ケーションです。IDCM上で動作するアプリケーション(この場合はACM連携サービス)の実行中にDPCF通信パスの解放を行うと、DPCF通信パスの解放が失敗し、状態がstoppingのままとなります。ACM連携サービスの停止を行わずに、MQDの停止でACM連携サービ

スを連動して停止する場合は、DPCF通信パスの解放をMQDの停止のあとに行ってください。

10.4.2 運用操作の説明

以下の各運用操作について説明します。

・ IDCMの起動

・ MQDの起動

・ DPCF通信パスの確立

・ Interstageの起動

・ ACM連携サービスの起動

・ サービス定義/状態の表示

・ メッセージキューの作成

・ メッセージキュー情報の表示

・ メッセージキューのアクセス状態の変更

・ メッセージキューの削除

・ ACM連携サービスの停止

・ Interstageの停止

・ DPCF通信パスの解放

・ MQDの停止

・ IDCMの停止

10.4.2.1 IDCMの起動

事前に、IDCMサービスを開始しておく必要があります。IDCMの起動形態としてインストール時に手動起動形態2を選択した場合は、

Windows®の[サービス]画面からIDCMサービスを開始した後、[IDCM操作]画面からIDCMの起動を行います。IDCMの起動方法の

詳細は、“IDCMヘルプ”を参照してください。

事前に、IDCMを起動する必要があります。IDCMの起動は、IDCMのstridcmコマンドを使用して行います。IDCMの起動方法の詳細

は、“IDCM使用手引書”を参照してください。

10.4.2.2 MQDの起動

ACM連携サービスを使用するためには、MQDを起動する必要があります。

MQDはWindows®のサービスとして動作します。このため、MQDの起動は以下のいずれかの方法で行います。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ Windows®サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システムの起動時に自動的に

MQDサービスを開始する。

MQDを起動する場合、[サービス]画面のスタートアップパラメタに以下のいずれかの値を指定することにより、MQDの起動形態を選

択することができます。

- 244 -

Page 262: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

-a: ACM連携サービスを起動する。未反映のサービス定義の反映は行われない。

-n: 未反映のサービス定義を反映してからACM連携サービスを起動する。

-p: ACM連携サービスを起動しない。

[サービス]画面のスタートアップパラメタに何も指定しない場合、およびWindows®システムの起動時に自動的にMQDを起動する場

合の起動形態は、MQDのシステム環境の作成時に指定した起動形態となります。

MQDの起動は、mqdstrコマンドを使用して行います。MQDを起動することにより、ACM連携サービスも起動されます。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

10.4.2.3 DPCF通信パスの確立

MQDが起動した後、DPCF通信パスの確立を行います。

DPCF通信パスの確立は、[IDCM操作]画面から行います。DPCF通信パスの確立方法の詳細は、“IDCMヘルプ”を参照してくださ

い。

DPCF通信パスの確立は、IDCMのactpsysコマンドを使用して行います。DPCF通信パスの確立方法の詳細は、“IDCM使用手引書”

を参照してください。なお、同じUNIXサーバ内のMQD MQゲートウェイとシステム内通信を行う場合、本操作は必要ありません。

10.4.2.4 Interstageの起動

Interstageのアプリケーションを使用する場合には、MQDの起動後にInterstageを起動する必要があります。Interstageの起動は、Interstageのisstartコマンドを使用して行います。Interstageの起動方法は、“運用ガイド(基本編)”を参照してください。

10.4.2.5 ACM連携サービスの起動

通常、ACM連携サービスの起動は、MQDの起動時に行うため不要です。ただし、“-p”を指定してMQDを起動した場合やMQDの起

動時にメッセージ“MQD4112”が出力された場合(グローバルトランザクションのダウンリカバリが未完了)には、ACM連携サービスが起

動されません。この場合には、Interstageの起動後にACM連携サービスを起動する必要があります。ACM連携サービスの起動は、

mqdstrsvcコマンドを使用して行います。

以下にmqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc ACOM

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

10.4.2.6 サービス定義/状態の表示

サービス定義/状態の表示は、mqdacomprtdコマンド、およびmqdacomprtcコマンドを使用して行います。これらのコマンドは、サービ

ス定義の内容を確認する場合や運用中のACM連携サービスの状態を見る場合に使用します。

以下にmqdacomprtdコマンド(現サービス定義の表示)の入力例を示します。

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

mqdacomprtd -c

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

以下にmqdacomprtdcコマンド(ACM連携サービスのすべての通信状態の表示)の入力例を示します。

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

mqdacomprtc -a

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

- 245 -

Page 263: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

10.4.2.7 メッセージキューの作成

メッセージの送受信を行うためには、事前にメッセージキューを作成しておく必要があります。まだ作成していない場合は作成してく

ださい。メッセージキューの作成は、mqdcrtqコマンドを使用して行います。この操作によりメッセージキューの状態は“送受信可能状

態”になります。

以下にmqdcrtqコマンドの入力例を示します。

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

mqdcrtq -l 30K ACMQUES1

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

10.4.2.8 メッセージキュー情報の表示

メッセージキュー情報の表示は、mqdprtqコマンドを使用して行います。このコマンドは、運用中のメッセージキューの状態を見る場合

に使用します。

mqdprtqコマンドには以下の三つの表示内容があります。目的に応じて使い分けてください。

・ メッセージキュー数の表示

・ メッセージキュー名の一覧表示

・ メッセージキューの詳細情報の表示

以下にmqdprtqコマンド(メッセージキュー名の一覧表示)の入力例を示します。

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

mqdprtq

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

10.4.2.9 メッセージキューのアクセス状態の変更

メッセージキューのアクセス状態の変更は、mqdchgqコマンドを使用して行います。このコマンドは、メッセージキューを以下の状態に

変更する場合に使用します。

・ メッセージの送受信を可能とする

・ メッセージの送信を禁止する

・ メッセージの受信を禁止する

・ メッセージの送受信を禁止する

送信禁止は、アプリケーションからのメッセージ送信を抑止して、受信側アプリケーションを動作させることで、メッセージキューに滞留

しているすべてのメッセージを処理したい場合などに使用します。受信禁止は、アプリケーションが誤ってメッセージを受信することを

防ぐ場合などに使用します。

[メッセージ送信の禁止と解除]

他サーバへのメッセージ送信を一時的に禁止したい場合は、送信キュー単位にメッセージ取り出しを抑止するためにmqdchgqコマン

ドを実行します。

以下にmqdchgqコマンド(他サーバへのメッセージ送信禁止)の入力例を示します。

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

mqdchgq -c -r ACMQUES1

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

他サーバへのメッセージ送信禁止の状態を解除したい場合は、送信キュー単位にメッセージ取り出しの抑止を解除するためにmqdchgqコマンドを実行します。

以下にmqdchgqコマンド(他サーバへのメッセージ送信禁止の解除)の入力例を示します。

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

mqdchgq -a -r ACMQUES1

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

[メッセージ受信の禁止と解除]

- 246 -

Page 264: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

他サーバからのメッセージ受信を一時的に禁止したい場合は、受信キュー単位にメッセージ格納を抑止するためにmqdchgqコマンド

を実行します。

以下にmqdchgqコマンド(他サーバからのメッセージ受信禁止)の入力例を示します。

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

mqdchgq -c -w ACMQUES1

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

他サーバからのメッセージ受信禁止の状態を解除したい場合は、受信キュー単位にメッセージ格納の抑止を解除するためにmqdchgqコマンドを実行します。

以下にmqdchgqコマンド(他サーバからのメッセージ受信禁止の解除)の入力例を示します

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

mqdchgq -a -w ACMQUES1

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

10.4.2.10 メッセージキューの削除

不要なメッセージキューがある場合は、そのメッセージキューを削除します。メッセージキューの削除は、mqddltqコマンドを使用して

行います。以下にmqddltqコマンドの入力例を示します。

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

mqddltq ACMQUES1

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

10.4.2.11 ACM連携サービスの停止

通常、ACM連携サービスの停止は、MQDの停止時に行うため不要です。MQD運用中にACM連携サービスだけを停止したい場合

には、mqdstpsvcコマンドを使用して行います。以下にmqdstpsvcコマンドの入力例を示します。

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

mqdstpsvc ACOM

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

10.4.2.12 Interstageの停止

Interstageのアプリケーションを使用している場合には、MQDの停止前にInterstageを停止する必要があります。Interstageの停止は、

Interstageのisstopコマンドを使用して行います。Interstageの停止方法の詳細は、“運用ガイド(基本編)”を参照してください。

10.4.2.13 DPCF通信パスの解放

サーバ間の通信を終了させるために、DPCF通信パスの解放を行います。

DPCF通信パスの解放は、[IDCM操作]画面から行います。DPCF通信パスの解放方法の詳細は、“IDCMヘルプ”を参照してくださ

い。

DPCF通信パスの解放は、IDCMのdeactpsysコマンドを使用して行います。DPCF通信パスの解放方法の詳細は、“IDCM使用手引

書”を参照してください。なお、同じUNIXサーバ内のMQD MQゲートウェイとシステム内通信を行う場合、本操作は必要ありません。

ACM連携サービスを停止する前に、DPCF通信パスの解放を行わないでください。ACM連携サービスはIDCM上で動作するアプリ

ケーションです。IDCM上で動作するアプリケーション(この場合はACM連携サービス)の実行中にDPCF通信パスの解放を行うと、DPCF通信パスの解放が失敗し、状態がstoppingのままとなります。

10.4.2.14 MQDの停止

MQDの停止を行う前に、MQDを使用するすべてのアプリケーションおよびMQDのコマンドを終了させておく必要があります。

- 247 -

Page 265: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQDの停止は、Windows®の[サービス]画面で行います。

MQDの停止は、mqdstpコマンドを使用して行います。

以下にmqdstpコマンドの入力例を示します。

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

mqdstp

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

10.4.2.15 IDCMの停止

後にIDCMサービスを停止します。IDCMの起動形態としてインストール時に手動起動形態2を選択した場合は、[IDCM操作]画面から

IDCMを停止した後、Windows®の[サービス]画面からIDCMサービスを停止します。IDCMの停止方法の詳細は、“IDCMヘルプ”を

参照してください。

後にIDCMを停止します。IDCMの停止は、IDCMのtrmidcmコマンドを使用して行います。IDCMの停止方法の詳細は、“IDCM使

用手引書”を参照してください。

10.5 コマンド

本節では、ACM連携サービスに固有のコマンドの文法について説明します。

ACM連携サービスには、表10.8 ACM連携サービスのコマンド一覧に示すコマンドがあります。

表10.8 ACM連携サービスのコマンド一覧

コマンド名 機能概要

mqdacomsetup サービス環境を作成する

mqdacomunsetup サービス環境を削除する

mqdstrsvc サービスを起動する (サービス環境を変更する)

mqdstpsvc サービスを停止する

mqdacomdef サービス定義を登録/削除する

mqdacomprtd サービス定義を表示する

mqdacomprtc サービス状態を表示する

各コマンドの文法を以下に説明します。コマンドで使用する用語および記号については、“第7章 コマンド”を参照してください。

メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コンソー

ル上でコマンドを実行してください。

10.5.1 mqdacomsetup(サービス環境を作成する)

機能説明

ACM連携サービスのサービス環境を新規に作成するコマンドです。

- 248 -

Page 266: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

入力形式

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

mqdacomsetup [-s sysname]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは、IDCMがインストールされている状態で実行してください。

使用例

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

mqdacomsetup

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

10.5.2 mqdacomunsetup(サービス環境を削除する)

機能説明

ACM連携サービスのサービス環境を削除するコマンドです。本コマンド実行時には、サービス環境の削除を再確認する問合せが行

われます。サービス環境を削除する場合は“YES”、サービス環境を削除しない場合は“NO”を入力してください。

入力形式

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

mqdacomunsetup [-s sysname]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは、MQDが起動している状態で実行できます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

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

mqdacomunsetup

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

10.5.3 mqdstrsvc(サービスを起動する)

- 249 -

Page 267: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能説明

ACM連携サービスを起動するコマンドです。

入力形式

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

mqdstrsvc [-s sysname] [-n] svcname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-n

未反映の定義を反映してからACM連携サービスを起動する場合に指定します。

svcname

サービス名として“acom”または“ACOM”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

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

mqdstrsvc ACOM

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

10.5.4 mqdstpsvc(サービスを停止する)

機能説明

ACM連携サービスを停止するコマンドです。

入力形式

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

mqdstpsvc [-s sysname] svcname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

svcname

サービス名として“acom”または“ACOM”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

- 250 -

Page 268: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ グローバルサーバのACMコミュニケータが動作している状態でACM連携サービスを停止する場合は、[IDCM操作]画面を使用

して、必ずDPCF通信パスの解放を行ってください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

・ グローバルサーバのACMコミュニケータが動作している状態でACM連携サービスを停止する場合は、IDCMのdeactpsysコマン

ドを実行して、必ずDPCF通信パスの解放を行ってください。

使用例

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

mqdstpsvc ACOM

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

10.5.5 mqdacomdef(サービス定義を登録/削除する)

機能説明

ACM連携サービスのサービス定義の登録、または削除を行うコマンドです。

サービス定義の登録は、事前に作成されたサービス定義をMQDへ登録します。登録された定義を新サービス定義と呼びます。サー

ビス定義の削除は、新サービス定義の一部または全体を削除します。サービス定義の反映は、ACM連携サービスの起動時に新サー

ビス定義を運用で使用可能な有効な状態に変えることで行います。反映された定義を現サービス定義と呼びます。

入力形式

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

mqdacomdef [-s sysname]{-a|-d} -f filename

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-d}

処理内容を指定します。

-a: サービス定義を登録する

-d: サービス定義を削除する

-f filename

サービス定義ファイルのファイル名を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドを実行する前に、ACM連携サービスのサービス定義を作成しておく必要があります。詳細については、“10.3.2.5 サー

ビス定義の作成”を参照してください。

・ サービス定義を再作成する場合は、登録済のサービス定義の全体を削除した後、再度、サービス定義の登録と反映の操作を行

う必要があります。

・ 登録済のサービス定義の全体を削除したい場合は、登録時に指定したサービス定義と同じ内容のサービス定義を指定してくだ

さい。

- 251 -

Page 269: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例. サービス定義を登録する

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

mqdacomdef -a -f acomsvc

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

10.5.6 mqdacomprtd(サービス定義を表示する)

機能説明

ACM連携サービスのサービス定義の内容を表示するコマンドです。

入力形式

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

mqdacomprtd [-s sysname]{-c|-d}

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-c|-d}

表示内容を指定します。

-c: 現サービス定義の内容を表示する

-d: 新サービス定義の内容を表示する

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例. サービス定義の内容を表示する

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

mqdacomprtd {-c|-d}

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

- 252 -

Page 270: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図10.10 サービス定義の内容表示例

[表示例の説明] 現サービス定義または新サービス定義の内容が表示されます。

10.5.7 mqdacomprtc(サービスの通信状態を表示する)

機能説明

ACM連携サービスの通信状態を表示するコマンドです。以下の三つの表示内容があります。

・ ACM連携サービスのすべての状態表示

・ 特定のDPCF通信パスの元で通信しているメッセージキューの状態表示

・ 特定のメッセージキューの状態表示

入力形式

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

mqdacomprtc [-s sysname] [{-a|-p psysname|-q quename}]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-p psysname|-q quename}

表示内容を指定します。このパラメタを省略した場合、ACM連携サービスのすべての通信状態が表示されます。

-a : ACM連携サービスのすべての通信状態を表示する

-p psysname: 特定のDPCF通信パスに関する通信状態を表示する

-q quename : 特定のキューに関する通信状態を表示する

- 253 -

Page 271: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 大メッセージ長を超えるメッセージを送信した場合、または文字コード変換できないメッセージを送信した場合、当該送信キュー

に関する状態表示は、ACM連携サービスを再起動するまで行われません。

・ サービスの状態表示は、ACM連携サービスを起動した状態で実行してください。

・ メッセージ格納ファイルとしてデータベースを使用する場合、ターミナルサービス経由でコマンドを実行することはできません。コ

ンソールからコマンドを実行してください。

使用例

例. ACM連携サービスのすべての通信状態を表示する

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

mqdacomprtc -a

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

図10.11 ACM連携サービスのすべての通信状態の表示例

表示例の説明

Client process : 送信用プロセス(クライアントプロセス)の起動数

起動状態のプロセス数 / 定義プロセス数

pid : 送信用プロセスのプロセスID

PSYS Name : DPCF通信パス名

P-IDCM Service Name : 相手サーバのIDCMのサービス名

Session : 会話数

確立済会話数 / 定義会話数

Queue Name : 送信キュー名

PLD-Name : 受信キュー名(論理あて先、またはMQSeriesのキュー名)

Connect : 結合情報

* : 結合中

- : 未結合

- 254 -

Page 272: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Server process : 受信用プロセス(サーバプロセス)の起動数

起動状態のプロセス数 / 定義プロセス数

pid : 受信用プロセスのプロセスID

IDCM Service Name : IDCMのサービス名

IDCM Service Name2 : IDCMのサービス名2。サービス定義でservicenm2キーワードを指定

しなかった場合、この項目は表示されません。

PSYS Name : DPCF通信パス名

Session : 会話数

Queue Name : 受信キュー名

PLD-Name : 送信キュー名(論理あて先、またはMQSeriesのキュー名)

Connect : 結合情報

* : 結合中

- : 未結合

- 255 -

Page 273: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第11章 イベントチャネル連携サービス

本章では、イベントチャネル連携サービスについて以下の順に説明しています。

11.1 概要

11.2 機能

11.3 環境作成

11.4 運用

11.5 保守

11.6 アプリケーションの作成方法

11.7 コマンド

イベントチャネル連携サービスでは、Interstageの非同期メッセージ基盤であるCORBA ノーティフィケーションサービス(以降ノーティ

フィケーションサービスと略します)、J2EE Java Message Service(以降JMSと略します)、MessageQueueDirector(以降MQDと略します)を使用します。

本機能を使用する場合は、利用する非同期メッセージ基盤の詳細を以下のマニュアルにより理解してから使用してください。

・ ノーティフィケーションサービスの詳細については、“アプリケーション作成ガイド(イベントサービス編)”を参照してください。

・ JMSの詳細については、“J2EEユーザーズガイド”を参照してください。

・ MQDの詳細については、本マニュアルを参照してください。

また、グローバルサーバと通信する場合は、グローバルサーバのInterstageの非同期通信機能について以下のマニュアルにより理解

してから、本機能を使用してください。

・ グローバルサーバのInterstageの非同期通信機能の詳細については、“OS IV INTERSTAGE解説書(AIM連携)”、“OS IVINTERSTAGEシステム開発手引書(AIM連携)”および“OS IV INTERSTAGE運用手引書(AIM連携)”を参照してください。

本章を理解しやすくするために、各非同期メッセージ基盤の用語の対応関係を表11.1 各非同期機能の用語の対応関係に示します。

表11.1 各非同期機能の用語の対応関係

ノーティフィケーションサービスの用

語JMSの用語 MQDの用語

イベントチャネル キュー メッセージキュー

イベントデータ メッセージ メッセージ

サプライヤSenderPublisher

送信アプリケーション

コンシューマReceiverSubscriber

受信アプリケーション

本章では特に断わりがない限り、各非同期メッセージ基盤の機能を総称して以下のように呼びます。

・ “イベントチャネル”、“キュー”および“メッセージキュー”は、“キュー”、“送信キュー”または“受信キュー”と呼びます。

・ “イベントデータ”および“メッセージ”は、“メッセージ”と呼びます。

・ 各非同期メッセージ基盤を使用するアプリケーションは、“アプリケーション”、“送信アプリケーション”または“受信アプリケーショ

ン”と呼びます。

また、本章では、“イベントチャネル連携サービスのサービス環境”を“サービス環境”、“イベントチャネル連携サービスのサービス定

義”を“サービス定義”と略して呼びます。

11.1 概要

イベントチャネル連携サービスは、異なるサーバで運用している非同期メッセージ基盤(ノーティフィケーションサービス、JMSおよびMQD)を使用するアプリケーション間の非同期なメッセージの交換を実現します。

イベントチャネル連携サービスを利用したアプリケーションの連携形態を図11.1 イベントチャネル連携サービスを利用したアプリケー

ションの連携形態に示します。

- 256 -

Page 274: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.1 イベントチャネル連携サービスを利用したアプリケーションの連携形態

API: APplication InterfaceORBC: INTERSTAGE/ORB CommunicationBaseAAD : Interstage AIMApplicationDirector または INTERSTAGE/AIM ApplicationDirectorACMのLD: 論理あて先

IIOP : Internet Inter-ORB ProtocolMQDキュー: MQDのメッセージキュー

JMSキュー: JMSのキュー

11.2 機能

イベントチャネル連携サービスでは、以下の機能を提供します。

・ サーバ間の非同期メッセージ通信

・ メッセージ保証

・ パッキング転送機能

・ プライオリティ機能

・ 文字コード変換機能

・ MQDのメッセージヘッダ通知機能

・ MQDのユニットメッセージ通知機能

・ 稼動中における通信環境の追加機能

・ サービスの通信制御

- 257 -

Page 275: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.2.1 サーバ間の非同期メッセージ通信

イベントチャネル連携サービスを利用することにより、他サーバ(Windowsサーバ、UNIXサーバ、Linuxサーバ、またはグローバルサー

バ)上の非同期メッセージ基盤を使用するアプリケーションとの間でサーバ間の非同期通信を実現できます。アプリケーションは、アプ

リケーションが使用する非同期メッセージ基盤のAPIを利用したメッセージ操作を行うだけで、サーバ間のメッセージの転送を意識する

ことなく、他サーバ上の異なるキューを論理的な一つのキューとして処理することができます。

イベントチャネル連携サービスを利用した、サーバ間の非同期通信のモデルを、図11.2 サーバ間の非同期通信のモデルに示しま

す。

図11.2 サーバ間の非同期通信のモデル

[図の説明] 1) 送信アプリケーションは、当該アプリケーションが使用する非同期メッセージ基盤のAPIを使用してメッセージをキュー(ec1,jq1または

mq1)に送信します。

2) イベントチャネル連携サービスは、送信側のキュー(ec1,jq1またはmq1)に対応する受信側のキュー(ec2,jq2またはmq2)にメッセー

ジを転送します。

3) 受信アプリケーションは、当該アプリケーションが使用する非同期メッセージ基盤のAPIを使用してメッセージをキュー(ec2,jq2または

mq2)から受信します。

11.2.1.1 メッセージ通信可能な非同期メッセージ基盤の組み合わせ

イベントチャネル連携サービスでは、メッセージの送信側とメッセージの受信側の非同期メッセージ基盤が同一の場合や異なる場合

でもメッセージ通信を行うことができます。

メッセージ通信可能な非同期メッセージ基盤の組み合わせを表11.2 メッセージ通信可能な非同期メッセージ基盤の組み合わせに示

します。

表11.2 メッセージ通信可能な非同期メッセージ基盤の組み合わせ

送信側の非同期メッセージ基盤 (注1.)

受信側の非同期メッセージ基盤 (注1.)

ノーティフィケー

ションサービス

JMS MQD (注2.) グローバルサーバ

のMQD

ノーティフィケーションサービス ○ ○ ○ ○

JMS ○ ○ ○ ○ (注3.)

MQD (注2.) ○ ○ ○ ○

グローバルサーバのMQD ○ ○ (注3.) ○ ○ (注4.)

- 258 -

Page 276: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

○: 通信可能

1. イベントサービスを使用することはできません。

2. Linux、Windows Server(R) for Itanium-based Systems および Windows Server(R) x64 Editions では使用できません。

3. 通信可能なグローバルサーバのバージョンは以下となります。

[MSP]の場合

- OS IV/MSP INTERSTAGE/MessageQueueDirector V20L10 D04061 以降

- OS IV/MSP INTERSTAGE/AIMApplicationDirector V20L10 D04061 以降

- OS IV/MSP Interstage AIMApplicationDirector V30L10 以降

[XSP]の場合

- OS IV/XSP INTERSTAGE/MessageQueueDirector V20L10 D04071 以降

- OS IV/XSP INTERSTAGE/AIMApplicationDirector V20L10 D04071 以降

- OS IV/XSP Interstage AIMApplicationDirector V30L10 以降

4. 本製品の機能範囲外です。

同一非同期メッセージ基盤間のメッセージ通信

同一非同期メッセージ基盤間のメッセージ通信とは、メッセージを送信するサーバと受信するサーバが使用する非同期メッセージ基

盤が同一の場合のメッセージ通信モデルです。同一非同期メッセージ基盤間のメッセージ通信モデルを図11.3 同一非同期メッセー

ジ基盤のメッセージ通信に示します。

図11.3 同一非同期メッセージ基盤のメッセージ通信

- 259 -

Page 277: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

異なる非同期メッセージ基盤間のメッセージ通信

異なる非同期メッセージ基盤間のメッセージ通信とは、メッセージを送信するサーバと受信するサーバが使用する非同期メッセージ

基盤が異なる場合のメッセージ通信モデルです。異なる非同期メッセージ基盤間のメッセージ通信モデルを図11.4 異なる非同期メッ

セージ基盤間のメッセージ通信に示します。

図11.4 異なる非同期メッセージ基盤間のメッセージ通信

グローバルサーバとのメッセージ通信

グローバルサーバとのメッセージ通信モデルを、図11.5 グローバルサーバとのメッセージ通信に示します。

- 260 -

Page 278: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.5 グローバルサーバとのメッセージ通信

11.2.1.2 メッセージ通信可能な送信キューと受信キューの組み合わせ

イベントチャネル連携サービスでは、使用する非同期メッセージ基盤により送信キューと受信キューの組み合わせを以下の4つから選

択することができます。

・ 1:1型のメッセージ通信

・ 配信型のメッセージ通信

・ 集信型のメッセージ通信

・ 中継型のメッセージ通信

使用する非同期メッセージ基盤によるメッセージ通信可能な送信キューと受信キューの組み合わせを表11.3 メッセージ通信可能な

送信キューと受信キューの組み合わせに示します。

表11.3 メッセージ通信可能な送信キューと受信キューの組み合わせ

送信側の非同期メッセージ基盤 受信側の非同期メッセージ基盤

ノーティフィケー

ションサービス

JMS MQD (注1.) グローバルサーバ

のMQD

ノーティフィケー

ションサービス

1:1型 ○ ○ ○ ○

配信型 ○ ○ ○ ○

集信型 ○ ○ ○ ○

中継型 ○ ○ ○ ○

JMS 1:1型 ○ ○ ○ ○ (注2.)

- 261 -

Page 279: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

送信側の非同期メッセージ基盤 受信側の非同期メッセージ基盤

ノーティフィケー

ションサービス

JMS MQD (注1.) グローバルサーバ

のMQD

配信型 ○ ○ ○ ○ (注2.)

集信型 ○ ○ ○ ○ (注2.)

中継型 ○ ○ ○ ○ (注2.)

MQD (注1.) 1:1型 ○ ○ ○ ○

配信型 × × × ×

集信型 ○ ○ ○ ○

中継型 ○ ○ ○ ○

グローバルサー

バのMQD1:1型 ○ ○ (注2.) ○ -

配信型 × × × -

集信型 ○ ○ (注2.) ○ -

中継型 ○ ○ (注2.) ○ -

○:通信可能 ×:通信不可能 -:イベントチャネル連携サービスの機能対象外

1. Linux、Windows Server(R) for Itanium-based Systems および Windows Server(R) x64 Editions では使用できません。

2. 通信可能なグローバルサーバのバージョンは以下となります。

[MSP]の場合

- OS IV/MSP INTERSTAGE/MessageQueueDirector V20L10 D04061 以降

- OS IV/MSP INTERSTAGE/AIMApplicationDirector V20L10 D04061 以降

- OS IV/MSP Interstage AIMApplicationDirector V30L10 以降

[XSP]の場合

- OS IV/XSP INTERSTAGE/MessageQueueDirector V20L10 D04071 以降

- OS IV/XSP INTERSTAGE/AIMApplicationDirector V20L10 D04071 以降

- OS IV/XSP Interstage AIMApplicationDirector V30L10 以降

1:1型のメッセージ通信

1:1型のメッセージ通信は、 も基本的なメッセージ通信の組み合わせであり、送信元と受信先の非同期メッセージ基盤の組み合わ

せに関わらず使用できます。

メッセージの送信元の非同期メッセージ基盤がノーティフィケーションサービスやJMSの場合は、Point-To-Pointモデルのイベントチャ

ネルを使用することでメッセージの一意性の向上や送信アプリケーションによる異常メッセージ格納時の復旧方法を容易に行うことが

できます。

また、1:1型のメッセージ通信に限らず配信型および集信型の場合でもメッセージの受信先の非同期メッセージ基盤がノーティフィ

ケーションサービスやJMSの場合は、アプリケーションの運用に合わせて受信キューのメッセージングモデルをPoint-To-Pointモデルや

MultiCastモデルから選択できます。

なお、MQDのメッセージキューのメッセージングモデルは、Point-To-Pointモデルに相当します。

1:1型の通信関係の指定は、後述のサービス定義により行います。

1:1型のメッセージ通信の一例として、送信側と受信側がノーティフィケーションサービスの場合の通信モデルを図11.6 1:1型のメッ

セージ通信の通信モデルの例に示します。

- 262 -

Page 280: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.6 1:1型のメッセージ通信の通信モデルの例

配信型のメッセージ通信

配信型のメッセージ通信は、特定の送信キューから同一のメッセージを複数の受信キューへ送信する場合に使用するメッセージ通

信の組み合わせであり、送信元の非同期メッセージ基盤がノーティフィケーションサービスまたはJMSの場合に使用できます。

受信キューが特定のサーバに集中していても別々のサーバに分散していても、メッセージを配信することができます。

メッセージの送信元のイベントチャネルはMultiCastモデルで作成する必要があり、メッセージは配信先のすべてのサーバへの転送

が完了した時点で送信キューから削除されます。

なお、メッセージの受信先の非同期メッセージ基盤は同一でも混在してもかまいません。

配信型の通信関係の指定は、後述のサービス定義により行います。

配信型のメッセージ通信の一例として、送信側がノーティフィケーションサービスで受信側がノーティフィケーションサービスとMQDの

場合にメッセージの配信を行う通信モデルを図11.7 配信型のメッセージ通信の通信モデルの例に示します。

- 263 -

Page 281: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.7 配信型のメッセージ通信の通信モデルの例

集信型のメッセージ通信

集信型のメッセージ通信は、複数の送信キューから特定の受信キューへメッセージを送信する場合に使用するメッセージ通信の組

み合わせであり、送信元と受信先の非同期メッセージ基盤の組み合わせに関わらず使用できます。

送信キューが特定のサーバに集中していても別々のサーバに分散していても、メッセージを集信することができます。

メッセージの送信元の非同期メッセージ基盤がノーティフィケーションサービスやJMSの場合は、Point-To-Pointモデルのイベントチャ

ネルを使用することでメッセージの一意性の向上や送信アプリケーションによる異常メッセージ格納時の復旧方法を容易に行うことが

できます。

なお、メッセージの送信元の非同期メッセージ基盤は同一でも混在してもかまいません。

集信型の通信関係の指定は、後述のサービス定義により行います。

集信型のメッセージ通信の一例として、送信側がノーティフィケーションサービスとMQDで受信側がノーティフィケーションサービスの

場合にメッセージの集信を行う通信モデルを図11.8 集信型のメッセージ通信の通信モデルの例に示します。

- 264 -

Page 282: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.8 集信型のメッセージ通信の通信モデルの例

中継型のメッセージ通信

中継型のメッセージ通信は、送信キューから受信キューへメッセージを送信する場合に、送信側のサーバからメッセージを受信側の

サーバに直接送信せず、一旦、別のサーバ(中継用のサーバ)を介して行う組み合わせであり、送信元と受信先の非同期メッセージ基

盤の組み合わせに関わらず、表11.30 通信可能なメッセージの形式に示す通信可能なメッセージの形式の範囲で使用できます。

送信サーバから受信サーバへのネットワークがセキュリティ等により直接接続されていない場合や、送信サーバから複数の受信サー

バにメッセージを送信する場合の通信関係を簡便にするための通信ハブの様な位置づけとして中継型のメッセージ通信を使用しま

す。

本通信形態は、1:1型の通信の応用であり、配信型や集信型の通信と組み合わせて使用することで多様な通信形態を構築すること

ができます。

中継型の通信関係の指定は、受信キューと送信キューの定義を組み合わせることで後述のサービス定義により行います。

中継型のメッセージ通信の一例として、ノーティフィケーションサービスを使用してメッセージの中継を行う通信モデルを図11.9 中継

型のメッセージ通信の通信モデルの例に示します。

- 265 -

Page 283: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.9 中継型のメッセージ通信の通信モデルの例

中継型のメッセージ通信と配信型のメッセージ通信を組み合わせた通信の一例として、ノーティフィケーションサービスを使用してメッ

セージの中継と配信を行う通信モデルを、図11.10 中継型と配信型を組み合わせたメッセージ通信の通信モデルの例に示します。

図11.10 中継型と配信型を組み合わせたメッセージ通信の通信モデルの例

- 266 -

Page 284: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.2.1.3 イベントチャネル連携サービスの用語と通信相手の識別

イベントチャネル連携サービス特有の用語を以下に説明します。また、イベントチャネル連携サービスが通信相手を識別する方法に

ついて用語を用いて説明します。

MQDサーバ識別子

サーバ間の非同期通信を行う各サーバ上のイベントチャネル連携サービスが動作するMQDを識別する識別子です。本識別子は、

イベントチャネル連携サービスで接続するサーバ間で一意な値にします。

メッセージの送信側のイベントチャネル連携サービスでは、メッセージの受信側のイベントチャネル連携サービスの相手MQDサーバ

識別子を指定することでメッセージの送信先を特定します。

送信キュー

送信キューは、メッセージを相手サーバに送信するために使用するキューです。

受信キュー

受信キューは、サーバ間でメッセージを受信するために使用するキューです。

チャネルコネクション

送信キューと受信キューの論理的な結合関係です。チャネルコネクションは、以下の契機で自動的に接続されます。

・ 自サーバのイベントチャネル連携サービスおよび相手サーバのイベントチャネル連携サービスを起動した契機

・ mqdnsgwcommコマンドによりサービスの通信を再開した契機。mqdnsgwcommコマンドの詳細については、“ 11.7.7mqdnsgwcomm(サービスの通信を制御する)”を参照してください。

送信チャネル識別子

任意のチャネルコネクションを特定するための識別子です。イベントチャネル連携サービスの通信を制御する場合に使用します。

送信チャネル識別子は、MQDシステム内で一意な値にします。

イベントチャネル連携サービスの通信を制御する詳細については、“11.2.9 サービスの通信制御”を参照してください。

イベントチャネル連携サービスの通信概念について、図11.11 イベントチャネル連携サービスの通信概念に示します。

- 267 -

Page 285: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.11 イベントチャネル連携サービスの通信概念

送信キューと受信キューの対応関係は、イベントチャネル連携サービスのサービス定義で指定します。詳細については、“11.3.3.1サービス定義の記述”を参照してください。

11.2.1.4 メッセージ送信

サーバ間でメッセージを送信する機能です。イベントチャネル連携サービスのサービス定義で送信キューと受信キューの対応関係を

定義することで、送信キューから受信キューへメッセージを送信します。

メッセージの送信の流れを図11.12 メッセージ送信の流れに示します。

図11.12 メッセージ送信の流れ

[図の説明]1) 送信アプリケーションが、利用する非同期メッセージ基盤のAPIを用いて送信キューにメッセージを格納します。

- 268 -

Page 286: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

2) イベントチャネル連携サービスが、サービス定義にしたがって自動的に送信キューから、メッセージを取り出します。

3) イベントチャネル連携サービスが、CORBAサービスを使用して相手サーバのイベントチャネル連携サービス(CORBAサービスの

サーバアプリケーションに相当)を呼び出し、メッセージを渡します。

表11.4 メッセージ送信仕様詳細にメッセージ送信仕様の詳細を示します。

表11.4 メッセージ送信仕様詳細

項目 内容

送信可能な 大メッセージ長 約2Mバイト(2,088,960バイト)

相手サーバに送信可能なメッセージ

の形式

相手サーバに送信可能なメッセージの形式は、“11.6 アプリケーショ

ンの作成方法”に示すメッセージの形式の範囲で使用してください。

送信できない形式のメッセージを送信キューに格納すると、当該送信

キューの以降のメッセージは相手サーバへ送信されません。

チャネルコネクションを初期化した場

合の動作

送信側の非同期メッセージ基盤がノーティフィケーションサービスまたは

JMSであり、かつ送信キューをMultiCastモデルとして利用する場合、

チャネルコネクションを初期化すると、その時点で送信キューに滞留し

ていたメッセージは受信キューに送信されません。チャネルコネクショ

ンの初期化はメッセージが滞留していない状態で実行してください。

イベントチャネル連携サービスが未起

動状態で格納されたメッセージの扱い

イベントチャネル連携サービスが未起動状態で送信キューに格納さ

れたメッセージは、イベントチャネル連携サービスを再起動した際に送

信されます。

ただし、送信側の非同期メッセージ基盤がノーティフィケーションサー

ビスまたはJMSであり、かつ送信キューをMultiCastモデルとして利用

する場合、イベントチャネル連携サービスを初めて起動するまでに送

信キューに格納されたメッセージは送信されません。

注意事項

・ esmonitorchnlコマンドによる接続情報の回収

非同期メッセージ基盤がノーティフィケーションサービスまたはJMSの場合、通信中に、イベントチャネル連携サービスのサービス

定義のCHANNELセクションまたはRCHANNELセクションに記述したキュー名への接続情報を、esmonitorchnlコマンドにより回収

しないでください。

キューに滞留したメッセージが消失したり、重複したりする可能性があります。

11.2.1.5 メッセージ受信

相手サーバからのメッセージを受信する機能です。相手サーバのサービス定義で、送信キューと受信キューの対応関係を定義しま

す。イベントチャネル連携サービスは、この定義で対応づけられた送信キューからメッセージを受信し、該当の受信キューにメッセージ

を格納します。

サーバ間のメッセージ受信の流れを図11.13 メッセージ受信の流れに示します。

図11.13 メッセージ受信の流れ

- 269 -

Page 287: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

[図の説明]1) イベントチャネル連携サービスが、CORBAサービスを介して相手サーバからメッセージを受信します。

2) イベントチャネル連携サービスが、送信側のサービス定義で指定した受信キューにメッセージを格納します。

3) 受信アプリケーションが、利用する非同期メッセージ基盤のAPIを用いて受信キューからメッセージを取り出します。

注意事項

イベントチャネル連携サービスのメッセージ受信機能を使用する場合、以下の点に注意してください。

・ esmonitorchnlコマンドによる接続情報の回収

非同期メッセージ基盤がノーティフィケーションサービスまたはJMSの場合、通信中に、イベントチャネル連携サービスのサービス

定義のCHANNELセクションまたはRCHANNELセクションに記述したキュー名への接続情報を、esmonitorchnlコマンドにより回収

しないでください。

キューに滞留したメッセージが消失したり、重複したりする可能性があります。

11.2.1.6 相手サーバとの通信方法

イベントチャネル連携サービスは、送信サーバが、受信サーバと通信するために受信サーバのオブジェクトリファレンスを以下の二つ

の方式のどちらかで取得します。

・ ネーミングサービス方式:

受信サーバを登録したネーミングサービスを指定する方式

・ IORファイル方式:

受信サーバで出力したIORファイルを指定する方式

Windowsサーバ、UNIXサーバ、Linuxサーバと通信する場合は、ネーミングサービス方式を推奨します。

グローバルサーバと通信する場合は、IORファイル方式を使用してください。ネーミングサーバ方式は使用できません。

ネーミングサービス方式

Windowsサーバ、UNIXサーバ、Linuxサーバと通信を行う場合に使用する方式です。(グローバルサーバとの通信には使用できま

せん。)

サービス定義に指定したURLリストファイルに記述されたネーミングサービスのURLを順次参照し、相手サーバのイベントチャネル連

携サービスのオブジェクトリファレンスを取得し、通信できるようにします。

IORファイル方式に比べサーバ移動などのシステム環境変更での運用操作が軽減できます。

ネーミングサービス方式を図11.14 ネーミングサービス方式に示します。

- 270 -

Page 288: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.14 ネーミングサービス方式

[図の説明]1) ユーザが、受信側のサーバで一括登録コマンド(mqdnsgwinit_ns)を実行します。登録コマンドは受信側イベントチャネル連携サー

ビスのオブジェクトリファレンスをネーミングサービスへ登録します。

2) イベントチャネル連携サービスの送信側プロセスが、ユーザが作成した 1)で登録したネーミングサービスのアドレスが記述されている

URLリストファイルを取得します。

3) イベントチャネル連携サービスの送信側プロセスが、取得したURLリストからネーミングサービスのURLへ順次検索を行い、受信サー

バのオブジェクトリファレンスを取得します。

4) イベントチャネル連携サービスの送信側プロセスが、取得したオブジェクトリファレンスから受信サーバの位置を特定し、メッセージ

を送信します。

IORファイル方式

グローバルサーバと通信を行う場合に使用する方式です。(Windowsサーバ、UNIXサーバ、Linuxサーバでも使用できますが、Windowsサーバ、UNIXサーバ、Linuxサーバの場合、ネーミングサービス方式を推奨します。)

メッセージの受信先となるグローバルサーバのサーバ間非同期通信機能のオブジェクトリファレンスをIOR化したファイルをメッセージ

の送信元となるイベントチャネル連携サービスにFTP等により配布し、そのファイルをサービス定義に指定することで相手サーバと通信

できるようにします。

IORファイル方式を図11.15 IORファイル方式に示します。

- 271 -

Page 289: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.15 IORファイル方式

[図の説明]1) ユーザが、受信側のサーバで一括登録コマンド(mqdnsgwinit_ior)を実行し、IORファイルを作成します。

2) ユーザが、出力されたIORファイルを送信サーバへ配布します。

3) ユーザが、配布されたIORファイルを送信側のサーバのイベントチャネル連携サービスへ登録します。

4) イベントチャネル連携サービスの送信プロセスが、登録されたIORファイルから受信側のサーバの位置を特定します。

5) イベントチャネル連携サービスの送信プロセスが、送信サーバから受信サーバへメッセージを送信します。

11.2.2 メッセージ保証

イベントチャネル連携サービスは、サーバ間でネットワーク異常が発生してもメッセージの欠落や冗送を防止する保証処理を行って

います。メッセージ送受信中の主な異常事象に対する処理内容を以下に説明します。

ネットワーク異常に対する処理

サーバ間でメッセージの送受信中にネットワーク異常(通信機器異常など)が発生した場合、イベントチャネル連携サービスは、メッ

セージの送達確認(相手サーバが受信したかどうかの確認)を行い、受信していないメッセージを再送することでメッセージを保証しま

す。

システムダウンに対する処理

システムダウンとは、自サーバまたは相手サーバのシステムダウンと、MQD、CORBAサービス、ノーティフィケーションサービスまたは

JMSの異常終了を意味します。

サーバ間でメッセージ送受信中に、システムダウンが発生した場合、システム再起動後、イベントチャネル連携サービスは、メッセー

ジの送達確認(相手サーバが受信したかどうかの確認)を行い、受信していないメッセージを再送することでメッセージを保証します。

11.2.3 パッキング転送機能

パッキング転送機能は、イベントチャネル連携サービスのメッセージ転送性能を向上させるための機能です。アプリケーションの介在

なしでイベントチャネル連携サービスが複数のメッセージをパッキングして一括送信します。

図11.16 パッキング転送機能の概要にパッキング転送機能の概要を示します。

- 272 -

Page 290: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.16 パッキング転送機能の概要

[図の説明]

送信側および受信側のイベントチャネル連携サービスでは、以下の処理を行います。

1) 送信側のイベントチャネル連携サービスは、送信キューから複数のメッセージを取り出し、一つにパッキングします。

2) 一つにパッキングしたメッセージを転送します。

3) 受信側のイベントチャネル連携サービスは、パッキングされた複数のメッセージをアンパッキング(パッキング前の状態に戻す処理)して受信キューに格納します。

なお、相手システムがパッキング転送機能をサポートしてない場合(Interstage Application Server V4.0の場合)、チャネルコネクション

確立時にMQD6340のメッセージをシステムログに出力し、1通ずつメッセージを転送します。

パッキング転送機能を使用する場合、サービス定義に以下の項目が必要です。

・ パッキング数

パッキングするメッセージ数。1度の送信で、2~100通のメッセージを転送できます。パッキング数の設定の目安は、以下の計算

式を参考に設計してください。

パッキング数 = N × T ≦ 100N: 送信アプリケーションが1秒間に送信キューに格納するメッセージ数

T: 大遅延時間(秒) なお、メモリ不足などによりパッキング数は一時的に定義値より小さくなることがあります。この場合、MQD6341のメッセージがシス

テムログに出力されます。

・ 大遅延時間

メッセージがパッキング数に達しない場合に、待ち合わせをするための送信待ち時間(秒)を指定します。 大遅延時間(300秒)以内の転送を保証し、かつ、パッキングすることで効率よくメッセージを転送します。 大遅延時間の設定の目安は、送信キュー

にパッキング数分のメッセージが溜まる時間となります。なお、当項目は、パッキング転送機能を使用する場合にだけ有効です。

パッキング転送機能は、送信側のサーバのイベントチャネル連携サービスのサービス定義でパッキング数と 大遅延時間を指定す

ることで利用できます。定義方法については、表11.21 CHANNELセクションの記述内容を参照してください。

パッキング転送中にエラーが発生した場合

パッキング転送中にエラーが発生した場合、イベントチャネル連携サービスは以下のように動作します。

- 273 -

Page 291: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

送信側の非同期メッセージ基盤がMQDの場合

パッキング単位に送信が停止します。エラーの発生したメッセージがキューの先頭にあるとは限りません。

送信側の非同期メッセージ基盤がノーティフィケーションサービスまたはJMSの場合

パッキング送信中にエラーが発生した場合は、一時的にパッキング送信を1通づつの送信に切り替え、送信をリトライします。そのた

め、送信異常メッセージがキューの先頭になって送信が停止します。ユーザがキューの先頭にある送信異常メッセージに対する対処

をした後に送信を再開すると、再びパッキング転送で送信を行います。

パッキング転送中にエラーが発生した場合のメッセージ滞留状態の例を図11.17 パッキング転送エラー発生時のメッセージ滞留状態

に示します。

図11.17 パッキング転送エラー発生時のメッセージ滞留状態

11.2.4 プライオリティ機能

プライオリティとは、メッセージ送受信の優先度を意味します。メッセージのプライオリティを設定することにより、緊急のメッセージを優

先的に処理させることができます。

プライオリティは各非同期メッセージ基盤により複数の段階があり、メッセージ送信時にアプリケーションが指定します。

プラリオリティ値は非同期メッセージ基盤により段階数が異なるため、プライオリティ値が相違するサーバ間でメッセージ交換する場合

は、イベントチャネル連携サービスが表11.5 非同期メッセージ基盤のプライオリティの対応関係に示すようにプライオリティ値を変換し

ています。

なお、グローバルサーバと通信する場合はプライオリティ値の変換は行われません。グローバルサーバでは、WindowsサーバやUNIXサーバ、Linuxサーバからメッセージを受信した順番に受信キューにメッセージを格納します。WindowsサーバやUNIXサーバ、Linuxサーバでは、グローバルサーバからメッセージを受信すると受信キューのデフォルトのプライオリティ値を指定してメッセージを受信

キューに格納します。

表11.5 非同期メッセージ基盤のプライオリティの対応関係

送信側の非同期メッ

セージ基盤

受信側の非同期メッセージ基盤

ノーティフィケー

ションサービス

JMS

MQD MQD

ノーティ

フィケー

ションサー

ビス

3(高) 3 9 1 1

2 2 7 2

1 1 5 3 2

0 0 4 4

- 274 -

Page 292: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

送信側の非同期メッ

セージ基盤

受信側の非同期メッセージ基盤

ノーティフィケー

ションサービス

JMS

MQD MQD

-1 -1 3 5

-2 -2 2 6 3

-3(低) -3 0 7

JMS 9(高) 3 9 1 1

8 3 8

7 2 7 2

6 2 6

5 1 5 3 2

4 0 4 4

3 -1 3 5

2 -2 2 6 3

1 -3 1 7

0(低) -3 0

MQD

1(高) 3 9 1 1

2 2 7 2 2

3 1 5 3 3

4 0 4 4

5 -1 3 5

6 -2 2 6

7(低) -3 0 7

MQD

1(高) 3 9 1 1

2 0 4 2 2

3(低) -3 0 3 3

プライオリティ機能を使用する場合、送信側のサーバの非同期メッセージ基盤により通信モデルやメッセージの送信順番が異なりま

す。以下に送信側のサーバで各非同期メッセージ基盤を使用する場合のプライオリティの使用方法を説明します。

ノーティフィケーションサービスでプライオリティを使用する

送信側のサーバの非同期メッセージ基盤がノーティフィケーションサービスの場合、送信側のイベントチャネルのQos(OrderPolicy)をFifoOrderにするため、イベントデータは送信側のサーバでサプライヤが格納した順に受信側のサーバへ送信されます。

受信側のサーバでは、非同期メッセージ基盤がノーティフィケーションサービスの場合は、コンシューマがイベントデータを受信する

際に、当該のイベントチャネルのQos(OrderPolicy)をPriorityOrderにしてからイベントデータを受信することでプライオリティが有効にな

ります。

なお、受信側のサーバが、その他の非同期メッセージ基盤の場合は、プライオリティが有効になるため、先に送信された低レベルの

プライオリティのイベントデータよりも後から送信された高レベルのプライオリティのイベントデータを受信アプリケーションが優先して処

理できます。

ノーティフィケーションサービスを使用したプライオリティの取り扱い方法を図11.18 ノーティフィケーションサービスを使用したプライオ

リティの取り扱い方法に示します。

- 275 -

Page 293: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.18 ノーティフィケーションサービスを使用したプライオリティの取り扱い方法

[図の説明]

1) サプライヤがイベントチャネルに格納されているイベントデータより高レベルのプライオリティ[3]のイベントデータを格納します。

2) イベントチャネル連携サービスは、当該イベントチャネルのイベントデータをプライオリティの高低に関わらず格納された順序で受信

側のサーバへ送信します。

3) 送信側のイベントチャネルに格納された高レベルのプライオリティ[3]のイベントデータが受信側のサーバに送信されます。サプライ

ヤが、イベントチャネルのQos(OrderPolicy)をPriorityOrderにしてからイベントデータを受信することで高レベルのプライオリティ[3]のイ

ベントデータは、先に受信側のサーバに送信された低レベルのプライオリティ[1]のイベントデータよりも優先して処理されます。

JMSでプライオリティを使用する

送信側のサーバの非同期メッセージ基盤がJMSの場合、送信側のJMSのキューはプライオリティ毎に作成し、集信型のメッセージン

グモデルを使用することでプライオリティ機能を使用します。

送信側のJMSのキューに格納されたメッセージは、JMSのキュー単位に受信側のサーバに送信され、受信側のサーバでプライオリ

ティが有効になり、先に送信された低レベルのプライオリティのメッセージよりも後から送信された高レベルのプライオリティのメッセージ

を受信アプリケーションが優先して処理できます。

JMSを使用したプライオリティの取り扱い方法を図11.19 JMSを使用したプライオリティの取り扱い方法に示します。

- 276 -

Page 294: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.19 JMSを使用したプライオリティの取り扱い方法

[図の説明]

1) SenderまたはPublisherが、低レベルのプライオリティ[1]のメッセージを送信側のサーバのJMSキュー1に格納します。

2) 低レベルのプライオリティ[1]のメッセージが、 初に受信側のサーバに送信されます。

3) SenderまたはPublisherが、高レベルのプライオリティ[9]のメッセージを送信サーバのJMSキュー2に格納します。

4) 高レベルのプライオリティ[9]のメッセージが、受信側のサーバへ送信されます。高レベルのプライオリティのメッセージ[9]は、先に受

信側のサーバに送信された低レベルのプライオリティ[1]のメッセージよりも優先して処理されます。

MQDでプライオリティを使用する

送信側のサーバの非同期メッセージ基盤がMQDの場合、送信側のサーバに格納されている高レベルのプライオリティのメッセージ

から受信側のサーバへ送信されます。

受信側のサーバでは、送信側で指定したプライオリティが有効になり、高レベルのプライオリティのメッセージを受信アプリケーション

が優先して処理できます。

MQDを使用したプライオリティの取り扱い方法を図11.20 MQDを使用したプライオリティの使用方法に示します。

- 277 -

Page 295: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.20 MQDを使用したプライオリティの使用方法

[図の説明]

1) 送信アプリケーションが、送信メッセージキューに格納されているメッセージよりも高レベルのプライオリティ[1]のメッセージを格納し

ます。

2) 初に格納されている低レベルのプライオリティ[3]のメッセージよりも、後から格納した高レベルのプライオリティ[1]のメッセージが

優先して受信側のサーバに送信されます。

3) 低レベルのプライオリティ[3]のメッセージは、高レベルのプライオリティ[1]のメッセージが送信された後に受信サーバに送信されま

す。受信側のサーバのアプリケーションは、高レベルのプライオリティ[1]のメッセージから処理することができます。

11.2.5 文字コード変換機能

送信側のサーバと受信側のサーバでプラットフォームの違いなどにより文字コードが異なる場合に送受信するメッセージに対して文

字コードの変換を行う機能です。

イベントチャネル連携サービスでは、CORBAサービスの文字コードの変換機能を利用してメッセージに対する文字コードの変換を行

います。

文字コードの変換が可能な組み合わせを表11.6 文字コードの変換が可能な組み合わせに示します。

表11.6 文字コードの変換が可能な組み合わせ

送信側のサーバの文字コード 受信側のサーバの文字コード

ASCII、およびEUC

EBCDICおよびJEF(英小文字使用)

EBCDICおよびJEF(半角カナ使用)

ASCIIおよびシフトJIS

ASCII、およびシフトJIS

EBCDICおよびJEF(英小文字使用)

EBCDICおよびJEF(半角カナ使用)

ASCIIおよびEUC

- 278 -

Page 296: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

受信側のサーバの場合、本値は“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”でmqdnsgwinit_ns.sh、または

mqdnsgwinit_ior.shに指定するコード系と同じコード系を設定してください。

文字コードの変換が可能なメッセージの形式を表11.7 文字コードの変換が可能なメッセージの形式に示します。

表11.7 文字コードの変換が可能なメッセージの形式

送信側のサーバの非同期メッセージ基盤 メッセージの形式

ノーティフィケーションサービス wchar

string

wstring

JMS TextMessage

MQD (注1) 文字列データだけで作成したメッセージ

1. Windows Server(R) for Itanium-based Systems および Windows Server(R) x64 Editions では使用できません。

文字コードの変換が失敗したメッセージの取り扱いについて

文字コードの変換が失敗した場合、当該メッセージを格納している送信キューの後続のメッセージは、運用操作で当該メッセージを

削除するまで送信されません。

ただし、送信側の非同期メッセージ基盤にMQDを使用している場合は、送信異常メッセージを退避する退避用メッセージキューの定

義をすることで、イベントチャネル連携サービスが自動的に文字コードの変換に失敗したメッセージを退避し、継続してメッセージの送

信を行うことができます。

送信異常メッセージの退避用キューは、イベントチャネル連携サービスのサービス定義で送信異常メッセージの退避用キューを指定

することで利用できます。定義方法については、表11.18 MNGRセクションの記述内容を参照してください。

送信異常メッセージの退避用キューを使用した場合のメッセージの取り扱いを図11.21 送信異常メッセージの退避用キューを使用し

た場合のメッセージの取り扱いに示します。

- 279 -

Page 297: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.21 送信異常メッセージの退避用キューを使用した場合のメッセージの取り扱い

[図の説明]

1) メッセージ[a]の送信時にメッセージ内に変換元や変換先のコード系に属さない文字が含まれるなどの理由により文字コードの変換

が失敗します。

2) 文字コードの変換に失敗したメッセージ[a]が、イベントチャネル連携サービスにより自動的に送信異常メッセージの退避用キューに

格納されます。

3) 文字コードの変換に失敗したメッセージ[a]以降のメッセージ[b]は、受信側のサーバに送信されます。

なお、送信側の非同期メッセージ基盤にMQDを使用している場合、送信異常メッセージの退避用キューに格納されるメッセージに

は、文字コードの変換が失敗したエラー情報として表11.8 文字コードの変換に失敗したMQDのメッセージヘッダの内容に示す値(COBOL言語の場合)がMQDのメッセージヘッダに設定されます。その他のMQDのメッセージヘッダ情報は、メッセージ送信時の値がそのまま

設定されています。C言語の場合にも同様の情報が設定されます。

表11.8 文字コードの変換に失敗したMQDのメッセージヘッダの内容

項目名 和名 データ型 設定値

MSG-NAME

メッセージ名 PIC X(64) SEND-MSG-ERR

ORIGINAL-QNAME

送信キュー名 PIC X(64) 文字コードの変換が失敗したメッセージ送信元の

MQDのメッセージキュー名

パッキング転送機能と併用した場合の文字コードの変換が失敗したメッセージの取り扱いについて

送信側の非同期メッセージ基盤がノーティフィケーションサービスまたはJMSの場合

パッキング送信中にエラーが発生した場合は、一時的にパッキング送信を1通づつの送信に切り替え、送信をリトライします。そのた

め、送信異常メッセージがキューの先頭になって送信が停止します。

- 280 -

Page 298: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ユーザがキューの先頭にある送信異常メッセージに対する対処をした後に送信を再開すると、再びパッキング転送で送信を行いま

す。

図11.22 ノーティフィケーションサービスまたはJMSの場合に概念図を示します。

図11.22 ノーティフィケーションサービスまたはJMSの場合

送信側の非同期メッセージ基盤がMQDの場合

パッキングの単位で送信が停止します。エラーの発生したメッセージがキューの先頭にあるとは限りません。

エラーの発生したメッセージを退避する設定にしている場合は、送信異常メッセージだけではなく、パッキング単位内の全てのメッセー

ジが退避されます。

図11.23 送信異常メッセージを退避する設定にしていない場合に退避する設定にしていない場合、図11.24 送信異常メッセージを退

避する設定にしている場合に退避する設定にしている場合の概念図を示します。

図11.23 送信異常メッセージを退避する設定にしていない場合

- 281 -

Page 299: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.24 送信異常メッセージを退避する設定にしている場合

11.2.6 MQDのメッセージヘッダ通知機能

MQDのメッセージヘッダ通知機能は、送信アプリケーションが設定したMQDのメッセージヘッダ情報を受信アプリケーションに通知

することで運用性を向上させる機能です。送信アプリケーションが指定したMQDのメッセージヘッダ情報を受信アプリケーションで利

用することができます。

本機能は、送信側と受信側の非同期メッセージ基盤が両方ともWindowsサーバのMQDまたはUNIXサーバのMQDの場合に使用す

ることができます。

MQDのメッセージヘッダ通知機能は、送信側のサーバのイベントチャネル連携サービスのサービス定義で通知の有無を指定するこ

とで利用できます。定義方法については、図11.24 送信異常メッセージを退避する設定にしている場合を参照してください。

MQDのメッセージヘッダ通知機能で通知されるMQDのメッセージヘッダの内容

本機能を用いてメッセージを送信した時に受信アプリケーション(COBOL言語で作成)に通知されるMQDのメッセージヘッダの内容

について表11.9 受信アプリケーションに通知されるMQDのメッセージヘッダの内容に示します。なお、C言語の場合も同様の情報が

通知されます。

表11.9 受信アプリケーションに通知されるMQDのメッセージヘッダの内容

項目名 和名 データ型 設定値

MSG-TYPE メッセージタイプ PIC X(1) X’02’: 一般のメッセージ

CODE-TYPE

コード系情報 PIC X(1) X’01’: EUCコード

X’02’: SJISコード

BODY-CODE

メッセージ本体のコード系

情報

PIC X(1) X’01’: EUCコード

X’02’: SJISコード

UNIT-ID ユニット識別子 PIC X(128) メッセージ番号.タイムスタンプ.スレッドID.プロセス

ID.キュー名.MQDシステム名

MSG-SERIALNO

メッセージ通番 PIC 9(9)COMP-5

ユニット内のメッセージ通番

EOU-FLAG ユニット終了フラグ PIC X(1) X’00’: ユニットの終端

X’01’: ユニットの途中

ORIGINAL-SYSNAME

送信MQDシステム名 PIC X(9) 送信側のMQDサーバ識別子

VERSION バージョン PIC X(8) “1.1”

- 282 -

Page 300: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名 和名 データ型 設定値

ORIGINAL-QNAME

送信キュー名 PIC X(64) 送信用メッセージキュー名

GUARANTEE

メッセージ保証レベル PIC X(1) X’02’: ディスク型

ORIGINAL-TIMESTAMP

送信タイムスタンプ PIC 9(9)COMP-5

送信アプリケーションがメッセージを送信した日時

(1970/1/1 00:00:00 UTCからの秒数)

TRANS-TIMESTAMP

転送タイムスタンプ PIC 9(9)COMP-5

送信側のサーバのイベントチャネル連携サービス

がメッセージを送信した日時(1970/1/1 00:00:00UTCからの秒数)

ARRIVE-TIMESTAMP

到着タイムスタンプ PIC 9(9)COMP-5

受信側のサーバのイベントチャネル連携サービス

がメッセージを受信した日時(1970/1/1 00:00:00UTCからの秒数)

DELAY-TIME

転送遅延時間 PIC 9(9)COMP-5

到着タイムスタンプと転送タイムスタンプの差の時間

(秒数)の累積

QUEUING-TIME

キューイング時間 PIC 9(9)COMP-5

イベントチャネル連携サービスがメッセージを受信

してから受信アプリケーションがメッセージを受信す

るまでの差の時間(秒数)

MSG-NAME

メッセージ名 PIC X(64) 送信アプリケーションの指定値

MSG-ID メッセージ識別子 PIC 9(9)COMP-5

送信アプリケーションの指定値

PRIORITY プライオリティ PIC 9(9)COMP-5

送信アプリケーションの指定値

MSGBODY-LENGTH

メッセージ本体長 PIC 9(9)COMP-5

送信アプリケーションの指定値

RETURN-QNAME

返信キュー名 PIC X(64) 送信アプリケーションの指定値

TIMELIMIT 大保存時間 PIC 9(9)COMP-5

0

ACCESS-RIGHT

アクセス権 PIC 9(9)COMP-5

0

MQD以外と通信する場合のMQDのメッセージヘッダの内容

メッセージの送信側のサーバの非同期メッセージ基盤が、ノーティフィケーションサービス、JMSおよびグローバルサーバの場合は、

受信アプリケーションにMQDのメッセージヘッダ情報は通知されません。

また、送信側のサーバの非同期メッセージ基盤がMQDであっても、受信側のサーバの非同期メッセージ基盤がMQD以外の場合

は、MQDのメッセージヘッダ情報は通知されません。

本連携時のメッセージヘッダに対する処理内容について以下に説明します。

・ メッセージ送信

MQDから別の非同期メッセージ基盤にメッセージを送信するときは、送信メッセージキューより取り出したメッセージのメッセージ

ヘッダ部分を取り除きメッセージ本体だけを相手サーバに送信します。

・ メッセージ受信

MQD以外の非同期メッセージ基盤よりメッセージを受信した場合は、メッセージヘッダを自動生成し、メッセージの先頭に付加し

て受信メッセージキューに格納します。

ノーティフィケーションサービス、JMSおよびグローバルサーバと通信する場合のメッセージヘッダの取り扱いを図11.25 メッセージヘッ

ダの取り扱いに示します。

- 283 -

Page 301: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.25 メッセージヘッダの取り扱い

MQD以外の非同期メッセージ基盤から送信されたメッセージに対してイベントチャネル連携サービスが自動的に作成するMQDのメッ

セージヘッダの内容(COBOL言語の場合)について表11.10 イベントチャネル連携サービスが自動的に作成するMQDのメッセージヘッ

ダの内容に示します。なお、C言語の場合も同様の情報が通知されます。

表11.10 イベントチャネル連携サービスが自動的に作成するMQDのメッセージヘッダの内容

項目名 和名 データ型 設定値

MSG-TYPE メッセージタイプ PIC X(1) X’02’: 一般のメッセージ

CODE-TYPE

コード系情報 PIC X(1) X’01’: EUCコード

X’02’: SJISコード

BODY-CODE

メッセージ本体のコード系

情報

PIC X(1) X’01’: EUCコード

X’02’: SJISコード

UNIT-ID ユニット識別子 PIC X(128) システムが自動的に設定する数値.タイムスタンプ.

スレッドID.プロセスID.キュー名.MQDシステム名

MSG-SERIALNO

メッセージ通番 PIC 9(9)COMP-5

1

EOU-FLAG ユニット終了フラグ PIC X(1) X’00’: ユニットの終端

ORIGINAL-SYSNAME

送信MQDシステム名 PIC X(9) 送信側のMQDサーバ識別子

VERSION バージョン PIC X(8) “1.1”

- 284 -

Page 302: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

項目名 和名 データ型 設定値

ORIGINAL-QNAME

送信キュー名 PIC X(64) 送信チャネル識別子

GUARANTEE

メッセージ保証レベル PIC X(1) X’02’: ディスク型

ORIGINAL-TIMESTAMP

送信タイムスタンプ PIC 9(9)COMP-5

0

TRANS-TIMESTAMP

転送タイムスタンプ PIC 9(9)COMP-5

0

ARRIVE-TIMESTAMP

到着タイムスタンプ PIC 9(9)COMP-5

受信側のサーバのイベントチャネル連携サービス

がメッセージを受信した日時(1970/1/1 00:00:00UTCからの秒数)

DELAY-TIME

転送遅延時間 PIC 9(9)COMP-5

0

QUEUING-TIME

キューイング時間 PIC 9(9)COMP-5

イベントチャネル連携サービスがメッセージを受信

してから受信アプリケーションがメッセージを受信す

るまでの差の時間(秒数)

MSG-NAME

メッセージ名 PIC X(64) “NSGW”

MSG-ID メッセージ識別子 PIC 9(9)COMP-5

0

PRIORITY プライオリティ PIC 9(9)COMP-5

送信アプリケーションがプライオリティを指定した場

合は、表11.5 非同期メッセージ基盤のプライオリティ

の対応関係にしたがってプライオリティが設定され

ます。送信アプリケーションがプライオリティを指定

しない場合またはメッセージの送信元がグローバル

サーバの場合は受信キューのプライオリティのデ

フォルト値が設定されます。

MSGBODY-LENGTH

メッセージ本体長 PIC 9(9)COMP-5

相手サーバから受信したメッセージ長

RETURN-QNAME

返信キュー名 PIC X(64) 空白

TIMELIMIT 大保存時間 PIC 9(9)COMP-5

0

ACCESS-RIGHT

アクセス権 PIC 9(9)COMP-5

0

11.2.7 MQDのユニットメッセージ通知機能

MQDのユニットメッセージ通知機能は、MQDのユニットメッセージの構成を保証し、かつ受信側のサーバのアプリケーションに通知

することで運用性を向上させる機能です。アプリケーションは、1ユニット複数メッセージで構成されるメッセージをサーバ内およびサー

バ間を意識せずに使用できます。

本機能は、送信側と受信側の非同期メッセージ基盤が両方ともWindowsサーバのMQDまたはUNIXサーバのMQDの場合に使用す

ることができます。

MQDのユニットメッセージ通知機能は、送信側のサーバのイベントチャネル連携サービスのサービス定義でユニット数(パッキング

数)を指定することで利用できます。定義方法については、表11.21 CHANNELセクションの記述内容を参照してください。

- 285 -

Page 303: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

1ユニットが複数メッセージで構成するメッセージを送信する際の注意事項

1ユニットが複数メッセージで構成されるメッセージを送信する際には、以下の点に注意してください。

・ 1ユニット内の 大メッセージ数は、100個です。

・ パッキング転送機能のパッキング数に、1ユニット内のメッセージ数より大きな値を指定します。

・ パッキング数よりも1ユニット内のメッセージ数の方が多い場合、当該ユニットのすべてのメッセージは受信側のサーバに送信され

ず、文字コードの変換に失敗した時と同様に送信異常メッセージの退避用メッセージキューに格納されます。

11.2.8 運用中の通信定義追加機能

運用中の通信定義追加機能とは、イベントチャネル連携サービスが運用中に通信定義の追加を簡易的におこなう機能です。通信定

義の変更や削除はできません。

通信定義の追加とは、以下を指します。

・ 非同期通信を行う新たな相手サーバの導入時の新規サーバ、およびキューの追加

・ 既存の相手サーバに対する新たなキューの追加

稼動中における通信環境の追加機能を図11.26 稼動中における通信環境の追加機能に示します。

- 286 -

Page 304: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.26 稼動中における通信環境の追加機能

[図の説明]1) 追加するサーバおよび追加するキューの情報をサービス定義へ記述します。

2) mqdnsgwdefコマンドを実行し、追加するサービス定義をイベントチャネル連携サービスへ登録します。

3) 受信側のサーバで、追加する受信キューを反映します。mqdnsgwcommコマンドで行います。

4) 送信側のサーバで、新たに非同期通信を行う新規サーバ、および追加する送信キューを反映します。mqdnsgwcommコマンドで行

います。

5) 受信側のイベントチャネル連携サービスでは、mqdnsgwcommコマンドによってサービス定義の反映が指示されると、新たな構成で

メッセージを受信します。

6) 送信側のイベントチャネル連携サービスでは、mqdnsgwcommコマンドによってサービス定義の反映が指示されると、新たな構成で

メッセージを送信します。

11.2.9 サービスの通信制御

イベントチャネル連携サービスは、mqdnsgwcommコマンドを実行することにより、サービスの通信を停止したり、再開することでメッセー

ジの送信を一時的に抑止する等の制御を行うことができます。

- 287 -

Page 305: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

mqdnsgwcommコマンドの詳細については、“11.7.7 mqdnsgwcomm(サービスの通信を制御する)”を参照してください。

サービスの通信を停止する

相手サーバへメッセージの送信を一時的に停止したい場合、送信キュー単位に-dオプションを指定したmqdnsgwcommコマンドを実

行してメッセージの送信を停止します。これにより、イベントチャネル連携サービスを停止せずに、特定送信キューへのメッセージ送信

を停止することができます。

サービスの通信を再開する

相手サーバへメッセージの送信を再開するには、サービスの通信が停止しているイベントチャネルに対して-aオプションを指定した

mqdnsgwcommコマンドを実行します。

11.3 環境作成

本節では、イベントチャネル連携サービスの環境作成の手順と方法について以下の順に説明します。

・ 環境作成の手順

・ 環境作成の説明

・ 環境定義の記述

環境作成の説明は、コマンドを元に行っています。Interstage管理コンソールを使用する場合は、各表中に併記した“Interstage管理コ

ンソールの設定項目名”を参考に設定を行ってください。Interstage管理コンソールの詳細については、“Interstage管理コンソール ヘルプ”を参照してください。

MQDが動作するためのMQDのシステム環境の作成方法については、“第3章 環境作成”を参照してください。本節に記述されている

MQDの基本機能のコマンド詳細については、“第7章 コマンド”を、イベントチャネル連携サービスのコマンドの詳細については、“11.7コマンド”を参照してください。

11.3.1 環境作成の手順

イベントチャネル連携サービスを使用するためには、図11.27 サービス環境作成の流れの手順にしたがって、イベントチャネル連携

サービスが動作するためのサービス環境を作成する必要があります。

- 288 -

Page 306: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.27 サービス環境作成の流れ

11.3.2 環境作成の説明

以下の作業や環境作成の方法について説明します。

・ MQDの環境作成

・ CORBAサービスの環境作成

・ 非同期メッセージ基盤の環境作成

・ 送信キューと受信キューの作成

・ 送信異常メッセージの退避用メッセージキューの作成

- 289 -

Page 307: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ イベントチャネル連携サービスのCORBAサービスへの登録

・ URLリストファイルの作成と格納

・ IORファイルの格納

・ MQDの起動

・ サービス環境の作成

・ サービス定義の作成

11.3.2.1 MQDの環境作成

イベントチャネル連携サービスを使用する場合は、非同期メッセージ基盤に何を使用する場合でもMQDのシステム環境の作成が必

要です。

イベントチャネル連携サービスだけを使用する場合、MQDのシステム環境はイベントチャネル連携サービスが動作するために必要な

小限の環境として作成します。MQDのシステム環境作成時の指針およびMQD環境定義の各設定値(推奨値)を以下に示します。

[MQDConfiguration]

QueueMax = 1

MessageBufferMaxSize = 80

[Transaction]

TransactionFile = c:\mqdenv\tranfile (注)

Max_Size = 65536

[SystemFile]

SystemFile1 = c:\mqdenv\sysfile1 (注)

SystemFile2 = c:\mqdenv\sysfile2 (注)

SystemFile2_Size = 1000 + (送信キュー数 + 受信キュー数) × 24 × 16

[QueueIndex]

File = c:\mqdenv\qindexfile (注)

[DiskQueue]

File = c:\mqdenv\diskqfile (注)

Size = 80

[MQDConfiguration]

QueueMax = 1

MessageBufferMaxSize = 80

[Transaction]

TransactionFile = /mqdenv/tranfile (注)

Max_Size = 65536

[SystemFile]

SystemFile1 = /mqdenv/sysfile1 (注)

SystemFile2 = /mqdenv/sysfile2 (注)

SystemFile2_Size = 1000 + (送信キュー数 + 受信キュー数) × 24 × 16

[QueueIndex]

File = /mqdenv/qindexfile (注)

[DiskQueue]

File = /mqdenv/diskqfile (注)

Size = 80

・ メッセージ格納ファイルとしてデータベースを使用することはできません。

- 290 -

Page 308: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ フォルダ名およびファイル名は任意に指定してください。

・ 定義で指定するファイルは同一のディレクトリに作成することを推奨します。

ディレクトリの容量は、50[Mバイト]+1000 + (送信キュー数 + 受信キュー数) × 24 × 16[バイト]必要となります。

MQDのシステム環境の作成方法詳細については、“3.2.2.2 ファイル容量の見積り”と“3.3.1 環境定義の記述(ファイルを使用する

場合)”を参照してください。

MQDのシステム環境の作成は、mqdsetupコマンドを使用して行います。

以下にmqdsetupコマンドの入力例を示します。

例)MQD環境定義ファイル名 mqdenv.def、MQDシステム名 MQD001 でMQDシステムを作成します。

mqdsetup -f mqdenv.def

11.3.2.2 CORBAサービスの環境作成

Interstageをインストールした状態でCORBAサービスの環境は作成済みです。

送信定義、受信定義の合計が20個程度の場合は、デフォルトのCORBAサービスの環境でそのまま使用できます。それ以上の定義

を使用する場合は、表11.11 CORBAサービス動作環境ファイルのパラメタ設定項目を参考にしてCORBA環境をカスタマイズしてくだ

さい。表11.11 CORBAサービス動作環境ファイルのパラメタ設定項目で説明していないパラメタについては使用する環境に応じた適

切な値を設定してください。

CORBAサービスの環境作成方法の詳細については、“運用ガイド(基本編)”を参照してください。

表11.11 CORBAサービス動作環境ファイルのパラメタ設定項目

パラメタ Interstage管理コンソールの設定

項目名(注3)留意事項

max_IIOP_resp_con クライアントからの 大接続数 サービス定義で指定した“RCHANNELセクショ

ンのrecvnumキーワード値”の合計をユーザの

見積り値に加えます。(注2)

max_IIOP_local_init_con - CORBAサービス動作環境ファイルに設定され

ている当パラメタの値と、サービス定義で指定

した“SERVERセクション数”の合計を比較し

て、値が大きい方を記述します。(注2)(注3)

max_IIOP_local_init_requests クライアントからの 大リクエスト数 サービス定義で指定した“CHANNELセクショ

ン数”の合計をユーザの見積り値に加えます。

(注2)(注3)

max_processes - サービス定義の“MNGRセクションのsprocキー

ワードの値”と、“MNGRセクションのrprocキー

ワードの値”の合計を加えてください。(注2)

max_exec_instance - サービス定義で指定した“RCHANNELセクショ

ンのrecvnumキーワード値の合計”の合計を

ユーザの見積り値に加えます。(注2)

max_IIOP_resp_requests - サービス定義で指定した“RCHANNELセクショ

ンのrecvnumキーワード値”の合計をユーザの

見積り値に加えます。(注2)

1. Interstage管理コンソールを使用する場合でInterstage管理コンソールの設定項目名がない場合、“チューニングガイド”の“付録

A CORBAサービスの動作環境ファイル”に記述されている“A.1 config”の“初期値”としてください。ただし、“初期値”に注釈が

ある場合、注釈にしたがってください。

2. サービス定義、MNGRセクション、CHANNELセクション、RCHANNELセクションおよびSERVERセクションの詳細は、“11.3.3.1サービス定義の記述”を参照してください。

- 291 -

Page 309: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

3. 本パラメタは、CORBAサービス動作環境ファイルにおいて省略されている場合があります。詳しくは、“チューニングガイド”の“付録

A CORBAサービスの動作環境ファイル”に記述されている“A.1 config”の章を参照してください。

現在の環境が上記設定項目を満足している場合、本操作は不要です。

11.3.2.3 非同期メッセージ基盤の環境作成

CORBAサービスの環境を作成した後、送信側および受信側のサーバで使用する非同期メッセージ基盤に応じた環境作成を行いま

す。以下に各非同期メッセージ基盤を使用する場合の環境の作成方法を説明します。

ノーティフィケーションサービスの構成情報のオプション設定

非同期メッセージ基盤としてノーティフィケーションサービスまたはJMSを使用する場合の環境の作成方法を以下に説明します。JMSを使用する場合もノーティフィケーションサービスの環境を作成してください。ノーティフィケーションサービスの環境作成方法の詳細

については、“アプリケーション作成ガイド(イベントサービス編)”を参照してください。JMSの環境作成方法の詳細については、“J2EEユーザーズガイド”を参照してください。

表11.12 ノーティフィケーションサービスの構成情報のオプション設定項目にイベントチャネル連携サービスを使用する際に考慮が必

要なノーティフィケーションサービスの構成情報のオプション項目を示します。現在の環境が上記設定項目を満足している場合、環境

設定は不要です。その他のオプションについては使用する環境に応じた適切な値を設定してください。

Interstage管理コンソールを用いて非同期メッセージ基盤の環境作成を行う場合は、表11.12 ノーティフィケーションサービスの構成情

報のオプション設定項目に説明する各設定項目に相当するInterstage管理コンソール上の設定に、適切な値を設定してください。

表11.12 ノーティフィケーションサービスの構成情報のオプション設定項目

オプション Interstage管理コンソールの設定項目名(注2)

留意事項

-coninit - “送信に使用するイベントチャネルのグルー

プ数”をユーザの見積り値に加えます。

-supinit - “受信に使用するイベントチャネルのグルー

プ数”をユーザの見積り値に加えます。

-pltime 不揮発運用時のイベントデータ生存時間 “0(無限大)”を指定します。

-dchmax 動的イベントチャネル 大起動数 動的生成のイベントチャネルは使用できな

いため、設定できません。

-sthinit,-sthmax,

-onewayおよび-chksend

- pushモデルは使用できないため、設定でき

ません。

-ltrntime ローカルトランザクションのタイムアウト時間 パッキング転送機能を使用する場合、サー

ビス定義で指定した“CHANNELセクション

のpackmsg_wtimeキーワード値”×3以上を

設定してください。(注2)

1. Interstage管理コンソールを使用する場合でInterstage管理コンソールの設定項目名がない場合、“チューニングガイド”の“付録

A CORBAサービスの動作環境ファイル”に記述されている“A.1 config”の“初期値”としてください。ただし、“初期値”に注釈が

ある場合、注釈にしたがってください。

2. サービス定義およびCHANNELセクションの詳細は、“11.3.3.1 サービス定義の記述”を参照してください。

ユニットの作成

イベントチャネル連携サービスはイベントチャネルの接続およびイベントデータの不揮発化を使用するため、ユニットの作成が必要で

す。

表11.13 ユニットの環境設定項目のオプション設定項目にイベントチャネル連携サービスで使用する際に考慮が必要なユニットの環

境設定項目のパラメタを示します。その他のパラメタについては使用する環境に応じた適切な値を設定してください。

- 292 -

Page 310: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表11.13 ユニットの環境設定項目のオプション設定項目

パラメタ Interstage管理コンソールの設定

項目名

留意事項

tranmax トランザクション多重度 サービス定義で指定した“CHANNELセクション数”お

よび“RCHANNELセクションのrecvnumキーワード値の

合計”の合計をユーザの見積り値に加えます。(注1)

syssize システム用ファイル容量 “1”をユーザの見積り値に加えます。

sysqnum システム用データ格納域数 “1”をユーザの見積り値に加えます。

パラメタ Interstage管理コンソールの設定

項目名(注1)留意事項

shmmax 共用メモリサイズ “アプリケーションが処理するメッセージの平均長(注2)”× “サービス定義で指定したCHANNELセクションの

packmsg_cntキーワード値” × 2.3 (注3)

パラメタ Interstage管理コンソールの設定

項目名(注1)留意事項

shmmax 共用メモリサイズ “アプリケーションが処理するメッセージの平均長(注2)”× “サービス定義で指定したCHANNELセクションの

packmsg_cntキーワード値” × 2.3 × 10 (注3)

tranunitmax 1トランザクション内 大メッセー

ジサイズ

“アプリケーションが処理するメッセージの平均長(注2)”× “サービス定義で指定したCHANNELセクションの

packmsg_cntキーワード値” ÷ 16Kバイト (注3)

1. サービス定義、CHANNELセクションおよびRCHANNELセクションの詳細は、“11.3.3.1 サービス定義の記述”を参照してくださ

い。

2. メッセージの平均長は以下のように設定してください。

平均長が2Kバイト以内の場合:[(平均長 + 1)÷512] × 512 バイト [ ] … 小数点以下は切り上げ

平均長が2Kバイトを超える場合:

2K + [(平均長 - 2K) ÷ 16K] × 16K バイト [ ] … 小数点以下は切り上げ

3. 見積もり値が環境設定項目の有効範囲外の場合は、有効範囲内になるよう 大パッキング数を調整してください。

MQDを使用する場合の環境作成

非同期メッセージ基盤としてMQDを使用する場合の環境の作成方法は、本マニュアルの“第3章 環境作成” を参照してください。

11.3.2.4 送信キューと受信キューの作成

非同期メッセージ基盤の環境を作成した後、送信キューと受信キューを作成します。

送信キューと受信キューは非同期メッセージ基盤により作成方法が異なります。以下に各非同期メッセージ基盤を使用する場合の送

信キューと受信キューの作成方法を説明します。

- 293 -

Page 311: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ノーティフィケーションサービスを使用する場合の送信キューと受信キューの作成

非同期メッセージ基盤としてノーティフィケーションサービスまたはJMSを使用する場合の送信用のイベントチャネルと受信用のイベ

ントチャネルの作成方法を以下に説明します。JMSを使用する場合もイベントチャネルの作成が必要です。イベントチャネルの作成方

法の詳細については、“アプリケーション作成ガイド(イベントサービス編)”を参照してください。

表11.14 ベントチャネルの環境設定項目のオプション設定項目(グループの環境設定項目)にイベントチャネル連携サービスを使用

する際に考慮が必要なイベントチャネルの環境設定項目(グループの環境設定項目)のオプションを示します。その他のオプションに

ついては使用する環境に応じた適切な値を設定してください。

表11.14 ベントチャネルの環境設定項目のオプション設定項目(グループの環境設定項目)オプション Interstage管理コンソールの設

定項目名(注2)留意事項

-type - “mixed”を指定します。

-coninit - “送信に使用するイベントチャネル

のグループ数”をユーザの見積り

値に加えます。

-supinit - “受信に使用するイベントチャネル

のグループ数”をユーザの見積り

値に加えます。

-pltime 不揮発運用時のイベントデー

タ生存時間

“0(無限大)”を指定します。

-chkcon コンシューマ未接続時のエラー

復帰モード

“yes”を指定します。

-sthinit,-sthmax,

-onewayおよび-chksend

- pushモデルは使用できないため、

設定できません。

-ltrntime ローカルトランザクションのタイ

ムアウト時間

パッキング転送機能を使用する場

合、サービス定義で指定し

た“CHANNELセクションの

packmsg_wtimeキーワード値”×3以上を設定してください。(注1)

1. Interstage管理コンソールを使用する場合でInterstage管理コンソールの設定項目名がない場合、“アプリケーション作成ガイド

(イベントサービス編)”の“2.4.3 イベントチャネル環境設定”に記述されている“省略値”としてください。

2. サービス定義およびCHANNELセクションの詳細は、“11.3.3.1 サービス定義の記述”を参照してください。

表11.15 イベントチャネルの環境設定項目のオプション設定項目にイベントチャネル連携サービスで使用するイベントチャネルを作成

する際に考慮が必要なイベントチャネルの環境設定項目のオプションを示します。その他のオプションについては使用する環境に応

じた適切な値を設定してください。

表11.15 イベントチャネルの環境設定項目のオプション設定項目

オプション Interstage管理コンソールの設定項目名(注2) 留意事項

-g group イベントチャネルグループ名 “32文字以内の英数字とアンダースコア”で

グループ名を指定します。

-c channel イベントチャネル名 “64文字以内の英数字とアンダースコア”で

イベントチャネル名を指定します。

-m number 大接続数 サービス定義で指定した“CHANNELセク

ション”および“RCHANNELセクション”の中

で“本イベントチャネルと同じチャネルグルー

プに属するイベントチャネルを指定したセク

- 294 -

Page 312: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

オプション Interstage管理コンソールの設定項目名(注2) 留意事項

ションの合計”をユーザの見積り値に加えま

す。(注1)

-notify ノーティフィケーションサービス機能 ノーティフィケーションサービスのイベント

チャネルとして生成するように指定します。

-persist mode 不揮発チャネル運用 “all”を指定します。

-tranまたは-ots ローカルトランザクションまたはグローバルトラン

ザクション

サプライヤおよびコンシューマのイベントチャ

ネルの使用方法により本オプションのいず

れかを指定します。

-ltrntime - パッキング転送機能を使用する場合、サー

ビス定義で指定した“CHANNELセクション

のpackmsg_wtimeキーワード値” ×3以上を

設定してください。(注1)

-ptp モデル サーバ間連携を配信型の通信モデルで行

い、かつ送信用のイベントチャネルとなる場

合は、本オプションを指定しません。

その他の場合は、運用に合わせて適時指

定してください。

-l 日本語コード系 サーバ間連携を行うメッセージの内容に日

本語データが含まれる場合は、イベントチャ

ネルが動作するマシンのコード系を必ず指

定します。

1. Interstage管理コンソールを使用する場合でInterstage管理コンソールの設定項目名がない場合、“アプリケーション作成ガイド

(イベントサービス編)”の“イベントチャネル環境設定”に記述されている“省略値”としてください。

2. サービス定義およびCHANNELセクションの詳細は、“11.3.3.1 サービス定義の記述”を参照してください。

3. -autodiscon オプションは指定しないでください。指定した場合、自動的にイベントチャネルへの接続が回収されることがあり、回

収された場合にはキューに滞留したメッセージが消失したり、重複したりする可能性があります。

ノーティフィケーションサービス使用時の注意点

イベントチャネル連携サービスは、表11.16 ノーティフィケーションサービスの使用条件に示すノーティフィケーションサービスに対す

る使用条件の範囲で使用してください。

また、ユーザアプリケーションも以下の使用条件の範囲内で作成、実行してください。

表11.16 ノーティフィケーションサービスの使用条件

ノーティフィケーションサービスの機能イベントチャネル連携サービスで利用可能なノーティ

フィケーションサービスの機能範囲

イベントチャネルの運用形態 静的運用

ノーティフィケーションサービスの通信モデル mixedモデル

メッセージの生存時間 無限大

QoS(ConnectionReliability) Persistent

QoS(EventReliability) Persistent

QoS(OrderPolicy) FifoOrder (送信用イベントチャネルの場合)

- 295 -

Page 313: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQDを使用する場合の送信キューと受信キューの作成

非同期メッセージ基盤としてMQDを使用する場合の送信キューと受信キューは、以下の属性で作成してください。MQDのメッセージ

キューの作成方法の詳細については、“第7章 コマンド”を参照してください。

・ メッセージ保証レベルは、ディスク型で作成してください。

・ その他の属性については、運用に合わせて任意に設定してください。

なお、MQDのメッセージキューの作成はMQDが起動した状態で行ってください。

11.3.2.5 送信異常メッセージの退避用メッセージキューの作成

MQDを使用する場合

非同期メッセージ基盤としてMQDを使用する場合は、文字コードの変換やユニットメッセージの送信に失敗したメッセージを格納す

る送信異常メッセージの退避用メッセージキューを運用に合わせて作成します。

送信異常メッセージの退避用のメッセージキューは、以下の属性で作成してください。MQDのメッセージキューの作成方法の詳細に

ついては、“第7章 コマンド”を参照してください。

・ -lオプションは指定せずに2Mバイトのメッセージが受信できるようにメッセージキューを作成してください。

・ その他の属性については、運用に合わせて任意に設定してください。

なお、MQDのメッセージキューの作成はMQDが起動した状態で行ってください。

11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録

メッセージを受信するサーバでは、イベントチャネル連携サービスをCORBAサービスへ登録するために以下の処理を行います。メッ

セージを送信するサーバでは、以下の処理を行う必要はありません。

・ イベントチャネル連携サービスが使用するインタフェース情報のインプリメンテーションリポジトリへの登録

・ イベントチャネル連携サービスの受信側の位置情報のネーミングサービスへの登録およびIORファイルの出力。

イベントチャネル連携サービスでは、上記操作を一括して行うコマンドを提供しています。一括登録コマンドは、ネーミングサービス方

式で通信する場合と、IORファイル方式で通信する場合で実行するコマンドが異なります。一括登録コマンドの使用例を以下に示しま

す。詳細は“11.7.8 mqdnsgwinit_ns(イベントチャネル連携サービスをCORBAサービスに登録する)”または“11.7.9 mqdnsgwinit_ior(イベントチャネル連携サービスをCORBAサービスに登録する)”を参照してください。

ネーミングサービス方式で通信する場合

mqdnsgwinit_ns.bat SERVER01 255.255.255.255 8002

IORファイル方式で通信する場合

mqdnsgwinit_ior.bat SERVER01 255.255.255.255 8002 C:\MQDIORFILE

ネーミングサービス方式で通信する場合

mqdnsgwinit_ns.sh SERVER01 255.255.255.255 8002 EUC

IORファイル方式で通信する場合

mqdnsgwinit_ior.sh SERVER01 255.255.255.255 8002 EUC /mqd/MQDIORFILE

一括登録コマンドで出力したIORファイルは、FTPなどでそのサーバにメッセージを送信するサーバに転送してください。

11.3.2.7 URLリストファイルの作成と格納

ネーミングサービス方式を使用した運用を行う場合、メッセージを送信するサーバでは、イベントチャネル連携サービスに対して以下

の処理を行います。メッセージを受信するサーバでは、以下の処理を行う必要はありません。

- 296 -

Page 314: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

受信側のサーバがグローバルサーバの場合は、ネーミングサービス方式での運用はできません。

1. 受信側サーバのオブジェクトリファレンスが登録されているネーミングサービスのURLを格納したURLリストファイルを作成する。

URLリストファイルの詳細については、“11.3.3.3 URLリストファイルの記述”を参照してください。

2. 作成したURLリストファイルを、送信側サーバのローカルディスク上任意の場所へ格納する。

11.3.2.8 IORファイルの格納

IORファイルを使用した運用を行う場合、メッセージを送信するサーバでは、イベントチャネル連携サービスに対して以下の処理を行

います。メッセージを受信するサーバでは、以下の処理を行う必要はありません。

・ 受信側サーバで作成したIORファイルを送信側のサーバのローカルディスク上任意の場所へ格納する

11.3.2.9 MQDの起動

イベントチャネル連携サービスの環境を作成するためには、MQDの各種のコマンドを使用します。これらのコマンドを使用するために

は、事前にMQDを起動しておく必要があります。

MQDはWindows®のサービスとして動作し、以下のいずれかの方法で起動します。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ MQDのシステム環境の作成後に、サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システ

ムの起動時に自動的にMQDサービスを開始する。

MQDの起動は、mqdstrコマンドを使用して行います。MQDを起動することにより、イベントチャネル連携サービスも起動されます。

以下にmqdstrコマンドの入力例を示します。

例)MQDシステム名 MQD001 を起動します。

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

mqdstr

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

11.3.2.10 サービス環境の作成

サービス環境の作成は、mqdnsgwsetupコマンドを使用して行います。

以下にmqdnsgwsetupコマンドの入力例を示します。

例)MQDシステム名 MQD001 にイベントチャネル連携サービスのサービス環境を作成します。

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

mqdnsgwsetup

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

なお、サービス環境を再作成する場合は、サービス環境を削除した後、再度、上記のmqdnsgwsetupコマンドを実行してください。サー

ビス環境の削除は、mqdnsgwunsetupコマンドを使用して行います。

以下にmqdnsgwunsetupコマンドの入力例を示します。

例)MQDシステム名 MQD001 のイベントチャネル連携サービスのサービス環境を削除します。

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

mqdnsgwunsetup

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

11.3.2.11 サービス定義の作成

サービス定義の作成では、以下の二つの作業があります。

・ サービス定義ファイルの作成

・ サービス定義の登録/反映

- 297 -

Page 315: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス定義ファイルの作成

サービス定義は、サーバ間のキューの対応関係やイベントチャネル連携サービスの基本情報を定義します。サービス定義を格納す

るファイルをサービス定義ファイルと呼びます。サービス定義ファイルは、ユーザが任意のファイル上にテキストファイルとして作成しま

す。このファイルは、後述のサービス定義の登録時に使用されます。

サービス定義では、主に以下の情報を定義します。

・ 送信キューと受信キューの対応関係

・ 相手サーバに関する情報

サービス定義は、テキスト編集ツールを使用して記述してください。サービス定義の記述方法の詳細については、“11.3.3.1 サービス

定義の記述”を参照してください。

サービス定義の登録/反映

サービス定義ファイルを作成した後、次にサービス定義の登録/反映の操作を行います。サービス定義の登録は、mqdnsgwdefコマン

ドを使用して行います。サービス定義の反映は、MQD起動時のオプションまたはサービス起動時のオプションで指定します。

以下にmqdnsgwdef(登録)コマンドの入力例を示します。

例)MQDシステム名 MQD001 にファイル名nsgwsrv01に記述されたイベントチャネル連携サービスのサービス定義を追加します。

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

mqdnsgwdef -a -f nsgwsrv01

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

サービス定義の登録をした後、次にサービス定義の反映を行います。以下にmqdstrsvc(反映)コマンドの入力例を示します。

例)MQDシステム名 MQD001 のイベントチャネル連携サービスを定義反映モードで起動します。

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

mqdstrsvc -n NSGW

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

11.3.3 環境定義の記述

ここでは、イベントチャネル連携サービスの環境定義について以下を説明します。

・ サービス定義の記述

・ URLリストファイルの記述

なお、記述規約については、“付録A 定義記述規約”を参照してください。

11.3.3.1 サービス定義の記述

サービス定義は、メッセージの送受信で使用するイベントチャネルに関する各種情報とイベントチャネル連携サービスの基本情報を

記述します。サービス定義は以下のセクションから構成されます。

・ 1個のMNGRセクション

・ 0個以上のSERVERセクション

・ 0個以上のCHANNELセクション

・ 0個以上のRCHANNELセクション

表11.17 メッセージの送受信で必要なセクションの組み合わせにメッセージの送受信で必要なセクションの組み合わせを示します。な

お、表中の[ ]の中に示す値は、設定値を意味します。

表11.17 メッセージの送受信で必要なセクションの組み合わせ

セクション 送信の場合 受信の場合

NS(*) / JMS MQD NS(*) / JMS MQD

MNGR sproc ○ ○ ― ―

- 298 -

Page 316: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

セクション 送信の場合 受信の場合

NS(*) / JMS MQD NS(*) / JMS MQD

rproc ― ― ○ ○

systemid ○ ○ ○ ○

repository ― ― ○ ○

errorretry △ △ ― ―

sheltername ― △ ― ―

SERVER name ○ ○ ― ―

iorfile ○ ○ ― ―

CHANNEL channelid ○ ○ ― ―

sndname ○ ○ ― ―

rcvname ○ ○ ― ―

evttype △ △ ― ―

server ○ ○ ― ―

packmsg_cnt △ △ ― ―

packmsg_wtime △ △ ― ―

ectype ― ○ (queue) ― ―

msghinf ― △ ― ―

msgtype ― △ ― ―

RCHANNEL rcvname ― ― ○ ○

recvnum ― ― △ △

ectype ― ― ― ○ (queue)

○:必要、△:選択、―:不要

(*) NSはノーティフィケーションサービスを意味します。

サービス定義は以下の形式で記述します。

記述形式

[MNGR]

sproc = メッセージ送信指定

rproc = メッセージ受信指定

systemid = MQDサーバ識別子

repository = インプリメンテーションリポジトリID

errorretry = エラーリトライ回数

sheltername = 送信異常メッセージの退避用メッセージキュー名

[SERVER]

name = 送信先MQDサーバ識別子

iorfile = 送信先イベントチャネル連携サービスのIORファイル名

[CHANNEL]

channelid = 送信チャネル識別子

sndname = 送信キュー名

rcvname = 相手サーバの受信キュー名

evttype = イベントデータの形式

server = 送信先MQDサーバ識別子

packmsg_cnt = パッキング数またはユニット内メッセージ数

packmsg_wtime = 最大遅延時間

- 299 -

Page 317: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ectype = 送信キューの種別

msghinf = MQDのメッセージヘッダ情報通知機能の使用の有無

msgtype = 送信するメッセージのデータ形式

[RCHANNEL]

rcvname = 自サーバの受信キュー名

recvnum = 集信数

ectype = 受信キューの種別

次に通信モデルに応じたサービス定義の作成方法を以下に示します。なお、以下に示す各通信モデルの定義イメージは、通信モデ

ルの特定に関連する部分だけを抜き出して説明しているため、その他の必要な定義については、表11.17 メッセージの送受信で必要

なセクションの組み合わせで確認してください。

また、グローバルサーバへメッセージを送信する場合以外の定義イメージでは、ノーティフィケーションサービス、JMSまたはMQDに

メッセージを送信することが前提になっています。

送信側の定義

evttypeキーワードに“structured”を指定します。アプリケーションの都合により“any”を指定することも可能です。その他のキーワード

は利用する機能に応じて指定します。

[MNGR]

systemid = MQDサーバ識別子 NSGWS001

[SERVER]

name = 送信先MQDサーバ識別子 NSGW1

iorfile = 送信先イベントチャネル連携サービスのIORファイル名またはURLリストファイル名

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のイベントチャネル名 または JMSキュー名 S1

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

evttype = structured / any

受信側の定義

その他のキーワードは利用する機能に応じて指定します。

[MNGR]

systemid = MQDサーバ識別子 NSGWR00

repository = インプリメンテーションリポジトリID

[RCHANNEL]

rcvname = 受信用のイベントチャネル名 または JMSキュー名 R1

ネーミングサービスを使用する相手サーバの指定

送信側サーバで、SERVERセクションのiorfileキーワードにURLリストファイルを指定します。URLリストファイルには、受信側のサーバ

を登録したネーミングサービスのURLを記述します。

送信側サーバ

[SERVER]

name = 送信先MQDサーバ識別子 SV1

iorfile = URLリストファイルの絶対パス名

URLリストファイルの記述

iiop://255.255.255.1:8002 #ネーミングサービスのURL1

- 300 -

Page 318: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

iiop://255.255.255.2:8002 #ネーミングサービスのURL2

iiop://255.255.255.255 #ネーミングサービスのURL3

URLリストファイルの詳細については、“11.3.3.3 URLリストファイルの記述”を参照してください。

IORファイルを使用する相手サーバの指定

送信側のサーバで、SERVERセクションのiorfileキーワードに受信側のサーバで作成したIORファイルを指定します。

送信側のサーバ

[SERVER]

name = 送信先MQDサーバ識別子 SV1

iorfile = 送信先サーバから配布されたIORファイルの絶対パス名

送信側のサーバの非同期メッセージ基盤がMQDの場合

送信側のサーバで、CHANNELセクションのectypeキーワードに“queue”およびevttypeキーワードに“structured”を指定します。(メッ

セージの形式であるevttypeキーワードは、一般的に“structured”を推奨していますが、利用する機能に応じて“any”を指定します)その

他のキーワードは利用する機能に応じて指定します。

送信するメッセージは次の2つの形式から選択できます。

・ バイナリデータとして送信

送信アプリケーションが格納したメッセージの本体部分がそのまま受信サーバに送信されます。バイナリデータとして送信する場

合、文字コードの変換は行われません。受信側のサーバの非同期メッセージ基盤によりメッセージは以下の形式となります。

- ノーティフィケーションサービスの場合: CORBAサービスのSequenceOctet型- JMSの場合: ByteMessage- MQDの場合: MQDのメッセージ

・ 文字列データとして送信

送信アプリケーションが格納したメッセージの本体部分の先頭からNULL文字までを文字列データとみなし受信側のサーバに送

信します。文字列データとして送信する場合、文字コードの変換が行われます。受信側のサーバの非同期メッセージ基盤により

メッセージは以下の形式となります。

- ノーティフィケーションサービスの場合: CORBAサービスの基本データ型のString型- JMSの場合: TextMessage- MQDの場合: MQDのメッセージ

MQDのメッセージをバイナリデータとして送信する場合は、msgtypeキーワードに“BIN”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

ectype = queue

evttype = structured

msgtype = BIN

MQDのメッセージを文字列データとして送信する場合は、msgtypeキーワードに“TEXT”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

ectype = queue

- 301 -

Page 319: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

evttype = structured

msgtype = TEXT

また、受信側のサーバの非同期メッセージ基盤もMQDの場合、以下の2つの機能が利用可能です。定義方法を以下に説明します。

・ MQDのメッセージヘッダ通知機能

・ MQDのユニットメッセージ通知機能

MQDのメッセージヘッダ通知機能を使用する場合は、msghinfキーワードに“SEND”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

ectype = queue

evttype = structured

msghinf = SEND

MQDのユニットメッセージ通知機能を使用する場合は、msghinfキーワードに“SEND”、packmsg_cntキーワードに“ユニット内メッセー

ジ数の 大数以上の数”およびpackmsg_wtimeキーワードに“0”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

ectype = queue

evttype = structured

msghinf = SEND

packmsg_cnt = ユニット内メッセージ数の最大数以上の数

packmsg_wtime = 0

グローバルサーバにメッセージを送信する場合

送信側のサーバで、CHANNELセクションのevttypeキーワードに“any”を指定します。また、msghinfキーワードは指定しません。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信キュー名 S1

rcvname = グローバルサーバの受信イベントチャネル名 R1

server = グローバルサーバのMQDサーバ識別子 SV1

evttype = any

packmsg_cnt = パッキング数

packmsg_wtime = 最大遅延時間

なお、送信側のサーバの非同期メッセージ基盤がMQDの場合は、送信するメッセージを次の4つの構造体から選択できます。各構

造体の詳細については、“11.6 アプリケーションの作成方法”の形式5に示す各構造体を参照してください。

・ 有限文字列型構造体

・ 非有限文字列型構造体

・ 有限バイナリ型構造体

・ 非有限バイナリ型構造体

- 302 -

Page 320: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

グローバルサーバにメッセージを送信する場合、“非有限文字列型構造体”もしくは“非有限バイナリ型構造体”を推奨します。

“有限文字列型構造体”もしくは“有限バイナリ型構造体”を使用する場合、Windowsサーバ、UnixサーバもしくはLinuxサーバから送

信されるデータ長が65535バイト固定となります。グローバルサーバ側のインタフェース定義のデータ長を65535バイト固定にしてくださ

い。

MQDのメッセージキューのメッセージをCORBAサービスの“有限文字列型構造体”のメッセージとしてグローバルサーバに送信する

場合は、ectypeキーワードに“queue”およびmsgtypeキーワードに“LIMITEDTEXT”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = グローバルサーバの受信イベントチャネル名 R1

server = グローバルサーバのMQDサーバ識別子 SV1

evttype = any

ectype = queue

msgtype = LIMITEDTEXT

MQDのメッセージキューのメッセージをCORBAサービスの“非有限文字列型構造体”のメッセージとしてグローバルサーバに送信す

る場合は、ectypeキーワードに“queue”およびmsgtypeキーワードに“TEXT”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = グローバルサーバの受信イベントチャネル名 R1

server = グローバルサーバのMQDサーバ識別子 SV1

evttype = any

ectype = queue

msgtype = TEXT

MQDのメッセージキューのメッセージをCORBAサービスの“有限バイナリ型構造体”のメッセージとしてグローバルサーバに送信す

る場合は、ectypeキーワードに“queue”およびmsgtypeキーワードに“LIMITEDBIN”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = グローバルサーバの受信イベントチャネル名 R1

server = グローバルサーバのMQDサーバ識別子 SV1

evttype = any

ectype = queue

msgtype = LIMITEDBIN

MQDのメッセージキューのメッセージをCORBAサービスの“非有限バイナリ型構造体”のメッセージとしてグローバルサーバに送信

する場合は、ectypeキーワードに“queue”およびmsgtypeキーワードに“BIN”を指定します。

送信側のサーバ

[CHANNEL]

channelid = 送信チャネル識別子 ID1

sndname = 送信用のMQDのメッセージキュー名 S1

rcvname = グローバルサーバの受信イベントチャネル名 R1

server = グローバルサーバのMQDサーバ識別子 SV1

evttype = any

- 303 -

Page 321: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ectype = queue

msgtype = BIN

記述内容の説明

a) MNGRセクション

イベントチャネル連携サービスの動作する基本情報を記述します。記述内容を表11.18 MNGRセクションの記述内容に示します。

表11.18 MNGRセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

sproc 可 数値 0または1を指定します。

省略値は1です。(注1)

メッセージを送信する場合は1を指定しま

す。

メッセージの受信だけを行う場合は0を指

定してください。

rproc 可 数値 0または1を指定します。

省略値は1です。(注1)

メッセージを受信する場合は1を指定しま

す。

メッセージの送信だけを行う場合は0を指

定します。

systemid 不可 文字列 8バイト以内の英数字で指定します。(注2)

本サービスが動作するMQDシステムに対

応したMQDサーバ識別子を指定します。

MQDサーバ識別子は、本サービスで接

続するサーバ間で一意な識別子を指定し

てください。

repository rprocが1の時

不可

文字列 systemidキーワードで指定したMQDサーバ識別子に固定文字

列“NSGWSERVERREPID”を付加し

た文字列を指定します。

イベントチャネル連携サービスのCORBAサービスへの登録で指定したインプリメン

テーションリポジトリIDを指定します。

errorretry 可 数値

または文

字列

0~2147483647の数値、またはendlessを指定します。

省略値は12です。

エラー発生時のリトライ回数を指定しま

す。endlessの場合無限リトライとなります。

リトライ可能なエラー事象については表

11.19 エラー事象ごとのリトライ可否を参照

してください。

continueを指定します。 無限リトライを意味します。endlessを指定

した場合よりより広いエラー事象でもリトラ

イを継続します。リトライ可能なエラー事象

については表11.19 エラー事象ごとのリト

ライ可否を参照してください。

sheltername 可 文字列 63文字以内の英数字と“_”(アンダース

コア)で指定します。または、31文字以

内の全角文字で指定します。

送信側のサーバの非同期メッセージ基盤

がMQDの場合、送信異常メッセージの退

避用メッセージキュー名を指定します。

・ 文字コードの変換に失敗したメッセー

・ ユニット内のメッセージ数が、パッキン

グ転送機能の 大パッキング数より多

いメッセージ

1. sprocまたはrprocのどちらか一方に必ず1を設定してください。

2. グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。

- 304 -

Page 322: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表11.19 エラー事象ごとのリトライ可否

エラー事象 数値または

endlesscontinue

イベントチャネル連携サービスの送信先MQDサーバが未起動 ○ ○

イベントチャネル連携サービスの送信先MQDサーバの受信キューの蓄積イベン

トデータ数が 大蓄積数を超えた

○ ○

イベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、一時

的な異常が発生した

○ ○

メッセージ送信先のメッセージキューまたはイベントチャネルが閉塞していた ○ ○

メッセージ送信先のイベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、メッセージキューが閉塞していた

× ○

通信異常 × ○

メモリ不足 × ○

イベントチャネルへの接続異常 × ○

イベントチャネル連携サービスの環境に異常がある × ×

イベントチャネル連携サービスのサービス起動時に、送信キューが停止していた × ×

何らかの異常により、相手サーバの検索に失敗した × ×

サービスの継続に困難な異常が発生した × ×

b) SERVERセクション

イベントチャネル連携サービスが他サーバにメッセージを送信する際に送信先のサーバを特定する相手サーバ情報を記述します。

SERVERセクションは1~128まで定義できます。

なお、SERVERセクションの内容を変更(nameキーワードとメッセージ送信先の関係を変更)する場合はサービス環境を再作成する必

要があります。

この定義は、メッセージを送信するサーバにだけ必要です。記述内容については表11.20 SERVERセクションの記述内容を参照して

ください。

表11.20 SERVERセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

name 不可 文字列 8バイト以内の英数字で指定します。(注1)

メッセージ送信先のMQDサーバ識別子

を指定します。

iorfile 不可 文字列 255バイト以内の文字列で指定します。 メッセージ送信先のイベントチャネル連携

サービスのIORファイル名(注2)、または

ネーミングサービスのURLリストファイル名

を絶対パスで指定します。(注3)

1. グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。

2. IORファイル、URLリストファイルはメッセージを送信するサーバのローカルディスク上に格納してください。

3. グローバルサーバと通信を行う場合、必ずIORファイルを指定してください。

URLリストファイルの詳細については、“11.3.3.3 URLリストファイルの記述”を参照してください。

c) CHANNELセクション

メッセージの送信で使用するキューについて、送信キューと受信キューとの対応関係などの送信キュー情報を記述します。CHANNELセクションは1~128まで定義でき、メッセージを送信するサーバ側に、送信先の受信キュー単位に必要です。記述内容については表

11.21 CHANNELセクションの記述内容を参照してください。

- 305 -

Page 323: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表11.21 CHANNELセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

channelid 不可 文字列 8バイト以内の英数字で指定します。(注1)

送信チャネル識別子を指定します。

送信チャネル識別子は、MQDシステ

ム内で一意な識別子を指定してくださ

い。

sndname 不可 文字列 ・ 送信キューがイベントチャネルまた

はJMSのキューの場合は、255バイ

ト以内の英数字、“: ”(コロン)およ

び“_”(アンダースコア)で指定しま

す。“グループ名::チャネル名”で指

定します。

・ 送信キューがMQDのメッセージ

キューの場合は、63文字以内の英

数字と“_”(アンダースコア)で指定

します。または、31文字以内の全角

文字で指定します。

送信キュー名を指定します。

rcvname 不可 文字列 ・ 相手サーバの受信キューがイベン

トチャネルまたはJMSのキューの場

合は、255バイト以内の英数字、“: ”(コロン)および“_”(アンダースコア)で指定します。“グループ名::チャ

ネル名”で指定します。(注2)

・ 相手サーバの受信キューがMQDのメッセージキューの場合は、63文字以内の英数字と“_”(アンダース

コア)で指定します。または、31文字

以内の全角文字で指定します。

メッセージ送信先の受信キュー名を指

定します。

evttype 可 文字列 anyまたはstructuredを指定します。

省略値はanyです。

メッセージの形式を指定します。グロー

バルサーバと通信を行う場合または

ノーティフィケーションサービスを使用

するアプリケーションがany型のイベン

トデータを使用する場合は、anyを指

定します。その他の場合は、structuredを指定します。

server 不可 文字列 8バイト以内の英数字で指定します。(注1)

メッセージ送信先のMQDサーバ識別

子を指定します。

本値は、SERVERセクションのnameキーワードで指定した値と対応させて

ください。

packmsg_cnt 可 数値 1~100の範囲で指定します。

省略値は“1”(本機能を使用しない)です。

以下のいずれかの値を指定します。

・ 複数のメッセージをパッキングして

送信する場合に、パッキングする

メッセージの 大数を指定しま

す。

packmsg_wtimeキーワード値に指

定した時間(秒)が経過しても、本

キーワード値に指定した数にメッ

セージ数が満たない場合、その時

点でメッセージを相手システムに

送信します。

- 306 -

Page 324: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

・ MQDのユニットメッセージ通知機

能を使用する場合、ユニット内の

大メッセージ数以上の数を指定

します。

packmsg_wtime 可 数値 0~300(秒)の範囲で指定します。

省略値は“0”です。

メッセージがパッキング数に達しない

場合に、待ち合わせをするための送

信待ち時間(秒)を指定します。

パッキング転送機能を使用する場合

にだけ有効です。

ectype 可 文字列 channelまたはqueueを指定します。

省略値は“channel”です。

送信側のサーバの非同期メッセージ

基盤により以下を指定します。

・ ノーティフィケーションサービスま

たはJMSの場合は、channelを指

定します。

・ MQDの場合は、queueを指定しま

す。

msghinf 可 文字列 SENDまたはUNSENDを指定します。

省略値は“UNSEND”です。

本定義の値にSENDを設定する場合、

ectypeキーワードにqueueを指定してく

ださい。(注3)

MQDのメッセージヘッダ情報通知機

能を使用するか否かを指定します。な

お、ノーティフィケーションサービスま

たはJMSの場合は、UNSENDを指定

します。

・ 当該機能を使用する場合は、

SENDを指定します。

・ 当該機能を使用しない場合は、

UNSENDを指定します。

msgtype 可 文字列 TEXT、BIN、LIMITEDTEXTまたは

LIMITEDBINのいずれかを指定しま

す。

省略値は“BIN”です。

本キーワードを設定する場合、ectypeキーワードにqueueを指定してください。

送信側のサーバの非同期メッセージ

基盤がMQDの場合、メッセージをどの

ような形式で送信するか指定します。

・ メッセージを文字列データまたは

非有限文字列型構造体として送

信する場合は、“TEXT”を指定し

ます。

・ メッセージを有限文字列型構造体

と し て 送 信 す る 場 合

は、“LIMITEDTEXT”を指定しま

す。

・ メッセージをバイナリデータまたは

非有限バイナリ型構造体として送

信する場合は、“BIN”を指定しま

す。

・ メッセージを有限バイナリ型構造

体 型 と し て 送 信 す る 場 合

は、“LIMITEDBIN”を指定しま

す。

“TEXT”または“LIMITEDTEXT”を指定した場合、かつ送信側のサーバ

と受信側のサーバのコード系が異なる

場合は、CORBAサービスにより文字

コードの変換が行われます。

- 307 -

Page 325: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

また、“TEXT”また

は“LIMITEDTEXT”を指定した場合

は、メッセージの終端をNULL文字と

してメッセージを格納してください。

1. グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。

2. グローバルサーバと通信を行う場合、チャネル名だけを指定します。

3. MQDのメッセージヘッダ通知機能は、送信側のサーバの非同期メッセージ基盤がMQDの場合にだけ使用できます。

d) RCHANNELセクション

メッセージの受信で使用するキューについて、受信キューの属性(集信数)などの受信キュー情報を記述します。RCHANNELセクションは

1~128まで定義でき、メッセージを受信するサーバ側に、受信キュー単位に必要です。記述内容については表11.22 RCHANNELセクションの記述内容を参照してください。

表11.22 RCHANNELセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

rcvname 不可 文字列 ・ 自サーバの受信キューがイベント

チャネルまたはJMSのキューの場

合は、255バイト以内の英数字、“: ”(コロン)および“_”(アンダースコア)で指定します。“グループ名::チャ

ネル名”で指定します。

・ 自サーバの受信キューがMQDの

メッセージキューの場合は、63文字

以内の英数字と“_”(アンダースコ

ア)で指定します。または、31文字

以内の全角文字で指定します。

受信キュー名を指定します。

recvnum 可 数値 1~128の範囲で指定します。

省略値は“1”です。

受信キューに送信する送信キュー数

を指定します。

集信数はMQDシステム内で 大128までとなります。

ectype 可 文字列 channelまたはqueueを指定します。

省略値は“channel”です。

受信側のサーバの非同期メッセージ

基盤により以下を指定します。

・ ノーティフィケーションサービスま

たはJMSの場合は、channelを指

定します。

・ MQDの場合は、queueを指定しま

す。

11.3.3.2 サービス定義の記述例

1:1型の通信モデル

送信側サーバのCHANNELセクションに対して、受信側サーバのRCHANNELセクションが1:1に対応するようにサービス定義を指定

します。RCHANNELセクションのrecvnumキーワードは指定しません。

図11.28 1:1型の通信モデルに1:1型の通信モデルの定義イメージを示します。

- 308 -

Page 326: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.28 1:1型の通信モデル

送信側サーバの定義

[CHANNEL]

sndname = 送信キュー名 S1

rcvname = 相手サーバの受信キュー名 R1

[CHANNEL]

sndname = 送信キュー名 S2

rcvname = 相手サーバの受信キュー名 R2

受信側サーバの定義

[RCHANNEL]

rcvname = 自サーバの受信キュー名 R1

[RCHANNEL]

rcvname = 自サーバの受信キュー名 R2

配信型の通信モデル

送信側サーバでは、sndnameキーワードが同じ値の複数のCHANNELセクションを作成します。受信側サーバでは、CHANNELセク

ションのrcvnameキーワードに対応する複数のRCHANNELセクションを作成します。RCHANNELセクションのrecvnumキーワードは指

定しません。

図11.29 配信型の通信モデルに配信型の通信モデルの定義イメージを示します。

図11.29 配信型の通信モデル

送信側サーバの定義

[CHANNEL]

sndname = 送信キュー名 S1

rcvname = 相手サーバの受信キュー名 R1

[CHANNEL]

sndname = 送信キュー名 S1

rcvname = 相手サーバの受信キュー名 R2

- 309 -

Page 327: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

受信側サーバの定義

[RCHANNEL]

rcvname = 自サーバの受信キュー名 R1

[RCHANNEL]

rcvname = 自サーバの受信キュー名 R2

集信型の通信モデル

送信側サーバではrcvnameキーワードとserverキーワードの値の組み合わせが同じ複数のCHANNELセクションを作成します。受信

側サーバでは、CHANNELセクションのrcvnameキーワードに対応する一つのRCHANNELセクションを作成します。RCHANNELセク

ションのrecvnumキーワードには、対応するCHANNELセクションの数を指定します。

図11.30 集信型の通信モデルに集信型の通信モデルの定義イメージを示します。

図11.30 集信型の通信モデル

送信側サーバの定義

[CHANNEL]

sndname = 送信キュー名 S1

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

[CHANNEL]

sndname = 送信キュー名 S2

rcvname = 相手サーバの受信キュー名 R1

server = 送信先MQDサーバ識別子 SV1

受信側サーバの定義

[MNGR]

systemid = MQDサーバ識別子 SV1

[RCHANNEL]

rcvname = 自サーバの受信キュー名 R1

recvnum = 2 (この受信定義に送信してくるCHNNELセクション数)

中継型の通信モデル

メッセージを中継するサーバで、RCHANNELセクションのrcvnameキーワードと同じ値のsndnameキーワードを指定したCHANNELセクションを作成します。

図11.31 中継型の通信モデルに中継型の通信モデルの定義イメージを示します。

- 310 -

Page 328: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.31 中継型の通信モデル

中継サーバ

[CHANNEL]

sndname = 送信キュー名 R1

rcvname = 相手サーバの受信キュー名 R2

[RCHANNEL]

rcvname = 自サーバの受信キュー名 R1

記述例

イベントチャネル連携サービスの接続例を図11.32 イベントチャネル連携サービスの接続例に示します。また、接続例の送信サーバ

に対応するサービス定義の記述例を図11.33 サービス定義の記述例に示します。

図11.32 イベントチャネル連携サービスの接続例

- 311 -

Page 329: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.33 サービス定義の記述例

[MNGR] # 基本情報

sproc = 1 # メッセージ送信指定

rproc = 1 # メッセージ受信指定

systemid = SERVER01 # MQDサーバ識別子

repository = SERVER01NSGWSERVERREPID# インプリメンテーションリポジトリID

errorretry = 1 # エラーリトライ回数

[SERVER] # 送信先MQDサーバ情報

name = SERVER02 # 送信先MQDサーバ識別子

iorfile = C:\MQDIORFILE2 # 送信先イベントチャネル連携サービスのIORファイル名

[CHANNEL] # 送信キュー

channelid = ID000001 # 送信チャネル識別子

sndname = SEND::CHANNEL001 # 送信キュー名

rcvname = RECV::CHANNEL002 # 受信キュー名

evttype = structured # イベント形式

server = SERVER02 # 送信先MQDサーバ識別子

packmsg_cnt = 10 # パッキング数

packmsg_wtime = 1 # 最大遅延時間

[RCHANNEL] # 受信キュー

rcvname = RECV::CHANNEL001 # 受信キュー名

recvnum = 1 # 集信数

[MNGR] # 基本情報

sproc = 1 # メッセージ送信指定

rproc = 1 # メッセージ受信指定

systemid = SERVER01 # MQDサーバ識別子

repository = SERVER01NSGWSERVERREPID# インプリメンテーションリポジトリID

errorretry = 1 # エラーリトライ回数

[SERVER] # 通信パス情報

name = SERVER02 # 送信先MQDサーバ識別子

iorfile = /mqd/mqdiorfile2 # 送信先イベントチャネル連携サービスのIORファイル名

[CHANNEL] # 送信キュー

channelid = ID000001 # 送信チャネル識別子

sndname = SEND::CHANNEL001 # 送信キュー名

rcvname = RECV::CHANNEL002 # 受信キュー名

evttype = structured # イベント形式

server = SERVER02 # 送信先MQDサーバ識別子

packmsg_cnt = 10 # パッキング数

packmsg_wtime = 1 # 最大遅延時間

[RCHANNEL] # 受信キュー

rcvname = RECV::CHANNEL001 # 受信キュー名

recvnum = 1 # 集信数

11.3.3.3 URLリストファイルの記述

URLリストファイルは、ネーミングサービス方式で通信する場合に、相手サーバのオブジェクトリファレンスを登録しているネーミング

サービスのURLを格納するファイルです。ネーミングサービスのURLは複数格納することができます。

イベントチャネル連携サービスでは、通信先のオブジェクトリファレンスを獲得するために、URLリストファイルに格納されているネーミ

ングサービスのURLへ順次問い合わせを行います。

ネーミングサービスのURLの指定方式を以下に示します。

iiop://<address>[:<port>]

- 312 -

Page 330: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

<address>: ホスト名、DNS名、IPアドレスを指定することが可能です。省略はできません。63文字以下で記述してください。

<port>: 接続先ORBのポート番号を指定します。

以下にURLリストファイルの設定例を示します。

iiop://255.255.255.1:8002 # ネーミングサービスの場所のURL1iiop://255.255.255.2:8002 # ネーミングサービスの場所のURL2iiop://255.255.255.255 # ネーミングサービスの場所のURL3

URLリストファイルには、1023個までのURLが指定可能です。

あらかじめ、システムで使用しているネーミングサービスをURLリストファイルに記述しておくことにより、システム内でサーバを移動す

る時などに環境変更の操作が軽減され、サーバの移動が簡単に行えるようになります。

ネーミングサービスからのオブジェクトリファレンス取得処理は、URLリストファイルの先頭のURLから処理します。そのため、URLリストファイルへ複数のネーミングサービスのURLを記述する場合は、頻繁に接続するネーミングサービスをURLリストファイルの先頭(上

位)に記述しておくことにより、性能面で有利になります。

11.4 運用

本節では、イベントチャネル連携サービスを使用する場合の運用の手順や方法について、以下の順に説明しています。

・ 運用操作の手順

・ 運用操作の説明

・ 送信異常となったメッセージの対処

なお、ここに記述されているMQDの基本機能のコマンドの詳細については、“第7章 コマンド”を、イベントチャネル連携サービスのコ

マンドについては、“11.7 コマンド”を参照してください。

11.4.1 運用操作の手順

イベントチャネル連携サービスを使用するための操作手順を図11.34 イベントチャネル連携サービスの運用操作手順に示します。

- 313 -

Page 331: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.34 イベントチャネル連携サービスの運用操作手順

11.4.2 運用操作の説明

以下の各運用操作について説明します。

・ Interstageの起動

・ イベントチャネルの起動

- 314 -

Page 332: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 受信アプリケーションの起動

・ MQDの起動

・ イベントチャネル連携サービスの起動

・ 送信アプリケーションの起動

・ サービス定義/状態の表示

・ 送信アプリケーションの停止

・ イベントチャネル連携サービスの停止

・ MQDの停止

・ 受信アプリケーションの停止

・ イベントチャネルの停止

・ Interstageの停止

11.4.2.1 Interstageの起動

Interstageを起動することで、イベントチャネル連携サービスで使用するCORBAサービス、ネーミングサービス、およびノーティフィケー

ションサービスを起動します。Interstageの起動は、Interstageの起動コマンドのisstartコマンドで行います。Interstageの起動方法の詳細

は、“運用ガイド(基本編)”を参照してください。

11.4.2.2 イベントチャネルの起動

イベントチャネル連携サービスで使用するイベントチャネルを起動します。イベントチャネルの起動は、ノーティフィケーションサービスの

esstartchnlコマンドで行います。イベントチャネルの起動コマンドの詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

11.4.2.3 受信アプリケーションの起動

イベントチャネルをMultiCastモデルで作成している場合、受信アプリケーションは、送信キューのすべてのメッセージを受信するため

に、イベントチャネル連携サービスよりも前に起動し、受信キューに接続してください。

その他の場合、受信アプリケーションの起動は任意の契機で実施してください。

11.4.2.4 MQDの起動

MQDはWindows®のサービスとして動作します。このため、MQDの起動は以下のいずれかの方法で行います。

・ Windows®の[サービス]画面でMQDサービスを開始する。

・ Windows®サービスの[スタートアップ]画面でスタートアップの種類を“自動”に変更し、Windows®システムの起動時に自動的に

MQDサービスを開始する。

MQDを起動する場合、[サービス]画面のスタートアップパラメタに以下のいずれかの値を指定することにより、MQDの起動形態を選

択することができます。

-a: イベントチャネル連携サービスを起動する。未反映のサービス定義の反映は行われない。

-n: 未反映のサービス定義を反映してからイベントチャネル連携サービスを起動する。

-p: イベントチャネル連携サービスを起動しない。

[サービス]画面のスタートアップパラメタに何も指定しない場合、およびWindows®システムの起動時に自動的にMQDを起動する場

合の起動形態は、MQDのシステム環境の作成時に指定した起動形態となります。

MQDの起動は、mqdstrコマンドを使用して行います。MQDを起動することにより、イベントチャネル連携サービスも起動されます。

以下にmqdstrコマンドの入力例を示します。

- 315 -

Page 333: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdstr

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

イベントチャネル連携サービスを使用するために必要な環境変数は、MQDを起動する前に設定済みにし、MQDの起動時には有効

になるようにしてください。環境変数の詳細については、“3.2.1 環境変数およびシステムの設定”を参照してください。

11.4.2.5 イベントチャネル連携サービスの起動

通常、イベントチャネル連携サービスの起動は、MQDの起動と連動して行うため不要です。ただし、以下の場合にはイベントチャネ

ル連携サービスが起動されません。

・ [サービス]画面のスタートアップパラメタで“-p”を指定してMQDを起動した場合

・ MQDの起動時にメッセージ“MQD4112”が出力された場合(グローバルトランザクションのダウンリカバリが未完了)

・ MQDの起動時にメッセージ“MQD4112”が出力された場合(グローバルトランザクションのダウンリカバリが未完了)

この場合には、Interstageの起動後にイベントチャネル連携サービスを起動する必要があります。イベントチャネル連携サービスの起

動は、mqdstrsvcコマンドを使用して行います。

以下にmqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc NSGW

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

11.4.2.6 送信アプリケーションの起動

送信アプリケーションを起動し、メッセージの送信を開始してください。

11.4.2.7 サービス定義/状態の表示

サービス定義/状態の表示は、mqdnsgwprtコマンドを使用して行います。このコマンドは、サービス定義の内容を確認する場合や運

用中のイベントチャネル連携サービスの状態を見る場合に使用します。

以下にmqdnsgwprtコマンド(現サービス定義の表示)の入力例を示します。

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

mqdnsgwprt -c

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

以下にmqdnsgwprtコマンド(イベントチャネル連携サービスのすべての通信状態の表示)の入力例を示します。

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

mqdnsgwprt -a

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

11.4.2.8 送信アプリケーションの停止

送信アプリケーションを停止し、メッセージの送信を終了してください。

- 316 -

Page 334: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.4.2.9 イベントチャネル連携サービスの停止

通常、イベントチャネル連携サービスの停止は、MQDの停止時に行うため不要です。MQD運用中にイベントチャネル連携サービス

だけを停止したい場合には、mqdstpsvcコマンドを使用して行います。以下にmqdstpsvcコマンドの入力例を示します。

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

mqdstpsvc NSGW

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

11.4.2.10 MQDの停止

MQDの停止を行う前に、MQDを使用するすべてのアプリケーションおよびMQDのコマンドを終了させておく必要があります。以下に

MQDの停止方法を示します。

MQDの停止は、Windows®の[サービス]画面で行います。

MQDの停止は、mqdstpコマンドを使用して行います。以下にmqdstpコマンドの入力例を示します。

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

mqdstp

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

なお、データベース連携サービスを使用している場合は、Interstageを停止した後で、MQDを停止してください。

11.4.2.11 受信アプリケーションの停止

受信アプリケーションを停止してメッセージの受信を終了してください。

11.4.2.12 イベントチャネルの停止

イベントチャネルの停止は、ノーティフィケーションサービスのesstopchnlコマンドで行います。イベントチャネルの停止コマンドの詳細

は、“リファレンスマニュアル(コマンド編)”を参照してください。

11.4.2.13 Interstageの停止

ノーティフィケーションサービスとCORBAサービスの停止は、INTRTSTAGEの停止コマンドのisstopコマンドで行います。Interstageの停止方法の詳細は、“運用ガイド(基本編)”を参照してください。

Interstageを停止する前に必ずイベントチャネル連携サービスを停止してください。イベントチャネル連携サービスを停止する前にInterstageを停止した場合、次回のInterstageの起動が失敗する場合があります。Interstageを先に停止してしまった場合、以下の対処を行ってく

ださい。

タスクマネージャで以下のプロセスを終了してください。

・ mqdnsgwm.exe

・ mqdnsgws.exe

・ mqdnsgwr.exe

killコマンドで以下のプロセスを終了してください。

・ mqdnsgwm

・ mqdnsgws

- 317 -

Page 335: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ mqdnsgwr

11.4.3 送信異常となったメッセージの対処

メッセージの送信が失敗する送信異常には以下の2つの種別があります。

・ ネットワーク異常や相手サーバ未起動などの一時的な異常

・ メッセージ内容の問題による恒久的な異常

本項では、上記2つの種別ごとの対処方法を説明します。

11.4.3.1 一時的な異常によりメッセージの送信が失敗した場合の対処

一時的な異常によりメッセージの送信が失敗した場合の対処方法について、以下の順に説明します。

・ 送信異常となった原因を取り除く

・ サービスの通信の再開

一時的な異常によりメッセージの送信が失敗した場合の操作手順を図11.35 一時的な異常によりメッセージの送信が失敗した場合の

対処の手順に示します。

図11.35 一時的な異常によりメッセージの送信が失敗した場合の対処の手順

送信異常となった原因を取り除く

送信側または受信側のサーバのシステムログに出力されているイベントチャネル連携サービスのメッセージ(MQD6001~MQD6499)から、送信異常となった原因の対処を行ってください。

サービスの通信の再開

サービスの通信を再開するためには、mqdnsgwcommコマンドを使用して行います。

以下にmqdnsgwcommコマンド(サービスの通信の再開)の入力例を示します。

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

mqdnsgwcomm -a ID000001

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

なお、本コマンドは、-aオプションを指定したmqdnsgwprtコマンドを実行し、状態が“Suspend”のチャネルコネクションに対して実行し

てください。

11.4.3.2 メッセージの内容の問題によりメッセージの送信が失敗した場合の対処

メッセージの内容の問題によりメッセージの送信が失敗した場合の対処方法について、以下の順に説明します。

・ 送信異常となったメッセージの対処

・ サービスの通信の再開

メッセージの内容の問題によりメッセージの送信が失敗した場合の操作手順を図11.36 メッセージの内容の問題によりメッセージの送

信が失敗した場合の対処の手順に示します。

- 318 -

Page 336: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.36 メッセージの内容の問題によりメッセージの送信が失敗した場合の対処の手順

送信異常となったメッセージの対処

送信キューのメッセージングモデルに応じて以下の対処を実施してください。

送信キューのメッセージングモデルがMultiCastモデルの場合

1. チャネルコネクションをmqdnsgwcommコマンドで初期化します。

2. イベントチャネル連携サービスを停止します。

3. 異常の原因に応じて送信アプリケーションまたはサービス定義を修正します。

4. イベントチャネル連携サービスを起動(定義反映)し、運用を再開します。

5. 送信アプリケーションは、異常となったメッセージから再度、メッセージを送信します。

送信キューのメッセージングモデルがPoint-to-Pointモデル(MQDを含む)の場合

メッセージの順序性を守る場合は以下の対処を行います。

1. イベントチャネル連携サービスを停止します。

2. 異常の原因に応じて送信アプリケーションまたはサービス定義を修正します。

3. イベントチャネル連携サービスを起動(定義反映)し、運用を再開します。

4. 送信アプリケーションは、異常となったメッセージから再度、メッセージを送信します。

メッセージの順序性を守る場合はアプリケーションで異常となったメッセージを削除してください。

サービスの通信の再開

サービスの通信を再開するためには、mqdnsgwcommコマンドを使用して行います。

以下にmqdnsgwcommコマンド(サービスの通信の再開)の入力例を示します。

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

mqdnsgwcomm -a ID000001

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

なお、本コマンドは、-aオプションを指定したmqdnsgwprtコマンドを実行し、状態が“Suspend”のチャネルコネクションに対して実行し

てください。

11.5 保守

本節ではイベントチャネル連携サービスの環境に修正を加える方法について説明します。以下の修正パターンについて説明します。

・ 通信定義の追加

・ 通信定義の削除

・ 通信定義の変更

・ キューの再作成

- 319 -

Page 337: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ キュー属性の変更

・ 受信サーバの移動

・ 受信サーバのIPアドレス変更

なお、本節における“サービス定義”は、すべて“イベントチャネル連携サービスのサービス定義”を意味します。

11.5.1 通信定義の追加

送信側、受信側でそれぞれ表11.23 通信定義の追加手順の手順に沿って作業します。追加する非同期メッセージ基盤およびキュー

はすでに作成済みとします。

表11.23 通信定義の追加手順

No 送信サーバ 受信サーバ

1 - 受信定義ファイルの作成・定義登録

2 - 受信定義の反映(動的追加)

3 送信定義ファイルの作成・定義登録 -

4 送信定義の反映(動的追加) -

図11.37 通信定義の追加に通信定義追加の概念図を示します。

図11.37 通信定義の追加

11.5.1.1 受信定義ファイルの作成・定義登録

サービス定義を追加する場合は、追加する定義のみを記述したサービス定義ファイルを作成します。“11.3.3.1 サービス定義の記述”

を参考にサービス定義を作成してください。

例)

[RCHANNEL]

rcvname = GRP2::R2

サービス定義ファイルを作成した後、サービス定義を登録します。サービス定義の登録は、mqdnsgwdefコマンドを使用して行います。

以下にmqdnsgwdef(登録)コマンドの入力例を示します。MQDシステム名 MQD001 にファイル名nsgwsrv01に記述されたイベントチャ

ネル連携サービスのサービス定義を追加します。

mqdnsgwdef -a -f nsgwsrv01

- 320 -

Page 338: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.5.1.2 受信定義登録の反映(動的追加)

受信定義を動的追加、または反映します。反映とはイベントチャネル連携サービスを一度停止し、サービス定義の反映を行うモード

で再起動することを意味します。動的追加とは、イベントチャネル連携サービスを停止せずに定義を動的に追加することを意味します。

サービス定義の反映例を以下に示します。MQDシステム名 MQD001 のイベントチャネル連携サービスを一度停止し、定義反映モー

ドで起動します。

mqdstpsvc NSGWmqdstrsvc -n NSGW

サービス定義の動的追加例を以下に示します。MQDシステム名 MQD001 のイベントチャネル連携サービスに対して登録された定

義を動的に反映しています。

mqdnsgwcomm -n

動的反映は追加のみをするときにしかできません。削除・変更を含む環境変更の場合は、イベントチャネル連携サービスを一度停止

し、サービス定義の反映を行うモードで再起動してください。

11.5.1.3 送信定義ファイルの作成・定義登録

受信側と同じ要領で、追加する定義のみを記述したサービス定義を作成します。“11.3.3.1 サービス定義の記述”を参考にサービス

定義を作成してください。

例)

[CHANNEL]

channelid = ID000101

sndname = GRP2::S2

rcvname = GRP2::R2

server = SV2

サービス定義ファイルを作成した後、サービス定義を登録します。サービス定義の登録は、mqdnsgwdefコマンドを使用して行います。

以下にmqdnsgwdef(登録)コマンドの入力例を示します。MQDシステム名 MQD001 にファイル名nsgwsrv01に記述されたイベントチャ

ネル連携サービスのサービス定義を追加します。

mqdnsgwdef -a -f nsgwsrv01

11.5.1.4 送信定義登録の反映(動的追加)

受信側と同じ要領で、送信定義を動的追加、または反映します。反映とはイベントチャネル連携サービスを一度停止し、サービス定

義の反映を行うモードで再起動することを意味します。動的追加とは、イベントチャネル連携サービスを停止せずに定義を動的に追加

することを意味します。

サービス定義の反映例を以下に示します。MQDシステム名 MQD001 のイベントチャネル連携サービスを一度停止し、定義反映モー

ドで起動します。

mqdstpsvc NSGWmqdstrsvc -n NSGW

サービス定義の動的追加例を以下に示します。MQDシステム名 MQD001 のイベントチャネル連携サービスに対して登録された定

義を動的に反映しています。

mqdnsgwcomm -n

- 321 -

Page 339: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

動的反映は追加のみをするときにしかできません。削除・変更を含む環境変更の場合は、イベントチャネル連携サービスを一度停止

し、サービス定義の反映を行うモードで再起動してください。

11.5.2 通信定義の削除

送信側、受信側でそれぞれ表11.24 通信定義の削除手順の手順に沿って作業します。

表11.24 通信定義の削除手順

No 送信サーバ 受信サーバ

1 送信アプリケーションの停止 -

2 チャネルコネクションの初期化 -

3 - 受信定義ファイルの作成・定義削除

4 - 受信定義削除の反映

5 送信定義ファイルの作成・定義削除 -

6 送信定義削除の反映 -

7 送信アプリケーションの起動 -

図11.38 通信定義の削除に通信定義削除の概念図を示します。

図11.38 通信定義の削除

11.5.2.1 送信アプリケーションの停止

送信アプリケーションを停止し、メッセージの送信を終了してください。その後、対応関係を削除する送信キューの全てのメッセージ

が受信サーバの受信キューに格納された後に以降の作業を行ってください。

11.5.2.2 チャネルコネクションの初期化

送信キューと受信キューの対応関係を削除する場合は、削除の前に対応するチャネルコネクションを初期化します。チャネルコネク

ションの初期化は、送信側でmqdnsgwcommコマンドを使用して行います。

以下にmqdnsgwcommコマンド(チャネルコネクションを初期化)の入力例を示します。MQDシステム名 MQD001、送信チャネル識別子

ID000101 のチャネルコネクションを初期化します。

mqdnsgwcomm -r ID000101

- 322 -

Page 340: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.5.2.3 受信定義ファイルの作成・定義削除

サービス定義を削除する場合は、削除する定義のみを記述したサービス定義ファイルを作成します。“11.3.3.1 サービス定義の記述”

を参考にサービス定義を作成してください。

例)

[RCHANNEL]

rcvname = GRP2::R2

サービス定義ファイルを作成した後、サービス定義を削除します。サービス定義の削除は、mqdnsgwdefコマンドを使用して行います。

以下にmqdnsgwdef(削除)コマンドの入力例を示します。MQDシステム名 MQD001 にファイル名nsgwsrv01に記述されたイベントチャ

ネル連携サービスのサービス定義を削除します。

mqdnsgwdef -d -f nsgwsrv01

11.5.2.4 受信定義削除の反映

受信定義削除の反映をします。イベントチャネル連携サービスを一度停止し、サービス定義の反映を行うモードで再起動することで

定義の削除を反映します。以下に例を示します。

サービス定義の反映例を以下に示します。MQDシステム名 MQD001 のイベントチャネル連携サービスを一度停止し、定義反映モー

ドで起動します。

mqdstpsvc NSGWmqdstrsvc -n NSGW

11.5.2.5 送信定義ファイルの作成・定義削除

受信定義と同じ要領で、削除する定義のみを記述したサービス定義ファイルを作成します。“11.3.3.1 サービス定義の記述”を参考に

サービス定義を作成してください。

例)

[CHANNEL]

channelid = ID000101

sndname = GRP2::S2

rcvname = GRP2::R2

server = SV2

サービス定義ファイルを作成した後、サービス定義を削除します。サービス定義の削除は、mqdnsgwdefコマンドを使用して行います。

以下にmqdnsgwdef(削除)コマンドの入力例を示します。MQDシステム名 MQD001 にファイル名nsgwsrv01に記述されたイベントチャ

ネル連携サービスのサービス定義を削除します。

mqdnsgwdef -d -f nsgwsrv01

11.5.2.6 送信定義削除の反映

受信定義と同じ要領で、送信定義削除の反映をします。イベントチャネル連携サービスを一度停止し、サービス定義の反映を行うモー

ドで再起動することで定義の削除を反映します。以下に例を示します。

サービス定義の反映例を以下に示します。MQDシステム名 MQD001 のイベントチャネル連携サービスを一度停止し、定義反映モー

ドで起動します。

mqdstpsvc NSGWmqdstrsvc -n NSGW

- 323 -

Page 341: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.5.2.7 送信アプリケーションの起動

送信アプリケーションを起動し、メッセージの送信を開始してください。

11.5.3 通信定義の変更

通信定義の変更には以下の3種類のパターンがあります。

・ パターンA:受信側の定義のみを変更

・ パターンB:送信側の定義のみを変更

・ パターンC:両側の定義を変更

どのパターンでも変更方法の流れは同じです。 初に定義の削除を行い、次に変更した定義を登録するという流れになります。送信

側、受信側でそれぞれ表11.25 通信定義の変更手順の手順に沿って作業します。

表11.25 通信定義の変更手順

No 送信サーバ 受信サーバ A B C

1 送信アプリケーションの停止 - ○ ○ ○

2 チャネルコネクションの初期化 - ○ ○ ○

3 - 受信定義ファイルの作成・定義削除 ○ - ○

4 - 受信定義削除の反映 ○ - ○

5 - 受信定義ファイルの作成・定義登録 ○ - ○

6 - 受信定義登録の反映 ○ - ○

7 送信定義ファイルの作成・定義削除 - - ○ ○

8 送信定義削除の反映 - - ○ ○

9 送信定義ファイルの作成・定義登録 - - ○ ○

10 送信定義登録の反映 - - ○ ○

11 送信アプリケーションの起動 - ○ ○ ○

○:作業が必要

-:作業不要

それぞれの操作で行うことは通信定義の追加・削除で行ったことと同じです。詳細は“11.5.1 通信定義の追加” “11.5.2 通信定義の

削除”を参照してください。

定義削除→イベントチャネル連携サービスの停止と再起動による反映

→定義登録→イベントチャネル連携サービスの停止と再起動による反映

のように、イベントチャネル連携サービスの再起動が2回必要です。

11.5.4 キューの再作成

イベントチャネル連携サービスが使用しているキューの再作成を行う場合、表11.26 キューの再作成手順の手順に従って作業しま

す。

表11.26 キューの再作成手順

No 送信サーバ 受信サーバ

1 送信アプリケーションの停止 -

2 チャネルコネクションの初期化 -

3 イベントチャネル連携サービスの停止 -

- 324 -

Page 342: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

No 送信サーバ 受信サーバ

4 キューの再作成 -

5 - イベントチャネル連携サービスの停止

6 - キューの再作成

7 - イベントチャネル連携サービスの起動

8 イベントチャネル連携サービスの起動 -

キューの削除・作成は、使用している非同期メッセージ基盤の操作方法に従ってください。その他の操作は通信定義の追加・削除で

行ったことと同じです。詳細は“11.5.1 通信定義の追加” “11.5.2 通信定義の削除”を参照してください。

11.5.5 キュー属性の変更

イベントチャネル連携サービスが使用しているキューの属性のみを変更する場合、表11.27 キュー属性の変更手順の手順に従って

作業します。

表11.27 キュー属性の変更手順

No 送信サーバ 受信サーバ

1 送信アプリケーションの停止 -

2 - キューの属性変更

3 キューの属性変更 -

4 メッセージの送信再開 -

キューの属性変更は、使用している非同期メッセージ基盤の操作方法に従ってください。その他の操作は通信定義の追加・削除で

行ったことと同じです。詳細は“11.5.1 通信定義の追加” “11.5.2 通信定義の削除”を参照してください。

11.5.6 受信サーバの移動

受信サーバの物理的なマシンを変更することを受信サーバの移動と呼びます。

受信サーバを移動するためには、表11.28 受信サーバの移動手順の手順に従って、イベントチャネル連携サービスのサービス環境

を変更する必要があります。

表11.28 受信サーバの移動手順

No 送信サーバ 移動前の受信サーバ 移動後の受信サーバ

1 送信アプリケーションの停止 - -

2 チャネルコネクションの初期化 - -

3 - イベントチャネル連携サービス

の停止

4 - イベントチャネル連携サービス

のCORBAサービスからの削除

イベントチャネル連携サービス

の環境削除

5 - - 受信側イベントチャネル連携

サービスの環境構築全て

6 URLリストファイルの変更 - -

7 - - イベントチャネル連携サービス

の起動

8 メッセージの送信再開 - -

- 325 -

Page 343: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.5.6.1 送信アプリケーションの停止

送信サーバで行います。

送信アプリケーションを停止し、メッセージの送信を終了してください。その後、移動する受信サーバにメッセージが受信されるのを待

ち合わせてから以降の作業を行ってください。

11.5.6.2 チャネルコネクションの初期化

送信サーバで行います。

受信サーバを移動する前に対応するチャネルコネクションを初期化します。チャネルコネクションの初期化は、送信側でmqdnsgwcommコマンドを使用して行います。

以下にmqdnsgwcommコマンド(チャネルコネクションを初期化)の入力例を示します。MQDシステム名 MQD001、送信チャネル識別子

ID000101 のチャネルコネクションを初期化します。

mqdnsgwcomm -r ID000101

移動前の受信サーバがハード故障などのため通信可能な状態にできない場合には、強制的にチャネルコネクションの初期化をおこ

なってください。

以下にMQDシステム名 MQD001、送信チャネル識別子 ID000101 のチャネルコネクションを強制的に初期化する例を示します。

mqdnsgwcomm -c ID000101

11.5.6.3 イベントチャネル連携サービスの停止

移動前の受信サーバで行います。

受信サーバを移動する前に、イベントチャネル連携サービスを停止します。イベントチャネル連携サービスを停止するには、mqdstpsvcコマンドを使用して行います。

以下にmqdstpsvcコマンドの入力例を示します。MQDシステム名 MQD001 のイベントチャネル連携サービスを停止します。

mqdstpsvc NSGW

11.5.6.4 イベントチャネル連携サービスのCORBAサービスからの削除と環境削除

移動前の受信サーバで行います。

受信サーバを移動する前に、イベントチャネル連携サービスをCORBAサービスから削除します。CORBAサービスから削除するに

は、mqdnsgwrlsserverコマンドを使用します。

以下にmqdnsgwrlsserverコマンドの入力例を示します。MQDサーバ識別子 SV2 をCORBAサービスから削除します。

mqdnsgwrlsserver.bat SV2

次にイベントチャネル連携サービスの環境を削除します。mqdnsgwunsetupコマンドを使って環境を削除します。

以下にmqdnsgwunsetupコマンドの入力例を示します。MQDシステム名 MQD001 のイベントチャネル連携サービスの環境を削除しま

す。

mqdnsgwunsetup

11.5.6.5 新しい受信サーバの準備

新しい受信サーバを準備します。受信サーバとして必要な環境作成を全て行って下さい。手順についてはを“11.3 環境作成”参照し

てください。

- 326 -

Page 344: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

受信定義は移動する前の受信サーバの定義と同一の定義を使用してください。

11.5.6.6 URLリストファイルの変更

送信サーバで行います。

移動後の受信サーバを登録したネーミングサービスのURLを追加します。URLリストファイルについては、“ネーミングサービスを使用

する相手サーバの指定”を参照してください。

11.5.6.7 イベントチャネル連携サービスの起動

移動後の受信サーバで行います。

移動した受信サーバでイベントチャネル連携サービスを起動します。イベントチャネル連携サービスを起動するには、mqdstrsvcコマ

ンドを使用して行います。

以下にmqdstrsvcコマンドの入力例を示します。MQDシステム名 MQD001 のイベントチャネル連携サービスを起動します。

mqdstrsvc NSGW

11.5.6.8 通信の再開

送信サーバで行います。

イベントチャネル連携サービスによる通信を再開するには、mqdnsgwcommコマンドを使用します。

以下にmqdnsgwcommコマンド(通信の再開)の入力例を示します。MQDシステム名 MQD001、送信チャネル識別子 ID000101 のイ

ベントチャネルからの送信を再開します。

mqdnsgwcomm -a ID000101

11.5.7 受信サーバのIPアドレス変更

受信サーバの物理的なマシンを変更せず、IPアドレスのみを変更することを受信サーバのIPアドレス変更と呼びます。

受信サーバのIPアドレスを変更するためには、表11.29 受信サーバのIPアドレス変更手順の手順に従って、イベントチャネル連携サー

ビスのサービス環境を変更する必要があります。

表11.29 受信サーバのIPアドレス変更手順

No 送信サーバ 受信サーバ

1 送信アプリケーションの停止 -

2 チャネルコネクションの初期化 -

3 - イベントチャネル連携サービスの停止

4 - イベントチャネル連携サービスのCORBAサー

ビスからの削除

5 - イベントチャネル連携サービスのCORBAサー

ビスへの登録

6 URLリストファイルの変更 -

7 - イベントチャネル連携サービスの起動

8 メッセージの送信再開 -

それぞれの操作で行うことは受信サーバの移動で行ったことと同じです。詳細は“11.5.6 受信サーバの移動”を参照してください。

- 327 -

Page 345: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.6 アプリケーションの作成方法

送信側と受信側の非同期メッセージ基盤が異なる場合やグローバルサーバなどの他のプラットフォームとの間でイベントチャネル連

携サービスを使用したサーバ間連携を行う場合は、表11.30 通信可能なメッセージの形式に示す各々の非同期メッセージ基盤で動作

するアプリケーションが共通して処理できるメッセージの範囲でアプリケーション論理を作成する必要があります。

各通信形態で通信可能なメッセージの形式とアプリケーション作成時の留意点を以下に示します。

表11.30 通信可能なメッセージの形式

送信側の非同期メッセージ基盤 受信側の非同期メッセージ基盤

ノーティフィケー

ションサービス

JMS MQD(注1) (注2) グローバルサーバ

のMQD

ノーティフィケーションサービス ○ 形式1 形式2 形式3

JMS 形式1 ○ 形式4 形式6

MQD (注3) 形式2 形式4 ○ 形式5

グローバルサーバのMQD 形式3 形式6 形式5 -

○: 各非同期メッセージ基盤に対応したメッセージの送信が可能

-: 本機能の機能範囲外

1. Linux、Windows Server(R) for Itanium-based Systems および Windows Server(R) x64 Editions では使用できません。

2. 受信側の非同期メッセージ基盤がMQDの場合、受信できない形式のメッセージを受信するとシテムログにMQD6374のエラー

メッセージが出力されます。

3. 文字列データとして送信するメッセージの終端がNULL文字以外の場合は、自動的にメッセージの終端にNULL文字(1バイト)が付加されます。

形式1

“J2EEユーザーズガイド”に示すメッセージの形式の範囲でアプリケーションを作成してください。

形式2

ノーティフィケーションサービスのアプリケーションでは、表11.31 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションに送信できます。

表11.31 利用可能なCORBAサービスのデータ型

CORBAサービスのデータ型 C言語での定義

整数型 CORBA_short

CORBA_unsigned_long

CORBA_long

CORBA_unsigned_short

CORBA_long_long

浮動小数点型 CORBA_float

CORBA_double

CORBA_long_double

文字型 CORBA_char

CORBA_wchar

- 328 -

Page 346: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

CORBAサービスのデータ型 C言語での定義

オクテッド型 CORBA_octet

ブーリアン型 CORBA_boolean

文字列型 CORBA_string

ワイド文字列型 CORBA_wstring

列挙型 CORBA_enum

シーケンス型のオクテッド型 CORBA_Sequence_octet

ノーティフィケーションサービスのアプリケーションでは、表11.32 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションから受信できます。

表11.32 利用可能なCORBAサービスのデータ型

CORBAサービスのデータ型 C言語での定義

文字列型 CORBA_string

シーケンス型のオクテッド型 CORBA_Sequence_octet

形式3

ノーティフィケーションサービスのアプリケーションとグローバルサーバのアプリケーションでは表11.33 利用可能なCORBAサービス

のデータ型のCORBAサービスのデータ型でメッセージの送受信ができます。

表11.33 利用可能なCORBAサービスのデータ型

CORBAサービスのデータ型 説明

基本データ型 整数型、浮動小数点型、文字型、オクテット型、ブーリアン

型、文字列型が利用可能

シーケンス型(注1) 応用プログラムの実行時に要素数を指定する可変長の一次

元配列のデータ型

配列型(注1) 要素数が固定の1次元配列のデータ型

共用体型 一つのデータを複数個の異なるデータ型で共用して表す

データ型

構造体型 集団項目のデータ型

注1) オクテット型と組み合わせることにより、バイナリデータとして扱うことができます。バイナリデータとは、通信時にいかなる変換もさ

れないデータのことを言います。

一つのメッセージに複数の項目を定義する場合には、構造体型を使用してください。以下に構造体型の定義例を示します。

グローバルサーバでは、コピーライブラリで以下のように定義し、インタフェース定義制御文のENTRY制御文で

は、“PARMTYPE=NOSTRUCT”を省略します。

000010 01 IN-REC.

000020 02 INSTR1 PIC X(100).

000030 02 INSTR2.

000040 49 LEN PIC S9(9) BINARY.

000050 49 DAT PIC X(1000).

000060*

構造体型を使用しない場合には、一つのメッセージに一つの項目だけ定義できます。以下に文字列型の定義例を示します。

グローバルサーバでは、コピーライブラリで以下のように定義し、インタフェース制御文定義の ENTRY制御文

で、“PARMTYPE=NOSTRUCT”を指定します。

000010 01 IN-REC.

000020 02 INSTR.

- 329 -

Page 347: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

000030 49 LEN PIC S9(9) BINARY.

000040 49 DAT PIC X(10000).

000050*

形式4

JMSのアプリケーションでは、表11.34 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションに送信

できます。

表11.34 利用可能なCORBAサービスのデータ型

JMS Message 対応するCORBAサービスのデータ型

ByteMessage シーケンス型のオクテッド型

TextMessage ワイド文字列型

JMSのアプリケーションでは、表11.35 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションから受

信できます。

表11.35 利用可能なCORBAサービスのデータ型

JMS Message 対応するCORBAサービスのデータ型

ByteMessage シーケンス型のオクテッド型

TextMessage 文字列型

形式5

MQDのアプリケーションと通信するグローバルサーバのアプリケーションでは以下に示すCOPYLIBを参考にIDLファイルを作成して

ください。

グローバルサーバとメッセージの通信をする場合、“非有限文字列型構造体”もしくは“非有限バイナリ型構造体”を推奨します。

“有限文字列型構造体”もしくは“有限バイナリ型構造体”を使用する場合、Windowsサーバ、UnixサーバもしくはLinuxサーバから送

信されるデータ長が65535バイト固定となります。グローバルサーバ側のインタフェース定義のデータ長を65535バイト固定にしてくださ

い。

非有限文字列型構造体でメッセージの送受信を行う場合

000010*========================================================================

000020* STRING

000030*========================================================================

000040 01 IN-REC.

000050 02 INSTRING.

000060 49 LEN PIC S9(9) BINARY.

000070 49 DAT PIC X(1~1999996). ・・・(注)

000080*

注) DAT項目の大きさはメッセージ長に合わせて、1~1999996の範囲で指定してください。

非有限バイナリ型構造体でメッセージの送受信を行う場合

000010*========================================================================

000020* SEQUENCE <OCTET>

000030*========================================================================

000040 01 IN-REC.

000050 02 INSEQOCTET.

000060 49 LEN PIC S9(9) BINARY.

000070 49 DAT PIC X(1~1999996). ・・・(注)

000080*

注) DAT項目の大きさはメッセージ長に合わせて、1~1999996の範囲で指定してください。

- 330 -

Page 348: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

有限文字列型構造体でメッセージの送受信を行う場合

000010*========================================================================

000020* STRING<65535>

000030*========================================================================

000040 01 IN-REC.

000050 02 INBSTRING PIC X(65535).

000060*

有限バイナリ型構造体でメッセージの送受信を行う場合

000010*========================================================================

000020* OCTET[65535]

000030*========================================================================

000040 01 IN-REC.

000050 02 INBARYOCTET PIC X(65535).

000060*

形式6

JMSのアプリケーションでは、表11.36 利用可能なCORBAサービスのデータ型の形式のメッセージをグローバルサーバのアプリケー

ションに送信できます。

表11.36 利用可能なCORBAサービスのデータ型

JMS Message 対応するCORBAサービスのデータ型

ByteMessage シーケンス型のオクテッド型

TextMessage ワイド文字列型

JMSのアプリケーションでは、表11.37 利用可能なCORBAサービスのデータ型の形式のメッセージをグローバルサーバのアプリケー

ションから受信できます。

表11.37 利用可能なCORBAサービスのデータ型

JMS Message 対応するCORBAサービスのデータ型

ByteMessage シーケンス型のオクテッド型

配列型のオクテッド型

TextMessage 文字列型

ワイド文字列型

非同期メッセージ基盤にノーティフィケーションサービスまたはJMSを使用する場合、ユーザアプリケーションから送信するメッセージ

の生存時間は無限大を指定してください。

有限の時間を指定した場合、イベントチャネル連携サービスの転送処理中にメッセージの生存時間切れでメッセージが削除されてし

まう場合があります。イベントチャネル連携サービスの動作上の問題は発生しませんが、送信側と受信側でメッセージの数に食い違い

が発生するなど、運用上の問題になる可能性が高いため、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指

定することを強く推奨します。

11.7 コマンド

本節では、イベントチャネル連携サービスに固有のコマンドの文法について説明します。

イベントチャネル連携サービスには、表11.38 イベントチャネル連携サービスのコマンド一覧に示すコマンドがあります。

- 331 -

Page 349: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表11.38 イベントチャネル連携サービスのコマンド一覧

コマンド名 機能概要

mqdnsgwsetup サービス環境を作成する

mqdnsgwunsetup サービス環境を削除する

mqdstrsvc サービスを起動する (サービス環境を変更する)

mqdstpsvc サービスを停止する

mqdnsgwdef サービス定義を登録/削除する

mqdnsgwprt サービスの定義/状態を表示する

mqdnsgwcomm サービスの通信を制御する

mqdnsgwinit_ns イベントチャネル連携サービスをCORBAサービスに登録する

mqdnsgwinit_ior イベントチャネル連携サービスをCORBAサービスに登録する

mqdnsgwrlsserver イベントチャネル連携サービスをCORBAサービスから削除する

各コマンドの文法を以下に説明します。コマンドで使用する用語および記号については、“第7章 コマンド”を参照してください。

11.7.1 mqdnsgwsetup(サービス環境を作成する)

名前

mqdnsgwsetup - イベントチャネル連携サービスのサービス環境を新規に作成する。

形式

mqdnsgwsetup [-s sysname]

機能説明

イベントチャネル連携サービスのサービス環境を新規に作成するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

使用例

MQDシステム名 MQD001 にイベントチャネル連携サービスのサービス環境を作成します。

mqdnsgwsetup

11.7.2 mqdnsgwunsetup(サービス環境を削除する)

名前

mqdnsgwunsetup - イベントチャネル連携サービスのサービス環境を削除する。

形式

mqdnsgwunsetup [-s sysname] [-c]

- 332 -

Page 350: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能説明

イベントチャネル連携サービスのサービス環境を削除するコマンドです。送信定義または受信定義が残っている場合には、それらも

削除されます。本コマンド実行時には、サービス環境の削除を再確認する問合せが行われます。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-c

強制的にサービス環境を削除します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは、イベントチャネル連携サービスが停止している状態で実行してください。

使用例

MQDシステム名 MQD001 のイベントチャネル連携サービスのサービス環境を削除します。

mqdnsgwunsetup

11.7.3 mqdstrsvc(サービスを起動する)

名前

mqdstrsvc - イベントチャネル連携サービスを起動する。

形式

mqdstrsvc [-s sysname] [-n] svcname

機能説明

イベントチャネル連携サービスを起動するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-n

未反映の定義を反映してからイベントチャネル連携サービスを起動する場合に指定します。

svcname

サービス名として“NSGW”または“nsgw”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドによって、イベントチャネル連携サービスを再起動する場合は、es11209のメッセージが出力されますが、これは内部情

報を採取したことにより出力されるものです。

使用例

MQDシステム名 MQD001 のイベントチャネル連携サービスを起動します。未反映の定義は反映しません。

mqdstrsvc NSGW

- 333 -

Page 351: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.7.4 mqdstpsvc(サービスを停止する)

名前

mqdstpsvc - イベントチャネル連携サービスを停止する。

形式

mqdstpsvc [-s sysname] svcname

機能説明

イベントチャネル連携サービスを停止するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

svcname

サービス名として“NSGW”または“nsgw”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

使用例

MQDシステム名 MQD001 のイベントチャネル連携サービスを停止します。

mqdstpsvc NSGW

11.7.5 mqdnsgwdef(サービス定義を登録/削除する)

名前

mqdnsgwdef - イベントチャネル連携サービスのサービス定義の登録、または削除を行う

形式

mqdnsgwdef [-s sysname]{-a|-d} -f filename

機能説明

イベントチャネル連携サービスのサービス定義の登録、または削除を行うコマンドです。

サービス定義の登録は、事前に作成されたサービス定義をMQDへ登録します。登録された定義を新サービス定義と呼びます。サー

ビス定義の削除は、現サービス定義の一部または全体を削除します。現サービス定義とは、現在運用中のサービス定義を意味しま

す。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-d}

処理内容を指定します。

-a: サービス定義を登録する

-d: サービス定義を削除する

-f filename

サービス定義ファイルのファイル名を指定します。

- 334 -

Page 352: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドを実行する前に、イベントチャネル連携サービスのサービス定義を作成しておく必要があります。詳細については、“11.3.3.1サービス定義の記述”を参照してください。

・ 登録済のサービス定義の全体を削除したい場合は、“mqdnsgwunsetup”コマンドで、サービス環境を削除してください。

・ -dオプションを指定して本コマンドを実行する場合、本コマンドの実行前にチャネルコネクションの初期化を実行してください。詳

細については、“11.5.2 通信定義の削除”および“11.5.2.2 チャネルコネクションの初期化”を参照してください。

使用例

MQDシステム名 MQD001 にファイル名nsgwsvcに記述されたイベントチャネル連携サービスのサービス定義を追加します。

mqdnsgwdef -a -f nsgwsvc

11.7.6 mqdnsgwprt(サービスの定義/状態を表示する)

名前

mqdnsgwprt - イベントチャネル連携サービスのサービス定義の内容、通信状態を表示する。

形式

mqdnsgwprt [-s sysname]{-c|-d|-a|-p hostname|-q channelname}

機能説明

イベントチャネル連携サービスのサービス定義の内容表示、およびサービスの通信状態を表示するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-c|-d|-a|-p hostname|-q channelname}

表示内容を指定します。

-c : 現サービス定義の内容を表示する

-d : 新サービス定義の内容を表示する

-a : イベントチャネル連携サービスのすべての通信状態を表示する

-p hostname : 特定の相手サーバに関する通信状態を表示する

-q channelname : 特定のキューに関する通信状態を表示する

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ サービスの状態表示は、イベントチャネル連携サービスを起動した状態で実行してください。

・ メッセージを受信するサーバ側で1度もコネクションが確立していない場合、受信キューに関する通信状態は出力されません。

使用例

MQDシステム名 MQD001 のイベントチャネル連携サービスの現サービス定義内容を表示します。

mqdnsgwprt -c

図11.39 サービス定義の内容表示例

- 335 -

Page 353: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

- 336 -

Page 354: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

例. イベントチャネル連携サービスのすべての通信状態を表示する

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

mqdnsgwprt -a

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

- 337 -

Page 355: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図11.40 すべての通信状態の表示例

表示例の説明

Sender Process :送信用プロセスの起動数

PID :送信用プロセスのプロセスID

Receiver :送信先MQDサーバ識別子

Channel ID :送信チャネル識別子

Send Channel :送信キュー名

Recv Channel :受信キュー名

Comm Status :通信情報

Connect :チャネルコネクション確立

Suspend :サービスの通信が停止

Disconnect :チャネルコネクション未確立

Initialize :チャネルコネクションの初期化中

Retry :メッセージの送信リトライ中

Receiver Process :受信用プロセスの起動数

PID :受信用プロセスのプロセスID

Sender :送信元MQDサーバ識別子

Recv Channel :受信キュー名

11.7.7 mqdnsgwcomm(サービスの通信を制御する)

名前

mqdnsgwcomm - サービスの通信を制御する。

形式

mqdnsgwcomm [-s sysname] {-a|-d|-r|-c|-e|-n} [-p pserver] { channelid | * }

機能説明

イベントチャネル連携サービスの通信を制御するコマンドです。-eオプション以外は送信側サーバで実行します。

以下に、本コマンドのオプションとパラメタを示します。

-s sysname

対象のMQDの名前(MQDシステム名)を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

- 338 -

Page 356: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

{-a|-d|-r|-c|-e|-n}

制御を指定します。

-a : サービスの通信を再開します。

メッセージの送信を再開する場合に指定します。

-d : サービスの通信を停止します。

メッセージの送信を一時的に停止する場合に指定します。

-r : チャネルコネクションを初期化します。

送信キューと受信キューの対応関係を変更する場合に指定します。

-c : 強制的にチャネルコネクションを初期化します。

チャネルコネクションの初期化を相手サーバの状態に関わらず実行する場合に指定

します。

-e : 受信サーバで実行します。送信側とはかかわりなく受信サーバのチャネルコネク

ションのみを初期化します。

送信キューと受信キューの対応関係を変更する場合に指定します。

-n: 通信環境の追加を行います。

サービスが稼動中に通信環境の追加を行う場合に指定します。サービス定義

の中に削除もしくは変更された定義がある場合は通信環境の追加に失敗します。

-p pserver

送信サーバのMQDサーバ識別子を指定します。-eオプションを指定した時のみ有効です。削除する単位で以下のように指定します。

・任意のチャネルコネクション情報の削除

mqdnsgwcomm -e -p pserver channelid

・任意の送信サーバに対するすべてのチャネルコネクション情報の削除

mqdnsgwcomm -e -p pserver *

・受信サーバすべてのチャネルコネクション情報の削除

mqdnsgwcomm -e *

{channelid | * }

channelid: 制御するイベントチャネルの送信チャネル識別子を指定します。

送信チャネル識別子は、CHANNELセクション定義の送信チャネル識別子を使用して

ください。

*: すべての送信チャネル識別子を指定する場合に指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドは、イベントチャネル連携サービスを起動した状態で実行してください。

・ チャネルコネクションを初期化する場合は、相手サーバのイベントチャネル連携サービスが起動している状態で実行してください。

・ 送信キューがMultiCastモデルの場合、チャネルコネクションを初期化すると、その時点で送信キューに滞留していたメッセージは

受信キューに送信されません。

使用例

MQDシステム名 MQD001、送信チャネル識別子 ID000001 のイベントチャネルからの送信を停止します。

mqdnsgwcomm -d ID000001

- 339 -

Page 357: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

11.7.8 mqdnsgwinit_ns(イベントチャネル連携サービスをCORBAサービスに登録する)

名前

mqdnsgwinit_ns - イベントチャネル連携サービスをCORBAサービスに登録する。

形式

mqdnsgwinit_ns.bat MQDサーバ識別子 自サーバIPアドレス ポート番号

mqdnsgwinit_ns.sh MQDサーバ識別子 自サーバIPアドレス ポート番号 コード系

機能説明

ネーミングサービス方式で通信する場合に、イベントチャネル連携サービスをCORBAサービスに登録するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

MQDサーバ識別子

MQDサーバ識別子を指定します。

自サーバIPアドレス

自サーバのIPアドレスを指定します。

ポート番号

自サーバのCORBAサービスが使用するポート番号を指定します。

コード系

使用するコード系(EUCまたはSJIS)を指定します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドはCORBAサービスのOD_impl_instコマンドとOD_or_admコマンドを実行しています。実行内容の詳細について

は“CORBAサービスへの登録内容”を参照してください。

使用例

MQDサーバ識別子 SERVER01 のイベントチャネル連携サービスを自サーバIPアドレス 255.255.255.255、ポート番号 8002 としてCORBAサービスに登録します。

mqdnsgwinit_ns.bat SERVER01 255.255.255.255 8002

mqdnsgwinit_ns.sh SERVER01 255.255.255.255 8002 EUC

CORBAサービスへの登録内容

OD_impl_instコマンドの入力内容

OD_impl_instコマンドを使用してイベントチャネル連携サービスをインプリメンテーションリポジトリへ登録を行います。

- 340 -

Page 358: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

表11.39 インプリメンテーションリポジトリへの登録のオプション設定項目にインプリメンテーションリポジトリへ登録する際に必要なオプ

ションを示します。

OD_impl_instコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

表11.39 インプリメンテーションリポジトリへの登録のオプション設定項目

オプション 留意事項

-ax defname インプリメンテーションリポジトリへ登録するための定義のファイル名を指定しま

す。

表11.40 インプリメンテーションリポジトリの登録に使用する定義ファイル作成時のパラメタ設定項目にインプリメンテーションリポジトリ

の登録に使用する定義ファイルを作成する際に考慮が必要な設定項目のパラメタを示します。その他のパラメタについては使用する

環境に応じた適切な値を設定してください。

表11.40 インプリメンテーションリポジトリの登録に使用する定義ファイル作成時のパラメタ設定項目

パラメタ 留意事項

rep_id インプリメンテーションリポジトリIDを指定します。

“MQDサーバ識別子”+“NSGWSERVERREPID”で指定します。

Lang “C”を指定します。

Type “persistent”を指定します。

proc_conc_max “1”を指定します。

thr_conc_init “128”を指定します。

Mode “SYNC_END”を指定します。

Iswitch “OFF”を指定します。

Ior “1.1”を指定します。

Locale “SJIS”を指定します。

OD_or_admコマンドの入力内容

OD_or_admコマンドを使用してイベントチャネル連携サービスをネーミングサービスへの登録を行います。

表11.41 ネーミングサービスへの登録のオプション設定項目にネーミングサービスへ登録する際に必要なオプションを示します。

OD_or_admコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

表11.41 ネーミングサービスへの登録のオプション設定項目

パラメタ 留意事項

-c IntfID “IDL:FujitsuISMQDComm/ReceiverES:1.0”を指定します。

-h HostName 自サーバのIPアドレスを指定します。

-p PortNum リクエストを受け付けるポート番号を指定します。

-n name ネーミングサービスへ登録するオブジェクト名を指定します。

“MQDサーバ識別子”+“NSGWSERVERNAME”で指定します。

-a ImplID ネーミングサービス方式を使用する場合

インプリメンテーションリポジトリIDを指定します。

“MQDサーバ識別子”+“NSGWSERVERREPID”で指定します。

-o file IORファイルを使用する場合

出力するファイル名を指定します。

-L locale “SJIS”を指定します。

11.7.9 mqdnsgwinit_ior(イベントチャネル連携サービスをCORBAサービスに登録する)

- 341 -

Page 359: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

名前

mqdnsgwinit_ior - イベントチャネル連携サービスをCORBAサービスに登録する。

形式

mqdnsgwinit_ior.bat MQDサーバ識別子 自サーバIPアドレス ポート番号 IORファイル名

mqdnsgwinit_ior.sh MQDサーバ識別子 自サーバIPアドレス ポート番号 コード系 IORファイル名

機能説明

IORファイル方式で通信する場合に、イベントチャネル連携サービスをCORBAサービスに登録するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

MQDサーバ識別子

MQDサーバ識別子を指定します。

自サーバIPアドレス

自サーバのIPアドレスを指定します。

ポート番号

自サーバのCORBAサービスが使用するポート番号を指定します。

コード系

使用するコード系(EUCまたはSJIS)を指定します。

IORファイル名

出力するIORファイル名を絶対パスで指定します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドはCORBAサービスのOD_impl_instコマンドとOD_or_admコマンドを実行しています。実行内容の詳細について

は“CORBAサービスへの登録内容”を参照してください。

使用例

MQDサーバ識別子 SERVER01 のイベントチャネル連携サービスを自サーバIPアドレス 255.255.255.255、ポート番号 8002、IORファイル

MQDIORFILE としてCORBAサービスに登録します。

mqdnsgwinit_ior.bat SERVER01 255.255.255.255 8002 C:\mqd\MQDIORFILE

mqdnsgwinit_ior.sh SERVER01 255.255.255.255 8002 EUC /mqd/MQDIORFILE

11.7.10 mqdnsgwrlsserver(イベントチャネル連携サービスをCORBAサービスから削除する)

- 342 -

Page 360: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

名前

mqdnsgwrlsserver - イベントチャネル連携サービスをCORBAサービスから削除する。

形式

mqdnsgwrlsserver.bat MQDサーバ識別子

mqdnsgwrlsserver.sh MQDサーバ識別子

機能説明

イベントチャネル連携サービスをCORBAサービスから削除するコマンドです。

以下に、本コマンドのオプションとパラメタを示します。

MQDサーバ識別子

MQDサーバ識別子を指定します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドはCORBAサービスのOD_impl_instコマンドとOD_or_admコマンドを実行しています。実行内容の詳細について

は“CORBAサービスへの登録内容”を参照してください。

使用例

MQDサーバ識別子 SERVER01 のイベントチャネル連携サービスをCORBAサービスから削除します。

mqdnsgwrlsserver.bat SERVER01

mqdnsgwrlsserver.sh SERVER01

CORBAサービスへの登録内容

OD_impl_instコマンドの入力内容

OD_impl_instコマンドを使用してイベントチャネル連携サービスをインプリメンテーションリポジトリから削除を行います。

表11.42 インプリメンテーションリポジトリからの削除のオプション設定項目にインプリメンテーションリポジトリから削除する際に必要な

オプションを示します。

OD_impl_instコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

表11.42 インプリメンテーションリポジトリからの削除のオプション設定項目

パラメタ 留意事項

-d インプリメンテーションリポジトリから、サーバアプリケーションを削除します。

-r ImplID インプリメンテーションリポジトリIDを指定します。

“MQDサーバ識別子”+“NSGWSERVERREPID”で指定します。

OD_or_admコマンドの入力内容

OD_or_admコマンドを使用してイベントチャネル連携サービスをネーミングサービスから削除を行います。

表11.43 ネーミングサービスからの削除のオプション設定項目にネーミングサービスから削除する際に必要なオプションを示します。

- 343 -

Page 361: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

OD_or_admコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

表11.43 ネーミングサービスからの削除のオプション設定項目

パラメタ 留意事項

-d オブジェクトリファレンスまたはネーミングコンテキストを削除します。

-n name ネーミングサービスへ登録したオブジェクト名を指定します。

“MQDサーバ識別子”+“NSGWSERVERNAME”で指定します。

- 344 -

Page 362: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第12章 SMTP連携サービス

本章では、SMTP(Simple Mail Transfer Protocol)を使用したシステム間の連携サービスについて、以下を説明しています。

12.1 概要

12.2 機能

12.3 環境作成

12.4 運用

12.5 コマンド

なお、本章では、“SMTP連携サービス”、“SMTP連携サービスのサービス環境”および“SMTP連携サービスのサービス定義”を“サー

ビス”、“サービス環境”および“サービス定義”と略して呼ぶことがあります。

また、本章の暗号化の部分を読むにあたっては、暗号化についての基礎知識が必要です。暗号化の基礎知識について

は、“Systemwalker/PkiMGR 説明書”を参照してください。

12.1 概要

SMTP連携サービスは、インターネットの電子メールシステムの機能を利用し、他のUNIXサーバ上のMQDと連携して、システム間で

メッセージ交換を行うサービスです。このサービスを使用することにより、MQD内のメッセージ交換をシステム間に拡張することができ

ます。

システム間で交換されるメッセージはS/MIME(Secure/Multipurpose Internet Mail Extensions)形式で暗号化して転送することもできる

ので安全性の高いシステムの構築が可能です。

図12.1 SMTP連携サービスを利用した連携形態にSMTP連携サービスを利用した連携形態を示します。

- 345 -

Page 363: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.1 SMTP連携サービスを利用した連携形態

以下にSMTP連携サービスの主な特徴を示します。

通信プロトコル

SMTP連携サービスは、インターネットの電子メールシステム(sendmail)の標準的なプロトコルであるSMTP(Simple Mail Transfer Protocol)を使用してメッセージを転送します。

暗号化

SMTP連携サービスは、他システムにメッセージを送信する際、メッセージを暗号化することができます。暗号化技法にはS/MIME(Secure/Multipurpose Internet Mail Extensions)の公開鍵暗号方式(非対称鍵)と秘密鍵暗号方式(対称鍵)を併用します。暗号

化を行うことにより、オープンなネットワーク上での第三者の手による盗聴や改ざんなどのトラブルを、安全度の高い方法で防ぐことが

できます。暗号化の詳細については、“12.2.3 暗号化 (S/MIME変換)”を参照してください。

暗号化では、MQDを代表する証明書と秘密鍵が必要です。また、送信相手システムごとのドメイン名と証明書も必要です。証明書の

詳細については、“Systemwalker/PkiMGR 説明書”を参照してください。

12.2 機能

ここでは、SMTP連携サービス固有の機能を中心に以下の順に説明します。

- 346 -

Page 364: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ メッセージ交換

・ 通信異常時のメッセージの扱い

・ 暗号化(S/MIME変換)

MQDの基本機能については、“第2章 機能”を参照してください。

12.2.1 メッセージ交換

SMTP連携サービスを利用することで、システム間で非同期なメッセージ交換が実現できます。

SMTP連携サービスでは、メッセージは、メールシステム(sendmail)を使用して、通常の電子メールとして送受信されます。

システム間でのメッセージ交換の概念モデルを図12.2 システム間のメッセージ交換に示します。

なお、SMTP連携サービスでは、送信側のメッセージキューを送信キューおよび受信側のメッセージキューを受信キューと呼びます。

図12.2 システム間のメッセージ交換

サーバアプリケーションAは、要求メッセージを作成し、そのメッセージヘッダの返信キュー名として受信キューa2を設定します。そし

て自システムの送信キューa1に送信します。送信したメッセージはシステムが自動的に対応する相手システムの受信キューb1に配送

します。

一方アプリケーションBは、自システムにある受信キューb1から受信するように作成します。アプリケーションBは、受信した要求メッセー

ジに設定されている返信キュー名を見て、送信キューb2に応答メッセージを送信します。ここで、アプリケーションBが要求メッセージを

受信する際に、システムがメッセージヘッダに設定されている返信キュー名を受信キューa2から送信キューb2へ自動的に変換します。

メッセージキューの対応関係は、SMTP連携サービスの定義として指定するので、アプリケーションとは独立に設計することが可能で

す。アプリケーションは、システム間のメッセージ転送を意識することなく、システム内の通信と同様にメッセージ交換を行うことができま

す。

12.2.1.1 メッセージキューとメールアドレスの対応関係

SMTP連携サービスでは、メッセージの送受信用に以下のメールアドレスを使用します。

・ MQD代表メールアドレス

・ 受信用メールアドレス

MQD代表メールアドレスは、各MQDに1個必要です。このメールアドレスは、メッセージ送信のために使用され、MQD内のすべての

送信キューで共用します。

メッセージ交換の形態別にメッセージキューとメールアドレスの対応関係を図12.3 メッセージキューとメールアドレスの対応関係 (1対1型の場合)、図12.4 メッセージキューとメールアドレスの対応関係 (集信型の場合)、および図12.5 メッセージキューとメールアドレスの

対応関係 (配信型の場合)に示します。

- 347 -

Page 365: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.3 メッセージキューとメールアドレスの対応関係 (1対1型の場合)

図12.4 メッセージキューとメールアドレスの対応関係 (集信型の場合)

- 348 -

Page 366: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.5 メッセージキューとメールアドレスの対応関係 (配信型の場合)

12.2.1.2 メッセージ送信

SMTP連携サービスは、送信メッセージをMIME変換(エンコード)し、さらに暗号化が指定されている場合にはS/MIME変換(暗号

化)を行った後、その送信キューに対応づけられたメールアドレスにメールとして送信します。

メッセージが送信キューに送信されると同時に、SMTP連携サービスは、転送を開始し、送信キュー上のメッセージがなくなるまで転

送を続けます。何らかの理由で相手システムにメッセージが転送できない場合には、サービス環境定義(SMTP_MAINセクションのretryキーワード)で指定された時間間隔でメッセージの転送を試みます。サービス環境定義の詳細については、“12.3.3.1 サービス環境定

義の記述”を参照してください。

SMTP連携サービスを使用したメッセージ送信の流れを図12.6 メッセージ送信の流れに示します。

- 349 -

Page 367: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.6 メッセージ送信の流れ

12.2.1.3 メッセージ受信

受信側では、sendmailがメールを受信すると、sendmailの.forward機能を利用してSMTP連携サービスの処理が行われます。SMTP連携サービスは、S/MIMEによる暗号化が行われているかどうかを調べ、暗号化されている場合は復号し、さらにMIME変換(デコー

ド)を行った後、受信したメールアドレスに対応する受信キューへメッセージとして格納します。

sendmailがメールを受信すると、SMTP連携サービス(.forwardファイルで指定されたプログラム)が、メールの到着順にメッセージを受

信キューへ格納します。ただし、“12.2.2 送信異常時のメッセージの扱い”で述べる“受信保留”が発生すると、メッセージの到着順序と

受信キューへの格納順序が異なることがあります。 .forwardファイルの詳細については、“12.3 環境作成”を参照してください。

SMTP連携サービスを使用したメッセージ受信の流れを図12.7 メッセージ受信の流れに示します。

- 350 -

Page 368: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.7 メッセージ受信の流れ

12.2.2 送信異常時のメッセージの扱い

メッセージ送信異常時のメッセージの取扱いについて説明します。

システムの異常や通信回線の異常などが原因で、他システムに送信したメールが受信側アプリケーションまで届かない場合がありま

す。

送信メッセージは、異常の内容によって、以下のように扱われます。

・ 送信保留

・ 受信保留

・ デッドレター

送信保留

以下のような原因によりメッセージを送信できない場合、送信メッセージは、送信側システムの送信キューに保存され滞留します。

・ 受信側システムが停止(ダウン)している。

・ ネットワークに異常がある。

・ 受信側システムの資源(ディスク容量など)が不足している。

・ 送信キューが受信禁止状態または使用禁止状態である。

・ メール送信タイムアウトが発生した。

送信側システムに滞留中のメッセージは、後述のサービス環境定義の“retry”で指定された時間間隔に従って再送信が試みられま

す。

受信保留

sendmailがメール(メッセージ)を受信した後、以下のような異常を検出した場合、送信メッセージは、受信側システムのsendmailの再

配送キューに格納されます。

- 351 -

Page 369: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 受信側システムのMQDが起動されていない。

・ 受信キューが送信禁止状態または使用禁止状態である。

・ 受信キューにメッセージを格納する分の空き領域がない。

・ 受信キューのメッセージの 大長が送信メッセージの長さより小さい。

・ 受信キューが作成されていない。

・ 受信側システムの負荷が高い。

・ 受信側システムの資源(メモリなど)が不足している。

再配送キューに格納されたメッセージは、sendmailの再配送時間に達したとき、SMTP連携サービスが起動されたとき、または後述の

サービス環境定義の“retry”で指定された時間間隔に達したときに、受信キューへの格納が再実行されます。

なお、この状態が発生した場合、メッセージの到着順序と受信キューへのメッセージ格納順序が異なることがあります。

デッドレター

行き先不明となったメールをデッドレターと言います。以下のような場合、送信メッセージは、デッドレターとなり破棄されます。

・ 受信側システムで、受信キューの定義が存在しないか誤っている。

・ 送信側システムで、返信キュー(受信キュー)の定義が存在しないか誤っている。

・ 受信側システムで、返信キューに対応する送信キューの定義が存在しないか誤っている。

・ 受信側システムの.forwardファイルのアクセス権限が不正である。

デッドレターとなった送信メッセージについては、行き先不明を通知するエラーメッセージ“MQD2522“が送信側システムのコンソー

ルに出力されます。

注意事項

メッセージ送信中にメモリ不足や通信回線の異常が発生した場合、またはメッセージ送受信中にMQDの強制停止コマンドを実行し

た場合、同じメッセージが二重に送受信される可能性があります。

12.2.3 暗号化 (S/MIME変換) SMTP連携サービスは、メッセージを暗号化技法のS/MIME(Secure/Multipurpose Internet Mail Extensions)を使用して暗号化し送信

することができます。

暗号化には、盗聴防止(機密性保証)と改ざん検出(完全性保証)の2種類があり、任意に組み合わせて利用できます。

ここでは、以下について説明します。

・ 盗聴防止(機密性保証)

・ 改ざん検出(完全性保証)

・ 暗号化方式

12.2.3.1 盗聴防止(機密性保証)

盗聴防止とは、メッセージの内容を第三者に盗み見られることを防止する機能です。

この機能では、 初にメッセージ本文を対称鍵と呼ばれる鍵で暗号化します。この対称鍵は、メッセージの送信ごとに動的に生成さ

れます。この鍵と同じ物を生成することは不可能であり、第三者による同一鍵の生成を防止します。そして、この対称鍵を相手システム

の公開鍵を用いて暗号化し、先に暗号化したメッセージ本文と共に送信します。受信時は、唯一自分だけが持っている秘密鍵を用い

て暗号化された対称鍵を復号します。さらに、復号した対称鍵を用いて暗号化されたメッセージ本文を復号します。公開鍵と秘密鍵を

用いることにより、第三者による暗号化された対称鍵の復号は不可能になり、メッセージの盗聴を防止します。

盗聴防止の仕組みを図12.8 盗聴防止の仕組み(送信時)および図12.9 盗聴防止の仕組み(受信時)に示します。

なお、鍵などの用語や暗号化方式の詳細については、“12.2.3.3 暗号化方式”を参照してください。

- 352 -

Page 370: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.8 盗聴防止の仕組み(送信時)

図12.9 盗聴防止の仕組み(受信時)

12.2.3.2 改ざん検出(完全性保証)

改ざん検出とは、電子署名(暗号化したMD(Message Digest))を用いることにより、第三者によってメッセージの内容を書き換えられた

ことを検出し、警告する機能です。

この機能では、メッセージ本文からMDアルゴリズムを用いてMDを生成し、送信者(自システム)の秘密鍵で暗号化します。暗号化した

MDを電子署名と呼びます。電子署名は、メッセージ本文と共に相手システムに送信されます。相手システムは、受信内容からメッセー

ジと電子署名を取り出します。電子署名を送信者の公開鍵で復号し、MDを取出します。また、メッセージ本文から送信元と同じMDア

ルゴリズムを用いてMDを生成します。この生成されたMDと復号したMDを比較して、違いがあった場合には、改ざんがあったことを警

告します。

なお、改ざん検出の仕組みや電子署名の用語については、“12.2.3.3 暗号化方式”を参照してください。

- 353 -

Page 371: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

12.2.3.3 暗号化方式

暗号化は、DES(Data Encryption Standard)とRSAアルゴリズム暗号(Rivest、Shamir、Adlemanが開発した素因数分解問題を用いた公

開鍵暗号アルゴリズム)を組み合わせて行われます。

・ DES: 暗号化した鍵と同じ鍵(対称鍵)で復号する秘密鍵暗号方式

・ RSAアルゴリズム暗号: 同一でない秘密鍵と公開鍵(非対称鍵)で暗号化・復号を行う公開鍵暗号方式

送信側システムAで暗号化し、受信側システムBで復号する流れを図12.10 暗号化の流れに示します。

図12.10 暗号化の流れ

[用語および図の説明]

対称鍵:

一つの鍵で暗号化/復号を行います。鍵の種類は、DES-CBC(Data Encryption Standard - Chipher Block Chaning)、TripleDES、RC2アルゴリズム暗号、RC5アルゴリズム暗号などがあります。特徴は、暗号化/復号の処理が速いことです。

非対称鍵:

公開鍵と秘密鍵のペアの鍵(鍵ペアと言います)のことで、暗号化/復号で使用します。鍵の種類は、RSAアルゴリズム暗号などがあり

ます。特徴は、公開鍵で暗号化したものは、秘密鍵でのみ復号できます。また、秘密鍵で暗号化したもの(電子署名)は、公開鍵での

み復号できます。

公開鍵(Public Key,PK):

世の中に公開可能な非対称鍵で、暗号化/復号どちらも可能です。対応する秘密鍵と一緒に使用します。公開鍵は、証明書の中に

含まれています。証明書発行局(CA:Certificate Authority)で取得します。

秘密鍵(Secret Key,SK):

本人以外は非公開の非対称鍵で、暗号化/復号どちらも可能です。公開鍵を作成するときに同時に作成されます。

MD(Message Digest):

- 354 -

Page 372: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メッセージ本文の特徴を一定のビット列で表した、言わば指紋のようなものです。SHA1(Secure Hash Algorithm 1)、MD2、MD5など

の一方向性ハッシュ関数を用いて生成します。受信時には、送信時に使用したハッシュ関数を用いてメッセージ本体からMDを生成

し、受信MDとの双方を比較することで改ざんの有無をチェックできます。

電子署名:

MDを秘密鍵で暗号化したものです。暗号化できるのは秘密鍵の所有者だけなので、署名と呼ばれます。受信時には秘密鍵に対応

する公開鍵で復号することでMDが取り出せます。

PKCS(Public-Key Cryptography Standards):

RSA Data Security社が提唱している暗号化技術です。S/MIMEは、PKCSを使用したインターネット電子メールシステムの規格です。

PKCS#7:

PKCSの一つで、電子署名処理や暗号化処理を施されたデータの送受信で用いられます。

証明書:

証明書発行局で、身分証と公開鍵を審査した後発行されるもので、有効期限、発行者(証明書発行局)情報、ユーザ情報、ユーザ公

開鍵情報などの内容が含まれます。言わば、公開鍵の印鑑証明書の様なものです。証明書発行局の秘密鍵により暗号化され、改ざ

んから保護されています。証明書を使用した運用を行うには、事前に通信相手と証明書の交換を行う必要があります。

データ内容:(図12.10 暗号化の流れの中の※の説明)

盗聴防止の有無、改ざん検出の有無の組合わせによりデータ内容が以下のように変わります。

・ 盗聴防止と改ざん検出の両方を行う場合は、(1)MIME化平文メッセージと(2)電子署名をまとめて暗号化したものがデータ内容に

なります。

・ 盗聴防止だけの場合は、(1)MIME化平文メッセージを暗号化したものがデータ内容になり、(2)電子署名はデータ内容に含まれま

せん。

・ 改ざん検出だけの場合には、(1)MIME化平文メッセージと(2)電子署名がデータ内容になり、暗号化はされません。

12.3 環境作成

ここでは、SMTP連携サービスの環境作成の手順や方法について以下の順に説明します。

・ 環境作成の手順

・ 環境作成の説明

・ 環境定義の記述

なお、MQDが動作するためのMQDのシステム環境の作成方法については、“第3章 環境作成”を参照してください。

また、ここに記述されているMQDのコマンドの詳細については、“第7章 コマンド”および“12.5 コマンド”を参照してください。

12.3.1 環境作成の手順

SMTP連携サービスを使用するためには、図12.11 サービス環境作成の流れの手順に従って、SMTP連携サービスが動作するため

のサービス環境を作成する必要があります。

- 355 -

Page 373: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.11 サービス環境作成の流れ

12.3.2 環境作成の説明

以下の操作や環境作成の方法について説明します。

・ sendmail環境の設定

・ 暗号化環境の設定

・ MQDの起動

・ サービス環境の作成

・ メッセージキューの作成

・ サービス定義の作成

12.3.2.1 sendmail環境の設定

sendmailを使用するためには以下の作業が必要です。

・ hostsファイルの編集

・ メールアドレスの設定

・ .forwardファイルの設定

hostsファイルの編集

sendmailでは、DNS(Domain Name System)サーバが存在しない場合、ドメイン名を解決するためにhostsファイルの情報を使用しま

す。通常、hostsファイルは、/etc というディレクトリに置かれています。DNSサーバが存在しない場合は、このファイルに受信側システム

のサーバのIPアドレスとホスト名の対を定義しておきます。

- 356 -

Page 374: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注)IPv6による運用を行う場合には、hostsファイルの代わりに/etc/ipnodesファイルの情報を使用します。

メールアドレスの設定

SMTP連携サービスでは、以下の2種類のメールアドレスを使用します。

・ MQD代表メールアドレス

・ 受信用メールアドレス

MQD代表メールアドレスは、それぞれのMQDに1個必要です。受信用メールアドレスは、受信側システムで受信キューごとに1個必

要です。

なお、これらメールアドレスに対応したユーザアカウントは、MQD利用ユーザと同じグループIDを持つように設定してください。メール

アドレス(ユーザアカウント)の登録方法については、Solarisオペレーティングシステムの“システム管理”のマニュアルを参照してくださ

い。

.forwardファイルの設定

SMTP連携サービスを使用する際には、MQD代表メールアドレスと受信用メールアドレスごとに.forwardファイルを作成して設定する

必要があります。

.forwardファイルの設定方法には、以下の二つがあります。

・ 手動で設定する

・ コマンドで設定する

メッセージ格納ファイルとしてデータベースを使用する場合には、手動で設定してください。

手動で設定する

.forwardファイルは、メールアドレスに対応したユーザのホームディレクトリに作成します。次に.forwardファイルに以下を記述します。

・ ファイルを使用する場合

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

"| /opt/FJSVmqd/bin/mqdscomtransit -s sysname -e LANG=ja || exit 75"

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

-s sysname : MQDシステム名

・ データベースを使用する場合(例)

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

"| /opt/FJSVmqd/bin/mqdscomtransit -s sysname -e LANG=ja

LD_LIBRARY_PATH=/opt/FSUNrdb2b/lib:/opt/FSUNiconv/lib || exit 75"

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

-s sysname : MQDシステム名

-e 環境変数 : 環境変数名=値の形式でmqdscomtransitに渡す環境変数を指定します。

“mqdscomtransit”は、メッセージが正常に受信された場合の処理を行います。“exit 75”は、メッセージの受信に失敗した場合に、sendmailの再配送キューにメッセージを格納します。

注1) .forwardファイルのファイルモードは“644”または“600”に設定してください。

.forwardファイルの所有者以外のユーザが書込み可能な場合、sendmailがmqdscomtransitを実行しないため、SMTP連携サービスが

正しく動作しません。

注2) sendmailのバージョンの違いにより.forwardファイルが認識されない場合があります。お使いのsendmailの仕様に合わせて、メー

ルの受信が可能となるように、.forwardファイルを有効にしてください。

例えばsendmailがバージョン8.9の場合、ユーザのホームディレクトリが存在するディレクトリからルートディレクトリまで遡って、各階層

のディレクトリはrootが所有し、rootだけが書込み可能である必要があります。また、ホームディレクトリ自身は当該ユーザが所有し、当

該ユーザだけが書込み可能でなければなりません。

注3) データベースを使用する場合は、.forwardファイル中の-eオプションで環境変数名“LD_LIBRARY_PATH”にSymfowareおよび

標準コード変換機能のライブラリ格納先ディレクトリの絶対パスを指定する必要があります。記述がない場合は、SMTP連携サービスが

正しく動作しません。

コマンドで設定する

- 357 -

Page 375: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

受信メールアドレスに対応する.forwardファイルは、mqdscomcrtコマンドを実行することで作成および設定を行うことができます。また、

MQD代表メールアドレスに対応する.forwardファイルは、mqdscomsetupコマンド実行時に作成および設定が行われます。ただし、どち

らの場合でもユーザのアカウントは事前に作成しておく必要があります。

mqdscomcrtコマンドは、SMTP連携サービスのサービス定義ファイルの内容を入力して処理を行います。そのため、事前にサービス

定義ファイルを作成するか、または、“サービス定義の作成”の操作が完了してから、本コマンドを実行する必要があります。

なお、サービス定義の作成については、“12.3.2.6 サービス定義の作成”を参照してください。また、mqdscomcrtコマンドの詳細につ

いては“12.5.8 mqdscomcrt (.forwardファイルの作成/設定を行う)”を、mqdscomsetupコマンドの詳細については“12.5.1 mqdscomsetup(サービス環境を作成する)”を参照してください。

12.3.2.2 暗号化環境の設定

SMTP連携サービスでメッセージを暗号化する場合は、暗号化環境の設定が必要です。

暗号化環境の設定は、証明書/鍵管理ツール(証明書/鍵管理用の各種コマンド)を使用して行います。証明書/鍵管理ツールの詳細

については、“リファレンスマニュアル(コマンド編)”を参照してください。

暗号化環境の設定は、図12.12 暗号化環境の設定手順に示す手順で行います。

図12.12 暗号化環境の設定手順

証明書/鍵管理環境の作成と設定

証明書/鍵管理環境を以下の手順で作成します。

1) 管理ディレクトリの作成

証明書、秘密鍵管理に必要な管理ディレクトリを作成します。

詳細については“F.1.1 環境作成の概要”を参照してください。

2) 秘密鍵管理環境の作成と設定

秘密鍵の管理に必要な秘密鍵管理環境の作成と設定を行います。

詳細については“F.1.2 秘密鍵管理環境の作成と設定”を参照してください。

3) 証明書/CRL管理環境の作成と設定

証明書およびCRL(Certificate Revocation List:無効となった証明書のリスト)の管理に必要な証明書/CRL管理環境の作成と設定を行

います。

詳細については“F.1.3 証明書/CRL管理環境の作成と設定”を参照してください。

証明書および秘密鍵の作成

MQDで、証明書を使用するには、証明書発行局に証明書の発行を依頼し、証明書を取得する必要があります。

証明書発行局から証明書を取得する手順を図12.13 証明書を取得する手順に示します。

- 358 -

Page 376: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.13 証明書を取得する手順

[図の説明]

1) 証明書取得申請書の作成

証明書発行局へ証明書の発行を依頼するための、証明書取得申請書を作成します。

証明書取得申請書の作成は、証明書/CRL取得申請コマンド(cmmakecsr)で行います。コマンドに、サイト証明書の情報、サイト秘密

鍵を登録するトークンのトークンラベルおよびユーザPINを指定することにより、証明書取得申請書の作成が行われ、同時に公開鍵と

秘密鍵の鍵ペアが作成されます。ユーザPINは、前述の“2) 秘密鍵管理環境の作成と設定”で指定したものを入力してください。

ここで指定したトークンラベルおよびユーザPINは、後述のサービス環境定義の作成時にも使用します。

証明書/CRL取得申請コマンドの詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

以下にcmmakecsrコマンドの入力例を示します。

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

cmmakecsr -ed /home/scmi -sd /home/scmi/slot -cn MQDsmime1 -o FUJITSU

-ou 3rdSoftware -tl tkn01 -kt RSA -kb 512

-of /home/scmi/csr/MQDsmime1.txt -f NOHEAD

ENTER TOKEN PASSWORD=>

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

2) 証明書の発行依頼

証明書取得申請書を証明書発行局へ送り、サイト証明書の発行を依頼します。

依頼方法は証明書発行局(InfoCA)に従ってください。詳細は、“Systemwalker/PkiMGR 説明書”を参照してください。

3) 証明書の取得

証明書発行局により署名された証明書を取得します。

取得方法は証明書発行局(InfoCA)に従ってください。詳細は、“Systemwalker/PkiMGR 説明書”を参照してください。

- 359 -

Page 377: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

証明書の登録

発行局証明書、サイト証明書(自システムと相手システムの両方)を証明書/CRL管理環境に登録します。相手システムの証明書は、

前もって入手しておいてください。

証明書の登録は、証明書/CRL登録コマンド(cmentcert)で行います。証明書/CRL登録コマンドに、証明書を識別するためのニック

ネームを指定することにより、証明書が証明書/CRL管理環境に登録されます。

ここで指定したサイト証明書のニックネームは、後述のサービス環境定義の作成でも使用します。

証明書/CRL登録コマンドの詳細は、“リファレンスマニュアル(コマンド編)”を参照してください。

以下にcmentcertコマンドの入力例を示します。

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

cmentcert /home/mqd/ca.der -ed /home/scmi/cert -ca -nn InfoCA

cmentcert /home/mqd/MQDsmime1.der -ed /home/scmi/cert -nn MQDme1

cmentcert /home/mqd/MQDsmime2.der -ed /home/scmi/cert -nn MQDyou1

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

12.3.2.3 MQDの起動

SMTP連携サービスの環境を作成するためには、MQDの各種のコマンドを使用します。これらのコマンドを使用するためには、事前に

MQDを起動しておく必要があります。MQDの起動は、mqdstrコマンドを使用して行います。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

12.3.2.4 サービス環境の作成

サービス環境の作成では、以下の二つの作業があります。

・ サービス環境定義ファイルの作成

・ サービス環境の作成操作

サービス環境定義ファイルの作成

サービス環境定義は、SMTP連携サービスの動作環境を定義します。サービス環境定義を格納するファイルをサービス環境定義ファ

イルと呼びます。サービス環境定義ファイルは、ユーザが任意の通常ファイル上にテキストファイルとして作成します。このファイルは、

後述のサービス環境の作成操作時に使用されます。

サービス環境定義では、以下の情報を定義します。

・ サービス環境情報

・ 暗号化情報

暗号化情報は、メッセージの暗号化を行わない場合には記述する必要はありません。

viコマンドなどの編集ツールを使用して定義してください。サービス環境定義の記述方法の詳細については、“12.3.3 環境定義の記

述”を参照してください。

サービス環境の作成操作

サービス環境定義ファイルを作成した後、サービス環境の作成操作を行います。サービス環境の作成操作は、mqdscomsetupコマン

ドを使用して行います。

以下にmqdscomsetupコマンド(作成)の入力例を示します。

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

mqdscomsetup -f /mqd/def/SCOMenv.def

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

- 360 -

Page 378: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

なお、サービス環境を再作成する場合は、サービス環境を削除した後、再度、上記のmqdscomsetupコマンドを実行してください。サー

ビス環境の削除は、mqdscomunsetupコマンドを使用して行います。

以下にmqdscomunsetupコマンド(削除)の入力例を示します。

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

mqdscomunsetup

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

また、サービス環境を直接変更することができます。サービス環境の変更は、mqdscomchgコマンドを使用して行います。

以下にmqdscomchgコマンドの入力例を示します。

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

mqdscomchg -f /mqd/def/SCOMenv.def

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

12.3.2.5 メッセージキューの作成

サービス環境を作成した後、システム間でメッセージ送受信を行うためのメッセージキューを作成します。送信側システムには、メッ

セージを送信するためのメッセージキュー(送信キュー)を作成します。受信側システムには、メッセージを受信するためのメッセージキュー

(受信キュー)を作成します。送信キュー名および受信キュー名については、後述のサービス定義で指定します。

なお、メッセージキューに関する以下の操作については、“4.2 運用操作の説明”を参照してください。

・ メッセージキューの作成

・ メッセージキュー情報の表示

・ メッセージキューの削除

12.3.2.6 サービス定義の作成

サービス定義の作成では、以下の二つの作業があります。

・ サービス定義ファイルの作成

・ サービス定義の登録/反映

サービス定義ファイルの作成

サービス定義は、SMTP連携サービスで使用するメッセージキューの対応関係やメッセージキューの送受信の属性などの情報を定義

します。サービス定義を格納するファイルをサービス定義ファイルと呼びます。サービス定義ファイルは、ユーザが任意の通常ファイル

上にテキストファイルとして作成します。このファイルは、後述のサービス定義の登録時に使用されます。

サービス定義では、主に以下の情報を定義します。

・ メールアドレスとメッセージキューとの対応関係

・ 送信キュー情報

・ 受信キュー情報

・ 暗号化情報

暗号化情報は、メッセージの暗号化を行わない場合には記述する必要はありません。

サービス定義は、viコマンドなどの編集ツールを使用して記述してください。サービス定義の記述方法の詳細については、“12.3.3 環境定義の記述”を参照してください。

サービス定義の登録/反映

サービス定義ファイルを作成した後、サービス定義の登録を行います。サービス定義の登録は、mqdscomdefコマンドを使用して行い

ます。

以下にmqdscomdef(登録)コマンドの入力例を示します。

- 361 -

Page 379: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdscomdef -a -f /mqd/def/SCOMsvc.def

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

すでにサービス定義が登録されている場合、新しい定義が既存の定義に追加されます。同じメッセージキューに対する定義の登録

は無視されます。

サービス定義を登録した後、次にサービス定義の反映を行います。サービス定義の反映は、SMTP連携サービスを起動した後、

mqdscomdefコマンドを使用して行います。MQD起動時またはサービス起動時に行うこともできます。

以下にmqdscomdefコマンドを使用して定義の反映を行う場合の入力例を示します。

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

mqdscomdef -r

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

なお、サービス定義を再作成する場合は、まずサービス定義の全体を削除します。サービス定義の削除は、mqdscomdefコマンドを

使用して行います。指定したサービス定義ファイルに記述された部分だけが削除されます。全体を削除するためには、登録時に使用

したサービス定義ファイルを指定してください。

以下にmqdscomdef(削除)コマンドの入力例を示します。

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

mqdscomdef -d -f /mqd/def/SCOMsvc.def

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

サービス定義を削除した後、次に上記のサービス定義の登録と反映を行います。サービス定義削除後のサービス定義の反映には、

mqdscomdefコマンドは使用できません。MQDまたはSMTP連携サービスを終了して、再起動時に定義の反映を行ってください。

以下にMQD起動時に定義の反映を行う場合の入力例を示します。

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

mqdstr -n

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

以下にSMTP連携サービス起動時に定義の反映を行う場合の入力例を示します。

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

mqdstrsvc -n SCOM

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

12.3.3 環境定義の記述

ここでは、SMTP連携サービスの環境定義について以下を説明します。

・ サービス環境定義の記述

・ サービス定義の記述

なお、記述規約については、“付録A 定義記述規約”を参照してください。

12.3.3.1 サービス環境定義の記述

サービス環境定義は、SMTP連携サービスのサービス環境を作成するための定義です。サービス環境定義は以下の形式で記述しま

す。

記述形式

[SMTP_MAIN]

address = MQD代表メールアドレス (必須)

retry = 再送信・再格納リトライ間隔 (分)

connect = 送信待ち最大接続時間 (分)

MXHost = ドメイン未解決時の接続先サーバのホスト名またはIPアドレス

- 362 -

Page 380: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

############# 以降は暗号化を行う場合にだけ記述する #############

[SMIME_SCMI]

############# 証明書/鍵管理環境情報 #############

scmienvdir = 運用管理ディレクトリ名

scmislotdir = スロット情報ディレクトリ名

[SMIME_CERT]

############# 証明書/鍵情報 #############

certname = 自システムの証明書(ニックネームで指定)

tokenlabel = 秘密鍵格納トークン(トークンラベルで指定)

userpin = ユーザPIN

[SMIME_SEND]

############# 送信情報 #############

encalg = 暗号化アルゴリズム

sigalg = 電子署名アルゴリズム

[SMIME_DOMAIN]

############# ドメイン情報 #############

domain = 受信側システムのドメイン名(destinationのドメイン名と同形式で指定)

tocertname = 受信側システムの証明書(ニックネームで指定)

記述内容の説明

a) SMTP_MAINセクション

サービス環境情報を設定するセクションです。指定内容を表12.1 SMTP_MAINセクションの記述内容に示します。

表12.1 SMTP_MAINセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

address 不可 文字列 ユーザ名: 64バイト以内

ドメイン名: 64バイト以内

自システムのMQD代表メールアドレス

を指定します。

retry 可 数値 分単位で0~9999999の範囲で指定

省略値は1(分)送信に失敗したメッセージを再送信す

る間隔および格納に失敗したメッセー

ジを再格納する間隔を指定します。0を指定した場合は、再送信、再格納が間

隔をおかずに試みられます。

connect 可 数値 送信側システムの場合にだけ有効

分単位で0~9999999の範囲で指定

省略値は0(分)

送信キューにあるメッセージを送信し終

わった後、相手との接続を保持する時

間を指定します。0を指定した場合は、

すべてのメッセージを送信後、ただち

に切断します。

MXHost 可 文字列 送信側システムの場合にだけ有効

ドメイン名: 64バイト以内

送信時、メールアドレスからのドメイン

解決ができなかった場合の接続先サー

バのホスト名またはIPアドレスを指定し

ます。(注)

注) IPv6による運用を行う場合には、IPv4射影IPv6アドレス形式でのIPアドレスは指定できません。

b) SMIME_SCMIセクション

暗号化を行う場合に、S/MIME変換で使用する証明書/鍵管理環境を設定するセクションです。このセクションは、送信側および受信

側の両方のシステムに記述します。暗号化を行わない場合は、セクション全体を省略できます。記述内容を表12.2 SMIME_SCMIセク

ションの記述内容(証明書/鍵管理環境情報)に示します。

表12.2 SMIME_SCMIセクションの記述内容(証明書/鍵管理環境情報)キーワード 省略 データ型 記述方法 記述内容の説明

scmienvdir 不可 文字列 フルパスで指定 運用管理ディレクトリを指定します。

- 363 -

Page 381: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

scmislotdir 不可 文字列 フルパスで指定 スロット情報ディレクトリを指定します。

c) SMIME_CERTセクション

暗号化を行う場合に、自システムの証明書/鍵情報を設定するセクションです。暗号化を行わない場合は、セクション全体を省略でき

ます。記述内容を表12.3 SMIME_CERTセクションの記述内容(証明書/鍵情報)に示します。

表12.3 SMIME_CERTセクションの記述内容(証明書/鍵情報)キーワード 省略 データ型 記述方法 記述内容の説明

certname 可 文字列 証明書のニックネームで指定 自システムの証明書の名前を指定します。改

ざん検出を行う場合に送信側システムで指定

します。

tokenlabel 不可 文字列 トークンラベルで指定 自システムの証明書の秘密鍵を格納したトー

クンを指定します。

userpin 不可 文字列 ユーザPIN(6~128文字) tokenlabelキーワードで指定したトークンに対応

するユーザPINを指定します。

d) SMIME_SENDセクション

暗号化を行う場合に、送信時に使用する暗号化情報を設定するセクションです。このセクションは、送信側システムに記述します。暗

号化を行わない場合、または、設定をすべて省略値にする場合はセクション全体を省略できます。記述内容を表12.4 SMIME_SENDセクションの記述内容(送信情報)に示します。

表12.4 SMIME_SENDセクションの記述内容(送信情報)キーワード 省略 データ型 記述方法 記述内容の説明

encalg 可 文字列 DES: DES-CBCで暗号化

EDE3: DES-EDE3-CBCで暗号化

RC2_40: RC2-CBC 40bitで暗号化(省略

値)RC2_128: RC2-CBC 128bitで暗号化

NOUSE: 暗号化しない

対称鍵の暗号化アルゴリズムを指定しま

す。この情報は盗聴防止のために使用

します。

sigalg 可 文字列 MD5: MD5で作成

SHA: SHA-1で作成(省略値)NOUSE: 電子署名を作成しない

電子署名のアルゴリズムを指定します。

この情報は改ざん検出のために使用し

ます。

e) SMIME_DOMAINセクション

暗号化を行う場合に、受信側システムのドメイン名と証明書情報を設定するセクションです。このセクションは、送信側システムでドメ

イン単位に記述します。暗号化を行わない場合は、セクション全体を省略できます。一つのドメインに一つの証明書が設定できます。

記述内容を表12.5 SMIME_DOMAINセクションの記述内容(ドメイン情報)に示します。

表12.5 SMIME_DOMAINセクションの記述内容(ドメイン情報)

キーワード 省略 データ型 記述方法 記述内容の説明

domain 不可 文字列 サービス定義(送信キューの定義)のdestinationキーワードで指定するドメイン名と同じ形式で

指定(IPアドレス指定またはホスト名指定)

受信側システムのドメイン名を指

定します。(注)

tocertname 不可 文字列 証明書のニックネームで指定 受信側システムの証明書の名前

を指定します。

注) IPv6による運用を行う場合には、IPv4射影IPv6アドレス形式でのIPアドレスは指定できません。

記述例

サービス環境定義の記述例をサービス環境定義の記述例 (SMTP連携サービス)に示します。

サービス環境定義の記述例 (SMTP連携サービス)

- 364 -

Page 382: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

送信側システムの場合

[SMTP_MAIN]

address = mqd@domain # MQD代表メールアドレス(必須)

retry = 10 # 再送信・再格納リトライ間隔(分)

connect = 5 # 送信待ち最大接続時間(分)

MXHost = 10.10.10.10 # 接続先サーバのIPアドレス

#------------ 以降はメッセージの暗号化を行う場合にだけ記述する ------------#

[SMIME_SCMI]

#------------ 証明書/鍵管理環境情報 ------------#

scmienvdir = /home/scmi # 運用管理ディレクトリ名

scmislotdir = /home/scmi/slot # スロット情報ディレクトリ名

[SMIME_CERT]

#------------ 証明書/鍵情報 ------------#

certname = MQDme1 # 自システムの証明書

tokenlabel = tkn01 # 秘密鍵格納トークン

userpin = xxxxxxxx # ユーザPIN

[SMIME_SEND]

#------------ 送信情報 ------------#

encalg = DES # 暗号化アルゴリズム

sigalg = MD5 # 電子署名アルゴリズム

[SMIME_DOMAIN]

#------------ ドメイン情報 ------------#

domain = you.co.jp # 受信側システムのドメイン名

tocertname = MQDyou1 # 受信側システムの証明書

[SMIME_DOMAIN]

#------------ ドメイン情報 ------------#

domain = 192.168.0.1 # 受信側システムのドメイン名

tocertname = MQDyou2 # 受信側システムの証明書

受信側システムの場合

[SMTP_MAIN]

address = mqd@domain # MQD代表メールアドレス(必須)

retry = 10 # 再送信・再格納リトライ間隔(分)

#------------ 以降は暗号化メッセージを受信する場合にだけ記述する ------------#

[SMIME_SCMI]

#------------ 証明書/鍵管理環境情報 ------------#

scmienvdir = /home/scmi # 運用管理ディレクトリ名

scmislotdir = /home/scmi/slot # スロット情報ディレクトリ名

[SMIME_CERT]

#------------ 証明書/鍵情報 ------------#

certname = MQDme1 # 自システムの証明書

tokenlabel = tkn01 # 秘密鍵格納トークン

userpin = xxxxxxxx # ユーザPIN

12.3.3.2 サービス定義の記述

サービス定義は、メッセージの送受信で使用するメッセージキューに関する各種情報を記述します。一つまたは複数のQUEUEセク

ションから構成されます。

サービス定義は以下の形式で記述します。

- 365 -

Page 383: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

記述形式

[QUEUE]

name = メッセージキュー名

direction = 送信キュー/受信キューの区別 (必須)

destination = 送信先の受信用メールアドレス (送信キューのとき必須)

address = 受信用メールアドレス (受信キューのとき必須)

encode = MIMEエンコード方式 ( base64で固定、省略可 )

smime = 暗号化スイッチ ( YES / NO )

記述内容の説明

a) QUEUEセクション

メッセージの送受信で使用するメッセージキューについて、メッセージキューとメールアドレスとの対応関係やメッセージキューの属性

情報を記述します。記述内容を表12.6 QUEUEセクションの記述内容に示します。

表12.6 QUEUEセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

name 不可 文字列 mqdcrtqコマンドで指定したメッセー

ジキュー名

送信キューまたは受信キューに対応す

るメッセージキューの名前を指定しま

す。

direction 不可 文字列 SEND: 送信キュー

RECV: 受信キュー

送信キューの定義なのか受信キュー

の定義なのかを指定します。

destination 不可 文字列 送信キューの場合にだけ有効

ユーザ名およびドメイン名共に64バイト以内

送信先の受信キューに対応する受信

用メールアドレスを指定します。

address 不可 文字列 受信キューの場合にだけ有効

ユーザ名およびドメイン名共に64バイト以内

受信キューに対応する受信用メールア

ドレスを指定します。

encode 可 文字列 送信キューの場合にだけ有効

base64で固定(省略値)MIMEエンコード方式を指定します。

smime(送信キュー

の場合)

可 文字列 YES: 暗号化を行う

NO : 暗号化を行わない(省略値)暗号化を行うかどうかを指定します。

smime(受信キュー

の場合)

可 文字列 YES: 暗号化されたメッセージだけ

を受信

NO : 無条件で受信(省略値)

暗号化メッセージの受信方法を指定し

ます。(注)

注) “YES”を指定した場合、非暗号化メッセージは受信されずに破棄されます。また、“NO”を指定した場合で、暗号化メッセージを復号

(検証)できない場合も、そのメッセージは受信されずに破棄されます。

記述例

サービス定義の記述例をサービス定義の記述例 (SMTP連携サービス)に示します。

サービス定義の記述例 (SMTP連携サービス)

送信側システムの場合

[QUEUE] # 送信キューの定義 (暗号化を行わない場合)

name = AAA1 # 送信キューのメッセージキュー名

direction = SEND # 送信キュー

destination = reciever1@domain # 送信先の受信用メールアドレス

encode = base64 # MIMEエンコード方式

- 366 -

Page 384: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

smime = NO # 暗号化スイッチ

[QUEUE] # 送信キューの定義 (暗号化を行う場合)

name = AAA2 # 送信キューのメッセージキュー名

direction = SEND # 送信キュー

destination = reciever2@domain # 送信先の受信用メールアドレス

encode = base64 # MIMEエンコード方式

smime = YES # 暗号化スイッチ

受信側システムの場合

[QUEUE] # 受信キューの定義 (無条件で受信する場合)

name = BBB1 # 受信キューのメッセージキュー名

direction = RECV # 受信キュー

address = receiver1@domain # 受信用メールアドレス

smime = NO # 暗号化スイッチ

[QUEUE] # 受信キューの定義 (暗号化メッセージだけを受信する場合)

name = BBB2 # 受信キューのメッセージキュー名

direction = RECV # 受信キュー

address = receiver2@domain # 受信用メールアドレス

smime = YES # 暗号化スイッチ

12.4 運用

ここでは、SMTP連携サービスを使用する場合の運用(サービスの起動~サービスの停止まで) の手順や方法について、以下の順に

説明しています。

・ 運用操作の手順

・ 運用操作の説明

なお、ここに記述されているMQDのコマンドの詳細については、“第7章 コマンド”および“12.5 コマンド”を参照してください。

12.4.1 運用操作の手順

SMTP連携サービスを使用するための操作手順を図12.14 SMTP連携サービスの運用操作手順に示します。

- 367 -

Page 385: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.14 SMTP連携サービスの運用操作手順

12.4.2 運用操作の説明

以下の各運用操作について説明します。

・ MQDの起動

・ Interstageの起動

・ SMTP連携サービスの起動

・ サービス定義/状態の表示

・ メッセージキュー情報の表示

・ メッセージキューのアクセス状態の変更

・ SMTP連携サービスの停止

・ Interstageの停止

・ MQDの停止

- 368 -

Page 386: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

12.4.2.1 MQDの起動

SMTP連携サービスを使用するためには、まず、MQDを起動する必要があります。MQDの起動は、mqdstrコマンドを使用して行いま

す。MQDを起動することにより、SMTP連携サービスも起動されます。

以下にmqdstrコマンドの入力例を示します。

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

mqdstr

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

12.4.2.2 Interstageの起動

Interstageのアプリケーションを使用する場合には、MQDの起動後にInterstageを起動する必要があります。Interstageの起動は、Interstageのisstartコマンドを使用して行います。Interstageの起動方法は、“運用ガイド(基本編)”を参照してください。

12.4.2.3 SMTP連携サービスの起動

通常、SMTP連携サービスの起動は、MQDの起動時に行うため不要です。ただし、MQDの起動時にメッセージ“MQD4112”が出力

された場合には、グローバルトランザクションのダウンリカバリが完了していないためSMTP連携サービスが起動されません。この場合

には、Interstageの起動後にSMTP連携サービスを起動する必要があります。SMTP連携サービスの起動は、mqdstrsvcコマンドを使用

して行います。

以下にmqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc SCOM

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

12.4.2.4 サービス定義/状態の表示

サービス定義/状態の表示は、mqdscomprtコマンドを使用して行います。このコマンドは、サービス関連定義の内容を確認する場合

や運用中のサービスの状態を見る場合に使用します。

mqdscomprtコマンドには以下の三つの表示内容があります。

・ サービス環境定義の内容表示

・ サービス定義の内容表示

・ サービスの状態表示

以下にmqdscomprtコマンド(サービスの状態表示)の入力例を示します。

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

mqdscomprt -v

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

12.4.2.5 メッセージキュー情報の表示

メッセージキュー情報の表示は、mqdprtqコマンドを使用して行います。このコマンドは、運用中のメッセージキューの状態を見る場合

に使用します。

mqdprtqコマンドには以下の三つの表示内容があります。目的に応じて使い分けてください。

・ メッセージキュー名の一覧表示

・ メッセージキュー情報の表示

・ メッセージキューの詳細情報の表示

以下にmqdprtqコマンド(メッセージキュー名の一覧表示)の入力例を示します。

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

mqdprtq

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

- 369 -

Page 387: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

12.4.2.6 メッセージキューのアクセス状態の変更

メッセージキューのアクセス状態の変更は、mqdchgqコマンドを使用して行います。このコマンドは、メッセージキューを以下の状態に

変更する場合に使用します。

・ メッセージの送受信を可能とする

・ メッセージの送信を禁止する

・ メッセージの受信を禁止する

・ メッセージの送受信を禁止する

送信禁止は、アプリケーションからのメッセージ送信を抑止して、受信側アプリケーションを動作させることで、メッセージキューに滞留

しているすべてのメッセージを処理したい場合などに使用します。受信禁止は、アプリケーションが誤ってメッセージを受信することを

防ぐ場合などに使用します。

以下にmqdchgqコマンド(メッセージの受信を禁止する)の入力例を示します。

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

mqdchgq -c -r Qname01

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

12.4.2.7 SMTP連携サービスの停止

通常、SMTP連携サービスの停止は、MQDの停止時に行うため不要です。MQD運用中にSMTP連携サービスだけを停止したい場

合には、mqdstpsvcコマンドを使用して行います。

以下にmqdstpsvcコマンドの入力例を示します。

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

mqdstpsvc SCOM

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

12.4.2.8 Interstageの停止

Interstageのアプリケーションを使用している場合には、MQDの停止前にInterstageを停止する必要があります。Interstageの停止は、

Interstageのisstopコマンドを使用して行います。Interstageの停止方法は、“運用ガイド(基本編)”を参照してください。

12.4.2.9 MQDの停止

業務の終了時には、MQDを使用するすべてのアプリケーションを終了させた後、MQDを停止します。MQDの停止は、mqdstpコマン

ドを使用して行います。

以下にmqdstpコマンドの入力例を示します。

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

mqdstp

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

12.5 コマンド

本節では、SMTP連携サービス固有のコマンドの文法について説明します。

SMTP連携サービスには、表12.7 SMTP連携サービスのコマンド一覧に示すコマンドがあります。

表12.7 SMTP連携サービスのコマンド一覧

コマンド名 機能概要

mqdscomsetup サービス環境を作成する

mqdscomunsetup サービス環境を削除する

mqdscomchg サービス環境を変更する

mqdstrsvc サービスを起動する

- 370 -

Page 388: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

コマンド名 機能概要

mqdstpsvc サービスを停止する

mqdscomdef サービス定義を登録/反映/削除する

mqdscomprt サービス定義/状態を表示する

mqdscomcrt .forwardファイルの作成/設定を行う

以降、各コマンドの文法を説明します。コマンドの記述形式および基本機能のコマンドについては、“第7章 コマンド”を参照してくだ

さい。

12.5.1 mqdscomsetup (サービス環境を作成する)

機能説明

SMTP連携サービスのサービス環境を新規に作成するコマンドです。

本コマンドは、事前に定義されたSMTP連携サービスの環境定義に基づいて、SMTP連携サービスの動作環境を作成します。

入力形式

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

mqdscomsetup [-s sysname] -f filename

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-f filename

SMTP連携サービスのサービス環境定義ファイルのファイル名を指定します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドを実行する前に、サービス環境定義ファイルを作成しておく必要があります。作成方法については、“12.3.2.4 サービ

ス環境の作成”を参照してください。

・ すでにユーザのホームディレクトリに.forwardファイルが存在する場合は、アクセス権の設定だけを行います。

・ sendmailのバージョンの違いにより.forwardファイルが認識されない場合があります。お使いのsendmailの仕様に合わせて、メー

ルの受信が可能となるように、.forwardファイルを有効にしてください。

例えばsendmailがバージョン8.9の場合、ユーザのホームディレクトリが存在するディレクトリからルートディレクトリまで遡って、各階

層のディレクトリはrootが所有し、rootだけが書込み可能である必要があります。また、ホームディレクトリ自身は当該ユーザが所有

し、当該ユーザだけが書込み可能でなければなりません。

・ サービス環境定義ファイルのMQD代表メールアドレスに定義されたアカウントが登録されていない場合、対応する.forwardファイ

ルは作成されません。アカウントを登録後に手動で.forwardファイルを作成してください。

使用例

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

mqdscomsetup -f /mqd/def/SCOMenv.def

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

12.5.2 mqdscomunsetup (サービス環境を削除する)

- 371 -

Page 389: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能説明

SMTP連携サービスのサービス環境を削除するコマンドです。本コマンド実行時には、コマンドの実行を再確認するための問合せが

行われます。

入力形式

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

mqdscomunsetup [-s sysname]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドは、SMTP連携サービスを停止した状態で実行してください。

使用例

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

mqdscomunsetup

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

12.5.3 mqdscomchg (サービス環境を変更する)

機能説明

SMTP連携サービスのサービス環境を変更するコマンドです。本コマンドは、事前に定義・変更されたSMTP連携サービスのサービス

環境定義に基づいて、SMTP連携サービスの動作環境を変更します。本コマンドの実行結果は、次回のSMTP連携サービスの起動時

に有効となります。

なお、本コマンドを利用した場合、サービス定義の再登録や再反映を行う必要がないため、サービス環境の再作成(変更)の負荷を軽

減することができます。

入力形式

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

mqdscomchg [-s sysname] -f filename

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-f filename

SMTP連携サービスの環境定義を格納したファイルのファイル名を指定します。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドを実行する前に、SMTP連携サービスのサービス環境定義を変更しておく必要があります。詳細については、“12.3.2.4サービス環境の作成”を参照してください。

- 372 -

Page 390: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

使用例

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

mqdscomchg -f /mqd/def/SCOMenv.def

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

12.5.4 mqdstrsvc (サービスを起動する)

機能説明

SMTP連携サービスを起動するコマンドです。

入力形式

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

mqdstrsvc [-s sysname] [-n] svcname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-n

未反映の定義を反映してからサービスを起動する場合に指定します。

svcname

サービス名として“scom”または“SCOM”を指定します。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

使用例

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

mqdstrsvc SCOM

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

12.5.5 mqdstpsvc (サービスを停止する)

機能説明

SMTP連携サービスを停止するコマンドです。

入力形式

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

mqdstpsvc [-s sysname] svcname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

svcname

サービス名として“scom”または“SCOM”を指定します。

- 373 -

Page 391: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

使用例

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

mqdstpsvc SCOM

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

12.5.6 mqdscomdef (サービス定義を登録/反映/削除する)

機能説明

SMTP連携サービスのサービス定義の登録、反映または削除を行うコマンドです。

サービス定義の登録は、事前に作成されたサービス定義をMQDへ登録します。登録された定義を新サービス定義と呼びます。サー

ビス定義の反映は、新サービス定義を運用で使用可能な有効な状態に変えます。反映された定義を現サービス定義と呼びます。サー

ビス定義の削除は、新サービス定義の一部または全体を削除します。

入力形式

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

mqdscomdef [-s sysname]{-a|-r|-d} [-f filename]

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-a|-r|-d}

処理内容を指定します。

-a: サービス定義を登録する

-r: サービス定義を反映する

-d: サービス定義を削除する

-f filename

サービス定義を格納したファイルのファイル名を指定します。

本パラメタの指定は、サービス定義を反映する場合には不要です。

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ 本コマンドを実行する前に、SMTP連携サービスのサービス定義を作成しておく必要があります。詳細については、“12.3.2.6 サー

ビス定義の作成”を参照してください。

・ 登録済のサービス定義の全体を削除したい場合は、登録時に指定したサービス定義と同じ内容のサービス定義を指定してくだ

さい。

・ サービス定義を削除した後または暗号化の定義がある場合、本コマンドを使用してサービス定義を反映することはできません。定

義反映オプション“-n”を指定してMQDまたはSMTP連携サービスを再起動してください。

・ サービス定義を再作成する場合は、サービス定義の全体を削除した後、サービス定義の登録と反映の操作をする必要がありま

す。

・ サービス定義の反映は、SMTP連携サービスを起動した状態で実行してください。

・ サービス定義の情報は、各セクション単位に扱われます。したがって、定義誤りのあるセクションだけが無効となり、正しいセクショ

ンの情報は有効となります。

- 374 -

Page 392: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

使用例

例. サービス定義を登録する

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

mqdscomdef -a -f /mqd/def/SCOMsvc.def

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

12.5.7 mqdscomprt (サービス定義/状態を表示する)

機能説明

SMTP連携サービスの定義情報や状態情報を表示するコマンドです。以下の三つの表示内容があります。

・ サービス環境定義の内容表示

・ サービス定義の内容表示

・ サービスの状態表示

入力形式

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

mqdscomprt [-s sysname]{-e|-c|-n|-v}

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

{-e|-c|-n|-v}

表示内容を指定します。

-e: サービス環境定義の内容を表示する

-c: 現サービス定義の内容を表示する

-n: 新サービス定義の内容を表示する

-v: サービスの状態を表示する

注意事項

・ 本コマンドは、スーパユーザおよびMQD利用者グループのユーザが実行できます。

・ サービスの状態表示は、SMTP連携サービスを起動した状態で実行してください。

使用例

例1. サービス環境定義の内容を表示する

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

mqdscomprt -e

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

- 375 -

Page 393: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.15 サービス環境定義の内容表示例

表示例の説明

サービス環境定義ファイルの内容が表示されます。

例2. サービス定義の内容を表示する

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

mqdscomprt {-c|-n}

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

図12.16 サービス定義の内容表示例

表示例の説明

現サービス定義または新サービス定義の内容が表示されます。

例3. サービスの状態を表示する

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

mqdscomprt -v

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

- 376 -

Page 394: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図12.17 サービスの状態表示例

表示例の説明

STATUS: メッセージキューの運用状態

ACTIVE : サービス運用中

INACTIVE : サービス停止中

PROCESSING : メッセージ処理中

WAITING : メッセージ送信待ち、格納待ち中

EXECUTING : 起動処理中

STOPPING : サービス停止処理中

ENDDING : サービス終了処理中

INITIALIZE : 初期化処理中

DEAD : 終了

QUEUE: メッセージキュー名

12.5.8 mqdscomcrt (.forwardファイルの作成/設定を行う)

機能説明

メッセージ受信時に使用される.forwardファイルの作成および設定を行うコマンドです。定義登録時に使用したサービス定義ファイル

から受信キューに関連付けられたユーザ名(メールアドレス)を獲得して、そのホームディレクトリに.forwardファイルを作成し、メッセー

ジの受信に必要な制御情報の設定を行います。

入力形式

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

mqdscomcrt [-s sysname]-f filename -p pathname

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

パラメタ

-s sysname

MQDシステム名を指定します。このパラメタを省略した場合、MQDシステム名は“MQD001”となります。

-f filename

SMTP連携サービスのサービス定義を格納したファイルのファイル名を指定します。定義登録時に使用したものを指定してください。

-p pathname

受信キューに関連付けられたユーザのホームディレクトリの存在するパス名を指定します。フルパスで指定してください。

注意事項

・ 本コマンドは、スーパユーザだけが実行できます。

・ 本コマンドを実行する前に、受信キューと関連付けられたユーザの追加を行う必要があります。

・ 本コマンドでは、MQD代表メールアドレスに対応する.forwardファイルは作成されません。

・ サービス定義ファイルに記述されているユーザ名とホームディレクトリ名が一致している必要があります。エイリアスを使用してい

る場合は正しく動作しません。

・ すでにユーザのホームディレクトリに.forwardファイルが存在する場合は、アクセス権の設定だけを行います。

・ sendmailのバージョンの違いにより.forwardファイルが認識されない場合があります。お使いのsendmailの仕様に合わせて、メー

ルの受信が可能となるように、.forwardファイルを有効にしてください。

- 377 -

Page 395: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

例えばsendmailがバージョン8.9の場合、ユーザのホームディレクトリが存在するディレクトリからルートディレクトリまで遡って、各階

層のディレクトリはrootが所有し、rootだけが書込み可能である必要があります。また、ホームディレクトリ自身は当該ユーザが所有

し、当該ユーザだけが書込み可能でなければなりません。

使用例

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

mqdscomcrt -f /mqd/def/SCOMsvc.def -p /export/home

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

- 378 -

Page 396: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第3部 クラスタシステム編 第3部では、MessageQueueDirector(以降、MQDと略します)のクラスタ対応について説明しています。ここでは、以下の章を説明しま

す。

Microsoft(R) Windows Server(R) 2008の場合、本書では“MSCS”を“フェールオーバー クラスタリング”と読み替えてください。

第13章 クラスタサービス機能(Windowsサーバ SafeCLUSTER編).................................................................380

第14章 クラスタサービス機能(Solarisサーバ SafeCLUSTER編)....................................................................403

第15章 クラスタサービス機能(MSCS編).........................................................................................................425

第16章 クラスタサービス機能(Solarisサーバ PRIMECLUSTER編)................................................................442

- 379 -

Page 397: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第13章 クラスタサービス機能(Windowsサーバ SafeCLUSTER編)

本章では、SafeCLUSTERを使用したMQDのクラスタサービス機能について、以下の順に説明しています。

13.1 クラスタサービスの概要

13.2 環境設定

13.3 運用

13.4 保守

なお、本章を読むにあたっては、SafeCLUSTERの基本的な知識が必要です。また、MQDの基本的な設定や運用についての知識が

必要です。SafeCLUSTERの基本的な知識については、以下のマニュアルを参照してください。

・ SafeCLUSTER/Standard 導入運用ガイド

・ Web-Based Admin View 操作手引書

MQDのクラスタサービスは、SafeCLUSTER/Standardを使用してください。SafeCLUSTER/Compactは使用できません。

13.1 クラスタサービスの概要

本節では、MQDのクラスタサービス機能の概要について、以下の順に説明しています。

・ 機能

・ 利用形態とシステム構成

13.1.1 機能

業務運用中にハードウェア障害やソフトウェア障害など不測の事態が発生し、システムダウンなどに陥った場合に備え、システムの高

信頼化が必要です。クラスタサービスでは、不測の事態に備え、運用中のノードとは別に、待機しているノードを用意します。運用中の

ノードで異常が発生した場合には、待機側のノードに業務を引き継ぐことにより、業務全体を停止させることなく継続することを可能に

します。

MQDのクラスタサービス機能は、SafeCLUSTERを使用することにより1:1運用待機のクラスタシステムを構築することができます。クラ

スタシステムを構築することで、ハードウェアやソフトウェアに異常が発生した場合に、MQDを使用する業務をノード間で引継ぐことが

可能となります。そのため、MQDを使用する業務の停止時間を 小に押さえることができます。図13.1 ノード間引継ぎの概念に、ノー

ド間引継ぎの概念図を示します。この図では、運用ノードで異常が発生したために、MQDの運用インスタンスが待機ノードに切替わる

ことを表しています。切替わることで、すぐにMQDを使用する業務を再開することができます。

- 380 -

Page 398: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図13.1 ノード間引継ぎの概念

13.1.2 利用形態とシステム構成

MQDのクラスタサービス機能では、SafeCLUSTERの1:1運用待機のクラスタシステムをサポートします。図13.2 SafeCLUSTERのクラ

スタ構成に、SafeCLUSTERのクラスタ構成を示します。

図13.2 SafeCLUSTERのクラスタ構成

- 381 -

Page 399: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.2 環境設定

本節では、クラスタサービスの環境設定について、以下の順に説明しています。

・ 環境設定前に行うこと

・ MQDの基本機能の環境を作成する

・ MQDの拡張機能の環境を作成する

・ クラスタシステムの環境を作成する

・ 動作を確認する

13.2.1 環境設定前に行うこと

本項では、クラスタサービス機能の環境を設定する前に必要な、以下の作業について説明しています。

・ サービスの構成を決定する

・ 共用ディスク装置を設定する

・ 引継ぎネットワークを設定する

13.2.1.1 サービスの構成を決定する

MQDをクラスタシステムで動作させるためには、SafeCLUSTERに登録するMQD用のサービスを決定する必要があります。InterstageのアプリケーションからMQDを使用する場合は、Interstageと同じサービスに所属させます。MQDを単独で使用する場合は、専用の

サービスを新規に作成します。いずれの場合にも、アプリケーションを含めた業務の引継ぎ単位を考慮してサービスを決定する必要が

あります。図13.3 MQDのサービス構成に、MQDの基本的なサービスの構成を示します。

図13.3 MQDのサービス構成

13.2.1.2 共用ディスク装置を設定する

MQDをクラスタシステムで動作させるためには、MQD環境定義に指定するすべてのファイルを共用ディスク装置上に作成しなけれ

ばなりません。そのため、必要なファイル容量を見積もった後に、その容量を格納できる共用ディスク装置を用意します。共用ディスク

装置は切替えディスクとして登録します。そして、MQDを登録するサービスに事前にリソースとして登録してください。これは、MQDの

環境を作成するときに、この切り替えディスクにアクセスする必要があるためです。設定および登録方法の詳細について

は、“SafeCLUSTER/Standard 導入運用ガイド”を参照してください。

共用ディスク装置は、ファイルシステムとして使用するものを用意します。共用ディスク装置の構成を図13.4 共用ディスク装置の構成

に示します。なお、共用ディスク装置は複数使用することも可能です。

- 382 -

Page 400: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図13.4 共用ディスク装置の構成

13.2.1.3 引継ぎネットワークを設定する

クラスタシステムにおいて切替えが発生したとき、業務で使用するLANのIPアドレス(以降、論理IPアドレスと呼びます)を、旧運用ノー

ドから新運用ノードに引継ぐための設定を行います。設定方法の詳細は“SafeCLUSTER/Standard 導入運用ガイド”を参照してくださ

い。

13.2.2 MQDの基本機能の環境を作成する

MQDを使用するためには、図13.5 MQDの環境作成の流れの手順に沿って、MQDの環境を作成する必要があります。

なお、Interstageを使用する場合は、MQDの基本機能の環境を作成する前の任意な契機でInterstageのクラスタ環境を作成してくださ

い。

図13.5 MQDの環境作成の流れ

- 383 -

Page 401: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.2.2.1 MQD環境定義を作成する

クラスタサービスを使用する場合、MQDの環境定義にクラスタシステム用にClusterセクションを追加します。また、環境定義に指定す

るすべてのファイルは、リソース登録した切替えディスクを指定する必要があります。クラスタサービスを使用する場合のMQD環境定義

は以下の形式で記述します。なお、Clusterセクション以外の指定内容については、“3.3 環境定義の記述”を参照してください。

記述形式

[MQDConfiguration]

QueueMax = 作成メッセージキュー数の最大値

MessageBufferMaxSize = メッセージバッファの最大長

[Transaction]

TransactionFile = トランザクション管理ファイルの名前

Max_Size = 1トランザクションで送受信するメッセージ長の合計の最大値

[SystemFile]

SystemFile1 = システム制御用ファイル1の名前

SystemFile2 = システム制御用ファイル2の名前

SystemFile2_Size = システム制御用ファイル2の容量

[QueueIndex]

File = メッセージキュー管理ファイルの名前

[DiskQueue]

File = ディスク型メッセージキューのメッセージ格納ファイルの名前

Size = ディスク型メッセージキューのメッセージ格納域の容量

[MemoryQueue]

File = メモリ型メッセージキューのメッセージ格納域管理ファイルの名前

Size = メモリ型メッセージキューのメッセージ格納域の容量

[WatchQueueUsed]

DiskQueue = ディスク型メッセージキューのメッセージ格納域の安全値と警告値

MemoryQueue = メモリ型メッセージキューのメッセージ格納域の安全値と警告値

[Cluster]

SystemDirectory = MQDのクラスタサービスが使用するフォルダの名前

Clusterセクション

MQDクラスタサービスが使用するシステムファイルを格納するフォルダを指定します。記述内容を、表13.1 Clusterセクションの記述内容

に示します。

表13.1 Clusterセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

SystemDirectory

不可 文字列 絶対パス名で指定します。

切替えディスク上にあるフォルダを指定

します。

MQDクラスタサービスが使用するシステム

ファイルを格納するフォルダを指定します。

システムファイルは、MQDのシステム環境を

作成したときに自動的に作成されます。

ひとつのアプリケーションから複数のMQDシステムを使用する場合は、使用するすべ

てのMQDシステムで、本キーワードに共通

の値を指定してください。

記述例

以下に、Clusterセクションの記述例を示します。

[Cluster]SystemDirectory = x:\mqddir

共有ディスクの容量の見積もり

MQDをクラスタサービスで使用する場合、共有ディスク上に“3.2.2.2 ファイル容量の見積り”に示すファイル容量が必要です。

- 384 -

Page 402: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

必要なファイル容量を確保してから以降の操作を実行してください。

13.2.2.2 サービスを起動する

運用ノードから切替えディスクにアクセスできるように、サービスを起動します。サービスの起動方法の詳細は“SafeCLUSTER/Standard導入運用ガイド”を参照してください。

13.2.2.3 運用ノードにMQD環境を作成する

運用ノードにMQD環境を作成します。作成は、通常の環境作成と同様に、mqdsetupコマンドを使用して行います。以下にmqdsetupコマンド(運用ノードの環境作成)の入力例を示します。

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

mqdsetup -f x:\mqddir\setup.def

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

13.2.2.4 待機ノードにMQD環境を作成する

待機ノードにMQD環境を作成します。このとき、切替えディスクにアクセスできるようにする必要はありません。運用ノードに環境を作

成したときと同一内容のMQD環境定義を指定して、mqdsetupコマンドで環境を作成します。このとき、待機ノードでの環境作成を意味

する-hオプションを指定します。以下にmqdsetupコマンド(待機ノードの環境作成)の入力例を示します。

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

mqdsetup -f x:\mqddir\setup.def -h

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

13.2.3 MQDの拡張機能の環境を作成する

MQDの拡張機能の環境を作成する手順について説明します。なお、拡張機能を使用しない場合、本項の作業は不要です。ここで

は、以下の拡張機能の環境作成方法について説明しています。

・ ACM連携サービス(サービス名: ACOM)

・ 同報配信サービス(サービス名: MCAS)

・ イベントチャネル連携サービス(サービス名: NSGW)

13.2.3.1 ACM連携サービスの環境を作成する

ACM連携サービスを使用するためには、図13.6 ACM連携サービスの環境作成の流れの手順に従って、ACM連携サービスが動作

するためのサービス環境を作成する必要があります。

- 385 -

Page 403: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図13.6 ACM連携サービスの環境作成の流れ

なお、ACM連携サービスの環境作成方法の詳細については、“10.3 環境作成”を参照してください。

IDCMをインストールする

IDCMを両方のノードの同一パスにインストールします。インストールでは、自動起動形態1を選択します。自動起動形態1を選択しな

いと、クラスタの切替後に運用の自動継続ができません。

IDCMサービスの起動形態を変更する

IDCMのインストーラによって、IDCMのサービスは自動起動として登録されます。IDCMのサービスをSafeCLUSTERのリソースとして

登録するため、手動起動に変更します。

なお、変更するサービス名は次のとおりです。

「FUJITSU IDCM」

IDCMの環境定義を作成する

IDCMネットワーク定義とIDCMホスト定義は、現用ノードと待機ノードで同一の定義を使用してください。なお、IDCMを使用するアプ

リケーションが存在する場合は、ACM連携サービスが必要な値にアプリケーションが必要な値を追加してください。IDCMネットワーク

定義の詳細については、“IDCMヘルプ”を参照してください。

IDCMネットワーク定義とIDCMホスト定義の指定方法を以下に示します。

IDCMネットワーク定義

IDCMネットワーク定義の指定方法を以下に示します。

定義分 オペランド 値

tcppsys name 相手システムに対応するDPCF通信パス名を指定します。

tcppsys 対応するTCPCTYPE名を指定します。

tcpctype name TCPCTYPE名を指定します。

- 386 -

Page 404: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

定義分 オペランド 値

maxcont 自システムと相手システムのwinicontとlinicontの合計に1を加えた値を指定します。

winicont ・ 相手システムにメッセージを送信する場合は、ACM連携サービスのサービス定義

(PSYSセクションのsesnoキーワードの値)で指定した値を指定します。

・ 相手システムからメッセージの受信だけを行う場合、かつ自システムから相手シ

ステムにDPCF通信パスを確立する場合は、1を指定します。

・ 相手システムからメッセージの受信だけを行う場合、かつ自システムからは相手

システムにDPCF通信パスを確立しない場合は、0を指定します。

linicont 0を指定します。

respcont 1を指定します。

IDCMホスト定義

クラスタサービスを使用する場合、IDCMネットワーク定義に加えてIDCMホスト定義を指定します。IDCMホスト定義は、IDCMを起動

する前に作成します。定義の追加および修正は、IDCMが動作中でも可能ですが、追加および修正した定義が反映されるのは、次に

IDCMを起動したときです。IDCMホスト定義の指定方法を以下に示します。

ファイル名および格納フォルダ

IDCMホスト定義を記述するファイル名および格納フォルダを以下に示します。

ファイル名 : idcmhost

格納フォルダ : IDCMインストールフォルダ\idcm\etc

記述規約

IDCMホスト定義を記述する場合の規約について説明します。この規約に従って正しく記述してください。

IDCMホスト定義は、以下の各要素から構成されています。

・ ステートメント

・ コメント行

・ 空行

a)ステートメント

ステートメントは、情報を設定するための行であり、“オペランド”、“=”(等号)および“値”から構成されます。以下にその形式を示しま

す。

psysオペランド=値 ipオペランド=値

ステートメントの記述規則を以下に示します。

・ 1行は、ファイルの先頭または改行文字“\n”の次の文字から、次の改行文字までです。

・ 行には、psysオペランドおよびipオペランドが記述できます。

・ psysオペランドとipオペランドの対で一組とし、1行には一組だけ記述してください。当該行中のそれ以降の記述はすべて無効で

す。また、psysオペランド、ipオペランドの順に指定してください。

・ psysオペランドとipオペランドの間は、タブ“\t”または一つ以上の空白文字で区切ります。

b)コメント行

コメント行は、コメント(注釈)を行全体に記述する場合に使用します。以下の形式で記述します。

# コメント

コメント行には以下の規則があります。

・ コメント文は、行の先頭(1カラム目)に“#”を指定してください。

- 387 -

Page 405: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ “#”は半角文字で記述します。

c)空行

空行(タブ文字からなる行)は、任意の位置に記述できます。

記述形式

以下にIDCMホスト定義の記述形式を示します。

オペランド 値

psys DPCF通信パス名を指定します。IDCMネットワーク定義に定義したDPCF通信パス

名を指定してください。

ip MQDのクラスタサービスが使用する論理IPアドレスを、nnn.nnn.nnn.nnnの形式で

指定します。(0≦nnn≦255)

記述例

以下にIDCMホスト定義の記述例を示します。

# Windows SafeCLUSTER for IDCMpsys=host01 ip=255.255.255.001psys=host02 ip=255.255.255.002

IDCMホスト定義異常時の対処

IDCMホスト定義の記述内容が誤っている場合やファイル操作時に異常が発生した場合は、以下のメッセージおよびエラーログファ

イルを出力した後、IDCMの起動が失敗します。

31136u:TCP/IP通信で資源不足が発生したためIDCMの活性化に失敗しました

エラーログファイルに出力されるエラー情報を確認し、異常の原因を取り除いてからIDCMを再起動してください。

エラーログファイルの詳細は、エラーログファイルの内容を参照してください。

[注意]

・ オペランドで指定したIPアドレスは、形式だけをチェックします。

・ hostsファイルに定義していないIPアドレスまたは論理IPアドレスではないIPアドレスなどの誤ったIPアドレスを指定した場合、運用時に

DPCF通信パスの確立に失敗するなどの異常が発生します。

エラーログファイルの内容

IDCMホスト定義の記述内容が誤っている場合、エラー情報をエラーログファイルに出力します。エラーログファイルのファイル名およ

び格納フォルダを以下に示します。

ファイル名 :hostlog

格納フォルダ:IDCMインストールフォルダ\idcm\trc

以下にエラーログファイルの出力形式を示します。なお、$DIRはIDCMインストールフォルダを示します。

******* IDCMHOST LOG $DIR\IDCM\trc\hostlog *******DATE mm/dd/yy hh:mm:ss

mm/dd/yy hh:mm:ss : エラー情報

mm/dd/yy : 月/日/年を示しています。

hh:mm:ss : 時/分/秒を示しています。

エラー情報 : 以下の形式で出力します。他のエラー情報が出力された場合は、エラーログファイルを採取して富士通の技術員に連絡

してください。

- 388 -

Page 406: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

%d line:There is an error in the IDCM host definiton. reason code (%x)[意味]IDCMホスト定義ファイルの記述内容が誤っています。

%d: 異常行番号

%x: 理由コード

[対処]理由コードに示す異常を取り除いた後、IDCMを再起動してください。

以下に理由コードの意味を示します。

理由コード 意味

0x11 psysオペランドの記述が誤っています。以下の場合が考えられます。

・ オペランドの記述順番が誤っています。

・ オペランド名の記述が誤っています。

・ オペランド名を記述していません。

・ psysオペランドの後に“=”がありません。

・ psysオペランドの後に“=”を複数個記述しています。

0x12 psysオペランドの記述が誤っています。以下の場合が考えられます。

・ psysオペランドで指定したDPCF通信パス名の文字数が8文字を超えています。

・ DPCF通信パス名を記述していません。

0x13 psysオペランドで指定したDPCF通信パス名が重複しています。

0x14 psysオペランドで指定したDPCF通信パス名がIDCMネットワーク定義に定義されていません。

0x21 ipオペランドの記述が誤っています。以下の場合が考えられます。

・ オペランドの記述順番が誤っています。

・ オペランド名の記述が誤っています。

・ オペランド名を記述していません。

・ ipオペランドの後に“=”がありません。

・ ipオペランドの後に“=”を複数個記述しています。

・ ipオペランドで指定したIPアドレスの記述が誤っています。

・ IPアドレスを記述していません。

MQDを起動する

MQD用のディスクリソースがオンラインになっているノードで、MQDを起動します。起動は、Windows®のサービスの起動で行いま

す。起動するサービス名は次のとおりです。

MessageQueueDirector MQD001

なお、サービス名に含まれている“MQD001”は、mqdsetupの-sオプションを省略した場合の値です。-sオプションを指定して環境を作

成した場合は、-sオプションでの指定値になります。

サービスの起動では、スタートアップパラメタに-pを指定してください。これにより、MQDの基本機能だけが起動されます。

サービス環境を作成する

ACM連携用のサービス環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdacomsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下にmqdacomsetupの入力例を示します。

- 389 -

Page 407: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdacomsetup

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

メッセージキューを作成する

ACM連携サービスで使用するメッセージキューを作成します。既存のキューに対してACM連携サービスを使用する場合には、新た

にメッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの

入力例を示します。

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

mqdcrtq que001

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

サービス定義を作成する

ACM連携サービスのサービス定義を作成します。クラスタシステムでACM連携サービスを使用する場合、サービス定義を追加およ

び変更する必要があります。以下に追加および変更となる定義について説明します。

MNGRセクション

以下のキーワードを追加してください。

キーワード 省略 データ型 記述方法 記述内容の説明

hasystem 可 文字列 “TYPE1”または“NO”を指定します。本

キーワードを省略した場合、キーワード

値は“NO”となります。

クラスタ対応を行う場合は、“TYPE1”を指

定します。

PSYSセクション

sesnoキーワードに設定する値を以下のように変更してください。

キーワード 省略 データ型 記述方法 記述内容の説明

sesno 可 数値 1~1024の範囲で指定します。

省略値は3です。

IDCMネットワーク定義の優先会話コネク

ション数(winicontの値)と同じ数を指定し

てください。

サービス定義を登録する

ACM連携用のサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同じです。登録には、mqdacomdefコマ

ンドを使用します。このコマンドは、このノードで1度だけ実行します。以下にmqdacomdefコマンドの入力例を示します。

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

mqdacomdef -a -f e:\mqdenv\acomdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度ACM連携サービスを起動します。起動はmqdstrsvcコマンドを使用して行

います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n acom

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、Windows®のサービスの停止で行います。

- 390 -

Page 408: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.2.3.2 同報配信サービスの環境を作成する

同報配信サービスを使用するためには、図13.7 同報配信サービスの環境作成の流れの手順に従って、同報配信サービスが動作す

るためのサービス環境を作成する必要があります。

図13.7 同報配信サービスの環境作成の流れ

MQDを起動する

MQD用のディスクリソースがオンラインになっているノードで、MQDを起動します。起動は、Windows®のサービスの起動で行いま

す。起動するサービス名は次のとおりです。

MessageQueueDirector MQD001

なお、サービス名に含まれている“MQD001”は、mqdsetupの-sオプションを省略した場合の値です。-sオプションを指定して環境を作

成した場合は、-sオプションでの指定値になります。

サービスの起動では、スタートアップパラメタに“-p”を指定してください。これにより、MQDの基本機能だけが起動されます。

サービス環境を作成する

同報配信サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdmcassetupコマン

ドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcassetupコマンドの入力例を示します。

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

mqdmcassetup -f e:\mqdenv\mcassetup.def

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

メッセージキューを作成する

同報配信サービスで使用するメッセージキューを作成します。既存のキューに対して同報配信サービスを使用する場合には、新たに

メッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの入

力例を示します。

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

mqdcrtq que001

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

- 391 -

Page 409: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス定義を作成する

同報配信サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同一です。

サービス定義を登録する

同報配信サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同一です。登録は、mqdmcasdefコマンドで行います。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcasdefコマンドの入力例を示します。

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

mqdmcasdef -a -f e:\mqdenv\mcasdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度同報配信サービスを起動します。起動はmqdstrsvcコマンドで行います。

以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n mcas

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、Windows®のサービスの停止で行います。

13.2.3.3 イベントチャネル連携サービスの環境を作成する

イベントチャネル連携サービスを使用するためには、図13.8 イベントチャネル連携サービスの環境作成の流れの手順に従って、イベ

ントチャネル連携サービスが動作するためのサービス環境を作成する必要があります。

図13.8 イベントチャネル連携サービスの環境作成の流れ

- 392 -

Page 410: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ノーティフィケーションサービスの環境を作成する

イベントチャネル連携サービスをクラスタ環境で使用する場合は、イベントサービスの環境をクラスタで動作可能な形態で作成してく

ださい。

クラスタ環境でイベントサービスのユニットおよびイベントチャネルを作成する際のesmkunitコマンドおよびesmkchnlコマンドの詳細に

ついては“リファレンスマニュアル(コマンド編)”を参照してください。

CORBAサービスへの登録を行う

メッセージを受信するサーバでは、イベントチャネル連携サービスをCORBAサービスへ登録しなければいけません。メッセージを送

信するサーバでは、本処理は必要ありません。なお、本処理の詳細については、“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”を参照してください。

また、登録をする自サーバのIPアドレスは、運用系と待機系で共有するIPアドレスを指定してください。以下に、一括登録コマンドを使用して

CORBAサービスへの登録を行う場合の入力例を示します。

ネーミングサービス方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ns.bat SERVER01 255.255.255.255 8002

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

IORファイル方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ior.bat SERVER01 255.255.255.255 8002 C:\MQDIORFILE

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

MQDを起動する

MQD用のディスクリソースがオンラインになっているノードで、MQDを起動します。起動は、Windows®のサービスの起動で行いま

す。起動するサービス名は次のとおりです。

MessageQueueDirector MQD001

なお、サービス名に含まれている“MQD001”は、mqdsetupの-sオプションを省略した場合の値です。-sオプションを指定して環境を作

成した場合は、-sオプションでの指定値になります。

サービスの起動では、スタートアップパラメタに“-p”を指定してください。これにより、MQDの基本機能だけが起動されます。

サービス環境を作成する

イベントチャネル連携サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdnsgwsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwsetupコマンドの入力例を示します。

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

mqdnsgwsetup

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

サービス定義を作成する

イベントチャネル連携サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同一で

す。

サービス定義を登録する

イベントチャネル連携サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同一です。登録は、

mqdnsgwdefコマンドで行います。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwdefコマンドの入力例を示しま

す。

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

mqdnsgwdef -a -f e:\mqdenv\nsgwdef.def

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

- 393 -

Page 411: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度イベントチャネル連携サービスを起動します。起動はmqdstrsvcコマンドで

行います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n nsgw

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、Windows®のサービスの停止で行います。

13.2.4 クラスタシステムの環境を作成する

MQDをSafeCLUSTERのクラスタシステムで動作させるための環境を作成する手順について、以下の順番で説明しています。

・ MQD基本機能用の状態遷移プロシジャを登録する

・ MQD拡張機能用の状態遷移プロシジャを登録する

・ MQDのリソースを登録する

・ MQDクラスタサービスを設定する

13.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する

SafeCLUSTER上で動作するMQDでは、状態遷移プロシジャを利用して、MQDの起動や停止を行います。状態遷移プロシジャとは、

クラスタ制御からの状態遷移指示を受け取り、リソースの活性化や非活性化を制御(アプリケーションの起動や停止など)するもので

す。状態遷移プロシジャの詳細に関しては、“SafeCLUSTER/Standard 導入運用ガイド”を参照してください。

状態遷移プロシジャの登録方法について、以下の順に説明しています。

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャのリソース登録

状態遷移プロシジャファイルの修正

MQDは状態遷移プロシジャファイルのひな型を提供します。MQD基本機能用のひな型は以下のファイルで提供しています。

[MQDインストール先フォルダ]\sample\MQD001.MQD_INTERSTAGE.bat

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ MQDシステム名: MQD001

・ MQD起動: MQDの拡張機能(ACM連携サービスなど)の環境作成を行っている場合、MQDの基本機能の起動時に拡張機能も

起動する

・ MQD停止: 通常停止を行う

複数のMQDシステムを使用する場合は、状態遷移プロシジャをMQDシステムごとに用意する必要がありますので、ひな型を複写し

て使用してください。

なお、状態遷移プロシジャファイル名は以下の規約にしたがってください。

MQDシステム名.MQD_INTERSTAGE.bat

例えば、MQDシステム名が“MQDABC”の場合には、“MQDABC.MQD_INTERSTAGE.bat”となります。MQDシステム名が上記以

外の場合の状態遷移プロシジャファイルの修正例を以下に示します。

MQDシステム名がMQDABCの場合

set MQDSYS_NAME=MQD001↓

set MQDSYS_NAME=MQDABC

- 394 -

Page 412: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

上記以外の設定でMQDシステムの起動を行う場合は、MQD環境作成時に起動種別を設定する必要があります。

また、上記以外の設定でMQDシステムの強制停止を行う場合の状態遷移プロシジャファイルの修正例を以下に示します。

MQD停止を強制停止で行う場合

net stop %MONSVC_NAME%rem %MQDSTP_COMMAND%↓

rem net stop %MONSVC_NAME%%MQDSTP_COMMAND%

状態遷移プロシジャのリソース登録

状態遷移プロシジャをクラスタが構成するサービスに登録してください。設定方法を以下に説明します。

1)リソース情報を設定する

状態遷移プロシジャのリソース情報を設定する場合、“プロセスの再起動”を“0”に、“プロセスの再起動間隔”を“0”に、“プロセスの

再起動間隔の初期化”を“しない”に設定してください。

2)状態遷移プロシジャ情報を設定する

“状態遷移プロシジャ情報の設定”では“参照作成(ファイル指定) ”を選び、複写および修正を行った状態遷移プロシジャを指定して

ください。

3)状態遷移指示タイミングを設定する

状態遷移指示タイミングは以下に示すタイミングで呼ばれるように設定してください。

START_RUN : AFTER, CUTOFF/BUILDIN START_WAIT : AFTER STOP_RUN : BEFORE STOP_WAIT : BEFORE FAIL_RUN : BEFORE FAIL_WAIT : BEFORE

4)状態遷移プロシジャをクラスタサービスにリソース登録する

登録した状態遷移プロシジャをクラスタサービスにリソース登録します。“アプリケーションの起動優先度”については、以下の優先順

序で呼び出されるように登録してください。(上から順番に呼び出されるように設定します)

MQD001_MQD_INTERSTAGE.bat MQD001_MQDSVC_INTERSTAGE.bat

13.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する

MQDの拡張機能を使用する場合は、MQDの拡張機能(以下、サービスと呼びます)ごとに状態遷移プロシジャを登録します。サービ

スを使用しない場合は登録する必要はありません。

状態遷移プロシジャの登録方法について、以下の順に説明しています。

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャのリソース登録

ACM連携サービスを使用する場合、IDCMの起動/停止/切替えやDPCF通信パスの確立/解放などの処理については、使用者が状

態遷移プロシジャを作成する必要があります。状態遷移プロシジャについては、“SafeCLUSTER/Standard 導入運用ガイド”を参照し

てください。また、IDCMは引継ぎ後、ACM連携サービスを起動する前に再起動する方式となるため、リソースはACM連携サービスの

状態遷移プロシジャファイル“MQDシステム名.MQDACOM.INTERSTAGE.bat”の前に呼ばれるように起動優先度を設定してくださ

い。DPCF通信パスの確立は業務形態に合わせて任意の契機で実行するように優先度(IDCMのリソースの起動優先度より低い値)を設定してください。

IDCMの環境設定については、運用ノードと待機ノードで同一の設定を行ってください。IDCMの環境設定については、“IDCMヘル

プ”を参照してください。

イベントチャネル連携サービスを使用する場合、イベントサービスの起動/停止/切替えやイベントチャネルの起動/停止などの処理に

ついては、使用者が状態遷移プロシジャを作成する必要があります。状態遷移プロシジャについては、“SafeCLUSTER/Standard 導入

運用ガイド”を参照してください。また、イベントサービスは、イベントチャネル連携サービスを起動する前に起動している必要があるた

- 395 -

Page 413: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

め、リソースはイベントチャネル連携サービスの状態遷移プロシジャファイル“MQDシステム名.MQDNSGW.INTERSTAGE.bat”の前

に呼ばれるように起動優先度を設定してください。

イベントサービスの環境設定については、“アプリケーション作成ガイド(CORBAサービス編)”を参照してください。

状態遷移プロシジャファイルの修正

MQDは状態遷移プロシジャファイルのひな型を提供します。サービス用のひな型は、以下のファイルで提供しています。

[MQDインストール先フォルダ]\sample\MQD001.MQDSVC_INTERSTAGE.bat

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ MQDシステム名: MQD001

・ サービス名: SERVICE

・ サービス起動: 定義反映を行わないで起動する

通常、MQDの拡張機能の起動はMQD起動時に行われるため、拡張機能用の状態遷移プロシジャでは拡張機能の起動は行いませ

ん。MQD起動時にグローバルトランザクションのダウンリカバリが未完了の場合、基本機能の起動時に拡張機能の起動が行われず、

拡張機能用の状態遷移プロシジャで拡張機能を起動します。したがって、拡張機能用の状態遷移プロシジャはデータベース連携サー

ビスによるグローバルトランザクションのダウンリカバリが完了した後で実行されるようにSafeCLUSTERの起動順番を設定してください。

状態遷移プロシジャファイルを、使用するサービスに合わせて修正します。状態遷移プロシジャファイルは、サービスごとに必要です

ので、複数のサービスを使用する場合は、ひな型を複写して使用してください。

状態遷移プロシジャファイル名は以下の規約にしたがってください。

MQDシステム名.MQDサービス名_INTERSTAGE.bat

例えば、MQDシステム名が“MQDABC”で、ACM連携サービスの場合は、“MQDABC.MQDACOM_INTERSTAGE.bat”となりま

す。

状態遷移プロシジャファイルの修正内容の例を以下に示します。

MQDシステム名がMQDABCの場合

set MQDSYS_NAME=MQD001↓

set MQDSYS_NAME=MQDABC

サービス名がACOMの場合

rem set SVCNAME=SERVICE↓

set SVCNAME=ACOM

rem set CHECK_COMMAND="%MQDBIN%\mqdacomprtc"↓

set CHECK_COMMAND="%MQDBIN%\mqdacomprtc"

サービス起動時に定義反映を行う場合

set STRSVC_COMMAND=mqdstrsvc -s %MQDSYS_NAME% %SVCNAME%↓

set STRSVC_COMMAND=mqdstrsvc -s %MQDSYS_NAME% -n %SVCNAME%

状態遷移プロシジャのリソース登録

状態遷移プロシジャのリソース登録については、“13.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロ

シジャのリソース登録”を参照してください。

- 396 -

Page 414: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.2.4.3 MQDのリソースを登録する

MQDをSafeCLUSTERで動作させるために、MQD関連のリソースを登録します。登録は、クラスタ運用管理ビューを使用して行いま

す。クラスタ運用管理ビューの詳細については“SafeCLUSTER/Standard 導入運用ガイド”を参照してください。表13.2 MQDのリソース一覧

に登録するリソースの一覧を示します。

なお、必要に応じて、業務アプリケーションなどのリソースも登録してください。

表13.2 MQDのリソース一覧

リソース リソースクラス

切替えディスク DISK

IPアドレス IP_Address

MQDの基本機能用状態遷移プロシジャ BasicApplicationまたはApplication

MQDの拡張機能用状態遷移プロシジャ (注) BasicApplicationまたはApplication

注) MQDの拡張機能用状態遷移プロシジャの登録は、拡張機能を使用しない場合は不要です。

13.2.4.4 MQDクラスタサービスを設定する

クラスタ運用管理ビューを使用して、サービスの設定を行います。クラスタ運用管理ビューの詳細については“SafeCLUSTER/Standard導入運用ガイド”を参照してください。

MQDクラスタサービスの設定内容

MQDクラスタサービスの設定内容は表13.3 サービス設定内容のとおりです。

表13.3 サービス設定内容

設定項目 設定内容

サービス名 任意

運用形態 Standby

ノード 運用ノード 運用インスタンスを登録するノード

待機ノード 待機インスタンスを登録するノード

リソース 表13.2 MQDのリソース一覧を参照

アプリケーション依存関係 図13.9 リソース起動優先度を参照

共用ディスク装置の使用種別 切替えディスク

起動優先度

サービスを構成するアプリケーションが複数からなり起動優先度を設定する必要がある場合は、起動順番の優先度を設定します。図

13.9 リソース起動優先度に、MQDに関するリソースの起動優先度を示します。使用するリソースについて、以下の順に起動するように

優先度を設定します。

- 397 -

Page 415: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図13.9 リソース起動優先度

13.2.5 動作を確認する

環境設定の妥当性確認のために、実際に切替えなどの動作確認を行ってください。

以下の事項について確認する方法について記述します。

・ 起動を確認する

・ 切替えを確認する

・ 運用が自動継続できることを確認する

なお、各操作はクラスタの運用管理ビューを使用して行います。クラスタ運用管理ビューの詳細については“SafeCLUSTER/Standard導入運用ガイド”を参照してください。

13.2.5.1 起動を確認する

サービスを起動します。起動の後、運用インスタンスのリソースの状態がすべて正常になっていることを確認してください。また、運用

インスタンスのイベントビューアにMQD起動のメッセージ(MQD4111)が出力されることを確認してください。

13.2.5.2 切替えを確認する

運用インスタンスを停止させることにより、待機インスタンスが運用インスタンスに切り替わることを確認します。

- 398 -

Page 416: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.2.5.3 運用が自動継続できることを確認する

インスタンスが切り替わった後に、業務運用が自動的に継続できることを確認します。アプリケーションを観点とした確認を実施してく

ださい。

なお、ACM連携サービスを使用して運用を自動継続する場合、以下の注意点があります。

・ グローバルサーバのACMおよびSolarisのMQDと通信する場合

運用ノードの異常により待機ノードに切り替わる場合、運用ノードで確立していたDPCF通信パスが相手システムに残ったままとな

る場合があります。このため、切り替え時事象発生時に、相手システム側でDPCF通信パスを解放し、再度待機側へDPCF通信パ

スを確立するような対処が必要です。

・ WindowsサーバのMQDと通信する場合

DPCF通信パスの確立を行った際に、ACM連携サービスが自動的にDPCF通信パスを解放し、再度待機側へDPCF通信パスを

確立する処理を行います。

13.3 運用

クラスタシステムは、ほとんどの操作をクラスタ運用管理ビューで行います。クラスタ運用管理ビューの詳細については“SafeCLUSTER/Standard 導入運用ガイド”を参照してください。クラスタシステムの基本的な運用の流れについて、図13.10 クラスタシステムでの運用の流れ

に示します。

- 399 -

Page 417: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図13.10 クラスタシステムでの運用の流れ

13.3.1 サービス起動

クラスタの運用管理ビューで構築したサービスを起動します。これにより、同一サービス内で設定された起動優先度にしたがってMQDが起動されます。サービスの起動は、クラスタ運用管理ビューを使用して行います。

13.3.2 復旧作業

異常が発生したノードでは、ハードウェアやソフトウェアの障害が発生しています。その原因を取り除いてください。

13.3.3 サービスを組込み可能に変更

異常が発生したサービスは、組込み不可モードになっています。この状態を、組込み可能なモードに変更します。組込みモードの変

更は、クラスタ運用管理ビューを使用して行います。

- 400 -

Page 418: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.3.4 組込み

切替えまたは切捨てによりインスタンスが停止中となった場合は、エラーの原因を取り除いた後、そのインスタンスをサービスに組込

んでください。組込みは、クラスタ運用管理ビューを使用して行います。

13.3.5 切戻し

切替えにより待機インスタンスが運用インスタンスになってサービスを運用しているところに待機インスタンスを組み込むと、運用イン

スタンスと待機インスタンスが初期設定時の配置と異なることになります。そこで、必要に応じて切戻しを行い、スタンバイクラスの再配

置を行ってください。切戻しは、クラスタ運用管理ビューを使用して行います。

13.3.6 サービスの停止

サービスを停止します。サービスの停止により、MQDが停止します。サービスの停止は、クラスタ運用管理ビューを使用して行いま

す。

13.4 保守

ここでは、クラスタシステムの保守について、特に注意の必要な以下の事項について説明しています。

・ クラスタシステムの環境を削除する

・ 状態遷移プロシジャを変更する

13.4.1 クラスタシステムの環境を削除する

SafeCLUSTERに作成したMQDクラスタサービスの環境を削除する手順について、以下の順番で説明しています。

・ サービス登録の削除

・ 状態遷移プロシジャのリソース削除

・ MQDの拡張機能の環境を削除する

・ MQDの基本機能の環境を削除する

13.4.1.1 サービス登録の削除

クラスタ運用管理ビューを使用してサービス登録を削除します。サービス登録の削除については、“SafeCLUSTER/Standard 導入運

用ガイド”を参照してください。

13.4.1.2 状態遷移プロシジャファイルのリソース削除

クラスタ運用管理ビューを使用してMQDの基本機能用およびMQDの拡張機能用の状態遷移プロシジャを削除します。状態遷移プ

ロシジャの削除については、“SafeCLUSTER/Standard 導入運用ガイド”を参照してください。

13.4.1.3 MQDの拡張機能の環境を削除する

MQDの拡張機能の環境を削除します。MQDの拡張機能はMQDの基本機能の環境を削除する際に、一括して削除することが可能

ですので、ここでは何もせず、MQDの基本機能の環境を削除するに進んでもよいです。

MQDの拡張機能の環境は片側のノードのみで実施します。MQD用のディスクリソースがオンラインになっているノードで各拡張機能

の環境削除コマンドを実行してください。

イベントチャネル連携サービスの場合

イベントチャネル連携サービスをCORBAサービスから削除するコマンド(mqdnsgwrlsserver)はInterstageを起動した状態で、双方の

ノードで実行してください。

- 401 -

Page 419: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

13.4.1.4 MQDの基本機能の環境を削除する

MQDの環境を運用系ノード、待機系ノードともに削除します。双方のノードの環境削除順序は問いません。環境を-hオプション指定

で作成していないノードで環境削除を行う場合は、切替えディスクにアクセスできる状態でなければなりません。

13.4.2 状態遷移プロシジャを変更する

状態遷移プロシジャを変更する手順について説明します。手順に沿って、以下の順番で説明しています。

・ 状態遷移プロシジャファイルの取出し

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャファイルの登録

13.4.2.1 状態遷移プロシジャファイルの取出し

クラスタ運用管理ビューを使用して格納されている状態遷移プロシジャを取出します。状態遷移プロシジャの取出しについて

は、“SafeCLUSTER/Standard 導入運用ガイド”を参照してください。

13.4.2.2 状態遷移プロシジャファイルの修正

状態遷移プロシジャファイルを修正します。修正内容の詳細については、以下を参照してください。

・ MQD基本機能の場合:“13.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルの修正”

・ MQDサービスの場合:“13.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルの修正”

13.4.2.3 状態遷移プロシジャの登録

状態遷移プロシジャを再登録します。状態遷移プロシジャ名は取出したときと同じ名前を指定します。登録方法の詳細については、

以下を参照してください。

・ MQD基本機能の場合:“13.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャのリソース登録”

・ MQDサービスの場合:“13.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャのリソース登録”

- 402 -

Page 420: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第14章 クラスタサービス機能(Solarisサーバ SafeCLUSTER編)

本章では、MQDのクラスタサービス機能について、以下の順に説明しています。

14.1 クラスタサービスの概要

14.2 環境設定

14.3 運用

14.4 保守

なお、本章を読むにあたっては、SafeCLUSTERの基本的な知識が必要です。また、MQDの基本的な設定や運用についての知識が

必要です。SafeCLUSTERの基本的な知識については、以下のマニュアルを参照してください。

・ SafeCLUSTER 説明書

・ SafeCLUSTER 導入運用手引書

14.1 クラスタサービスの概要

本節では、MQDのクラスタサービス機能の概要について、以下の順に説明しています。

・ 機能

・ 利用形態とシステム構成

14.1.1 機能

業務運用中にハードウェア障害やソフトウェア障害など不測の事態が発生し、システムダウンなどに陥った場合に備え、システムの高

信頼化が必要です。クラスタサービスでは、不測の事態に備え、運用中のノードとは別に、待機しているノードを用意します。運用中の

ノードで異常が発生した場合には、待機側のノードに業務を引き継ぐことにより、業務全体を停止させることなく継続することを可能に

します。

MQDのクラスタサービス機能は、SafeCLUSTERを使用することにより1:1運用待機のクラスタシステムを構築することができます。クラ

スタシステムを構築することで、ハードウェアやソフトウェアに異常が発生した場合に、MQDを使用する業務をノード間で引継ぐことが

可能となります。そのため、MQDを使用する業務の停止時間を 小に押さえることができます。図14.1 ノード間引継ぎの概念に、ノー

ド間引継ぎの概念図を示します。この図では、運用ノードで異常が発生したために、MQDの運用インスタンスが待機ノードに切替わる

ことを表しています。切替わることで、すぐにMQDを使用する業務を再開することができます。

- 403 -

Page 421: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図14.1 ノード間引継ぎの概念

14.1.2 利用形態とシステム構成

MQDのクラスタサービス機能では、SafeCLUSTERの1:1運用待機のクラスタシステムをサポートします。図14.2 SafeCLUSTERのクラ

スタ構成に、SafeCLUSTERのクラスタ構成を示します。

図14.2 SafeCLUSTERのクラスタ構成

- 404 -

Page 422: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

14.2 環境設定

本節では、クラスタサービスの環境設定について、以下の順に説明しています。

・ 環境設定前に行うこと

・ MQDの基本機能の環境を作成する

・ MQDの拡張機能の環境を作成する

・ クラスタシステムの環境を作成する

・ 動作を確認する

14.2.1 環境設定前に行うこと

本項では、クラスタサービス機能の環境を設定する前に必要な、以下の作業について説明しています。

・ サービスの構成を決定する

・ 共用ディスク装置を設定する

・ 引継ぎネットワークを設定する

14.2.1.1 サービスの構成を決定する

MQDをクラスタシステムで動作させるためには、SafeCLUSTERに登録するMQD用のサービスを決定する必要があります。InterstageのアプリケーションからMQDを使用する場合は、Interstageと同じサービスに所属させます。MQDを単独で使用する場合は、専用の

サービスを新規に作成します。いずれの場合にも、アプリケーションを含めた業務の引継ぎ単位を考慮してサービスを決定する必要が

あります。図14.3 MQDのサービス構成に、MQDの基本的なサービスの構成を示します。

図14.3 MQDのサービス構成

14.2.1.2 共用ディスク装置を設定する

MQDをクラスタシステムで動作させるためには、MQD環境定義に指定するすべてのファイルを共用ディスク装置上に作成しなけれ

ばなりません。そのため、必要なファイル容量を見積もった後に、その容量を格納できる共用ディスク装置を用意します。共用ディスク

装置は切替えディスクとして登録します。そして、MQDを登録するサービスに事前にリソースとして登録してください。これは、MQDの

環境を作成するときに、この切り替えディスクにアクセスする必要があるためです。設定および登録方法の詳細について

は、“SafeCLUSTER 導入運用手引書”を参照してください。

共用ディスク装置は、ローデバイスとして使用するものとファイルシステムとして使用するものを用意します。共用ディスク装置の構成を

図14.4 共用ディスク装置の構成に示します。なお、共用ディスク装置は複数使用することも可能です。

- 405 -

Page 423: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図14.4 共用ディスク装置の構成

注)*の付いたファイルは通常ファイルに作成します。

それ以外のファイルは、ローデバイスファイルまたは通常ファイルに作成します。処理の高速化のためにローデバイスファイルへの配

置を推奨します。

14.2.1.3 引継ぎネットワークを設定する

クラスタシステムにおいて切替えが発生したとき、業務で使用するLANのIPアドレスを、旧運用ノードから新運用ノードに引継ぐため

の設定を行います。設定方法の詳細は“SafeCLUSTER 導入運用手引書”を参照してください。

14.2.2 MQDの基本機能の環境を作成する

MQDを使用するためには、図14.5 MQDの環境作成の流れの手順に沿って、MQDの環境を作成する必要があります。

なお、Interstageを使用する場合は、MQDの基本機能の環境を作成する前の任意な契機でInterstageのクラスタ環境を作成してくださ

い。

図14.5 MQDの環境作成の流れ

- 406 -

Page 424: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

14.2.2.1 MQD環境定義を作成する

クラスタサービスを使用する場合、MQDの環境定義にクラスタシステム用にClusterセクションを追加します。また、環境定義に指定す

るすべてのファイルは、リソース登録した切替えディスクを指定する必要があります。クラスタサービスを使用する場合のMQD環境定義

は以下の形式で記述します。なお、Clusterセクション以外の指定内容については、“3.3 環境定義の記述”を参照してください。

記述形式

[MQDConfiguration]

QueueMax = 作成メッセージキュー数の最大値

MessageBufferMaxSize = メッセージバッファの最大長

[Transaction]

TransactionFile = トランザクション管理ファイルの名前

Max_Size = 1トランザクションで送受信するメッセージ長の合計の最大値

[SystemFile]

SystemFile1 = システム制御用ファイル1の名前

SystemFile2 = システム制御用ファイル2の名前

SystemFile2_Size = システム制御用ファイル2の容量

[QueueIndex]

File = メッセージキュー管理ファイルの名前

[DiskQueue]

File = ディスク型メッセージキューのメッセージ格納ファイルの名前

Size = ディスク型メッセージキューのメッセージ格納域の容量

[MemoryQueue]

File = メモリ型メッセージキューのメッセージ格納域管理ファイルの名前

Size = メモリ型メッセージキューのメッセージ格納域の容量

[WatchQueueUsed]

DiskQueue = ディスク型メッセージキューのメッセージ格納域の安全値と警告値

MemoryQueue = メモリ型メッセージキューのメッセージ格納域の安全値と警告値

[Cluster]

SystemDirectory = MQDのクラスタサービスが使用するディレクトリの名前

Clusterセクション

MQDクラスタサービスが使用するシステムファイルを格納するディレクトリを指定します。記述内容を、表14.1 Clusterセクションの記述内容

に示します。

表14.1 Clusterセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

SystemDirectory

不可 文字列 絶対パス名で指定します。

切替えディスク上にあるディレクトリを指

定します。

MQDクラスタサービスが使用するシステム

ファイルを格納するディレクトリを指定しま

す。

ひとつのアプリケーションから複数のMQDシステムを使用する場合は、使用するすべ

てのMQDシステムで、本キーワードに共通

の値を指定してください。

記述例

以下に、Clusterセクションの記述例を示します。

[Cluster]SystemDirectory = /disk1/mqddir

共有ディスクの容量の見積もり

MQDをクラスタサービスで使用する場合、共有ディスク上に“3.2.2.2 ファイル容量の見積り”に示すファイル容量が必要です。

- 407 -

Page 425: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

必要なファイル容量を確保してから以降の操作を実行してください。

14.2.2.2 サービスを起動する

運用ノードから切替えディスクにアクセスできるように、サービスを起動します。サービスの起動方法の詳細は“SafeCLUSTER 導入運

用手引書”を参照してください。

14.2.2.3 運用ノードにMQD環境を作成する

運用ノードにMQD環境を作成します。作成は、通常の環境作成と同様に、mqdsetupコマンドを使用して行います。以下にmqdsetupコマンド(運用ノードの環境作成)の入力例を示します。

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

mqdsetup -f /mqd/def/setup.def

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

14.2.2.4 待機ノードにMQD環境を作成する

待機ノードにMQD環境を作成します。このとき、切替えディスクにアクセスできるようにする必要はありません。運用ノードに環境を作

成したときと同一内容のMQD環境定義を指定して、mqdsetupコマンドで環境を作成します。このとき、待機ノードでの環境作成を意味

する-hオプションを指定します。以下にmqdsetupコマンド(待機ノードの環境作成)の入力例を示します。

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

mqdsetup -f /mqd/def/setup.def -h

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

14.2.3 MQDの拡張機能の環境を作成する

MQDの拡張機能の環境を作成する手順について説明します。なお、拡張機能を使用しない場合、本項の作業は不要です。ここで

は、以下の拡張機能の環境作成方法について説明しています。

・ ACM連携サービス(サービス名: ACOM)

・ 同報配信サービス(サービス名: MCAS)

・ イベントチャネル連携サービス(サービス名: NSGW)

14.2.3.1 ACM連携サービスの環境を作成する

ACM連携サービスを使用するためには、図14.6 ACM連携サービスの環境作成の流れの手順に従って、ACM連携サービスが動作

するためのサービス環境を作成する必要があります。

- 408 -

Page 426: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図14.6 ACM連携サービスの環境作成の流れ

なお、ACM連携サービスの環境作成方法の詳細については、“10.3 環境作成”を参照してください。

IDCMの環境定義を作成する

IDCMネットワーク定義(tcpctype定義文)は以下のように指定してください。なお、IDCMを使用するアプリケーションが存在する場合

は、下記値にアプリケーションが必要な値を追加してください。IDCMネットワーク定義の詳細については、“IDCM使用手引書”およ

び“IDCMヘルプ”を参照してください。

定義文 オペランド 値

tcpctype name TCPCTYPE名

maxcont 自システムと相手システムのwinicontとlinicontの合計に1を加えた値を指定します。

winicont ・ 相手システムにメッセージを送信する場合は、ACM連携サービスのサービス定義

(PSYSセクションのsesnoキーワードの値)で指定した値を指定します。

・ 相手システムからメッセージの受信だけを行う場合、かつ自システムから相手シ

ステムにPSYSを確立する場合は、1を指定します。

・ 相手システムからメッセージの受信だけを行う場合、かつ自システムからは相手

システムにPSYSを確立しない場合は、0を指定します。

linicont 0を指定します。

respcont 1を指定します。

MQDを起動する

切替えディスクにアクセス可能なノードで、MQDを起動します。起動は、-pオプションを指定したmqdstrコマンドで行います。これによ

り、MQDの基本機能だけが起動されます。以下にmqdstrコマンドの入力例を示します。

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

mqdstr -p

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

- 409 -

Page 427: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス環境を作成する

ACM連携用のサービス環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdacomsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下にmqdacomsetupの入力例を示します。

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

mqdacomsetup

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

メッセージキューを作成する

ACM連携サービスで使用するメッセージキューを作成します。既存のキューに対してACM連携サービスを使用する場合には、新た

にメッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの

入力例を示します。

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

mqdcrtq que001

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

サービス定義を作成する

ACM連携サービスのサービス定義を作成します。クラスタシステムでACM連携サービスを使用する場合、サービス定義を追加およ

び変更する必要があります。以下に追加および変更となる定義について説明します。

MNGRセクション

以下のキーワードを追加してください。

キーワード 省略 データ型 記述方法 記述内容の説明

hasystem 可 文字列 “TYPE1”または“NO”を指定します。本

キーワードを省略した場合、キーワード

値は“NO”となります。

クラスタ対応を行う場合は、“TYPE1”を指

定します。

PSYSセクション

sesnoキーワードに設定する値を以下のように変更してください。

キーワード 省略 データ型 記述方法 記述内容の説明

sesno 可 数値 1~1024の範囲で指定します。

省略値は3です。

IDCMネットワーク定義の優先会話コネク

ション数(winicontの値)と同じ数を指定し

てください。

サービス定義を登録する

ACM連携用のサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同じです。登録には、mqdacomdefコマ

ンドを使用します。このコマンドは、このノードで1度だけ実行します。以下にmqdacomdefコマンドの入力例を示します。

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

mqdacomdef -a -f /mqd/def/acomdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度ACM連携サービスを起動します。起動はmqdstrsvcコマンドを使用して行

います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n acom

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

- 410 -

Page 428: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、mqdstpコマンドで行います。以下に、mqdstpコマンドの入力例を示します。

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

mqdstp

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

14.2.3.2 同報配信サービスの環境を作成する

同報配信サービスを使用するためには、図14.7 同報配信サービスの環境作成の流れの手順に従って、同報配信サービスが動作す

るためのサービス環境を作成する必要があります。

図14.7 同報配信サービスの環境作成の流れ

MQDを起動する

切替えディスクにアクセス可能なノードで、MQDを起動します。起動は、-pオプションを指定したmqdstrコマンドで行います。これによ

り、MQDの基本機能だけが起動されます。以下に、mqdstrコマンドの入力例を示します。

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

mqdstr -p

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

サービス環境を作成する

同報配信サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdmcassetupコマン

ドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcassetupコマンドの入力例を示します。

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

mqdmcassetup -f /mqd/def/mcassetup.def

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

- 411 -

Page 429: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メッセージキューを作成する

同報配信サービスで使用するメッセージキューを作成します。既存のキューに対して同報配信サービスを使用する場合には、新たに

メッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの入

力例を示します。

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

mqdcrtq que002

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

サービス定義を作成する

同報配信サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同じです。

サービス定義を登録する

同報配信サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同じです。登録には、mqdmcasdefコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcasdefコマンドの入力例を示します。

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

mqdmcasdef -a -f /mqd/def/mcasdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度同報配信サービスを起動します。起動はmqdstrsvcコマンドを使用して行

います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n mcas

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、mqdstpコマンドで行います。以下に、mqdstpコマンドの入力例を示します。

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

mqdstp

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

14.2.3.3 イベントチャネル連携サービスの環境を作成する

イベントチャネル連携サービスを使用するためには、図14.8 イベントチャネル連携サービスの環境作成の流れの手順に従って、イベ

ントチャネル連携サービスが動作するためのサービス環境を作成する必要があります。

- 412 -

Page 430: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図14.8 イベントチャネル連携サービスの環境作成の流れ

ノーティフィケーションサービスの環境を作成する

イベントチャネル連携サービスをクラスタ環境で使用する場合は、イベントサービスの環境をクラスタで動作可能な形態で作成してく

ださい。

クラスタ環境でイベントサービスのユニットおよびイベントチャネルを作成する際のesmkunitコマンドおよびesmkchnlコマンドの詳細に

ついては“リファレンスマニュアル(コマンド編)”を参照してください。

CORBAサービスへの登録を行う

メッセージを受信するサーバでは、イベントチャネル連携サービスをCORBAサービスへ登録しなければいけません。メッセージを送

信するサーバでは、本処理は必要ありません。なお、本処理の詳細については、“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”を参照してください。

また、登録をする自サーバのIPアドレスは、運用系と待機系で共有するIPアドレスを指定してください。以下に、一括登録コマンドを使用して

CORBAサービスへの登録を行う場合の入力例を示します。

ネーミングサービス方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ns.sh SERVER01 255.255.255.255 8002 EUC

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

IORファイル方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ior.sh SERVER01 255.255.255.255 8002 EUC /mqd/mqdiorfile

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

MQDを起動する

切替えディスクにアクセス可能なノードで、MQDを起動します。起動は、-pオプションを指定したmqdstrコマンドで行います。これによ

り、MQDの基本機能だけが起動されます。以下に、mqdstrコマンドの入力例を示します。

- 413 -

Page 431: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdstr -p

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

サービス環境を作成する

イベントチャネル連携サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdnsgwsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwsetupコマンドの入力例を示します。

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

mqdnsgwsetup

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

サービス定義を作成する

イベントチャネル連携サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同一で

す。

サービス定義を登録する

イベントチャネル連携サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同一です。登録は、

mqdnsgwdefコマンドで行います。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwdefコマンドの入力例を示しま

す。

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

mqdnsgwdef -a -f /mqd/def/nsgwdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度イベントチャネル連携サービスを起動します。起動はmqdstrsvcコマンドで

行います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n nsgw

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、mqdstpコマンドで行います。以下に、mqdstpコマンドの入力例を示します。

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

mqdstp

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

14.2.4 クラスタシステムの環境を作成する

MQDをSafeCLUSTERのクラスタシステムで動作させるための環境を作成する手順について、以下の順番で説明しています。

・ MQD基本機能用の状態遷移プロシジャを登録する

・ MQD拡張機能用の状態遷移プロシジャを登録する

・ MQDのリソースを登録する

・ MQDクラスタサービスを設定する

14.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する

SafeCLUSTER上で動作するMQDでは、状態遷移プロシジャを利用して、MQDの起動や停止を行います。状態遷移プロシジャとは、

クラスタ制御からの状態遷移指示を受け取り、リソースの活性化や非活性化を制御(アプリケーションの起動や停止など)するもので

す。状態遷移プロシジャの詳細に関しては、“SafeCLUSTER 導入運用手引書”を参照してください。

状態遷移プロシジャの登録方法について、以下の順に説明しています。

- 414 -

Page 432: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャの格納

・ 状態遷移プロシジャのリソース登録

状態遷移プロシジャファイルを修正する

MQDは状態遷移プロシジャファイルのひな型を提供します。MQD基本機能用のひな型は以下のファイルで提供しています。

/opt/FJSVmqd/sample/MQD001.MQD_INTERSTAGE

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ MQDシステム名: MQD001

・ MQD起動: MQD拡張機能を連動して起動しない

・ MQD停止: 強制停止を行う

複数のMQDシステムを使用する場合は、状態遷移プロシジャをMQDシステムごとに用意する必要がありますので、ひな型を複写し

て使用してください。

なお、状態遷移プロシジャファイル名は以下の規約に従ってください。

MQDシステム名.MQD_INTERSTAGE

例えば、MQDシステム名が“MQDSYS01”の場合には、“MQDSYS01.MQD_INTERSTAGE”となります。

また、上記以外の設定でMQDシステムの起動と停止を行う場合は、ひな型の修正が必要です。

状態遷移プロシジャファイルの修正内容の例を以下に示します。

MQDシステム名がMQDABCの場合

SYSNAME="MQD001"↓

SYSNAME="MQDABC"

MQD起動時に拡張機能を連動して起動する場合

START_OPT="-s $SYSNAME -p"↓

START_OPT="-s $SYSNAME"

MQD起動時にMQD資源を回収しMQDを起動する場合

START_OPT="-s $SYSNAME -p"↓

START_OPT="-s $SYSNAME -p -r"

状態遷移プロシジャファイルを格納する

各ノードに状態遷移プロシジャファイルを格納します。状態遷移プロシジャファイルの格納は、状態遷移プロシジャファイル格納コマ

ンドを実行することにより行います。-cオプションでBasicApplicationを指定してください。コマンドの詳細は“SafeCLUSTER 導入運用

手引書”を参照してください。以下に、clsetprocコマンドの入力例を示します。

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

clsetproc -c BasicApplication /opt/FJSVmqd/sample/MQD001.MQD_INTERSTAGE

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

状態遷移プロシジャをリソース登録する

各ノードにMQD基本機能用の状態遷移プロシジャをリソース登録します。

状態遷移プロシジャをリソース登録するには、MQDより提供する状態遷移プロシジャ登録用のシェルスクリプトを実行します。MQD基

本機能用の状態遷移プロシジャをリソース登録するためのシェルスクリプトのひな型は、以下のファイルで提供しています。

- 415 -

Page 433: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

/opt/FJSVmqd/sample/ADDPROC_MQD_INTERSTAGE

シェルスクリプトのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQD_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

・ 起動優先度: 100

登録する状態遷移プロシジャファイルに合わせて、シェルスクリプトを修正します。

状態遷移プロシジャファイル名がMQDABC.MQD_INTERSTAGEの場合

PROC_NAME="MQD001.MQD_INTERSTAGE"↓

PROC_NAME="MQDABC.MQD_INTERSTAGE"

起動優先度を変更したい場合

PRIORITY="100"↓

PRIORITY="150"

14.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する

MQDの拡張機能を使用する場合は、MQDの拡張機能(以下、サービスと呼びます)ごとに状態遷移プロシジャを登録します。サービ

スを使用しない場合は登録する必要はありません。

状態遷移プロシジャの登録方法について、以下の順に説明しています。

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャの格納

・ 状態遷移プロシジャのリソース登録

なお、ACM連携サービスを使用する場合、IDCMの起動/停止/切替えやDPCF通信パスの確立/解放などの処理については、

使用者が状態遷移プロシジャを作成する必要があります。状態遷移プロシジャについては、“SafeCLUSTER 導入運用手引書”を参照

してください。また、IDCMは引継ぎ後、ACM連携サービスを起動する前に再起動する方式となるため、リソースはACM連携サービス

の状態遷移プロシジャファイル“MQDシステム名.MQDACOM.INTERSTAGE”の前に呼ばれるように起動優先度を設定してください。

DPCF通信パスの確立は業務形態に合わせて任意の契機で実行するように優先度(IDCMのリソースの起動優先度より低い値)を設定

してください。

IDCMの環境設定については、運用ノードと待機ノードで同様の設定を行ってください。IDCMの環境設定については、“IDCM使用

手引書”を参照してください。

イベントチャネル連携サービスを使用する場合、イベントサービスの起動/停止/切替えやイベントチャネルの起動/停止などの処理に

ついては、使用者が状態遷移プロシジャを作成する必要があります。状態遷移プロシジャについては、“SafeCLUSTER/Standard 導入

運用ガイド”を参照してください。また、イベントサービスは、イベントチャネル連携サービスを起動する前に起動している必要があるた

め、リソースはイベントチャネル連携サービスの状態遷移プロシジャの前に呼ばれるように起動優先度を設定してください。

イベントサービスの環境設定については、“アプリケーション作成ガイド(CORBAサービス編)”を参照してください。

状態遷移プロシジャファイルを修正する

MQDは状態遷移プロシジャファイルのひな型を提供します。サービス用のひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/MQD001.MQDSVC_INTERSTAGE

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ MQDシステム名: MQD001

・ サービス名: SERVICE

・ サービス起動: 定義反映を行わないで起動する

- 416 -

Page 434: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

状態遷移プロシジャファイルを、使用するサービスに合わせて修正します。状態遷移プロシジャファイルは、サービスごとに必要です

ので、複数のサービスを使用する場合は、ひな型を複写して使用してください。

状態遷移プロシジャファイル名は以下の規約に従ってください。

MQDシステム名.MQDサービス名_INTERSTAGE

例えば、MQDシステム名が“MQDSYS01”で、ACM連携サービスの場合は、“MQDSYS01.MQDACOM_INTERSTAGE”となりま

す。

状態遷移プロシジャファイルの修正内容の例を以下に示します。

MQDシステム名がMQDABCの場合

SYSNAME="MQD001"↓

SYSNAME="MQDABC"

サービス名がACOMの場合

SERVICE="SERVICE"↓

SERVICE="ACOM"

サービス起動時に定義反映を行う場合

START_OPT="-s $SYSNAME $SERVICE"↓

START_OPT="-s $SYSNAME -n $SERVICE"

状態遷移プロシジャファイルを格納する

各ノードに状態遷移プロシジャファイルを格納します。状態遷移プロシジャファイルは、状態遷移プロシジャファイル格納コマンドを実

行することにより格納します。コマンドは、-cオプションとBasicApplicationを指定してください。コマンドの詳細は“SafeCLUSTER 導入

運用手引書”を参照してください。以下に、clsetprocコマンドの入力例を示します。

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

clsetproc -c BasicApplication /opt/FJSVmqd/sample/MQD001.MQDSVC_INTERSTAGE

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

状態遷移プロシジャをリソース登録する

各ノードにMQDサービス用の状態遷移プロシジャをリソース登録します。

状態遷移プロシジャをリソース登録するには、MQDより提供する状態遷移プロシジャ登録用のシェルスクリプトを実行します。MQDの

サービス用の状態遷移プロシジャをリソース登録するためのシェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/ADDPROC_MQDSVC_INTERSTAGE

シェルスクリプトのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQDSVC_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

・ 起動優先度: 200

登録する状態遷移プロシジャファイルに合わせて、シェルスクリプトを修正します。

状態遷移プロシジャファイル名がMQD001.MQDACOM_INTERSTAGEの場合

PROC_NAME="MQD001.MQDSVC_INTERSTAGE"↓

PROC_NAME="MQD001.MQDACOM_INTERSTAGE"

- 417 -

Page 435: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

起動優先度を変更したい場合

PRIORITY="200"↓

PRIORITY="180"

14.2.4.3 MQDのリソースを登録する

MQDをSafeCLUSTERで動作させるために、MQD関連のリソースを登録します。登録は、クラスタ運用管理ビューを使用して行いま

す。クラスタ運用管理ビューの詳細については“SafeCLUSTER 導入運用手引書”を参照してください。表14.2 MQDのリソース一覧に

登録するリソースの一覧を示します。

なお、必要に応じて、業務アプリケーションなどのリソースも登録してください。

表14.2 MQDのリソース一覧

リソース リソースクラス

切替えディスク DISK

MACアドレス MAC_Address

ネットノード名 NetNodename

IPアドレス IP_Address

MQDの基本機能用状態遷移プロシジャ BasicApplication

MQDの拡張機能用状態遷移プロシジャ (注) BasicApplication

注) MQDの拡張機能用状態遷移プロシジャの登録は、拡張機能を使用しない場合は不要です。

14.2.4.4 MQDクラスタサービスを設定する

クラスタ運用管理ビューを使用して、サービスの設定を行います。クラスタ運用管理ビューの詳細については“SafeCLUSTER 導入運

用手引書”を参照してください。

MQDクラスタサービスの設定内容

MQDクラスタサービスの設定内容は表14.3 サービス設定内容のとおりです。

表14.3 サービス設定内容

設定項目 設定内容

サービス名 任意

運用形態 Standby

ノード 運用ノード 運用インスタンスを登録するノード

待機ノード 待機インスタンスを登録するノード

リソース 表14.2 MQDのリソース一覧を参照

アプリケーション依存関係 図14.9 リソース起動優先度 リソース起動優先度を参

共用ディスク装置の使用種別 切替えディスク

起動優先度

サービスを構成するアプリケーションが複数からなり起動優先度を設定する必要がある場合は、起動順番の優先度を設定します。図

14.9 リソース起動優先度に、MQDに関するリソースの起動優先度を示します。使用するリソースについて、以下の順に起動するように

優先度を設定します。

- 418 -

Page 436: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図14.9 リソース起動優先度

14.2.5 動作を確認する

環境設定の妥当性確認のために、実際に切替えなどの動作確認を行ってください。

以下の事項について確認する方法について記述します。

・ 起動を確認する

・ 切替えを確認する

・ 運用が自動継続できることを確認する

なお、各操作はクラスタの運用管理ビューを使用して行います。クラスタ運用管理ビューの詳細については“SafeCLUSTER 導入運

用手引書”を参照してください。

14.2.5.1 起動を確認する

サービスを起動します。起動の後、運用インスタンスのリソースの状態がすべて正常になっていることを確認してください。また、運用

インスタンスのコンソールにMQD起動のメッセージ(MQD4111)が出力されることを確認してください。

14.2.5.2 切替えを確認する

運用インスタンスを停止させることにより、待機インスタンスが運用インスタンスに切り替わることを確認します。

- 419 -

Page 437: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

14.2.5.3 運用が自動継続できることを確認する

インスタンスが切り替わった後に、業務運用が自動的に継続できることを確認します。アプリケーションを観点とした確認を実施してく

ださい。

なお、ACM連携サービスを使用して運用を自動継続する場合、以下の注意点があります。

・ グローバルサーバのACMおよびSolarisのMQDと通信する場合

運用ノードの異常により待機ノードに切り替わる場合、運用ノードで確立していたDPCF通信パスが相手システムに残ったままとな

る場合があります。このため、切り替え時事象発生時に、相手システム側でDPCF通信パスを解放し、再度待機側へDPCF通信パ

スを確立するような対処が必要です。

・ WindowsサーバのMQDと通信する場合

IDCMのactpsysコマンドでDPCF通信パスの確立を行った際に、ACM連携サービスが自動的にDPCF通信パスを解放し、再度待

機側へDPCF通信パスを確立する処理を行います。

14.3 運用

クラスタシステムは、ほとんどの操作をクラスタ運用管理ビューで行います。クラスタ運用管理ビューの詳細については“SafeCLUSTER導入運用手引書”を参照してください。クラスタシステムの基本的な運用の流れについて、図14.10 クラスタシステムでの運用の流れに

示します。

- 420 -

Page 438: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図14.10 クラスタシステムでの運用の流れ

14.3.1 サービス起動

クラスタの運用管理ビューで構築したサービスを起動します。これにより、同一サービス内で設定された起動優先度にしたがってMQDが起動されます。サービスの起動は、クラスタ運用管理ビューを使用して行います。

14.3.2 復旧作業

異常が発生したノードでは、ハードウェアやソフトウェアの障害が発生しています。その原因を取り除いてください。

14.3.3 サービスを組込み可能に変更

異常が発生したサービスは、組込み不可モードになっています。この状態を、組込み可能なモードに変更します。組込みモードの変

更は、クラスタ運用管理ビューを使用して行います。

- 421 -

Page 439: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

14.3.4 組込み

切替えまたは切捨てによりインスタンスが停止中となった場合は、エラーの原因を取り除いた後、そのインスタンスをサービスに組込

んでください。組込みは、クラスタ運用管理ビューを使用して行います。

14.3.5 切戻し

切替えにより待機インスタンスが運用インスタンスになってサービスを運用しているところに待機インスタンスを組み込むと、運用イン

スタンスと待機インスタンスが初期設定時の配置と異なることになります。そこで、必要に応じて切戻しを行い、スタンバイクラスの再配

置を行ってください。切戻しは、クラスタ運用管理ビューを使用して行います。

14.3.6 サービスの停止

サービスを停止します。サービスの停止により、MQDが停止します。サービスの停止は、クラスタ運用管理ビューを使用して行いま

す。

14.4 保守

ここでは、クラスタシステムの保守について、特に注意の必要な以下の事項について説明しています。

・ クラスタシステムの環境を削除する

・ 状態遷移プロシジャを変更する

14.4.1 クラスタシステムの環境を削除する

SafeCLUSTERに作成したMQDクラスタサービスの環境を削除する手順について、以下の順番で説明しています。

・ サービス登録の削除

・ 状態遷移プロシジャのリソース削除

・ 状態遷移プロシジャファイルの削除

・ MQDの拡張機能の環境を削除する

・ MQDの基本機能の環境を削除する

14.4.1.1 サービス登録の削除

クラスタ運用管理ビューを使用して、サービス登録を削除します。

14.4.1.2 状態遷移プロシジャファイルのリソース削除

状態遷移プロシジャのリソース削除を行うには、MQDより提供する状態遷移プロシジャ削除用のシェルスクリプトを実行します。

基本機能用

シェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/DELPROC_MQD_INTERSTAGE

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQD_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

拡張機能用

シェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/DELPROC_MQDSVC_INTERSTAGE (拡張機能用)

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

- 422 -

Page 440: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 状態遷移プロシジャファイル名: MQD001.MQDSVC_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

削除する状態遷移プロシジャファイルに合わせて、シェルスクリプトを修正します。シェルスクリプトの修正内容は、MQD基本機能用、

MQD拡張機能用とも同じです。

状態遷移プロシジャファイル名がMQD001.MQDACOM_INTERSTAGEの場合

PROC_NAME="MQD001.MQDSVC_INTERSTAGE"↓

PROC_NAME="MQD001.MQDACOM_INTERSTAGE"

14.4.1.3 状態遷移プロシジャファイルの削除

各ノードに格納した状態遷移プロシジャファイルを削除します。状態遷移プロシジャファイルの削除は、状態遷移プロシジャファイル

削除コマンドを実行することにより行います。-cオプションでBasicApplicationを指定してください。コマンドの詳細は“SafeCLUSTER 導入運用手引書”を参照してください。以下に、cldelprocコマンドの入力例を示します。

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

cldelproc -c BasicApplication MQD001.MQD_INTERSTAGE

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

14.4.1.4 MQDの拡張機能の環境を削除する

MQDの拡張機能の環境を削除します。MQDの拡張機能はMQDの基本機能の環境を削除する際に、一括して削除することが可能

ですので、ここでは何もせず、MQDの基本機能の環境を削除するに進んでもよいです。

MQDの拡張機能の環境は片側のノードのみで実施します。MQD用のディスクリソースがオンラインになっているノードで各拡張機能

の環境削除コマンドを実行してください。

イベントチャネル連携サービスの場合

イベントチャネル連携サービスをCORBAサービスから削除するコマンド(mqdnsgwrlsserver)はInterstageを起動した状態で、双方の

ノードで実行してください。

14.4.1.5 MQDの基本機能の環境を削除する

MQDの環境を運用系ノード、待機系ノードともに削除します。双方のノードの環境削除順序は問いません。環境を-hオプション指定

で作成していないノードで環境削除を行う場合は、切替えディスクにアクセスできる状態でなければなりません。

14.4.2 状態遷移プロシジャを変更する

状態遷移プロシジャを変更する手順について説明します。手順に沿って、以下の順番で説明しています。

・ 状態遷移プロシジャファイルの取出し

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャファイルの格納

14.4.2.1 状態遷移プロシジャファイルの取出し

格納されている状態遷移プロシジャを取出します。取出しは、clgetprocコマンドで行います。コマンドの詳細については、“SafeCLUSTER導入運用手引書”を参照してください。以下に、clgetprocコマンドの入力例を示します。

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

clgetproc -c BasicApplication MQD001.MQD_INTERSTAGE

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

14.4.2.2 状態遷移プロシジャファイルの修正

状態遷移プロシジャファイルを修正します。修正内容の詳細については、以下を参照してください。

- 423 -

Page 441: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ MQD基本機能の場合:“14.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを修正する”

・ MQDサービスの場合:“14.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを修正する”

14.4.2.3 状態遷移プロシジャを格納する

状態遷移プロシジャを格納します。状態遷移プロシジャ名は取出したときと同じ名前を指定します。格納方法の詳細については、以

下を参照してください。

・ MQD基本機能の場合:“14.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを格納する”

・ MQDサービスの場合:“14.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを格納する”

- 424 -

Page 442: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第15章 クラスタサービス機能(MSCS編)

本章では、MSCSを使用したMQDのクラスタサービス機能について、以下の順に説明しています。

15.1 クラスタサービスの概要

15.2 環境設定

15.3 環境削除

なお、本章を読むにあたっては、Microsoft® Cluster Server(以下、MSCSと呼びます)の基本的な知識が必要です。また、MQDの基

本的な設定や運用についての知識が必要です。MSCSの基本的な知識については、以下のマニュアルを参照してください。

・ Microsoft® Cluster Server 管理者ガイド

Microsoft(R) Windows Server(R) 2008以降の場合、本書では“MSCS”を“フェールオーバー クラスタリング”と読み替えてください。

15.1 クラスタサービスの概要

本節では、MQDのクラスタサービス機能の概要について、以下の順に説明しています。

・ 機能

・ 利用形態とシステム構成

15.1.1 機能

業務運用中にハードウェア障害やソフトウェア障害など不測の事態が発生し、システムダウンなどに陥った場合に備え、システムの高

信頼化が必要です。クラスタサービスでは、不測の事態に備え、運用中のノードとは別に、待機しているノードを用意します。運用中の

ノードで異常が発生した場合には、待機側のノードに業務を引き継ぐことにより、業務全体を停止させることなく継続することを可能に

します。

MQDのクラスタサービス機能は、MSCSを使用することにより1対1の運用待機型クラスタシステムを構築することができます。クラスタ

システムを構築することで、ハードウェアやソフトウェアに異常が発生した場合に、MQDを使用する業務をノード間で引き継ぐことが可

能となります。そのため、MQDを使用する業務の停止時間を 小に抑えることができます。図15.1 ノード間引継ぎの概念に、ノード間

引継ぎの概念図を示します。この図では、MQDを運用していたノードで異常が発生したために、MQD用のリソースグループがもうひと

つのノードにフェイルオーバすることを表しています。フェイルオーバすることで、すぐにMQDを使用する業務を再開することができま

す。

- 425 -

Page 443: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図15.1 ノード間引継ぎの概念

15.1.2 利用形態とシステム構成

MQDのクラスタサービス機能では、MSCSの1対1運用待機型のクラスタシステムをサポートします。図15.2 MSCSのクラスタ構成に、MSCSのクラスタ構成を示します。

図15.2 MSCSのクラスタ構成

15.2 環境設定

本節では、クラスタサービスの環境設定について、以下の順に説明しています。

・ 環境設定前に行うこと

- 426 -

Page 444: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ MQDの基本機能の環境を作成する

・ MQDの拡張機能の環境を作成する

・ クラスタシステムの環境を作成する

・ 動作を確認する

15.2.1 環境設定前に行うこと

本項では、クラスタサービス機能の環境を設定する前に必要な、以下の作業について説明しています。

・ リソースグループを決定する

・ 共有記憶装置を割り当てる

・ IPアドレスを取得する

15.2.1.1 リソースグループを決定する

MQDをクラスタシステムで動作させるためには、MQD用のリソースグループを決定する必要があります。Interstageのアプリケーションから

MQDを使用する場合、Interstageと同じリソースグループに所属させます。MQDを単独で使用する場合は、専用のリソースグループを

新規に作成します。いずれの場合にも、業務の引継ぎ単位を考慮してリソースグループを決定する必要があります。図15.3 MQDのリ

ソースグループ構成に、MQDの基本的なリソースグループの構成を示します。

図15.3 MQDのリソースグループ構成

15.2.1.2 共有記憶装置を割り当てる

MQDをクラスタシステムで動作させるためには、MQD環境定義に指定するすべてのファイルを共有記憶装置に作成しなければなり

ません。そのため、必要なファイル容量を見積もった後に、その容量を格納できる共有記憶装置上の物理ディスクを用意します。そし

て、この物理ディスクを、MQDを所属させるリソースグループに事前にリソースとして登録しておきます。以降、ここで登録したリソースを

「MQD用のディスクリソース」と呼びます。共有記憶装置上の物理ディスクの構成を図15.4 共有記憶装置上の物理ディスクの構成に示

します。

なお、物理ディスクは複数使用することも可能です。その場合、使用するすべての物理ディスクを、MQDを所属させるリソースグルー

プにリソースとして登録しておきます。

- 427 -

Page 445: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図15.4 共有記憶装置上の物理ディスクの構成

15.2.1.3 IPアドレスを取得する

ACM連携サービスを使用する場合、クラスタシステムで共有して使用するIPアドレスを取得する必要があります。他のサーバからは、

このIPアドレスでMQDと通信することになります。

15.2.2 MQDの基本機能の環境を作成する

MQDを使用するためには、図15.5 MQDの環境作成の流れの手順に従って、MQDが動作するための環境を作成する必要がありま

す。

なお、Interstageを使用する場合は、MQDの基本機能の環境を作成する前の任意な契機でInterstageのクラスタ環境を作成してくださ

い。

図15.5 MQDの環境作成の流れ

- 428 -

Page 446: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

15.2.2.1 MQD環境定義を作成する

クラスタサービスを使用する場合、MQD環境定義にクラスタシステム用のClusterセクションを追加します。また、環境定義に指定する

すべてのファイルは、共有記憶装置上の物理ディスクを指定する必要があります。クラスタサービスを使用する場合のMQD環境定義

は以下の形式で記述します。なお、Clusterセクション以外は、クラスタサービスを使用しない場合と同一です。

記述形式

[MQDConfiguration]

QueueMax = 作成メッセージキュー数の最大値

MessageBufferMaxSize = メッセージバッファの最大長

[Transaction]

TransactionFile = トランザクション管理ファイルの名前

Max_Size = 1トランザクションで送受信するメッセージ長の合計の最大値

[SystemFile]

SystemFile1 = システム制御用ファイル1の名前

SystemFile2 = システム制御用ファイル2の名前

SystemFile2_Size = システム制御用ファイル2の容量

[QueueIndex]

File = メッセージキュー管理ファイルの名前

[DiskQueue]

File = ディスク型メッセージキューのメッセージ格納ファイルの名前

Size = ディスク型メッセージキューのメッセージ格納域の容量

[MemoryQueue]

File = メモリ型メッセージキューのメッセージ格納域管理ファイルの名前

Size = メモリ型メッセージキューのメッセージ格納域の容量

[WatchQueueUsed]

DiskQueue = ディスク型メッセージキューのメッセージ格納域の安全値と警告値

MemoryQueue = メモリ型メッセージキューのメッセージ格納域の安全値と警告値

[Cluster]

SystemDirectory = MQDのクラスタサービスが使用するディレクトリの名前

Clusterセクション

MQDのクラスタサービスが使用するシステムファイルを格納するディレクトリを指定します。記述内容を、表15.1 Clusterセクションの記

述内容に示します。

表15.1 Clusterセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

SystemDirectory

不可 文字列 絶対パス名で指定します。

共有記憶装置上の物理ディスクにある

ディレクトリを指定します。

MQDのクラスタサービスが使用するシステ

ムファイルを格納するディレクトリの名前を指

定します。

ひとつのアプリケーションから複数のMQDシステムを使用する場合は、使用するすべ

てのMQDシステムで、本キーワードに共通

の値を指定してください。

記述例

以下に、Clusterセクションの記述例を示します。

[Cluster]

SystemDirectory = x:\mqddir

共有ディスクの容量の見積もり

MQDをクラスタサービスで使用する場合、共有ディスク上に“3.2.2.2 ファイル容量の見積り”に示すファイル容量が必要です。

- 429 -

Page 447: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

必要なファイル容量を確保してから以降の操作を実行してください。

15.2.2.2 MQD用のディスクリソースをオンラインにする

クラスタアドミニストレータを使用して、MQD用のディスクリソースをオンラインにします。

15.2.2.3 一つ目のノードにMQD環境を作成する

MQD用のディスクリソースの所有者となっているノードにMQD環境を作成します。環境の作成は、通常の環境作成と同様に、mqdsetupコマンドを使用します。以下に、mqdsetupコマンドの入力例を示します。

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

mqdsetup -f e:\mqdenv\mqdsetup.def

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

15.2.2.4 二つ目のノードにMQD環境を作成する

MQD用のディスクリソースの所有者でないノードに環境を作成します。一つ目のノードに環境を作成したときに指定したMQD環境定

義と同一内容の定義を指定して、mqdsetupコマンドを実行します。このとき、二つ目のノードでの環境作成を意味する-hオプションを指

定します。以下に、mqdsetupコマンドの入力例を示します。

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

mqdsetup -f e:\mqdenv\mqdsetup.def -h

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

15.2.3 MQDの拡張機能の環境を作成する

拡張機能の環境を作成する手順について説明します。なお、拡張機能を使用しない場合、本項の作業は不要です。ここでは、以下

の拡張機能の環境作成方法について説明しています。

・ ACM連携サービス(サービス名: ACOM)

・ 同報配信サービス(サービス名: MCAS)

・ イベントチャネル連携サービス(サービス名: NSGW)

15.2.3.1 ACM連携サービスの環境を作成する

ACM連携サービスを使用するためには、図15.6 ACM連携サービスの環境作成の流れの手順に従って、ACM連携サービスが動作

するためのサービス環境を作成する必要があります。

- 430 -

Page 448: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図15.6 ACM連携サービスの環境作成の流れ

IDCMをインストールする

IDCMを両方のノードの同一パスにインストールします。インストールでは、自動起動形態1を選択します。自動起動形態1を選択しな

いと、フェイルオーバ後に運用の自動継続ができません。

IDCMサービスの起動形態を変更する

IDCMのインストーラによって、IDCMのサービスは自動起動として登録されます。IDCMのサービスをMSCSのリソースとして登録する

ため、手動起動に変更します。なお、変更するサービス名は次のとおりです。

FUJITSU IDCM

IDCMの環境定義を作成する

IDCMのプログラムグループに登録されているIDCMセットアップを実行します。メニューから定義編集を実行して、IDCMの環境定義

を編集します。これを、同一内容で両方のノードで実施します。IDCMネットワーク定義(tcpctype定義文)の記述内容を、表15.2 IDCMネットワーク定義に示します。なお、IDCMを使用するアプリケーションが存在する場合は、下記値にアプリケーションが必要な値を追

加してください。IDCMネットワーク定義の詳細については、“IDCM使用手引書”および“IDCMヘルプ”を参照してください。

表15.2 IDCMネットワーク定義

定義文 オペランド 値

tcpctype name TCPCTYPE名

maxcont 自システムと相手システムのwinicontとlinicontの合計に1を加えた値を指定しま

す。

winicont 相手システムにメッセージを送信する場合は、ACM連携サービスのサービス定義

(PSYSセクションのsesnoキーワードの値)で指定した値を指定します。

- 431 -

Page 449: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

定義文 オペランド 値

相手システムからメッセージの受信だけを行う場合、かつ自システムから相手シス

テムにPSYSを確立する場合は、1を指定します。

相手システムからメッセージの受信だけを行う場合、かつ自システムからは相手シ

ステムにPSYSを確立しない場合は、0を指定します。

linicont 0を指定します。

respcont 1を指定します。

IDCMのDPCF通信パスを確立するアプリケーションを作成する

フェイルオーバ後、ACM連携サービスの通信を自動的に再開するためには、“idcm_psysACTサービス”を実行してIDCMのDPCF通信パスを確立するアプリケーションを作成する必要があります。“idcm_psysACTサービス”を実行するアプリケーションの作成方法につ

いては、“IDCM API リファレンス”を参照してください。

MQDを起動する

MQD用のディスクリソースがオンラインになっているノードで、MQDを起動します。起動は、Windows®のサービスの起動で行いま

す。起動するサービス名は次のとおりです。なお、サービス名に含まれている“MQD001”は、mqdsetupの-sオプションを省略した場合

の値です。-sオプションを指定して環境を作成した場合は、-sオプションでの指定値になります。

なお、サービスの起動では、スタートアップパラメタに-pを指定してください。これにより、MQDの基本機能だけが起動されます。

MessageQueueDirector MQD001

サービス環境を作成する

ACM連携サービスの環境を作成します。作成は、mqdacomsetupコマンドで行います。このコマンドは、このノードで1度だけ実行しま

す。以下にmqdacomsetupコマンドの入力例を示します。

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

mqdacomsetup

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

メッセージキューを作成する

ACM連携サービスで使用するメッセージキューを作成します。既存のキューに対してACM連携サービスを使用する場合には、新た

にメッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの

入力例を示します。

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

mqdcrtq que001

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

サービス定義を作成する

ACM連携サービスのサービス定義を作成します。クラスタシステムでACM連携サービスを使用する場合、サービス定義を追加およ

び変更する必要があります。追加および変更となるサービス定義について、表15.3 サービス定義 に示します。

表15.3 サービス定義

キーワード 省略 データ型 記述方法 記述内容の説明

hasystem 可 文字列 “TYPE1”または“NO”を指定します。本

キーワードを省略した場合、キーワード

値は“NO”となります。

クラスタ対応を行う場合は、“TYPE1”を指定します。

sesno 可 数値 1~240の範囲で指定します。

省略値は3です。

IDCMネットワーク定義の優先会話コネ

クション数(winicontの値)と同じ数を指定

してください。

- 432 -

Page 450: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス定義を登録する

ACM連携用のサービス定義を登録します。登録は、mqdacomdefコマンドで行います。このコマンドは、このノードで1度だけ実行しま

す。以下にmqdacomdefコマンドの入力例を示します。

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

mqdacomdef -a -f e:\mqdenv\acomdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定したmqdstrsvcコマンドを実行します。これにより、登録した定義によりACM連携

サービスが起動されます。以下にmqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n acom

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、Windows®のサービスの停止で行います。

15.2.3.2 同報配信サービスの環境を作成する

同報配信サービスを使用するためには、図15.7 同報配信サービスの環境作成の流れの手順に従って、同報配信サービスが動作す

るためのサービス環境を作成する必要があります。

図15.7 同報配信サービスの環境作成の流れ

MQDを起動する

MQD用のディスクリソースがオンラインになっているノードで、MQDを起動します。起動は、Windows®のサービスの起動で行いま

す。起動するサービス名は次のとおりです。なお、サービス名に含まれている“MQD001”は、mqdsetupの-sオプションを省略した場合

の値です。-sオプションを指定して環境を作成した場合は、-sオプションでの指定値になります。

なお、サービスの起動では、スタートアップパラメタに“-p”を指定してください。これにより、MQDの基本機能だけが起動されます。

MessageQueueDirector MQD001

- 433 -

Page 451: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス環境を作成する

同報配信サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同一です。作成には、mqdmcassetupコマン

ドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcassetupコマンドの入力例を示します。

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

mqdmcassetup -f e:\mqdenv\mcassetup.def

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

メッセージキューを作成する

同報配信サービスで使用するメッセージキューを作成します。既存のキューに対して同報配信サービスを使用する場合には、新たに

メッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの入

力例を示します。

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

mqdcrtq que001

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

サービス定義を作成する

同報配信サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同一です。

サービス定義を登録する

同報配信サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同一です。登録は、mqdmcasdefコマンドで行います。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcasdefコマンドの入力例を示します。

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

mqdmcasdef -a -f e:\mqdenv\mcasdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度同報配信サービスを起動します。起動はmqdstrsvcコマンドで行います。

以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n mcas

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、Windows®のサービスの停止で行います。

15.2.3.3 イベントチャネル連携サービスの環境を作成する

イベントチャネル連携サービスを使用するためには、図15.8 イベントチャネル連携サービスの環境作成の流れの手順に従って、イベ

ントチャネル連携サービスが動作するためのサービス環境を作成する必要があります。

- 434 -

Page 452: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図15.8 イベントチャネル連携サービスの環境作成の流れ

ノーティフィケーションサービスの環境を作成する

イベントチャネル連携サービスをクラスタ環境で使用する場合は、イベントサービスの環境をクラスタで動作可能な形態で作成してく

ださい。

クラスタ環境でイベントサービスのユニットおよびイベントチャネルを作成する際のesmkunitコマンドおよびesmkchnlコマンドの詳細に

ついては“リファレンスマニュアル(コマンド編)”を参照してください。

CORBAサービスへの登録を行う

メッセージを受信するサーバでは、イベントチャネル連携サービスをCORBAサービスへ登録しなければいけません。メッセージを送

信するサーバでは、本処理は必要ありません。なお、本処理の詳細については、“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”を参照してください。

また、登録をする自サーバのIPアドレスは、運用系と待機系で共有するIPアドレスを指定してください。以下に、一括登録コマンドを使用して

CORBAサービスへの登録を行う場合の入力例を示します。

ネーミングサービス方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ns.bat SERVER01 255.255.255.255 8002

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

IORファイル方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ior.bat SERVER01 255.255.255.255 8002 C:\MQDIORFILE

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

MQDを起動する

MQD用のディスクリソースがオンラインになっているノードで、MQDを起動します。起動は、Windows®のサービスの起動で行いま

す。起動するサービス名は次のとおりです。

- 435 -

Page 453: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MessageQueueDirector MQD001

なお、サービス名に含まれている“MQD001”は、mqdsetupの-sオプションを省略した場合の値です。-sオプションを指定して環境を作

成した場合は、-sオプションでの指定値になります。

サービスの起動では、スタートアップパラメタに“-p”を指定してください。これにより、MQDの基本機能だけが起動されます。

サービス環境を作成する

イベントチャネル連携サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdnsgwsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwsetupコマンドの入力例を示します。

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

mqdnsgwsetup

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

サービス定義を作成する

イベントチャネル連携サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同一で

す。

サービス定義を登録する

イベントチャネル連携サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同一です。登録は、

mqdnsgwdefコマンドで行います。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwdefコマンドの入力例を示しま

す。

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

mqdnsgwdef -a -f e:\mqdenv\nsgwdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度イベントチャネル連携サービスを起動します。起動はmqdstrsvcコマンドで

行います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n nsgw

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、Windows®のサービスの停止で行います。

15.2.4 クラスタシステムの環境を作成する

MQDをクラスタシステムで動作させるための環境を設定する手順について、以下の順番で説明します。

・ リソースグループのプロパティを設定する

・ リソースを登録する

・ リソースのプロパティを設定する

15.2.4.1 リソースグループのプロパティを設定する

MQDの所属するリソースグループのプロパティを設定します。このグループに所属する他のリソースや業務運用を考慮して、システ

ムとして適切な値を設定してください。特に問題がなければ、省略値のままで問題ありません。

15.2.4.2 リソースを登録する

MQDをMSCSで動作させるために、MQD関連のリソースをすべてMQD用のリソースグループに登録します。登録は、クラスタアドミニ

ストレータを使用して行います。リソースの登録内容は、MQDの運用方法によって異なります。表15.4 MQDのリソース一覧(単独使用)

- 436 -

Page 454: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

に、MQDを単独で使用する場合に登録するリソースの一覧を示します。表15.5 MQDのリソース一覧(XA連携)に、Interstageを使用して

XA連携する場合に登録するリソースの一覧を示します。

なお、アプリケーションについては一覧に記載していません。必要に応じてアプリケーションも登録してください。

表15.4 MQDのリソース一覧(単独使用)リソース資源(MSCS登録名) リソースの種類 依存関係(依存先)

ドライブ名 物理ディスク なし

IPアドレス(注1) IPアドレス(注1) ドライブ名

ネットワーク名(注1) ネットワーク名(注1) IPアドレス(注1)

IDCMサービス (注2)(注3)(注4) (F3CTidcm)

汎用サービス ネットワーク名(注1)

MQDサービス (注2)(注5) (MessageQueueDirector MQD001)

汎用サービス IDCMサービス

注1) Microsoft(R) Windows Server(R) 2008のフェールオーバー クラスタリング機能の場合、“IPアドレス”、“ネットワーク名”のかわり

に、“クライアントアクセスポイント”をリソースとして登録してください。

注2) 汎用サービス登録時は、括弧内の文字列で登録します。

注3) IDCMのDPCF通信パスを確立するアプリケーションを使用する場合は、業務形態に合わせてIDCMサービスより後の任意の位

置に登録してください。

注4) リソース資源のプロパティのパラメータタブで“ネットワーク名をコンピュータ名として使用する”に必ずチェックマークを指定してく

ださい。

注5) MQDサービスの場合の登録名は、括弧内の文字列に含まれる“MQD001”の部分がmqdsetupの-sオプションで指定したMQDシステム名となります。

表15.5 MQDのリソース一覧(XA連携)リソース資源(MSCS登録名) リソースの種類 依存関係(依存先)

ドライブ名 物理ディスク なし

IPアドレス(注1) IPアドレス(注1) ドライブ名

ネットワーク名(注1) ネットワーク名(注1) IPアドレス(注1)

IDCMサービス (注2)(注3)(注4) (F3CTidcm)

汎用サービス ネットワーク名(注1)

コンポーネントトランザクションサービス (注1) (TransactionDirector)

汎用サービス CORBAサービス

MQDサービス (注2)(注5) (MessageQueueDirector MQD001)

汎用サービス IDCMサービス

データベース連携サービス起動

(注6)汎用アプリケーション コンポーネントトランザクションサービス

MQD拡張機能の起動 (注7)汎用アプリケーション

MQDサービス

データベース連携サービス

注1) Microsoft(R) Windows Server(R) 2008のフェールオーバー クラスタリング機能の場合、“IPアドレス”、“ネットワーク名”のかわり

に、“クライアントアクセスポイント”をリソースとして登録してください。

注2) 汎用サービス登録時は、括弧内の文字列で登録します。

注3) IDCMのDPCF通信パスを確立するアプリケーションを使用する場合は、業務形態に合わせてIDCMサービスより後の任意の位

置に登録してください。

注4) リソース資源のプロパティのパラメータタブで“ネットワーク名をコンピュータ名として使用する”に必ずチェックマークを指定してく

ださい。

注5) MQDサービスの場合の登録名は、括弧内の文字列の“MQD001”の部分をmqdsetupの-sオプションで指定したMQDシステム名

にしたものとなります。

注6) データベース連携サービスを起動する汎用アプリケーションとして登録できるバッチファイルが、Interstageから提供されていま

- 437 -

Page 455: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

す。

注7) MQDの拡張機能を起動する汎用アプリケーションとして登録できるバッチファイルは、以下のファイルで提供しています。

[MQDインストール先フォルダ]\sample\mqdstrsvc.bat

このバッチファイルは、同報配信サービス、ACM連携サービス、イベントチャネル連携サービスを起動するコマンド行をコメントにして

あります。使用するサービスを起動する行を実行するように変更してください。バッチファイルの修正内容の例を以下に示します。

・ 同報配信サービスを使用する場合

rem mqdstrsvc mcas

mqdstrsvc mcas

・ ACM連携サービスを使用する場合

rem mqdstrsvc acom

mqdstrsvc acom

・ イベントチャネル連携サービスを使用する場合

rem mqdstrsvc nsgw

mqdstrsvc nsgw

また、以下の行のMQDシステム名も修正してください。

rem set MQDSYSNAME=-s MQD001

15.2.4.3 リソースのプロパティを設定する

登録したリソースのプロパティを設定します。設定値は、業務アプリケーションの異常時の動作(再起動するのかフェイルオーバする

のかなど)も考慮する必要があります。ここでは、ソフトウェアの障害などが発生した場合でも、グループ全体を別ノードに即座にフェイ

ルオーバすることで、業務のダウン時間を極力短くする設定値で説明します。特に問題がなければ、この値に設定することをお勧めし

ます。なお、ここで説明していない値については、リソース登録時の値をそのまま使用してください。

全般

・ 実行可能な所有者: 両方のノードを設定します

依存関係

・ 依存関係: 表15.4 MQDのリソース一覧(単独使用)または表15.5 MQDのリソース一覧(XA連携)の依存関係のとおりに設定します

詳細設定

・ 再起動する: チェックします (注1)

・ グループに適用する: チェックします

・ しきい値: 0を設定します

注1) 起動の確認を実施した後にこの設定にしてください。リソースの登録時点では、再起動しない設定にしておいてください。

パラメータ

・ MQDサービスのパラメータに“-r”を設定します。この設定により、フェイルオーバ時に資源が残った状態であっても、起動前に無

条件に資源を回収することで確実にMQDを起動することが可能となります。

・ MQDの拡張機能またはXA連携を使用する場合、MQDサービスのパラメータに“-r -p”を設定します。

- 438 -

Page 456: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Windows Server(R) 2008 で使用する場合は、コマンドプロンプトで以下のコマンドを実行し、セットアップパラメタを設定してください。

通常

Cluster Resource "リソース名" /priv StartupParameters="-r"

MQDの拡張機能またはXA連携を使用する場合

Cluster Resource "リソース名" /priv StartupParameters="-r -p"

15.2.5 動作を確認する

リソースグループにリソースとして登録した各機能の動作確認を実施します。以下の事項について確認が必要です。

・ 起動を確認する

・ フェイルオーバを確認する

・ 運用が自動継続できることを確認する

15.2.5.1 起動を確認する

クラスタアドミニストレータを使用して、リソースグループをオンラインにします。すべてのリソースがオンラインになれば、正しく動作し

たことになります。オンラインにならないリソースがある場合は、イベントビューアなどを参照の上、オンラインにならない原因を取り除く

必要があります。

なお、起動を確認する場合、各リソースのプロパティで[再起動する]をチェックしないことをお勧めします。[再起動する]に設定してお

くと、起動に失敗した場合にフェイルオーバを繰り返すことになります。起動を確認した後に、[再起動する]をチェックしてください。

15.2.5.2 フェイルオーバを確認する

クラスタアドミニストレータを使用して、MQDの所属するリソースグループ内の任意のリソースに障害を発生させます。フェイルオーバ

が発生し、別ノードにリソースグループが移動した後にすべてのリソースがオンラインに遷移すれば正しく動作したことになります。フェ

イルオーバしない場合には、各リソースのプロパティの設定に誤りのあることが考えられます。設定を見直してください。また、別ノード

でオンラインにならないリソースがある場合には、イベントビューアなどを参照の上、原因を取り除いてください。

15.2.5.3 運用が自動継続できることを確認する

フェイルオーバの後に、運用が自動的に継続できることを確認します。MSCSに登録したリソースの確認は完了しているため、ここで

はアプリケーションを観点とした確認を実施します。

なお、ACM連携サービスを使用して運用を自動継続する場合、以下の注意点があります。

・ グローバルサーバのACMおよびSolarisのMQDと通信する場合

フェイルオーバによりMQDの実行ノードが移動した場合、元の実行ノードで確立していたDPCF通信パスが相手システムに残っ

たままとなる場合があります。このため、フェイルオーバ発生時に、相手システム側でDPCF通信パスを解放し、再度DPCF通信パ

スを確立するような対処が必要です。

・ WindowsサーバのMQDと通信する場合

IDCMのDPCF通信パスを確立するアプリケーションやIDCM操作画面からDPCF通信パスの確立を行った際に、ACM連携サー

ビスが自動的にDPCF通信パスを解放し、再度待機側へDPCF通信パスを確立する処理を行います。ただしWindows Server(R) forItanium-based Systems および Windows Server(R) x64 Editionsの場合は不要です。

15.3 環境削除

本節では、クラスタサービスの環境削除について、以下の順に説明しています。

・ MQD用のディスクリソースを確認する

- 439 -

Page 457: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ MQDのリソースをオフラインにする

・ MQDのリソースを削除する

・ 一つ目のノードのMQD環境を削除する

・ 二つ目のノードのMQD環境を削除する

作業の流れは、図15.9 MQDの環境削除手順のとおりです。

図15.9 MQDの環境削除手順

・ MQD用のディスクリソースを確認する

・ MQDのリソースをオフラインにする

・ MQDのリソースを削除する

・ 一つ目のノードのMQD環境を削除する

・ 二つ目のノードのMQD環境を削除する

15.3.1 MQD用のディスクリソースを確認する

MQDの環境を削除する場合、MQD用のディスクリソースがオンラインになっているノードで資源を削除することになります。資源の削

除は、mqdsetupを実行するときに“-h”を指定していなかったノードで実行します。そのため、“-h”を指定せずにmqdsetupを実行したノー

ドで、MQDのディスクリソースがオンラインになっていることを確認してください。もし、オンラインになっているノードが異なる場合は、

ディスクリソースをクラスタアドミニストレータにより移動してください。

15.3.2 MQDのリソースをオフラインにする

クラスタアドミニストレータを使用して、MQDのリソースをオフラインにします。この操作により、MQDが停止します。

15.3.3 MQDのリソースを削除する

クラスタアドミニストレータを使用して、MQDのリソースを削除します。

15.3.4 一つ目のノードのMQD環境を削除する

MQD用のディスクリソースがオンラインになっているノードで環境を削除します。MQDの拡張機能の環境と基本機能の環境を削除し

ますが、MQDの拡張機能はMQDの基本機能の環境を削除する際に、一括して削除することが可能ですので、基本機能の削除のみ

を実行すればよいです。

環境の削除は、通常の環境削除と同様に、mqdunsetupコマンドを使用します。以下に、mqdunsetupコマンドの入力例を示します。

- 440 -

Page 458: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdunsetup

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

イベントチャネル連携サービスを使用している場合

イベントチャネル連携サービスをCORBAサービスから削除するコマンド(mqdnsgwrlsserver)はInterstageを起動した状態で、双方の

ノードで実行してください。

15.3.5 二つ目のノードのMQD環境を削除する

MQD用のディスクリソースがオフラインになっているノードでMQD環境を削除します。環境の削除は、通常の環境削除と同様に、

mqdunsetupコマンドを使用します。以下に、mqdunsetupコマンドの入力例を示します。

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

mqdunsetup

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

- 441 -

Page 459: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

第16章 クラスタサービス機能(Solarisサーバ PRIMECLUSTER編)

本章では、MQDのクラスタサービス機能について、以下の順に説明しています。

16.1 クラスタサービスの概要

16.2 環境設定

16.3 運用

16.4 保守

なお、本章を読むにあたっては、PRIMECLUSTERの基本的な知識が必要です。また、MQDの基本的な設定や運用についての知

識が必要です。PRIMECLUSTERの基本的な知識については、以下のマニュアルを参照してください。

・ PRIMECLUSTER 導入運用手引書

16.1 クラスタサービスの概要

本節では、MQDのクラスタサービス機能の概要について、以下の順に説明しています。

・ 機能

・ 利用形態とシステム構成

16.1.1 機能

業務運用中にハードウェア障害やソフトウェア障害など不測の事態が発生し、システムダウンなどに陥った場合に備え、システムの高

信頼化が必要です。クラスタサービスでは、不測の事態に備え、運用中のノードとは別に、待機しているノードを用意します。運用中の

ノードで異常が発生した場合には、待機側のノードに業務を引き継ぐことにより、業務全体を停止させることなく継続することを可能に

します。

MQDのクラスタサービス機能は、PRIMECLUSTERを使用することにより1:1運用待機のクラスタシステムを構築することができます。

クラスタシステムを構築することで、ハードウェアやソフトウェアに異常が発生した場合に、MQDを使用する業務をノード間で引継ぐこと

が可能となります。そのため、MQDを使用する業務の停止時間を 小に押さえることができます。図16.1 ノード間引継ぎの概念に、

ノード間引継ぎの概念図を示します。この図では、運用ノードで異常が発生したために、MQDの運用インスタンスが待機ノードに切替

わることを表しています。切替わることで、すぐにMQDを使用する業務を再開することができます。

- 442 -

Page 460: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図16.1 ノード間引継ぎの概念

16.1.2 利用形態とシステム構成

MQDのクラスタサービス機能では、PRIMECLUSTERの1:1運用待機のクラスタシステムをサポートします。図16.2 PRIMECLUSTERのクラスタ構成に、PRIMECLUSTERのクラスタ構成を示します。

図16.2 PRIMECLUSTERのクラスタ構成

- 443 -

Page 461: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16.2 環境設定

本節では、クラスタサービスの環境設定について、以下の順に説明しています。

・ 環境設定前に行うこと

・ MQDの基本機能の環境を作成する

・ MQDの拡張機能の環境を作成する

・ クラスタシステムの環境を作成する

・ 動作を確認する

16.2.1 環境設定前に行うこと

本項では、クラスタサービス機能の環境を設定する前に必要な、以下の作業について説明しています。

・ サービスの構成を決定する

・ 共用ディスク装置を設定する

・ 引継ぎネットワークを設定する

16.2.1.1 サービスの構成を決定する

MQDをクラスタシステムで動作させるためには、PRIMECLUSTERに登録するMQD用のサービスを決定する必要があります。また、

Interstageと同じサービスに所属させます。

アプリケーションを含めた業務の引継ぎ単位を考慮してサービスを決定する必要があります。図16.3 MQDのサービス構成に、MQDの基本的なサービスの構成を示します。

図16.3 MQDのサービス構成

ACM連携サービスを使用する場合は、上図のCORBAサービス、イベントサービスのところが、IDCMになります。

16.2.1.2 共用ディスク装置を設定する

MQDをクラスタシステムで動作させるためには、MQD環境定義に指定するすべてのファイルを共用ディスク装置上に作成しなけれ

ばなりません。そのため、必要なファイル容量を見積もった後に、その容量を格納できる共用ディスク装置を用意します。共用ディスク

装置は切替えディスクとして登録します。そして、MQDを登録するサービスに事前にリソースとして登録してください。これは、MQDの

環境を作成するときに、この切り替えディスクにアクセスする必要があるためです。設定および登録方法の詳細について

は、“PRIMECLUSTER 導入運用手引書”を参照してください。

- 444 -

Page 462: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

共用ディスク装置は、ローデバイスとして使用するものまたは、ファイルシステムとして使用するものを用意します。共用ディスク装置の構成を

図16.4 共用ディスク装置の構成に示します。なお、共用ディスク装置は複数使用することも可能です。

図16.4 共用ディスク装置の構成

注)*の付いたファイルは通常ファイルに作成します。

それ以外のファイルは、ローデバイスファイルまたは通常ファイルに作成します。処理の高速化のためにローデバイスファイルへの配

置を推奨します。

16.2.1.3 引継ぎネットワークを設定する

クラスタシステムにおいて切替えが発生したとき、業務で使用するLANのIPアドレスを、旧運用ノードから新運用ノードに引継ぐため

の設定を行います。設定方法の詳細は“PRIMECLUSTER 導入運用手引書”を参照してください。

16.2.2 MQDの基本機能の環境を作成する

MQDを使用するためには、図16.5 MQDの環境作成の流れの手順に沿って、MQDの環境を作成する必要があります。

なお、MQDの基本機能の環境を作成する前の任意な契機でInterstageのクラスタ環境を作成してください。

- 445 -

Page 463: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図16.5 MQDの環境作成の流れ

16.2.2.1 MQD環境定義を作成する

クラスタサービスを使用する場合、MQDの環境定義にクラスタシステム用にClusterセクションを追加します。また、環境定義に指定す

るすべてのファイルは、リソース登録した切替えディスクを指定する必要があります。クラスタサービスを使用する場合のMQD環境定義

は以下の形式で記述します。なお、Clusterセクション以外の指定内容については、“3.3 環境定義の記述”を参照してください。

記述形式

[MQDConfiguration]

QueueMax = 作成メッセージキュー数の最大値

MessageBufferMaxSize = メッセージバッファの最大長

[Transaction]

TransactionFile = トランザクション管理ファイルの名前

Max_Size = 1トランザクションで送受信するメッセージ長の合計の最大値

[SystemFile]

SystemFile1 = システム制御用ファイル1の名前

SystemFile2 = システム制御用ファイル2の名前

SystemFile2_Size = システム制御用ファイル2の容量

[QueueIndex]

File = メッセージキュー管理ファイルの名前

[DiskQueue]

File = ディスク型メッセージキューのメッセージ格納ファイルの名前

Size = ディスク型メッセージキューのメッセージ格納域の容量

[Cluster]

SystemDirectory = MQDのクラスタサービスが使用するディレクトリの名前

Clusterセクション

MQDクラスタサービスが使用するシステムファイルを格納するディレクトリを指定します。記述内容を、表16.1 Clusterセクションの記述内容

に示します。

表16.1 Clusterセクションの記述内容

キーワード 省略 データ型 記述方法 記述内容の説明

SystemDirectory

不可 文字列 絶対パス名で指定します。

切替えディスク上にあるディレクトリを指

定します。

MQDクラスタサービスが使用するシステム

ファイルを格納するディレクトリを指定しま

す。

ひとつのアプリケーションから複数のMQDシステムを使用する場合は、使用するすべ

- 446 -

Page 464: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード 省略 データ型 記述方法 記述内容の説明

てのMQDシステムで、本キーワードに共通

の値を指定してください。

記述例

以下に、Clusterセクションの記述例を示します。

[Cluster]SystemDirectory = /disk1/mqddir

共有ディスクの容量の見積もり

MQDをクラスタサービスで使用する場合、共有ディスク上に“3.2.2.2 ファイル容量の見積り”に示すファイル容量が必要です。

必要なファイル容量を確保してから以降の操作を実行してください。

16.2.2.2 サービスを起動する

運用ノードから切替えディスクにアクセスできるように、サービスを起動します。サービスの起動方法の詳細は“PRIMECLUSTER 導入運用手引書”を参照してください。

16.2.2.3 運用ノードにMQD環境を作成する

運用ノードにMQD環境を作成します。作成は、通常の環境作成と同様に、mqdsetupコマンドを使用して行います。以下にmqdsetupコマンド(運用ノードの環境作成)の入力例を示します。

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

mqdsetup -f /mqd/def/setup.def

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

16.2.2.4 待機ノードにMQD環境を作成する

待機ノードにMQD環境を作成します。このとき、切替えディスクにアクセスできるようにする必要はありません。運用ノードに環境を作

成したときと同一内容のMQD環境定義を指定して、mqdsetupコマンドで環境を作成します。このとき、待機ノードでの環境作成を意味

する-hオプションを指定します。以下にmqdsetupコマンド(待機ノードの環境作成)の入力例を示します。

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

mqdsetup -f /mqd/def/setup.def -h

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

16.2.3 MQDの拡張機能の環境を作成する

MQDの拡張機能の環境を作成する手順について説明します。ここでは、以下の拡張機能の環境作成方法について説明していま

す。

・ ACM連携サービス(サービス名: ACOM)

・ 同報配信サービス(サービス名: MCAS)

・ イベントチャネル連携サービス(サービス名: NSGW)

16.2.3.1 ACM連携サービスの環境を作成する

ACM連携サービスを使用するためには、図16.6 ACM連携サービスの環境作成の流れの手順に従って、ACM連携サービスが動作

するためのサービス環境を作成する必要があります。

- 447 -

Page 465: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図16.6 ACM連携サービスの環境作成の流れ

なお、ACM連携サービスの環境作成方法の詳細については、“10.3 環境作成”を参照してください。

IDCMの環境定義を作成する

IDCMネットワーク定義(tcpctype定義文)は以下のように指定してください。なお、IDCMを使用するアプリケーションが存在する場合

は、下記値にアプリケーションが必要な値を追加してください。IDCMネットワーク定義の詳細については、“IDCM使用手引書”およ

び“IDCMヘルプ”を参照してください。

定義文 オペランド 値

tcpctype name TCPCTYPE名

maxcont 自システムと相手システムのwinicontとlinicontの合計に1を加えた値を指定します。

winicont ・ 相手システムにメッセージを送信する場合は、ACM連携サービスのサービス定義

(PSYSセクションのsesnoキーワードの値)で指定した値を指定します。

・ 相手システムからメッセージの受信だけを行う場合、かつ自システムから相手シ

ステムにPSYSを確立する場合は、1を指定します。

・ 相手システムからメッセージの受信だけを行う場合、かつ自システムからは相手

システムにPSYSを確立しない場合は、0を指定します。

linicont 0を指定します。

respcont 1を指定します。

MQDを起動する

切替えディスクにアクセス可能なノードで、MQDを起動します。起動は、-pオプションを指定したmqdstrコマンドで行います。これによ

り、MQDの基本機能だけが起動されます。以下にmqdstrコマンドの入力例を示します。

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

mqdstr -p

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

- 448 -

Page 466: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

サービス環境を作成する

ACM連携用のサービス環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdacomsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下にmqdacomsetupの入力例を示します。

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

mqdacomsetup

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

メッセージキューを作成する

ACM連携サービスで使用するメッセージキューを作成します。既存のキューに対してACM連携サービスを使用する場合には、新た

にメッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの

入力例を示します。

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

mqdcrtq que001

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

サービス定義を作成する

ACM連携サービスのサービス定義を作成します。クラスタシステムでACM連携サービスを使用する場合、サービス定義を追加およ

び変更する必要があります。以下に追加および変更となる定義について説明します。

MNGRセクション

以下のキーワードを追加してください。

キーワード 省略 データ型 記述方法 記述内容の説明

hasystem 可 文字列 “TYPE1”または“NO”を指定します。本

キーワードを省略した場合、キーワード

値は“NO”となります。

クラスタ対応を行う場合は、“TYPE1”を指

定します。

PSYSセクション

sesnoキーワードに設定する値を以下のように変更してください。

キーワード 省略 データ型 記述方法 記述内容の説明

sesno 可 数値 1~1024の範囲で指定します。

省略値は3です。

IDCMネットワーク定義の優先会話コネク

ション数(winicontの値)と同じ数を指定し

てください。

サービス定義を登録する

ACM連携用のサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同じです。登録には、mqdacomdefコマ

ンドを使用します。このコマンドは、このノードで1度だけ実行します。以下にmqdacomdefコマンドの入力例を示します。

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

mqdacomdef -a -f /mqd/def/acomdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度ACM連携サービスを起動します。起動はmqdstrsvcコマンドを使用して行

います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n acom

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

- 449 -

Page 467: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、mqdstpコマンドで行います。以下に、mqdstpコマンドの入力例を示します。

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

mqdstp

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

16.2.3.2 同報配信サービスの環境を作成する

同報配信サービスを使用するためには、図16.7 同報配信サービスの環境作成の流れの手順に従って、同報配信サービスが動作す

るためのサービス環境を作成する必要があります。

図16.7 同報配信サービスの環境作成の流れ

MQDを起動する

切替えディスクにアクセス可能なノードで、MQDを起動します。起動は、-pオプションを指定したmqdstrコマンドで行います。これによ

り、MQDの基本機能だけが起動されます。以下に、mqdstrコマンドの入力例を示します。

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

mqdstr -p

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

サービス環境を作成する

同報配信サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdmcassetupコマン

ドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcassetupコマンドの入力例を示します。

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

mqdmcassetup -f /mqd/def/mcassetup.def

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

- 450 -

Page 468: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

メッセージキューを作成する

同報配信サービスで使用するメッセージキューを作成します。既存のキューに対して同報配信サービスを使用する場合には、新たに

メッセージキューを作成する必要はありません。メッセージキューの作成は、mqdcrtqコマンドで行います。以下にmqdcrtqコマンドの入

力例を示します。

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

mqdcrtq que002

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

サービス定義を作成する

同報配信サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同じです。

サービス定義を登録する

同報配信サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同じです。登録には、mqdmcasdefコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdmcasdefコマンドの入力例を示します。

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

mqdmcasdef -a -f /mqd/def/mcasdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度同報配信サービスを起動します。起動はmqdstrsvcコマンドを使用して行

います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n mcas

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、mqdstpコマンドで行います。以下に、mqdstpコマンドの入力例を示します。

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

mqdstp

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

16.2.3.3 イベントチャネル連携サービスの環境を作成する

イベントチャネル連携サービスを使用するためには、図16.8 イベントチャネル連携サービスの環境作成の流れの手順に従って、イベ

ントチャネル連携サービスが動作するためのサービス環境を作成する必要があります。

- 451 -

Page 469: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図16.8 イベントチャネル連携サービスの環境作成の流れ

ノーティフィケーションサービスの環境を作成する

イベントチャネル連携サービスをクラスタ環境で使用する場合は、イベントサービスの環境をクラスタで動作可能な形態で作成してく

ださい。

クラスタ環境でイベントサービスのユニットおよびイベントチャネルを作成する際の詳細については“高信頼性システム運用ガイド”を

参照してください。

CORBAサービスへの登録を行う

メッセージを受信するサーバでは、イベントチャネル連携サービスをCORBAサービスへ登録しなければいけません。メッセージを送

信するサーバでは、本処理は必要ありません。なお、本処理の詳細については、“11.3.2.6 イベントチャネル連携サービスのCORBAサービスへの登録”を参照してください。

また、登録をする自サーバのIPアドレスは、運用系と待機系で共有するIPアドレスを指定してください。以下に、一括登録コマンドを使用して

CORBAサービスへの登録を行う場合の入力例を示します。

ネーミングサービス方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ns.sh SERVER01 255.255.255.255 8002

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

IORファイル方式で通信する場合は、以下の一括登録コマンドを使用します。

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

mqdnsgwinit_ior.sh SERVER01 255.255.255.255 8002 /mqd/mqdiorfile

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

MQDを起動する

切替えディスクにアクセス可能なノードで、MQDを起動します。起動は、-pオプションを指定したmqdstrコマンドで行います。これによ

り、MQDの基本機能だけが起動されます。以下に、mqdstrコマンドの入力例を示します。

- 452 -

Page 470: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

mqdstr -p

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

サービス環境を作成する

イベントチャネル連携サービスの環境を作成します。作成方法はクラスタサービスを使用しない場合と同じです。作成には、mqdnsgwsetupコマンドを使用します。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwsetupコマンドの入力例を示します。

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

mqdnsgwsetup

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

サービス定義を作成する

イベントチャネル連携サービスのサービス定義を作成します。サービス定義については、クラスタサービスを使用しない場合と同一で

す。

サービス定義を登録する

イベントチャネル連携サービスのサービス定義を登録します。登録方法はクラスタサービスを使用しない場合と同一です。登録は、

mqdnsgwdefコマンドで行います。このコマンドは、このノードで1度だけ実行します。以下に、mqdnsgwdefコマンドの入力例を示しま

す。

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

mqdnsgwdef -a -f /mqd/def/nsgwdef.def

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

サービス定義を反映する

登録したサービス定義を反映するために、-nを指定して1度イベントチャネル連携サービスを起動します。起動はmqdstrsvcコマンドで

行います。以下に、mqdstrsvcコマンドの入力例を示します。

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

mqdstrsvc -n nsgw

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

MQDを停止する

環境作成のために起動したMQDを停止します。停止は、mqdstpコマンドで行います。以下に、mqdstpコマンドの入力例を示します。

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

mqdstp

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

16.2.4 クラスタシステムの環境を作成する

MQDをPRIMECLUSTERのクラスタシステムで動作させるための環境を作成する手順について、以下の順番で説明しています。

・ MQD基本機能用の状態遷移プロシジャを登録する

・ MQD拡張機能用の状態遷移プロシジャを登録する

・ MQDのリソースを登録する

・ MQDクラスタサービスを設定する

16.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する

PRIMECLUSTER上で動作するMQDでは、状態遷移プロシジャを利用して、MQDの起動や停止を行います。状態遷移プロシジャと

は、クラスタ制御からの状態遷移指示を受け取り、リソースの活性化や非活性化を制御(アプリケーションの起動や停止など)するもの

です。状態遷移プロシジャの詳細に関しては、“PRIMECLUSTER 導入運用手引書”を参照してください。

状態遷移プロシジャの登録方法について、以下の順に説明しています。

- 453 -

Page 471: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャの格納

・ 状態遷移プロシジャのリソース登録

状態遷移プロシジャファイルを修正する

MQDは状態遷移プロシジャファイルのひな型を提供します。MQD基本機能用のひな型は以下のファイルで提供しています。

/opt/FJSVmqd/sample/MQD001.MQD_INTERSTAGE

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ MQDシステム名: MQD001

・ MQD起動: MQD拡張機能を連動して起動しない

・ MQD停止: 強制停止を行う

複数のMQDシステムを使用する場合は、状態遷移プロシジャをMQDシステムごとに用意する必要がありますので、ひな型を複写し

て使用してください。

なお、状態遷移プロシジャファイル名は以下の規約に従ってください。

MQDシステム名.MQD_INTERSTAGE

例えば、MQDシステム名が“MQDSYS01”の場合には、“MQDSYS01.MQD_INTERSTAGE”となります。

また、上記以外の設定でMQDシステムの起動と停止を行う場合は、ひな型の修正が必要です。

状態遷移プロシジャファイルの修正内容の例を以下に示します。

MQDシステム名がMQDABCの場合

SYSNAME="MQD001"↓

SYSNAME="MQDABC"

MQD起動時に拡張機能を連動して起動する場合

START_OPT="-s $SYSNAME -p"↓

START_OPT="-s $SYSNAME"

MQD起動時にMQD資源を回収しMQDを起動する場合

START_OPT="-s $SYSNAME -p"↓

START_OPT="-s $SYSNAME -p -r"

状態遷移プロシジャファイルを格納する

各ノードに状態遷移プロシジャファイルを格納します。状態遷移プロシジャファイルの格納は、状態遷移プロシジャファイル格納コマ

ンドを実行することにより行います。-cオプションでBasicApplicationを指定してください。コマンドの詳細は“PRIMECLUSTER 導入運

用手引書”を参照してください。以下に、clsetprocコマンドの入力例を示します。

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

/etc/opt/FJSVcluster/bin/clsetproc -c BasicApplication -m MQD001.MQD_INTERSTAGE

/opt/FJSVmqd/sample/MQD001.MQD_INTERSTAGE

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

状態遷移プロシジャをリソース登録する

各ノードにMQD基本機能用の状態遷移プロシジャをリソース登録します

- 454 -

Page 472: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

状態遷移プロシジャをリソース登録するには、MQDより提供する状態遷移プロシジャ登録用のシェルスクリプトを実行します。MQD基

本機能用の状態遷移プロシジャをリソース登録するためのシェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/ADDPROC_MQD_INTERSTAGE

シェルスクリプトのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQD_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

・ 起動優先度: 100

登録する状態遷移プロシジャファイルに合わせて、シェルスクリプトを修正します。

状態遷移プロシジャファイル名がMQDABC.MQD_INTERSTAGEの場合

PROC_NAME="MQD001.MQD_INTERSTAGE"↓

PROC_NAME="MQDABC.MQD_INTERSTAGE"

起動優先度を変更したい場合

PRIORITY="100"↓

PRIORITY="150"

16.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する

MQDの拡張機能を使用する場合は、MQDの拡張機能(以下、サービスと呼びます)の状態遷移プロシジャを登録します。

状態遷移プロシジャの登録方法について、以下の順に説明しています。

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャの格納

・ 状態遷移プロシジャのリソース登録

なお、ACM連携サービスを使用する場合、IDCMの起動/停止/切替えやDPCF通信パスの確立/解放などの処理については、

使用者が状態遷移プロシジャを作成する必要があります。状態遷移プロシジャについては、“PRIMECLUSTER導入運用手引書”を

参照してください。また、IDCMは引継ぎ後、ACM連携サービスを起動する前に再起動する方式となるため、リソースはACM連携サー

ビスの状態遷移プロシジャファイル“MQDシステム名.MQDACOM.INTERSTAGE”の前に呼ばれるように起動優先度を設定してくだ

さい。DPCF通信パスの確立は業務形態に合わせて任意の契機で実行するように優先度(IDCMのリソースの起動優先度より低い値)を設定してください。

IDCMの環境設定については、運用ノードと待機ノードで同様の設定を行ってください。IDCMの環境設定については、“IDCM使用

手引書”を参照してください。

イベントサービスの起動/停止/切替えやイベントチャネルの起動/停止などの処理については、使用者が状態遷移プロシジャを作成

する必要があります。状態遷移プロシジャについては、“PRIMECLUSTER 導入運用手引書”を参照してください。また、イベントサー

ビスは、イベントチャネル連携サービスを起動する前に起動している必要があるため、リソースはイベントチャネル連携サービスの状態

遷移プロシジャの前に呼ばれるように起動優先度を設定してください。

イベントサービスの環境設定については、“アプリケーション作成ガイド(CORBAサービス編)”を参照してください。

状態遷移プロシジャファイルを修正する

MQDは状態遷移プロシジャファイルのひな型を提供します。サービス用のひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/MQD001.MQDSVC_INTERSTAGE

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ MQDシステム名: MQD001

・ サービス名: SERVICE

- 455 -

Page 473: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ サービス起動: 定義反映を行わないで起動する

状態遷移プロシジャファイルを、使用するサービスに合わせて修正します。状態遷移プロシジャファイルは、サービスごとに必要です

ので、複数のサービスを使用する場合は、ひな型を複写して使用してください。

状態遷移プロシジャファイルを、使用するサービスに合わせて修正します。

状態遷移プロシジャファイル名は以下の規約に従ってください。

MQDシステム名.MQDサービス名_INTERSTAGE

例えば、MQDシステム名が“MQDSYS01”でイベントチャネル連携サービスの場合は、“MQDSYS01.MQDNSGW_INTERSTAGE”となります。

状態遷移プロシジャファイルの修正内容の例を以下に示します。

MQDシステム名がMQDABCの場合

SYSNAME="MQD001"↓

SYSNAME="MQDABC"

サービス名がNSGWの場合

SERVICE="SERVICE"↓

SERVICE="NSGW"

サービス起動時に定義反映を行う場合

START_OPT="-s $SYSNAME $SERVICE"↓

START_OPT="-s $SYSNAME -n $SERVICE"

状態遷移プロシジャファイルを格納する

各ノードに状態遷移プロシジャファイルを格納します。状態遷移プロシジャファイルは、状態遷移プロシジャファイル格納コマンドを実

行することにより登録します。コマンドは、-cオプションにBasicApplicationを指定してください。コマンドの詳細は“PRIMECLUSTER 導入運用手引書”を参照してください。以下に、clsetprocコマンドの入力例を示します。

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

/etc/opt/FJSVcluster/bin/clsetproc -c BasicApplication -m MQD001. MQDNSGW_INTERSTAGE

/opt/FJSVmqd/sample/MQD001.MQDNSGW_INTERSTAGE

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

状態遷移プロシジャをリソース登録する

各ノードにMQDサービス用の状態遷移プロシジャをリソース登録します。

状態遷移プロシジャをリソース登録するには、MQDより提供する状態遷移プロシジャ登録用のシェルスクリプトを実行します。MQDの

サービス用の状態遷移プロシジャをリソース登録するためのシェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/ADDPROC_MQDSVC_INTERSTAGE

シェルスクリプトのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQDSVC_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

・ 起動優先度: 200

登録する状態遷移プロシジャファイルに合わせて、シェルスクリプトを修正します。

- 456 -

Page 474: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

状態遷移プロシジャファイル名がMQDSYS01.MQDNSGW_INTERSTAGEの場合

PROC_NAME="MQD001.MQDNSGW_INTERSTAGE"↓

PROC_NAME="MQDSYS01.MQDNSGW_INTERSTAGE"

起動優先度を変更したい場合

PRIORITY="200"↓

PRIORITY="180"

16.2.4.3 MQDのリソースを登録する

各ノードにアプリケーションリソースをPRIMECLUSTER用のリソースとして登録します。操作はCUI(RMS Wizard)より行います。

CUI(RMS Wizard)については、“PRIMECLUSTER 導入運用手引書”を参照してください。表16.2 MQDのリソース一覧に登録するリ

ソースの一覧を示します。

なお、必要に応じて、業務アプリケーションなどのリソースも登録してください。

表16.2 MQDのリソース一覧

リソース リソースクラス

切替えディスク DISK

MACアドレス MAC_Address

ネットノード名 NetNodename

IPアドレス IP_Address

CORBAサービスの状態遷移プロシジャ BasicApplication

イベントサービスの状態遷移プロシジャ BasicApplication

MQDの基本機能用状態遷移プロシジャ BasicApplication

MQDの拡張機能用状態遷移プロシジャ BasicApplication

16.2.4.4 MQDクラスタサービスを設定する

クラスタ運用管理ビューを使用して、サービスの設定を行います。クラスタ運用管理ビューの詳細については“PRIMECLUSTER 導入運用手引書”を参照してください。

MQDクラスタサービスの設定内容

MQDクラスタサービスの設定内容は表16.3 サービス設定内容のとおりです。

表16.3 サービス設定内容

設定項目 設定内容

サービス名 任意

運用形態 Standby

ノード 運用ノード 運用インスタンスを登録するノード

待機ノード 待機インスタンスを登録するノード

リソース 表16.2 MQDのリソース一覧を参照

アプリケーション依存関係 図16.9 リソース起動優先度を参照

共用ディスク装置の使用種別 切替えディスク

- 457 -

Page 475: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

起動優先度

サービスを構成するアプリケーションが複数からなり起動優先度を設定する必要がある場合は、起動順番の優先度を設定します。図

16.9 リソース起動優先度に、MQDに関するリソースの起動優先度を示します。使用するリソースについて、以下の順に起動するように

優先度を設定します。

図16.9 リソース起動優先度

16.2.5 動作を確認する

環境設定の妥当性確認のために、実際に切替えなどの動作確認を行ってください。

以下の事項について確認する方法について記述します。

・ 起動を確認する

・ 切替えを確認する

・ 運用が自動継続できることを確認する

なお、各操作はクラスタの運用管理ビューを使用して行います。クラスタ運用管理ビューの詳細については“PRIMECLUSTER 導入

運用手引書”を参照してください。

16.2.5.1 起動を確認する

サービスを起動します。起動の後、運用インスタンスのリソースの状態がすべて正常になっていることを確認してください。また、運用

インスタンスのコンソールにMQD起動のメッセージ(MQD4111)が出力されることを確認してください。

16.2.5.2 切替えを確認する

運用インスタンスを停止させることにより、待機インスタンスが運用インスタンスに切り替わることを確認します。

16.2.5.3 運用が自動継続できることを確認する

インスタンスが切り替わった後に、業務運用が自動的に継続できることを確認します。アプリケーションを観点とした確認を実施してく

ださい。

- 458 -

Page 476: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16.3 運用

クラスタシステムは、操作をコマンドまたはクラスタ運用管理ビューで行います。コマンドまたはクラスタ運用管理ビューの詳細につい

ては“PRIMECLUSTER 導入運用手引書”を参照してください。クラスタシステムの基本的な運用の流れについて、図16.10 クラスタシ

ステムでの運用の流れに示します。

図16.10 クラスタシステムでの運用の流れ

16.3.1 クラスタアプリケーションの起動

クラスタアプリケーションを起動します。これにより、設定された起動優先度にしたがってMQDが起動されます。クラスタアプリケーショ

ンの起動は、クラスタ運用管理ビューを使用して行います。

- 459 -

Page 477: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16.3.2 復旧作業

異常が発生したノードでは、ハードウェアやソフトウェアの障害が発生しています。その原因を取り除いてください。

16.3.3 切り替え

切り替えは、クラスタ運用管理ビューを使用して行います。

16.3.4 クラスタアプリケーションの停止

クラスタアプリケーションを停止します。クラスタアプリケーションの停止により、MQDが停止します。クラスタアプリケーションの停止

は、クラスタ運用管理ビューを使用して行います。

16.4 保守

ここでは、クラスタシステムの保守について、特に注意の必要な以下の事項について説明しています。

・ クラスタシステムの環境を削除する

・ 状態遷移プロシジャを変更する

16.4.1 クラスタシステムの環境を削除する

PRIMECLUSTERに作成したMQDクラスタサービスの環境を削除する手順について、以下の順番で説明しています。

・ サービス登録の削除

・ 状態遷移プロシジャのリソース削除

・ 状態遷移プロシジャファイルの削除

・ MQDの拡張機能の環境を削除する

・ MQDの基本機能の環境を削除する

16.4.1.1 サービス登録の削除

クラスタ運用管理ビューを使用して、サービス登録を削除します。

16.4.1.2 状態遷移プロシジャファイルのリソース削除

状態遷移プロシジャのリソース削除を行うには、MQDより提供する状態遷移プロシジャ削除用のシェルスクリプトを実行します。

基本機能用

シェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/DELPROC_MQD_INTERSTAGE

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQD_INTERSTAGE

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

拡張機能用

シェルスクリプトのひな型は、以下のファイルで提供しています。

/opt/FJSVmqd/sample/DELPROC_MQDSVC_INTERSTAGE (拡張機能用)

状態遷移プロシジャファイルのひな型は、以下の内容に設定しています。

・ 状態遷移プロシジャファイル名: MQD001.MQDSVC_INTERSTAGE

- 460 -

Page 478: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ リソースクラス: 基盤アプリケーションクラス(BasicApplication)

削除する状態遷移プロシジャファイルに合わせて、シェルスクリプトを修正します。シェルスクリプトの修正内容は、MQD基本機能用、

MQD拡張機能用とも同じです。

16.4.1.3 状態遷移プロシジャファイルの削除

各ノードに格納した状態遷移プロシジャファイルを削除します。状態遷移プロシジャファイルの削除は、状態遷移プロシジャファイル

削除コマンドを実行することにより行います。-cオプションでBasicApplicationを指定してください。コマンドの詳細は“PRIMECLUSTER導入運用手引書”を参照してください。以下に、cldelprocコマンドの入力例を示します。

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

/etc/opt/FJSVcluster/bin/cldelproc -c BasicApplication MQD001.MQD_INTERSTAGE

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

16.4.1.4 MQDの拡張機能の環境を削除する

MQDの拡張機能の環境を削除します。MQDの拡張機能はMQDの基本機能の環境を削除する際に、一括して削除することが可能

ですので、ここでは何もせず、MQDの基本機能の環境を削除するに進んでもよいです。

MQDの拡張機能の環境は片側のノードのみで実施します。MQD用のディスクリソースがオンラインになっているノードで各拡張機能

の環境削除コマンドを実行してください。

イベントチャネル連携サービスの場合

イベントチャネル連携サービスをCORBAサービスから削除するコマンド(mqdnsgwrlsserver)はInterstageを起動した状態で、双方の

ノードで実行してください。

16.4.1.5 MQDの基本機能の環境を削除する

MQDの環境を運用系ノード、待機系ノードともに削除します。双方のノードの環境削除順序は問いません。環境を-hオプション指定

で作成していないノードで環境削除を行う場合は、切替えディスクにアクセスできる状態でなければなりません。

16.4.2 状態遷移プロシジャを変更する

状態遷移プロシジャを変更する手順について説明します。手順に沿って、以下の順番で説明しています。

・ 状態遷移プロシジャファイルの取出し

・ 状態遷移プロシジャファイルの修正

・ 状態遷移プロシジャファイルの格納

16.4.2.1 状態遷移プロシジャファイルの取出し

格納されている状態遷移プロシジャを取出します。取出しは、clgetprocコマンドで行います。コマンドの詳細について

は、“PRIMECLUSTER 導入運用手引書”を参照してください。以下に、clgetprocコマンドの入力例を示します。

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

/etc/opt/FJSVcluster/bin/clgetproc -c BasicApplication MQD001.MQD_INTERSTAGE

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

16.4.2.2 状態遷移プロシジャファイルの修正

状態遷移プロシジャファイルを修正します。修正内容の詳細については、以下を参照してください。

・ MQD基本機能の場合:“16.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを修正する”

・ MQDサービスの場合:“16.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを修正する”

- 461 -

Page 479: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

16.4.2.3 状態遷移プロシジャを格納する

状態遷移プロシジャを格納します。状態遷移プロシジャ名は取出したときと同じ名前を指定します。格納方法の詳細については、以

下を参照してください。

・ MQD基本機能の場合:“16.2.4.1 MQDの基本機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを格納する”

・ MQDサービスの場合:“16.2.4.2 MQDの拡張機能用の状態遷移プロシジャを登録する”の“状態遷移プロシジャファイルを格納する”

- 462 -

Page 480: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録A 定義記述規約

MQDの各種定義を記述する場合の規約について説明します。この規約に従って正しく記述してください。

MQDの各種定義は、以下の各要素から構成されています。

・ セクション

・ ステートメント

・ コメント行

・ 空行

a)セクション

セクションとは、ステートメントの集合(グループ)であり、以下の形式で記述します。

[セクション名]ステートメント

ステートメント

セクションの記述には、以下の規則があります。

・ セクションとは“[セクション名]”で始まり、次のセクション、またはEOFまでを意味します。

・ セクションを省略する場合、セクション全体を削除するか、コメント行にする必要があります。

・ “[セクション名]”だけのセクションは指定できません。

・ “[セクション名]”を記述する行に“[セクション名]”以外は記述できません。

・ セクション名は必ず[ ](角括弧)で括る必要があります。

・ セクション名の中の英字は、大文字/小文字の区別がありません。

・ “[セクション名]”を記述した行にコメントを記述できます。コメントは、セクション名の“]”以降の任意のカラムに“#”記号と共に記

述します。

以下にセクションの記述例を示します。

# セクションにステートメントが一つある

[Section] # コメント

ステートメント

# セクションにステートメントが3つある

[Section] # コメント

ステートメント1ステートメント2ステートメント3

b)ステートメント

ステートメントは、情報を設定するための行であり、“キーワード”、“=”(等号)および“設定内容”から構成されます。以下にその形式

を示します。

キーワード = 設定内容

ステートメントの記述規則を以下に示します。

・ ステートメントを省略する場合は、ステートメント全体を削除するか、“設定内容”だけを省略します。

・ ステートメントには、コメントを記述できます。コメントは、“設定内容”の後の任意のカラムに“#”記号と共に記述します。

・ 一つのステートメントは、1行内に記述します。

ステートメントを構成する情報の詳細を以下に説明します。

- 463 -

Page 481: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

キーワード

キーワードには、以下の規則があります。

・ キーワードは行内の先頭の英数字から“=”(等号)の直前までを意味します。

・ キーワードとして使える文字は、英数字とアンダースコアだけです。

・ キーワード中の英字は、大文字/小文字の区別がありません。

・ 行の先頭が空白やタブの場合、その空白やタブは無視されます。

=(等号)

キーワードと設定内容を区切る文字であり、以下の規則があります。

・ 等号は必ず半角で記述します。

・ 等号の前後に空白やタブがある場合、その空白やタブは無視されます。

設定内容

キーワードに対応する情報を設定します。設定内容には、以下の規則があります。

・ 設定内容は、行内の 初の“=”の直後から記述します。

・ 設定内容の終わりは空白、タブ、改行、またはEOFで示します。

・ 設定内容の中の英字は、大文字/小文字が区別されます。

・ 設定内容の中に以下の文字を記述したい場合は、二重引用符で括って記述します。

# , = [ ] 二重引用符 空白 タブ

なお、二重引用符の場合は、二重引用符を二つ続けて記述します。

・ 設定内容を複数記述する場合は、設定内容を“,”で区切るか、またはステートメントを繰り返し記述します。

以下にステートメントの記述例を示します。

例)キーワード“Keyword”には“Information”を設定します。

Keyword= Information # コメント

KEYWORD=InformationKeyWord= InformationKeyword = InformationKeyword= Information

上記のステートメントはすべて同じように解釈されます。

c)コメント行

コメント行は、コメント(注釈)を行全体に記述する場合に使用します。以下の形式で記述します。

# コメント

コメント行には以下の規則があります。

・ コメント行の先頭カラムに“#”(シャープ)を記述します。

・ “#”は半角文字で記述します。

d)空行

空行を記述することができます。

- 464 -

Page 482: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録B プログラム記述例

以下の3種類のアプリケーションプログラムについて、プログラムの記述例を示します。

・ メッセージ送信プログラム

・ メッセージ受信プログラム

・ メッセージ監視プログラム

なお、ここでは、メッセージ監視プログラムの記述例だけを記載しています。メッセージ送信とメッセージ受信の各プログラムの記述例

については、以下を参照してください。

・ “MQDインストール先フォルダ\sample”

・ “/opt/FJSVmqd/sample”

COBOL言語

・ manput.cob, manput2.cob

・ manget.cob, manget2.cob

C言語

・ manput.c

・ manget.c

また、COBOL言語については、メッセージヘッダとメッセージキュー属性情報のCOBOL登録集を以下のファイルで提供しています。

・ “MQDインストール先フォルダ\sample\HEADER.cbl”

・ “MQDインストール先フォルダ\sample\QATTR.cbl”

・ “/opt/FJSVmqd/sample/HEADER.cbl”

・ “/opt/FJSVmqd/sample/QATTR.cbl”

C言語については、メッセージヘッダやメッセージキュー属性情報などの構造体(インクルード)を以下のファイルで提供しています。

・ “MQDインストール先フォルダ\include\mqdapi.h”

・ “/opt/FJSVmqd/include/mqdapi.h”

B.1 メッセージ監視プログラムの記述例 (COBOL言語の場合) メッセージ監視プログラムの記述例 (COBOL言語)に、Interstage(コンポーネントトランザクションサービス)のサーバアプリケーションを

呼び出すメッセージ監視プログラムの記述例を示します。

- 465 -

Page 483: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

なお、Interstageのサーバアプリケーションの呼出し方法の詳細については、“アプリケーション作成ガイド(CORBAサービス編)”を参

照してください。

メッセージ監視プログラムの記述例 (COBOL言語)

* -----------------------------------------------------------------------

* メッセージ監視プログラム (Interstageのクライアントアプリケーション)

* -----------------------------------------------------------------------

IDENTIFICATION DIVISION.

PROGRAM-ID. MSGWAIT-PROG.

AUTHOR. MQDUSER3.

*

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

SPECIAL-NAMES.

ARGUMENT-NUMBER IS ARG-C

ARGUMENT-VALUE IS ARG-V

SYMBOLIC CONSTANT

COPY SYMBOL-CONST IN CORBA.

.

*

DATA DIVISION.

WORKING-STORAGE SECTION.

*

* ----------------------------------------------------------------

* 作業領域の定義

* ----------------------------------------------------------------

01 SYSNAME PIC X(9) SYNC VALUE SPACE.

01 QUENAME PIC X(64) VALUE SPACE.

*

01 MQDSYS USAGE POINTER.

01 MQDQUE USAGE POINTER.

01 WAITMODE PIC 9(5) COMP-5 VALUE 2.

01 CURSOR PIC 9(5) COMP-5 VALUE 2.

01 MQD-STS PIC 9(5) COMP-5 VALUE 0.

01 FLG-END PIC 9(5) COMP-5 VALUE 0.

*

* < 復帰情報 >

01 RETENV.

02 LEVEL PIC 9(5) COMP-5 VALUE 0.

02 RCODE PIC 9(5) COMP-5 VALUE 0.

01 RETVALUE PIC S9(5) COMP-5 VALUE 0.

*

* < メッセージヘッダ >

COPY "HEADER.cbl".

*

* < メッセージ本体 >

01 MSGBODY.

02 MSGPTR USAGE POINTER.

01 MSGBODYDATA PIC X(200) VALUE SPACE.

01 BODYLENGTH PIC 9(9) COMP-5 VALUE 200.

*

* < Interstageのサーバアプリケーション呼出し用のデータ記述 >

* → この記述は“アプリケーション作成ガイド(CORBAサービス編)”

* を参照してください。

*

* ----------------------------------------------------------------

* 処理手続き

* ----------------------------------------------------------------

PROCEDURE DIVISION.

*

*-----------------------------------------------*

* Interstageのサーバアプリケーション呼出しの *

* ための前処理 *

- 466 -

Page 484: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

*-----------------------------------------------*

* → この処理は“アプリケーション作成ガイド(CORBAサービス編)”

* を参照してください。

*

DISPLAY "メッセージ受信を開始".

MOVE 0 TO MQD-STS.

MOVE 0 TO FLG-END.

*

*-----------------------------------------------*

* MQDへの接続 *

*-----------------------------------------------*

MOVE "MQD001" TO SYSNAME.

CALL "MQDCONNECT" USING SYSNAME RETENV MQDSYS.

DISPLAY "MQDCONNECT" " " RCODE.

IF PROGRAM-STATUS < 0

THEN

MOVE 1 TO MQD-STS

GO TO EXT-PRO

END-IF.

*

*-----------------------------------------------*

* メッセージキューへの接続 *

*-----------------------------------------------*

MOVE "Q002" TO QUENAME

CALL "MQDCONNECTQ" USING MQDSYS QUENAME RETENV MQDQUE.

DISPLAY "MQDCONNECTQ" " " RCODE.

IF PROGRAM-STATUS < 0

THEN

MOVE 2 TO MQD-STS

GO TO EXT-DCM

END-IF.

*

PERFORM UNTIL FLG-END = 1

*-----------------------------------------------*

* メッセージの参照(到着待ち) *

*-----------------------------------------------*

MOVE FUNCTION ADDR( MSGBODYDATA ) TO MSGPTR.

CALL "MQDPEEKMSG" USING MQDQUE WAITMODE MSGHEAD MSGBODY BODYLENGTH CURSOR

RETENV RETVALUE.

DISPLAY "MQDPEEKMSG" " " RCODE.

IF PROGRAM-STATUS < 0

THEN

MOVE 3 TO MQD-STS

GO TO EXT-DCQ

END-IF.

IF MSGBODYDATA(1:3) = "END"

MOVE 1 TO FLG-END.

*

*-----------------------------------------------*

* Interstageのサーバアプリケーションの呼出し *

*-----------------------------------------------*

* < トランザクション開始 >

CALL "COSTRANSACTIONS-CURRENT-BEGIN" USING ….

* < アプリケーション呼出し >

CALL "IS-SVR-APPL" USING ….

IF PROGRAM-STATUS < 0

THEN

MOVE 4 TO MQD-STS

* < トランザクション異常終了 >

CALL "COSTRANSACTIONS-CURRENT-ROLLBACK" USING …

GO TO EXT-DCQ

END-IF.

* < トランザクション正常終了 >

- 467 -

Page 485: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

CALL "COSTRANSACTIONS-CURRENT-COMMIT" USING ….

END-PERFORM.

*

EXT-DCQ.

*-----------------------------------------------*

* メッセージキューからの切断 *

*-----------------------------------------------*

CALL "MQDDISCONNECTQ" USING MQDQUE RETENV RETVALUE.

DISPLAY "MQDDISCONNECTQ" " " RCODE.

IF PROGRAM-STATUS < 0

THEN

MOVE 5 TO MQD-STS

GO TO EXT-PRO

END-IF.

*

EXT-DCM.

*-----------------------------------------------*

* MQDからの切断 *

*-----------------------------------------------*

CALL "MQDDISCONNECT" USING MQDSYS RETENV RETVALUE.

DISPLAY "MQDDISCONNECT" " " RCODE.

IF PROGRAM-STATUS < 0

MOVE 6 TO MQD-STS.

*

EXT-PRO.

*-----------------------------------------------*

* Interstageのサーバアプリケーション呼出しの *

* ための後処理 *

*-----------------------------------------------*

* → この処理は“アプリケーション作成ガイド(CORBAサービス編)”

* を参照してください。

*

MOVE MQD-STS TO PROGRAM-STATUS.

EXIT PROGRAM.

END PROGRAM MSGWAIT-PROG.

B.2 メッセージ監視プログラムの記述例 (C言語の場合) メッセージ監視プログラムの記述例 (C言語)に、Interstage(コンポーネントトランザクションサービス)のサーバアプリケーションを呼び

出すメッセージ監視プログラムの記述例を示します。

なお、Interstageのサーバアプリケーションの呼出し方法の詳細については、“アプリケーション作成ガイド(CORBAサービス編)”を参

照してください。

メッセージ監視プログラムの記述例 (C言語)

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

/* メッセージ監視プログラム (Interstageのクライアントアプリケーション) */

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

#include <stdio.h>

#include <string.h>

/* < MQDのためのデータ記述 > */

#include "mqdapi.h"

#define MQD_SYSNAME "MQD001"

#define MQD_QNAME "Q002"

#define MQD_BODYLENGTH 200

static MQD_Environment Mqdenv;

static MQD_System* pMqdsys = NULL;

static MQD_MessageQueue* pQue = NULL;

static MQD_MessageHeader Mqdheader;

static MQD_MessageBody Mqdbody;

static char Sysname [ MQD_SYSNAME_MAX ];

- 468 -

Page 486: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

static char Qname [ MQD_QUENAME_MAX ];

static char Putqname[ MQD_QUENAME_MAX ];

static MQDCHAR* pBody = NULL;

static const long BodyLen = MQD_BODYLENGTH;

/* < Interstageのサーバアプリケーション呼出し用のデータ記述 > */

/* → この記述の詳細は“アプリケーション作成ガイド */

/* (CORBAサービス編)”を参照してください。 */

#include "orb.h"

#include "OM_IMR.H"

#include "COSNAMIN.H"

#include "IS_SVR_APPL.h" /* tdcコマンドにより生成したファイル */

#include "CosTransactions.h"

static CORBA_ORB orb;

static CORBA_BOA boa;

static CosNaming_NamingContext cos_naming;

static CosNaming_Name name;

static CosNaming_NameComponent name_component;

static CORBA_Environment env;

static CORBA_Object Current;

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

/* main */

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

int main( int argc, char *argv[] )

{

CORBA_Object obj;

CORBA_long ret;

int flg_end = 0;

int status = 0;

int retcode = 0;

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

/* 処理手続き */

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

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

/* Interstageのサーバアプリケーション呼出しの */

/* ための前処理 ( initialization of ORB ) */

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

/* → この処理は“アプリケーション作成ガイド(CORBAサービス編)” */

/* を参照してください。 */

fprintf( stdout,"メッセージ受信を開始 \n" );

/* initialize variable */

memset( Sysname , 0x00, MQD_SYSNAME_MAX );

memset( Qname , 0x00, MQD_QUENAME_MAX );

memset( &Mqdheader, 0x00, sizeof(MQD_MessageHeader));

/* set system name and queue name */

strcpy( Sysname, MQD_SYSNAME );

strcpy( Qname , MQD_QNAME );

pBody = (MQDCHAR *)calloc( BodyLen, sizeof(MQDCHAR));

if ( !pBody ) /* error? */

{

status = -1;

goto EXT_PRO;

}

Mqdbody.data = pBody;

- 469 -

Page 487: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

/* MQDへの接続 */

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

retcode = mqd_connect( Sysname, &Mqdenv, &pMqdsys );

fprintf( stdout,"mqd_connect RCODE = %d\n", retcode );

if ( retcode != 0 ) /* error? */

{

status = 1;

goto EXT_PRO;

}

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

/* メッセージキューへの接続 */

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

retcode = mqd_connectq( pMqdsys, Qname, &Mqdenv, &pQue );

fprintf( stdout,"mqd_connectq RCODE = %d\n", retcode );

if ( retcode != 0 ) /* error? */

{

status = 2;

goto EXT_DCM;

}

while ( flg_end = 0 )

{

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

/* メッセージの参照(到着待ち) */

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

retcode = mqd_peekmsg( pQue, MQD_Q_MODE_SYNC, &Mqdheader, &Mqdbody, BodyLen,

MQD_Q_CURSOR_CURRENT, &Mqdenv );

fprintf( stdout,"mqd_peekmsg RCODE = %d\n", retcode );

if ( retcode != 0 ) /* error? */

{

status = 3;

goto EXT_DCQ;

}

if ( !memcmp( pBody, "END", 3) )

flg_end = 1;

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

/* Interstageのサーバアプリケーションの呼出し */

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

/* < トランザクション開始 > */

CosTransactions_Current_begin( Current, &env );

/* < アプリケーション呼出し > */

ret = IS_SVR_APPL ( obj, …, &env );

if ( ret != 0 ) /* error? */

{

status = 4;

/* < トランザクション異常終了 > */

CosTransactions_Current_rollback( Current, &env );

goto EXT_DCQ;

}

else

/* < トランザクション正常終了 > */

{

CosTransactions_Current_commit( Current, CORBA_TRUE, &env );

}

}

EXT_DCQ:

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

/* メッセージキューからの切断 */

- 470 -

Page 488: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

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

retcode = mqd_disconnectq( pQue, &Mqdenv );

fprintf( stdout,"mqd_disconnectq RCODE = %d\n", retcode );

if ( retcode != 0 ) /* error? */

status = 5;

EXT_DCM:

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

/* MQDからの切断 */

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

retcode = mqd_disconnect( pMqdsys, &Mqdenv );

fprintf( stdout,"mqd_disconnect RCODE = %d\n", retcode );

if ( retcode != 0 ) /* error? */

status = 6;

EXT_PRO:

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

/* Interstageのサーバアプリケーション呼出しの */

/* ための後処理 */

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

/* → この処理は“アプリケーション作成ガイド(CORBAサービス編)” */

/* を参照してください。 */

(void)free( pBody );

return( status );

} /* End of MSGWAIT_PROG */

- 471 -

Page 489: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録C MQDの名称規約

MQDの名称規約の一覧を表C.1 MQDの名称規約一覧に示します。

表C.1 MQDの名称規約一覧

項目名 長さ 規約

MQDシステム名 8文字 “MQD”で始まる8文字以内の英数字とアンダースコアを使用することができま

す。英字の大文字と小文字の区別はされません。英小文字は英大文字として

扱われます。

メッセージキュー名 63文字 63文字以内の英数字とアンダースコアを使用することができます。または、31文字以内の漢字を使用することができます。英字の大文字と小文字は区別さ

れます。英数字と漢字の混在は可能です。

ただし、ACM連携サービスで使用するメッセージキュー名については、8文字

以内の大文字の英数字を使用する必要があります。

メッセージ名 63文字 63文字以内の英数字とアンダースコアを使用することができます。

英字の大文字と小文字は区別されます。

- 472 -

Page 490: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録D 各種制限数の一覧

MQDが制限している各種項目の内容と制限数の一覧を表D.1 各種制限数の一覧に示します。

表D.1 各種制限数の一覧

分類 項目 制限数(上限値)

共通

同時に実行できるMQDアプリケーションの数 1024

プロセス内で接続できるメッセージキューの数 4096

MQDシステム内で接続できるメッセージキューの

65535

1メッセージ(本体)の長さ 2088960 (バイト)

1ユニット内のメッセージの数 8192

1ユニット内のメッセージ(ヘッダと本体)の合計の

長さ

64 (Mバイト)

1トランザクション内のメッセージの数 8192

1トランザクション内のメッセージ(ヘッダと本体)の合計の長さ

64 (Mバイト)

同報配信サービス同報グループの数 64

同報グループ内の配信先のメッセージキューの数 500

ACM連携サービス

送信できる相手システム(サーバ)の数

240

999

受信できる相手システム(サーバ)の数

240

999

送信キューの数 999

受信キューの数 999: 受信キューと送信キューがすべて

1対1の場合

1: 一つの受信キューに999個の送信

キューが対応する場合

イベントチャネル連

携サービス

送信できる相手システム(サーバ)の数 128: 送信する相手サーバと相手サー

バの受信キュー名がすべて1対1の場

受信できる相手システム(サーバ)の数 128: 送信する相手サーバと自サーバ

の受信キュー名がすべて1対1の場合

送信イベントチャネルの数 128

受信イベントチャネルの数 128

SMTP連携サービス

送信キューの数 500

受信キューの数 500

- 473 -

Page 491: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録E SQL記述ファイルの内容

以下のSQL記述ファイルの内容を示します。

・ MQD_MQDシステム名.sql(Symfoware/RDBトランザクション連携機能を使用しない場合)

・ SYS_QUETABLE.sql

・ USR_QUETABLE.sql

・ MQD_MSGCHAIN.sql

・ MQD_QUEFCTRL.sql

・ MQD_TRNFCTRL.sql

・ メッセージキュー名.sql

・ 拡張機能の環境作成および環境定義で生成するファイル

・ MQD_MQDシステム名.sql(Symfoware/RDBトランザクション連携機能を使用する場合)

なお、SQL記述ファイルの詳細については、“5.3.2 SQL記述ファイル”を参照してください。また、SQLの詳細については、“SymfowareServer RDBユーザーズガイド データベース定義編”と“Symfoware Server SQLリファレンスガイド”を参照してください。

MQD_MQDシステム名.sql

-- MQD SYSTEM NAME : MQDシステム名

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE DATABASE MQD_MQDシステム名;

CREATE DBSPACE MQD_MQDシステム名_SPS ALLOCATE FILE ファイル名

ATTRIBUTE SPACE (サイズ);

CREATE DBSPACE MQD_MQDシステム名_SPU ALLOCATE FILE ファイル名

ATTRIBUTE SPACE (サイズ);

CREATE SCHEMA MQD_MQDシステム名_SCH;

GRANT ALL PRIVILEGES ON DBSPACE MQD_MQDシステム名_SPS TO PUBLIC;

GRANT ALL PRIVILEGES ON DBSPACE MQD_MQDシステム名_SPU TO PUBLIC;

GRANT ALL PRIVILEGES ON SCHEMA MQD_MQDシステム名_SCH TO PUBLIC;

-- DROP SCHEMA MQD_MQDシステム名_SCH;

-- DROP DBSPACE MQD_MQDシステム名_SPU;

-- DROP DBSPACE MQD_MQDシステム名_SPS;

-- DROP DATABASE MQD_MQDシステム名;

-- MQD SYSTEM NAME : MQDシステム名

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE DATABASE MQD_MQDシステム名;

CREATE DBSPACE MQD_MQDシステム名_SPS ALLOCATE RAWDEVICE ローデバイス名;

- 474 -

Page 492: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

CREATE DBSPACE MQD_MQDシステム名_SPU ALLOCATE RAWDEVICE ローデバイス名;

CREATE SCHEMA MQD_MQDシステム名_SCH;

GRANT ALL PRIVILEGES ON DBSPACE MQD_MQDシステム名_SPS TO PUBLIC;

GRANT ALL PRIVILEGES ON DBSPACE MQD_MQDシステム名_SPU TO PUBLIC;

GRANT ALL PRIVILEGES ON SCHEMA MQD_MQDシステム名_SCH TO PUBLIC;

-- DROP SCHEMA MQD_MQDシステム名_SCH;

-- DROP DBSPACE MQD_MQDシステム名_SPU;

-- DROP DBSPACE MQD_MQDシステム名_SPS;

-- DROP DATABASE MQD_MQDシステム名;

SYS_QUETABLE.sql

-- TABLE NAME : SYS_QUETABLE

-- USE : SYSTEM

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.SYS_QUETABLE

(QUEID_CNT INTEGER NOT NULL,

CRT_TIME INTEGER NOT NULL,

QUE_NAME VARCHAR(64) NOT NULL,

ATTRIBUTE INTEGER NOT NULL,

QMP_QUETABLE BLOB(1K) NOT NULL,

UNIQUE (QUEID_CNT));

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.SYS_QUETABLE TO PUBLIC;

CREATE DSO SYS_QUETABLE_DSO FROM MQD_MQDシステム名_SCH.SYS_QUETABLE

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI SYS_QUETABLE_DSI DSO SYS_QUETABLE_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPS SIZE サイズ;

CREATE DSO SYS_QUETABLE_IXDSO INDEX ON MQD_MQDシステム名_SCH.SYS_QUETABLE (QUEID_CNT)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI SYS_QUETABLE_IXDSI INDEX DSO SYS_QUETABLE_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPS SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPS SIZE サイズ ;

-- DROP DSI SYS_QUETABLE_IXDSI;

-- DROP DSO SYS_QUETABLE_IXDSO;

-- DROP DSI SYS_QUETABLE_DSI;

-- DROP DSO SYS_QUETABLE_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.SYS_QUETABLE;

USR_QUETABLE.sql

-- TABLE NAME : USR_QUETABLE

-- USE : SYSTEM

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.USR_QUETABLE

(QUEID_CNT INTEGER NOT NULL,

CRT_TIME INTEGER NOT NULL,

QUE_NAME VARCHAR(64) NOT NULL,

- 475 -

Page 493: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

ATTRIBUTE INTEGER NOT NULL,

QMP_QUETABLE BLOB(1K) NOT NULL,

UNIQUE (QUEID_CNT));

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.USR_QUETABLE TO PUBLIC;

CREATE DSO USR_QUETABLE_DSO FROM MQD_MQDシステム名_SCH.USR_QUETABLE

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI USR_QUETABLE_DSI DSO USR_QUETABLE_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPS SIZE サイズ;

CREATE DSO USR_QUETABLE_IXDSO INDEX ON MQD_MQDシステム名_SCH.USR_QUETABLE (QUEID_CNT)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI USR_QUETABLE_IXDSI INDEX DSO USR_QUETABLE_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPS SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPS SIZE サイズ ;

-- DROP DSI USR_QUETABLE_IXDSI;

-- DROP DSO USR_QUETABLE_IXDSO;

-- DROP DSI USR_QUETABLE_DSI;

-- DROP DSO USR_QUETABLE_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.USR_QUETABLE;

MQD_MSGCHAIN.sql

-- TABLE NAME : MQD_MSGCHAIN

-- USE : SYSTEM

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.MQD_MSGCHAIN

(FIFOCHAIN_NO INTEGER NOT NULL,

FIFO_NO INTEGER NOT NULL,

FIFOCHAIN BLOB(16K) NOT NULL,

UNIQUE (FIFOCHAIN_NO));

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.MQD_MSGCHAIN TO PUBLIC;

CREATE DSO MQD_MSGCHAIN_DSO FROM MQD_MQDシステム名_SCH.MQD_MSGCHAIN

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI MQD_MSGCHAIN_DSI DSO MQD_MSGCHAIN_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPS SIZE サイズ;

CREATE DSO MQD_MSGCHAIN_IXDSO INDEX ON MQD_MQDシステム名_SCH.MQD_MSGCHAIN

(FIFOCHAIN_NO)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI MQD_MSGCHAIN_IXDSI INDEX DSO MQD_MSGCHAIN_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPS SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPS SIZE サイズ ;

-- DROP DSI MQD_MSGCHAIN_IXDSI;

-- DROP DSO MQD_MSGCHAIN_IXDSO;

-- DROP DSI MQD_MSGCHAIN_DSI;

-- DROP DSO MQD_MSGCHAIN_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.MQD_MSGCHAIN;

- 476 -

Page 494: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

MQD_QUEFCTRL.sql

-- TABLE NAME : MQD_QUEFCTRL

-- USE : SYSTEM

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.MQD_QUEFCTRL

(QUEFILE_IX INTEGER NOT NULL,

QMP_QUEFCTRL BLOB(1K) NOT NULL,

UNIQUE (QUEFILE_IX));

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.MQD_QUEFCTRL TO PUBLIC;

CREATE DSO MQD_QUEFCTRL_DSO FROM MQD_MQDシステム名_SCH.MQD_QUEFCTRL

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI MQD_QUEFCTRL_DSI DSO MQD_QUEFCTRL_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPS SIZE サイズ;

CREATE DSO MQD_QUEFCTRL_IXDSO INDEX ON MQD_MQDシステム名_SCH.MQD_QUEFCTRL

(QUEFILE_IX)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI MQD_QUEFCTRL_IXDSI INDEX DSO MQD_QUEFCTRL_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPS SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPS SIZE サイズ ;

-- DROP DSI MQD_QUEFCTRL_IXDSI;

-- DROP DSO MQD_QUEFCTRL_IXDSO;

-- DROP DSI MQD_QUEFCTRL_DSI;

-- DROP DSO MQD_QUEFCTRL_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.MQD_QUEFCTRL;

MQD_TRNFCTRL.sql

-- TABLE NAME : MQD_TRNFCTRL

-- USE : SYSTEM

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.MQD_TRNFCTRL

(TRANFILE_IX INTEGER NOT NULL,

TMP_TRANFCTRL BLOB(1K) NOT NULL,

UNIQUE (TRANFILE_IX));

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.MQD_TRNFCTRL TO PUBLIC;

CREATE DSO MQD_TRNFCTRL_DSO FROM MQD_MQDシステム名_SCH.MQD_TRNFCTRL

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI MQD_TRNFCTRL_DSI DSO MQD_TRNFCTRL_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPS SIZE サイズ;

CREATE DSO MQD_TRNFCTRL_IXDSO INDEX ON MQD_MQDシステム名_SCH.MQD_TRNFCTRL

(TRANFILE_IX)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI MQD_TRNFCTRL_IXDSI INDEX DSO MQD_TRNFCTRL_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPS SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPS SIZE サイズ;

- 477 -

Page 495: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

-- DROP DSI MQD_TRNFCTRL_IXDSI;

-- DROP DSO MQD_TRNFCTRL_IXDSO;

-- DROP DSI MQD_TRNFCTRL_DSI;

-- DROP DSO MQD_TRNFCTRL_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.MQD_TRNFCTRL;

メッセージキュー名.sql

-- QUEUE NAME : メッセージキュー名

-- TABLE NAME : USR_通番

-- USE : USER

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.USR_通番

(MSG_ID INTEGER NOT NULL,

MSG_NO INTEGER NOT NULL,

SP_COUNT INTEGER NOT NULL,

MSG_LENGTH INTEGER NOT NULL,

TIMELIMIT INTEGER NOT NULL,

COMMIT_ID INTEGER NOT NULL,

PRIORITY INTEGER NOT NULL,

SP_LENGTH INTEGER NOT NULL,

MESSAGE BLOB(31K) NOT NULL);

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.USR_通番 TO PUBLIC;

CREATE DSO USR_通番_DSO FROM MQD_MQDシステム名_SCH.USR_通番

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI USR_通番_DSI DSO USR_通番_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPU SIZE サイズ;

CREATE DSO USR_通番_IXDSO INDEX ON MQD_MQDシステム名_SCH. USR_通番 (COMMIT_ID)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI USR_通番_IXDSI INDEX DSO USR_通番_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPU SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPU SIZE サイズ ;

-- DROP DSI USR_通番_IXDSI;

-- DROP DSO USR_通番_IXDSO;

-- DROP DSI USR_通番_DSI;

-- DROP DSO USR_通番_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.USR_通番;

拡張機能の環境作成およびサービス定義で生成するファイル

-- QUEUE NAME : 拡張機能のメッセージキュー名

-- TABLE NAME : SYS_通番

-- USE : SYSTEM

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE TABLE MQD_MQDシステム名_SCH.SYS_通番

(MSG_ID INTEGER NOT NULL,

MSG_NO INTEGER NOT NULL,

SP_COUNT INTEGER NOT NULL,

MSG_LENGTH INTEGER NOT NULL,

- 478 -

Page 496: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

TIMELIMIT INTEGER NOT NULL,

COMMIT_ID INTEGER NOT NULL,

PRIORITY INTEGER NOT NULL,

SP_LENGTH INTEGER NOT NULL,

MESSAGE BLOB(31K) NOT NULL);

GRANT ALL PRIVILEGES ON TABLE MQD_MQDシステム名_SCH.SYS_通番 TO PUBLIC;

CREATE DSO SYS_通番_DSO FROM MQD_MQDシステム名_SCH.SYS_通番

TYPE SEQUENTIAL(PAGESIZE(ページサイズ),ORDER(1));

CREATE DSI SYS_通番_DSI DSO SYS_通番_DSO

ALLOCATE DATA ON MQD_MQDシステム名_SPS SIZE サイズ;

CREATE DSO SYS_通番_IXDSO INDEX ON MQD_MQDシステム名_SCH. SYS_通番 (COMMIT_ID)

TYPE BTREE(PAGESIZE1(ページサイズ),PAGESIZE2(ページサイズ),DEGENERATE);

CREATE DSI SYS_通番_IXDSI INDEX DSO SYS_通番_IXDSO

ALLOCATE BASE ON MQD_MQDシステム名_SPS SIZE サイズ,

INDEX ON MQD_MQDシステム名_SPS SIZE サイズ ;

-- DROP DSI SYS_通番_IXDSI;

-- DROP DSO SYS_通番_IXDSO;

-- DROP DSI SYS_通番_DSI;

-- DROP DSO SYS_通番_DSO;

-- DROP TABLE MQD_MQDシステム名_SCH.SYS_通番;

MQD_MQDシステム名.sql(Symfoware/RDBトランザクション連携機能を使用する場合)

-- MQD SYSTEM NAME : MQDシステム名

-- CREATE : YYYY/MM/DD HH:MM:SS

CREATE DBSPACE MQD_MQDシステム名_SPS ALLOCATE RAWDEVICE ローデバイス名;

CREATE DBSPACE MQD_MQDシステム名_SPU ALLOCATE RAWDEVICE ローデバイス名;

CREATE SCHEMA MQD_MQDシステム名_SCH;

GRANT ALL PRIVILEGES ON DBSPACE MQD_MQDシステム名_SPS TO PUBLIC;

GRANT ALL PRIVILEGES ON DBSPACE MQD_MQDシステム名_SPU TO PUBLIC;

GRANT ALL PRIVILEGES ON SCHEMA MQD_MQDシステム名_SCH TO PUBLIC;

-- DROP SCHEMA MQD_MQDシステム名_SCH;

-- DROP DBSPACE MQD_MQDシステム名_SPU;

-- DROP DBSPACE MQD_MQDシステム名_SPS;

- 479 -

Page 497: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録F 証明書/鍵管理ツール

本付録では、メッセージの暗号化(S/MIME変換)を行う場合に必要な、証明書/鍵管理環境の作成および設定を行うツール(証明書/鍵管理ツールと呼びます)について以下を説明します。

F.1 証明書/鍵管理環境の作成

なお、証明書/鍵管理ツールが出力するメッセージについては、“MessageQueueDirector メッセージ集”を参照してください。

F.1 証明書/鍵管理環境の作成

ここでは、証明書/鍵管理環境の作成について以下を説明します。

・ 環境作成の概要

・ 秘密鍵管理環境の作成と設定

・ 証明書/CRL管理環境の作成と設定

・ 鍵ペア、証明書取得申請書の作成

・ 証明書/CRLの取得

・ 証明書/CRLの登録

・ 証明書/CRLの管理

F.1.1 環境作成の概要

メッセージを暗号化するためには、発行局(CA局)証明書、サイト証明書、サイト秘密鍵が必要となります。

・ 発行局証明書

発行局が発行した証明書を保証するための、発行局自身の証明書です。

・ サイト証明書

サーバの身元を保証するために、発行局が発行した証明書です。利用者(サーバ)に関する情報と発行局に関する情報が含まれ

ています。サイト証明書は、必ずこれを発行した発行局の証明書を組み合わせて使用する必要があります。

・ サイト秘密鍵

サイト証明書の中に含まれる、暗号化のための秘密鍵です。

証明書を作成するためには、証明書サーバ(発行局)が必要です。MQDでは、InfoCAという証明書サーバをサポートしています。

InfoCAの詳細については、“Systemwalker/PkiMGR 説明書”を参照してください。

証明書/鍵管理環境の作成は、以下の手順で行います。

1. 秘密鍵管理環境の作成と設定

2. 証明書/CRL管理環境の作成と設定

3. 鍵ペア、証明書取得申請書の作成

4. 証明書/CRLの取得

5. 証明書/CRLの登録

証明書/鍵管理環境の作成についての概要を図F.1 証明書/鍵管理環境の作成に示します。

- 480 -

Page 498: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図F.1 証明書/鍵管理環境の作成

なお、証明書/鍵管理環境を作成するにあたり、以下の管理ディレクトリが必要となりますので、事前に作成してください。

・ スロット情報ディレクトリ

・ 運用管理ディレクトリ

・ 証明書管理ディレクトリ

・ CRL管理ディレクトリ

例)

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

mkdir /home/slot スロット情報ディレクトリ

mkdir /home/sslcert 運用管理ディレクトリ

mkdir /home/sslcert/cert 証明書管理ディレクトリ

mkdir /home/sslcert/crl CRL管理ディレクトリ

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

F.1.2 秘密鍵管理環境の作成と設定

秘密鍵管理では、秘密鍵をスロット、トークンの概念で扱います。スロットは暗号装置を装着する物理的な口を抽象化したものであり、

トークンとはスロットに装着する暗号装置を抽象化したものです。一つのスロットには一つのトークンが割り当てられますが、一つのトー

クンには複数の秘密鍵を登録できます。このスロット、トークン、秘密鍵の関係を図F.2 スロット、トークン、秘密鍵の関係に示します。

- 481 -

Page 499: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図F.2 スロット、トークン、秘密鍵の関係

スロットの情報を操作するにはスロットパスワードが、トークンの情報を操作するには、SO-PIN、またはユーザPINが必要であり、それ

ぞれスロットの生成(makeslotコマンド)時、トークンの生成(maketokenコマンド)時に設定されます。SO-PINは、設定だけであり通常の

運用では使用しません。

ユーザPINは、トークン内の秘密鍵にアクセスする際(cmmakecsrコマンドで秘密鍵を生成する場合やcmenterkeyコマンドで秘密鍵を

登録する場合)に必要となる認証のための情報です。

なお、ユーザPINはトークン単位で存在するため、一つのトークンに複数の秘密鍵が登録されている場合には、一つのユーザPINで

複数の秘密鍵情報にアクセスできることになります。

スロット、トークンに関するパスワードとPINの概要を表F.1 スロット、トークンに関するパスワードとPINに示します。

表F.1 スロット、トークンに関するパスワードとPIN種別 個数 主な用途

スロットパスワード スロットに1個 トークンの生成

SO-PIN トークンに1個 -

ユーザPIN トークンに1個

秘密鍵アクセス

(cmmakecsr,cmenterkey)

ユーザPINの変更(setpin)

秘密鍵管理環境の作成と設定は、表F.2 秘密鍵管理環境の作成と設定のコマンドで行います。

表F.2 秘密鍵管理環境の作成と設定

コマンド 説明

makeslot 秘密鍵をトークンとして管理するためのスロットの生成およびスロット情報ディレク

トリの初期設定を行います。

本コマンドは、秘密鍵管理環境の新規作成時に使用します。

maketoken 秘密鍵を管理するトークンの初期設定を行います。

本コマンドは、秘密鍵管理環境の新規作成時に使用します。

コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

F.1.3 証明書/CRL管理環境の作成と設定

証明書/CRL管理環境の作成と設定は、表F.3 証明書/CRL管理環境の作成と設定のコマンドで行います。

表F.3 証明書/CRL管理環境の作成と設定

コマンド 説明

cmmkenv 証明書/CRL管理環境の作成を行います。

- 482 -

Page 500: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

コマンド 説明

cmsetenv 証明書/CRL管理環境の設定を行います。

コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

F.1.4 鍵ペア、証明書取得申請書の作成

鍵ペア、証明書取得申請書の作成は、表F.4 鍵ペア、証明書取得申請書の作成のコマンドで行います。

表F.4 鍵ペア、証明書取得申請書の作成

コマンド 説明

cmmakecsr 秘密鍵の作成、証明書取得申請書の作成を行います。

コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

F.1.5 証明書/CRLの取得

証明書/CRLは、証明書サーバから取得します。証明書を取得するには、以下の方法があります。

・ 証明書サーバ(InfoCA)のCA運用管理利用者機能のWebツールを使用して取得します。

証明書/CRLの取得方法の詳細については、“Systemwalker/PkiMGR 説明書”を参照してください。

F.1.6 証明書/CRLの登録

証明書/CRLおよび鍵の登録は、表F.5 証明書/CRLおよび鍵の登録のコマンドで行います。

表F.5 証明書/CRLおよび鍵の登録

コマンド 説明

cmentcert 取得した証明書を証明書/鍵管理環境へ登録します。

cmentcrl 取得したCRL(証明書失効リスト)を証明書/鍵管理環境へ登録します。

cmenterkey PKCS#8形式の鍵を証明書/鍵管理環境に登録します。

コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

F.1.7 証明書/CRLの管理

利用者の証明書には有効期限があるため、証明書の再取得、再登録が必要となります。そのため、証明書の管理を行なうためのコ

マンドが用意されています。証明書の管理は、表F.6 証明書/CRLの管理のコマンドで行います。

表F.6 証明書/CRLの管理

コマンド 説明

cmlistcert 証明書/鍵管理環境に登録されている証明書の一覧を表示します。

cmdspcert 指定された証明書の内容を表示します。

cmlistcrl 証明書/鍵管理環境に登録されているCRLの一覧を表示します。

cmrmcert 証明書/鍵管理環境に登録されている証明書を削除します。

コマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

- 483 -

Page 501: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録G 他の非同期通信機能

Interstageでは、非同期通信機能として、以下の3つの機能が提供されています。

イベントサービス

CORBAの規約に準拠した非同期通信機能です。

Interstage JMS

J2EEの規約に準拠した非同期通信機能です。

MessageQueueDirector

富士通が規定した機能豊富な非同期通信機能です。

これらは、どのサービスのアプリケーションと送受信を行うかにより、推奨する非同期通信機能が異なります。

各非同期通信機能とアプリケーション(Servletアプリケーション/EJBアプリケーション/CORBAアプリケーション/コンポーネントトラ

ンザクションサービスのアプリケーション)の組合せの可否、および各非同期通信機能の推奨システム形態を以下に示します。

各アプリケーションとの組合せの可否(◎:推奨、○:使用可、×:使用不可)

Servletアプリケー

ション

EJBアプリケー

ション

CORBAアプリ

ケーション

TDアプリケーショ

ン(注)

イベントサービス ○ ○ ◎ ○

Interstage JMS ◎ ◎ ○ ×

MessageQueueDirector × × ○ ◎

注)TD:コンポーネントトランザクションサービス

イベントサービスの推奨システム形態

Interstage JMSの推奨システム形態

MessageQueueDirectorの推奨システム形態

- 484 -

Page 502: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

Linux、Windows Server(R) for Itanium-based Systems および Windows Server(R) x64 Editions ではMQDのメッセージキューは使用

できません。

- 485 -

Page 503: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

付録H セキュリティ侵害の脅威と対策

MessageQueueDirector(以降MQDと呼びます)は、以下の製品でだけ利用可能です。

・ Interstage Application Server Enterprise Edition

MQDにおけるセキュリティ侵害の脅威と対策について説明します。

なお、MQDが利用する各機能についてのセキュリティ侵害の脅威と対策については、“セキュリティシステム運用ガイド”を参照してく

ださい。

H.1 セキュリティ侵害の脅威

MQDにおけるセキュリティ侵害の脅威について、その概略を説明します。

H.1.1 MQDを使用するアプリケーションの動作モデル

MQDを使用する代表的な2つの動作モデルを以下に示します。

・ イベントチャネル連携サービスを使用して非同期通信を行う場合の構成

・ ACM連携サービスを使用して非同期通信を行う場合の構成

図H.1 イベントチャネル連携サービスを使用して非同期通信を行う場合の構成

- 486 -

Page 504: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

図H.2 ACM連携サービスを使用して非同期通信を行う場合の構成

[図中の用語の説明]

ACM: Asynchronous CoMmunicationAIM: Advanced Information ManagerAPサーバ: アプリケーションサーバ

DB: データベース

DMZ: DeMilitarized ZoneGS: グローバルサーバ

IDCM: Integrated Data Communication ManagerOD: CORBAサービス

TJNL: Transaction JourNaL service

非同期通信を使用するアプリケーションは、一般的なOLTPアプリケーションまたはイベントサービスのアプリケーションとして業務を

実行します。当該アプリケーションは、通常、イントラネット内で動作し、DMZ(DeMilitarized Zone)上で動作するCORBAクライアントプ

ログラムなどから呼び出されます。

このクライアントプログラムは、単独のCORBAのクライアントプログラムとして実行されることも、Webブラウザ経由で実行されることもあ

ります。どちらの形態であっても、DMZとイントラネット領域間のアクセスはファイアウォールを経由させるのが一般的です。

H.1.2 保護するべき資源

MQDを使用する際に、保護するべき資源について説明します。

保護対象機能

以下に示す機能および手順が保護の対象になります。

・ MQDの環境作成/削除

- 487 -

Page 505: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

・ MQDの起動/停止

・ メッセージを送受信するアプリケーションの運用操作

・ MQDの運用操作(状態表示、定義変更、およびキューの状態変更など)

・ MQDの上位サービスの環境作成/削除

・ MQDの上位サービスの起動/停止

・ MQDの上位サービスの運用操作

どの機能を使用するかは、利用者の動作モデルによって異なります。ここで列挙した機能が、MQD利用時のすべてのケースに該当

するわけではありません。

保護対象資源

MQDでは以下に示す資源が使用されます。高度なセキュリティ対策が要求される場合は、これらの資源をセキュリティ上の保護対象

とすることが望まれます。

機能 保護対象資源

MQDの環境作成/削除 ・ MQD環境定義ファイル

・ メッセージ蓄積ファイルなどのMQD環境定義で指定

したディレクトリおよびファイル

・ MQDシステムの環境

・ システムログ

MQDの起動/停止 ・ メッセージ蓄積ファイルなどのMQD環境定義で指定

したディレクトリおよびファイル

・ MQDシステムの環境

・ システムログ

メッセージを送受信するアプリケーションの運用操

・ ユーザアカウント

・ メッセージ蓄積ファイルなどのMQD環境定義で指定

したディレクトリおよびファイル

・ メッセージキュー

・ メッセージ

MQDの運用操作(状態表示、定義変更、および

キューの状態変更など)・ ユーザアカウント

・ メッセージ蓄積ファイルなどのMQD環境定義で指定

したディレクトリおよびファイル

・ メッセージキュー

・ システムログ

MQDの上位サービスの環境作成/削除 ・ MQDの上位サービスのサービス定義ファイル

・ MQDシステムの環境

・ MQDの上位サービスのサービス環境

・ システムログ

MQDの上位サービスの起動/停止 ・ メッセージ蓄積ファイルなどのMQD環境定義で指定

したディレクトリおよびファイル

・ MQDシステムの環境

・ MQDの上位サービスのサービス環境

・ システムログ

- 488 -

Page 506: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

機能 保護対象資源

・ IDCMの資源(ACM連携サービスの場合)

・ イベントサービスの資源(イベントチャネル連携サー

ビスの場合)

MQDの上位サービスの運用操作 ・ メッセージ蓄積ファイルなどのMQD環境定義で指定

したディレクトリおよびファイル

・ MQDシステムの環境

・ MQDの上位サービスのサービス環境

・ システムログ

・ IDCMの資源(ACM連携サービスの場合)

・ イベントサービスの資源(イベントチャネル連携サー

ビスの場合)

・ メッセージキュー

・ メッセージ

・ 通信上のデータ(プロトコル)

MQD特有の保護対象資源の配置場所を以下に示します。

・ MQD環境定義ファイル

利用者が任意の格納場所に保存します。

・ メッセージ蓄積ファイルなどのMQD環境定義で指定したディレクトリおよびファイル

MQD環境定義ファイルで指定したディレクトリに指定したファイル名で作成されます。

・ MQDシステムの環境

MQDをインストールしたディレクトリ配下のmqdディレクトリにMQDシステム名のディレクトリとして作成されます。

クラスタでMQDを使用する場合は、MQD環境定義ファイルの[Cluster]セクションで指定したディレクトリにMQDシステム名のディレ

クトリとして作成されます。

・ MQDの上位サービスのサービス定義ファイル

利用者が任意の格納場所に保存します。

・ MQDの上位サービスのサービス環境

MQDシステムの環境配下にサービス名のディレクトリとして作成されます。

・ メッセージキュー

MQDシステムの中に作成されます。

・ メッセージ

メッセージキューの中に蓄積されます。

・ イベントサービスの資源

イベントサービスの仕様に従います。詳細は、“アプリケーション作成ガイド(イベントサービス編)”を参照してください。

・ IDCMの資源

IDCMをインストールした配下に作成されます。

H.1.3 資源に対して考えうる脅威

MQDが保護対象とするべき資源に対して想定できる脅威を以下に示します。

保護対象資源 脅威

MQD環境定義ファイル ・ 情報漏洩

・ ファイル自体の破壊

- 489 -

Page 507: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

保護対象資源 脅威

メッセージ蓄積ファイルなどのMQD環境定義で

指定したディレクトリおよびファイル

・ 情報改ざん

・ 情報漏洩

・ ファイル自体の破壊

MQDシステムの環境 ・ 情報改ざん

・ 情報漏洩

・ ファイル自体の破壊

MQDの上位サービスのサービス定義ファイル ・ 情報漏洩

・ ファイル自体の破壊

MQDの上位サービスのサービス環境 ・ 情報改ざん

・ 情報漏洩

・ ファイル自体の破壊

メッセージキュー ・ メッセージキューの属性および状態の変更

・ メッセージキューの削除

メッセージ ・ 情報漏洩

・ メッセージの削除

通信上のデータ(プロトコル) ・ 情報改ざん

・ 情報漏洩

イベントサービスの資源 ・ “セキュリティシステム運用ガイド”を参照してください。

IDCMの資源 ・ 情報改ざん

・ 情報漏洩

・ ファイル自体の破壊

H.2 セキュリティ侵害の対策

保護資源に対して考えうる脅威への対策について、以下に示します。

加えられる可能性のある脅威 対策

・ 情報漏洩

・ 情報改ざん

・ ファイル自体の破壊

・ 利用者の限定

・ アカウントの管理

・ 別媒体での管理(定義ファイル)

・ メッセージキューの属性変更および状態変更

・ メッセージキューの削除

・ 利用者の限定

・ アカウントの管理

・ メッセージの削除

・ メッセージの漏洩

・ 利用者の限定

・ アカウントの管理

・ 通信プロトコルの漏洩 ・ ユーザ論理でのメッセージ本体の暗号化

情報漏洩、情報改ざんおよびファイル自体の破壊への対策

MQDシステムが使用する各ファイルに対して適切なアクセス権限を設定していないと悪意のある利用者によりファイル内のデータを

読み出されたり、ファイル自体を破壊される可能性があります。ファイルを破壊されるとMQDシステムが動作できないなど様々な問題

が発生します。

- 490 -

Page 508: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

このような場合に備えて、mqdsetupコマンドを使用してMQDシステムの環境を作成する際に、-gオプションにMQD利用者グループを

指定することを推奨します。

当該オプションを指定してMQDシステムの環境を作成すると、MQD環境定義で指定した各ディレクトリ、ファイルおよびMQDシステ

ムの環境はスーパユーザおよびMQD利用者グループだけが安全に利用できるようになります。

また、MQD環境定義ファイルで指定した各ディレクトリやファイルの位置やMQDの上位サービスのセットアップ内容を簡単に特定さ

れないために、各環境定義ファイルを使用した後は、当該定義ファイルをサーバ上に残さずフロッピーディスクなどの別の媒体で管理

することを推奨します。

なお、ユーザアカウントなどオペレーティングシステムが管理する資源については、各オペレーティングシステムが推奨する方法に

従って利用者の責任で管理してください。

メッセージキューの属性変更、状態変更および削除への対策

MQDシステムの環境を作成する際にMQD利用者グループ指定していれば、メッセージキューの属性変更、状態変更および削除は

スーパユーザおよびMQD利用者グループだけが利用できます。

また、MQDシステムの環境を作成する際にMQD利用者グループを指定していなければスーパユーザだけが利用できます。

したがって、ユーザアカウントの管理を確実に行うことで不特定多数のユーザがMQDシステム内のメッセージキューの各種操作を行

うことを制限することができ、脅威への有効な対策となります。

ユーザアカウントなどオペレーティングシステムが管理する資源については、各オペレーティングシステムが推奨する方法に従って利

用者の責任で管理してください。

メッセージの漏洩および削除への対策

メッセージの漏洩および削除に対しても上記“メッセージキューの属性変更、状態変更および削除への対策”と同じ対策が有効で

す。

また、アプリケーションでユーザログを採取するなどの理由により、送信したメッセージや受信したメッセージに設定したユーザデータ

をメッセージキュー以外に出力することがあります。

この様な場合、メッセージキューの中のデータは保護されていますが、ユーザログとして出力したファイルに適切なアクセス権限を設

定していないと結果的にユーザデータが漏洩または改ざんされる可能性があります。

MQDを利用するアプリケーションが任意に作成するファイルに対しても、MQDシステムと同じアクセス権限を設定することを推奨しま

す。

通信プロトコルの漏洩

イントラネットのように特定の利用者にだけ開放されている環境内においても、伝達経路内のネットワークを通過するプロトコルやメッ

セージが漏洩する可能性があります。

送信用のサーバと受信用のサーバをイントラネットに接続せず、直接接続することでこの様な問題に対処できます。

なお、直接接続できない場合は、必要に応じて送信側のアプリケーションと受信側のアプリケーションでユーザデータを暗号化する

ことで脅威への対策を行ってください。

- 491 -

Page 509: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

用語集 ACM

グローバルサーバ上のAIMの機能です。アプリケーション間のメッセージ保証型の非同期通信を実現する機能です。システム間

の通信にはIDCMを使用しています。

Asynchronous CoMmunicationの略。

ACM連携サービス

ネットワーク(LANやWAN)を介して、システム(UNIXサーバ、Windowsサーバおよびグローバルサーバ)間でメッセージ交換を

行うサービスです。システム間の通信には、IDCM(Integration Data Communication Manager)を使用しています。他のUNIXサー

バまたはWindowsサーバ上のMQDアプリケーションとの間、および、グローバルサーバ上のAIMアプリケーションとの間でメッセー

ジの送受信ができます。

IORファイル

ネットワーク上における通信先のオブジェクトを一意に特定するためのオブジェクトリファレンスが格納されたファイルです。

MIME

インターネットの電子メールで、1行の文字数制限や、メールの 大サイズ制限などを解消し、かつ、マルチメディア・データといっ

た文字以外のデータを送受信可能にするための規約です。

Multipurpose Internet Mail Extensionsの略。

MQDシステム名

MQDのシステム環境に付けられた名前です。MQDを識別するために使用されます。

MQD代表メールアドレス

SMTP連携サービスでメールの送信やデッドレターを受信するためのメールアドレスです。

PSYS

ACM連携サービスにおいて、IDCMを利用してシステム間の連携を行う場合に、連携先の計算機システムのことを相手システム

(PSYS)と呼びます。

S/MIME

RSAと電子メール・ベンダ各社で作りあげたインターオペラブルなメッセージ通信標準であり、以下を統合したものです。

・ MIME: インターネット上でさまざまなファイルを扱えるようにしたメッセージ通信のデファクト標準

・ 公開鍵暗号方式のPKCS#7および#10: 標準的な暗号化方式

・ X.509電子認証(ディジタルID): ユーザ間の認証を行うための仕組み

・ RSA公開鍵暗号方式 (RSA Public KeyCryptosystem)

SMTP

インターネットの電子メールを送信するためのプロトコルです。メール受信には利用できません。SMTPは、二つのメールシステム

がどのように対話するかを指定し、メール交換の制御メッセージの形式を定めています。サーバ同士でのメール転送にも、SMTPが使われます。

Simple Mail Transfer Protocolの略。

SMTP連携サービス

ネットワーク(インターネットやイントラネット)を介して、システム(UNIXサーバ)間でメッセージ交換を行うサービスです。システム間

の通信には、インターネットの電子メールシステムを使用しています。他のUNIXサーバ上のMQDアプリケーションとの間でメッセー

ジの送受信ができます。

- 492 -

Page 510: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

URLリストファイル

通信先のオブジェクトリファレンスを登録しているネーミングサービスのURLが格納されたファイルです。ネーミングサービスのURLは複数格納することができます。

イベントチャネル連携サービスでは、通信先のオブジェクトリファレンスを獲得するために、URLリストファイルに格納されているネー

ミングサービスのURLへ順次問い合わせを行います。

イベントチャネル連携サービス

ネットワーク(LANやWAN)を介して、異なるサーバ間でイベントデータの交換を行うサービスです。サーバ間の通信には、IIOPを使用しています。異なるサーバに接続するイベントサービスのアプリケーション間(コンシューマとサプライヤとの間)で非同期なイベ

ントデータの交換ができます。

サービス定義

MQDの拡張機能(同報配信サービス、ACM連携サービス、イベントチャネル連携サービスおよびSMTP連携サービス)に関する

各種環境情報を記述した定義体です。

受信キュー

システム間の連携サービスにおいて、メッセージを受信するために使用するメッセージキューのことです。受信したメッセージが一

時的に格納保存されます。

送信キュー

システム間の連携サービスにおいて、メッセージを送信するために使用するメッセージキューのことです。送信するメッセージが一

時的に格納保存されます。

同報配信サービス

同じメッセージを同時に複数の相手へ送信するサービスです。ACM連携サービスやSMTP連携サービスと併用して利用します。

メッセージキュー

メッセージ交換を行うときに一時的にメッセージを格納しておく場所(器)です。

公開鍵暗号方式

暗号鍵と復号鍵に異なる鍵を利用する方式。暗号鍵は公開し、復号鍵は秘密にして、情報の送り手は受け手の公開した暗号鍵

を用いて暗号化し、受け手は秘密としている自分の復号鍵を用いて復号化します。このため、多対多の通信に適しています。ま

た、異なる鍵を用いて、送り手の確認や通信の事実の認否などを行う相手認証(電子署名)を実現できます。代表的な方式にRSAがあります。

デッドレター

SMTP連携サービスにおいて、他システムに送信したメッセージが受信側のアプリケーションまで届かずに、行き先不明となって

戻ってきたメッセージのことです。

電子証明書

電子署名の正当性を確認するための電子的な証明書です。印鑑証明書に相当します。

電子証明書ファイル

電子証明書が格納されたファイルです。

電子署名

電子メールやオンライン取引きなどにおいて発信されたメッセージが、正当な発信者から発信され、改ざんやなりすましが途中で

行われていないことを示すための方法です。手書きのサインに対して、デジタル・サインと言います。公開鍵暗号方式と呼ばれる暗

号化技術を使って実現されています。

- 493 -

Page 511: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

秘密鍵

メールの盗聴を防止するための電子的な鍵です。共通鍵(秘密鍵)暗号方式と呼ばれる暗号化技術で使用される暗号鍵の一つ

です。

秘密鍵暗号方式

暗号化に用いる暗号鍵と復号化に用いる復号鍵に同じ鍵を利用する方式。暗号化した情報の送り手と受け手はそれぞれ同じ鍵

を秘密に持つ必要があります。代表的な方式にDES(Data Encryption Standard)があります。

秘密鍵ファイル

暗号化のための秘密鍵が格納されたファイルです。

ワークユニット

Interstageのオンライントランザクション処理を行うサーバアプリケーションを動作させるための、プログラムの実行環境のことです。

- 494 -

Page 512: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

索 引[記号]

.forwardファイル.....................................................................357

[A]APM..........................................................................................77

[C]CA...........................................................................................354

[I]IDCMホスト定義.....................................................................387

[M]MD..........................................................................................354MNGRセクション....................................................................237MQD環境定義.........................................................................39MQD環境定義ファイル......................................................33,34MQDサーバ識別子...............................................................267MQD代表メールアドレス................................................347,357MQD利用者グループ..............................................................38

[P]PKCS......................................................................................355PKCS#7..................................................................................355PSYSセクション......................................................................238

[Q]QUEUEセクション..................................................................239

[R]RQUEUEセクション................................................................241

[S]S/MIME..................................................................................346sendmail..................................................................................356SQL記述ファイル.....................................................................59

[X]XAライブラリ.............................................................................77XA連携プログラム...................................................................76

[あ]暗号化....................................................................................3521方向の非同期通信................................................................11運用イベント情報.....................................................................23運用イベント通知.....................................................................22エラー種別.............................................................................196エラー詳細コード...................................................................196

[か]改ざん検出.............................................................................353鍵ペア.....................................................................................354カーソル....................................................................................13クライアント/サーバ型の非同期通信.......................................11クラスタシステム.................................................380,403,425,442公開鍵....................................................................................354

[さ]サイト証明書...........................................................................480サイト秘密鍵...........................................................................480サーバ間の非同期通信.........................................................258サービス環境定義...........................................................208,360サービス定義.....................................................209,236,298,361サービスの通信制御..............................................................287システム制御ファイル...............................................................33システム制御用データベーススペース...................................35システム制御用テーブル.........................................................35受信キュー......................................................................225,267受信用メールアドレス......................................................347,357状態遷移プロシジャ.................................................394,414,453証明書....................................................................................355Symfoware/RDBトランザクション連携.....................................24送信キュー......................................................................225,267送信チャネル識別子..............................................................267

[た]対称鍵....................................................................................354チャネルコネクション..............................................................267デッドレター............................................................................352電子署名................................................................................355盗聴防止................................................................................352同報グループ.........................................................................205同報配信................................................................................204トランザクション管理ファイル....................................................33トランザクション機能.................................................................15

[は]配信保留................................................................................206パッキング転送機能........................................................232,272発行局証明書........................................................................480非対称鍵................................................................................354秘密鍵....................................................................................354プライオリティ............................................................................18プライオリティ..........................................................................229

[ま]メッセージ格納域管理ファイル................................................33メッセージ格納テーブル..........................................................35メッセージ格納ファイル............................................................33メッセージ格納用データベーススペース................................35メッセージキュー管理ファイル.................................................33メッセージキューのアクセス状態.............................................21メッセージ交換.......................................................................224メッセージヘッダ.........................................................................9メッセージ保証................................................................206,223メッセージ保証レベル..............................................................18文字コード変換......................................................................231

[や]ユニット.....................................................................................10ユーザPIN..............................................................................482

- 495 -

Page 513: MessageQueueDirector - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090097/B1WN...第6章 アプリケーションの作成 MQDを使用するアプリケーションの作成方法について説明しています。第7章

[ら]リソース...................................................................................436リソース管理プログラム.......................................................77,78リソースグループのプロパティ...............................................436リソースマネージャ情報...........................................................76

[わ]ワークユニット定義..............................................................76,79

- 496 -