MessageQueueDirector説明書 |
目次
索引
![]() ![]() |
第2部 拡張機能編 | > 第11章 イベントチャネル連携サービス | > 11.3 環境作成 | > 11.3.3 環境定義の記述 |
サービス定義は、メッセージの送受信で使用するイベントチャネルに関する各種情報とイベントチャネル連携サービスの基本情報を記述します。サービス定義は以下のセクションから構成されます。
表11.17にメッセージの送受信で必要なセクションの組み合わせを示します。なお、表中の[ ]の中に示す値は、設定値を意味します。
セクション |
送信の場合 |
受信の場合 |
|||
NS(*) / JMS |
MQD |
NS(*) / JMS |
MQD |
||
MNGR |
sproc |
○ |
○ |
― |
― |
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 = 最大遅延時間 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 iiop://255.255.255.2:8002 #ネーミングサービスのURL2 iiop://255.255.255.255 #ネーミングサービスのURL3 |
URLリストファイルの詳細については、“URLリストファイルの記述”を参照してください。
送信側のサーバで、SERVERセクションのiorfileキーワードに受信側のサーバで作成したIORファイルを指定します。
送信側のサーバ [SERVER] name = 送信先MQDサーバ識別子 SV1 iorfile = 送信先サーバから配布されたIORファイルの絶対パス名 |
送信側のサーバで、CHANNELセクションのectypeキーワードに“queue”およびevttypeキーワードに“structured”を指定します。(メッセージの形式であるevttypeキーワードは、一般的に“structured”を推奨していますが、利用する機能に応じて“any”を指定します)その他のキーワードは利用する機能に応じて指定します。
送信するメッセージは次の2つの形式から選択できます。
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 evttype = structured msgtype = TEXT |
また、受信側のサーバの非同期メッセージ基盤もMQDの場合、以下の2つの機能が利用可能です。定義方法を以下に説明します。
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つの構造体から選択できます。各構造体の詳細については、“アプリケーションの作成方法”の形式5に示す各構造体を参照してください。
グローバルサーバにメッセージを送信する場合、“非有限文字列型構造体”もしくは“非有限バイナリ型構造体”を推奨します。
“有限文字列型構造体”もしくは“有限バイナリ型構造体”を使用する場合、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 ectype = queue msgtype = BIN |
イベントチャネル連携サービスの動作する基本情報を記述します。記述内容を表11.18に示します。
キーワード |
省略 |
データ型 |
記述方法 |
記述内容の説明 |
---|---|---|---|---|
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を指定します。 |
エラー発生時のリトライ回数を指定します。endlessの場合無限リトライとなります。リトライ可能なエラー事象については表11.19を参照してください。 |
continueを指定します。 |
無限リトライを意味します。endlessを指定した場合よりより広いエラー事象でもリトライを継続します。リトライ可能なエラー事象については表11.19を参照してください。 |
|||
sheltername |
可 |
文字列 |
63文字以内の英数字と“_”(アンダースコア)で指定します。または、31文字以内の全角文字で指定します。 |
送信側のサーバの非同期メッセージ基盤がMQDの場合、送信異常メッセージの退避用メッセージキュー名を指定します。
|
エラー事象 |
数値またはendless |
continue |
イベントチャネル連携サービスの送信先MQDサーバが未起動 |
○ |
○ |
イベントチャネル連携サービスの送信先MQDサーバの受信キューの蓄積イベントデータ数が最大蓄積数を超えた |
○ |
○ |
イベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、一時的な異常が発生した |
○ |
○ |
メッセージ送信先のメッセージキューまたはイベントチャネルが閉塞していた |
○ |
○ |
メッセージ送信先のイベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、メッセージキューが閉塞していた |
× |
○ |
通信異常 |
× |
○ |
メモリ不足 |
× |
○ |
イベントチャネルへの接続異常 |
× |
○ |
イベントチャネル連携サービスの環境に異常がある |
× |
× |
イベントチャネル連携サービスのサービス起動時に、送信キューが停止していた |
× |
× |
何らかの異常により、相手サーバの検索に失敗した |
× |
× |
サービスの継続に困難な異常が発生した |
× |
× |
イベントチャネル連携サービスが他サーバにメッセージを送信する際に送信先のサーバを特定する相手サーバ情報を記述します。SERVERセクションは1〜128まで定義できます。
なお、SERVERセクションの内容を変更(nameキーワードとメッセージ送信先の関係を変更)する場合はサービス環境を再作成する必要があります。
この定義は、メッセージを送信するサーバにだけ必要です。記述内容については表11.20を参照してください。
キーワード |
省略 |
データ型 |
記述方法 |
記述内容の説明 |
---|---|---|---|---|
Name |
不可 |
文字列 |
8バイト以内の英数字で指定します。(注1) |
メッセージ送信先のMQDサーバ識別子を指定します。 |
Iorfile |
不可 |
文字列 |
255バイト以内の文字列で指定します。 |
メッセージ送信先のイベントチャネル連携サービスのIORファイル名(注2)、またはネーミングサービスのURLリストファイル名を絶対パスで指定します。(注3) |
URLリストファイルの詳細については、“URLリストファイルの記述”を参照してください。
メッセージの送信で使用するキューについて、送信キューと受信キューとの対応関係などの送信キュー情報を記述します。CHANNELセクションは1〜128まで定義でき、メッセージを送信するサーバ側に、送信先の受信キュー単位に必要です。記述内容については表11.21を参照してください。
キーワード |
省略 |
データ型 |
記述方法 |
記述内容の説明 |
---|---|---|---|---|
channelid |
不可 |
文字列 |
8バイト以内の英数字で指定します。(注1) |
送信チャネル識別子を指定します。 送信チャネル識別子は、MQDシステム内で一意な識別子を指定してください。 |
sndname |
不可 |
文字列 |
|
送信キュー名を指定します。 |
rcvname |
不可 |
文字列 |
|
メッセージ送信先の受信キュー名を指定します。 |
evttype |
可 |
文字列 |
anyまたはstructuredを指定します。 省略値はanyです。 |
メッセージの形式を指定します。グローバルサーバと通信を行う場合またはノーティフィケーションサービスを使用するアプリケーションがany型のイベントデータを使用する場合は、anyを指定します。その他の場合は、structuredを指定します。 |
server |
不可 |
文字列 |
8バイト以内の英数字で指定します。(注1) |
メッセージ送信先のMQDサーバ識別子を指定します。 本値は、SERVERセクションのnameキーワードで指定した値と対応させてください。 |
packmsg_cnt |
可 |
数値 |
1〜100の範囲で指定します。 省略値は“1”(本機能を使用しない)です。 |
以下のいずれかの値を指定します。
|
packmsg_wtime |
可 |
数値 |
0〜300(秒)の範囲で指定します。 省略値は“0”です。 |
メッセージがパッキング数に達しない場合に、待ち合わせをするための送信待ち時間(秒)を指定します。 パッキング転送機能を使用する場合にだけ有効です。 |
ectype |
可 |
文字列 |
channelまたはqueueを指定します。 省略値は“channel”です。 |
送信側のサーバの非同期メッセージ基盤により以下を指定します。
|
msghinf |
可 |
文字列 |
SENDまたはUNSENDを指定します。 省略値は“UNSEND”です。 本定義の値にSENDを設定する場合、ectypeキーワードにqueueを指定してください。(注3) |
MQDのメッセージヘッダ情報通知機能を使用するか否かを指定します。なお、ノーティフィケーションサービスまたはJMSの場合は、UNSENDを指定します。
|
msgtype |
可 |
文字列 |
TEXT、BIN、LIMITEDTEXTまたはLIMITEDBINのいずれかを指定します。 省略値は“BIN”です。 本キーワードを設定する場合、ectypeキーワードにqueueを指定してください。 |
送信側のサーバの非同期メッセージ基盤がMQDの場合、メッセージをどのような形式で送信するか指定します。
“TEXT”または“LIMITEDTEXT”を指定した場合、かつ送信側のサーバと受信側のサーバのコード系が異なる場合は、CORBAサービスにより文字コードの変換が行われます。 また、“TEXT”または“LIMITEDTEXT”を指定した場合は、メッセージの終端をNULL文字としてメッセージを格納してください。 |
メッセージの受信で使用するキューについて、受信キューの属性(集信数)などの受信キュー情報を記述します。RCHANNELセクションは1〜128まで定義でき、メッセージを受信するサーバ側に、受信キュー単位に必要です。記述内容については表11.22を参照してください。
キーワード |
省略 |
データ型 |
記述方法 |
記述内容の説明 |
---|---|---|---|---|
rcvname |
不可 |
文字列 |
|
受信キュー名を指定します。 |
recvnum |
可 |
数値 |
1〜128の範囲で指定します。 省略値は“1”です。 |
受信キューに送信する送信キュー数を指定します。 集信数はMQDシステム内で最大128までとなります。 |
ectype |
可 |
文字列 |
channelまたはqueueを指定します。 省略値は“channel”です。 |
受信側のサーバの非同期メッセージ基盤により以下を指定します。
|
目次
索引
![]() ![]() |