サービス定義は、メッセージの送受信で使用するイベントチャネルに関する各種情報とイベントチャネル連携サービスの基本情報を記述します。サービス定義は以下のセクションから構成されます。
1個のMNGRセクション
0個以上のSERVERセクション
0個以上のCHANNELセクション
0個以上のRCHANNELセクション
表5.13 メッセージの送受信で必要なセクションの組み合わせにメッセージの送受信で必要なセクションの組み合わせを示します。
セクション | 送信の場合 | 受信の場合 | |
---|---|---|---|
ノーティフィケーションサービス / JMS | ノーティフィケーションサービス / JMS | ||
MNGR | sproc | ○ | ― |
rproc | ― | ○ | |
systemid | ○ | ○ | |
repository | ― | ○ | |
errorretry | △ | ― | |
SERVER | name | ○ | ― |
iorfile | ○ | ― | |
CHANNEL | channelid | ○ | ― |
sndname | ○ | ― | |
rcvname | ○ | ― | |
evttype | △ | ― | |
server | ○ | ― | |
packmsg_cnt | △ | ― | |
packmsg_wtime | △ | ― | |
RCHANNEL | rcvname | ― | ○ |
recvnum | ― | △ |
○:必要、△:選択、―:不要
サービス定義は以下の形式で記述します。
記述形式
[MNGR] sproc = メッセージ送信指定 rproc = メッセージ受信指定 systemid = MQDサーバ識別子 repository = インプリメンテーションリポジトリID errorretry = エラーリトライ回数 [SERVER] name = 送信先MQDサーバ識別子 iorfile = 送信先イベントチャネル連携サービスのIORファイル名 [CHANNEL] channelid = 送信チャネル識別子 sndname = 送信キュー名 rcvname = 相手サーバの受信キュー名 evttype = イベントデータの形式 server = 送信先MQDサーバ識別子 packmsg_cnt = パッキング数またはユニット内メッセージ数 packmsg_wtime = 最大遅延時間 [RCHANNEL] rcvname = 自サーバの受信キュー名 recvnum = 集信数
次に通信モデルに応じたサービス定義の記述方法を以下に示します。なお、以下に示す各通信モデルの定義イメージは、通信モデルの特定に関連する部分だけを抜き出して説明しているため、その他の必要な定義については、表5.13 メッセージの送受信で必要なセクションの組み合わせで確認してください。
また、グローバルサーバへメッセージを送信する場合以外の定義イメージでは、ノーティフィケーションサービス、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リストファイルの詳細については、“5.3.3.3 URLリストファイルの記述”を参照してください。
IORファイルを使用する相手サーバの指定
送信側のサーバで、SERVERセクションのiorfileキーワードに受信側のサーバで作成したIORファイルを指定します。
送信側のサーバ [SERVER] name = 送信先MQDサーバ識別子 SV1 iorfile = 送信先サーバから配布されたIORファイルの絶対パス名
グローバルサーバにメッセージを送信する場合
送信側のサーバで、CHANNELセクションのevttypeキーワードに“any”を指定します。また、msghinfキーワードは指定しません。
送信側のサーバ
[CHANNEL] channelid = 送信チャネル識別子 ID1 sndname = 送信キュー名 S1 rcvname = グローバルサーバの受信イベントチャネル名 R1 server = グローバルサーバのMQDサーバ識別子 SV1 evttype = any packmsg_cnt = パッキング数 packmsg_wtime = 最大遅延時間
記述内容の説明
a) MNGRセクション
イベントチャネル連携サービスの動作する基本情報を記述します。記述内容を表5.14 MNGRセクションの記述内容に示します。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
sproc | 可 | 数値 | 0または1を指定します。 | メッセージを送信する場合1を指定します。 |
rproc | 可 | 数値 | 0または1を指定します。 | メッセージを受信する場合1を指定します。 |
systemid | 不可 | 文字列 | 8バイト以内の英数字で指定します。(注2) | 本サービスが動作するMQDシステムに対応したMQDサーバ識別子を指定します。MQDサーバ識別子は、本サービスで接続するサーバ間で一意な識別子を指定してください。 |
repository | rprocが1の時不可 | 文字列 | systemidキーワードで指定したMQDサーバ識別子に固定文字列“NSGWSERVERREPID”を付加した文字列を指定します。 | イベントチャネル連携サービスのCORBAサービスへの登録で指定したインプリメンテーションリポジトリIDを指定します。 |
errorretry | 可 | 数値または文字列 | 0~2147483647の数値、またはendlessを指定します。 | エラー発生時のリトライ回数を指定します。endlessの場合無限リトライとなります。リトライ可能なエラー事象については表5.15 エラー事象ごとのリトライ可否を参照してください。 |
“continue”を指定します。 | 無限リトライを意味します。endlessを指定した場合よりより広いエラー事象でもリトライを継続します。リトライ可能なエラー事象については表5.15 エラー事象ごとのリトライ可否を参照してください。 |
注意
sprocまたはrprocのどちらか一方に必ず1を設定してください。
グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。
エラー事象 | 数値またはendless | continue |
---|---|---|
イベントチャネル連携サービスの送信先MQDサーバが未起動 | ○ | ○ |
イベントチャネル連携サービスの送信先MQDサーバの受信キューの蓄積イベントデータ数が最大蓄積数を超えた | ○ | ○ |
イベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、一時的な異常が発生した | ○ | ○ |
メッセージ送信先のメッセージキューまたはイベントチャネルが閉塞していた | ○ | ○ |
メッセージ送信先のイベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、メッセージキューが閉塞していた | × | ○ |
通信異常 | × | ○ |
メモリ不足 | × | ○ |
イベントチャネルへの接続異常 | × | ○ |
イベントチャネル連携サービスの環境に異常がある | × | × |
イベントチャネル連携サービスのサービス起動時に、送信キューが停止していた | × | × |
何らかの異常により、相手サーバの検索に失敗した | × | × |
サービスの継続に困難な異常が発生した | × | × |
b) SERVERセクション
イベントチャネル連携サービスが他サーバにメッセージを送信する際に送信先のサーバを特定する相手サーバ情報を記述します。SERVERセクションは0~128個まで定義できます。
なお、SERVERセクションの内容を変更(nameキーワードとメッセージ送信先の関係を変更)する場合はサービス環境を再作成する必要があります。
この定義は、メッセージを送信するサーバにだけ必要です。記述内容については表5.16 SERVERセクションの記述内容を参照してください。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
name | 不可 | 文字列 | 8バイト以内の英数字で指定します。(注1) | メッセージ送信先のMQDサーバ識別子を指定します。 |
iorfile | 不可 | 文字列 | 255バイト以内の文字列で指定します。 | メッセージ送信先のイベントチャネル連携サービスのIORファイル名、またはネーミングサービスのURLリストファイル名を絶対パスで指定します。(注2) (注3) |
注意
グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。
IORファイル、URLリストファイルはメッセージを送信するサーバのローカルディスク上に格納してください。
グローバルサーバと通信を行う場合、必ずIORファイルを指定してください。
URLリストファイルの詳細については、“5.3.3.3 URLリストファイルの記述”を参照してください。
c) CHANNELセクション
メッセージの送信で使用するキューについて、送信キューと受信キューとの対応関係などの送信キュー情報を記述します。CHANNELセクションは0~128個まで定義でき、メッセージを送信するサーバ側に、送信先の受信キュー単位に必要です。記述内容については表5.17 CHANNELセクションの記述内容を参照してください。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
channelid | 不可 | 文字列 | 8バイト以内の英数字で指定します。(注1) | 送信チャネル識別子を指定します。 |
sndname | 不可 | 文字列 | 255バイト以内の英数字、“: ”(コロン)および“_”(アンダースコア)で指定します。“グループ名::チャネル名”で指定します。 | 送信キュー名を指定します。 |
rcvname | 不可 | 文字列 | 255バイト以内の英数字、“: ”(コロン)および“_”(アンダースコア)で指定します。“グループ名::チャネル名”で指定します。(注2) | メッセージ送信先の受信キュー名を指定します。 |
evttype | 可 | 文字列 | structuredまたはanyを指定します。 | メッセージの形式を指定します。ノーティフィケーションサービスを使用するアプリケーションがany型のイベントデータを使用する場合は、anyを指定します。その他の場合は、structuredを指定します。 |
server | 不可 | 文字列 | 8バイト以内の英数字で指定します。(注1) | メッセージ送信先のMQDサーバ識別子を指定します。 |
packmsg_cnt | 可 | 数値 | 1~100の範囲で指定します。 | 複数のメッセージをパッキングして送信する場合に、パッキングするメッセージの最大数を指定します。 |
packmsg_wtime | 可 | 数値 | 0~300(秒)の範囲で指定します。 | メッセージがパッキング数に達しない場合に、待ち合わせをするための送信待ち時間(秒)を指定します。 |
注意
グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。
グローバルサーバと通信を行う場合、チャネル名だけを指定します。
d) RCHANNELセクション
メッセージの受信で使用するキューについて、受信キューの属性(集信数)などの受信キュー情報を記述します。RCHANNELセクションは0~128個まで定義でき、メッセージを受信するサーバ側に、受信キュー単位に必要です。記述内容については表5.18 RCHANNELセクションの記述内容を参照してください。
キーワード | 省略 | データ型 | 記述方法 | 記述内容の説明 |
---|---|---|---|---|
rcvname | 不可 | 文字列 | 255バイト以内の英数字、“: ”(コロン)および“_”(アンダースコア)で指定します。“グループ名::チャネル名”で指定します。 | 受信キュー名を指定します。 |
recvnum | 可 | 数値 | 1~128の範囲で指定します。 | 受信キューに送信する送信キュー数を指定します。 |
1:1型の通信モデル
送信側サーバのCHANNELセクションに対して、受信側サーバのRCHANNELセクションが1:1に対応するようにサービス定義を指定します。RCHANNELセクションのrecvnumキーワードは指定しません。
図5.24 1:1型の通信モデルに1:1型の通信モデルの定義イメージを示します。
図5.24 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キーワードは指定しません。
図5.25 配信型の通信モデルに配信型の通信モデルの定義イメージを示します。
図5.25 配信型の通信モデル
送信側サーバの定義 [CHANNEL] sndname = 送信キュー名 S1 rcvname = 相手サーバの受信キュー名 R1 [CHANNEL] sndname = 送信キュー名 S1 rcvname = 相手サーバの受信キュー名 R2
受信側サーバの定義 [RCHANNEL] rcvname = 自サーバの受信キュー名 R1 [RCHANNEL] rcvname = 自サーバの受信キュー名 R2
集信型の通信モデル
送信側サーバではrcvnameキーワードとserverキーワードの値の組み合わせが同じ複数のCHANNELセクションを作成します。受信側サーバでは、CHANNELセクションのrcvnameキーワードに対応する一つのRCHANNELセクションを作成します。RCHANNELセクションのrecvnumキーワードには、対応するCHANNELセクションの数を指定します。
図5.26 集信型の通信モデルに集信型の通信モデルの定義イメージを示します。
図5.26 集信型の通信モデル
送信側サーバの定義 [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セクションを作成します。
図5.27 中継型の通信モデルに中継型の通信モデルの定義イメージを示します。
図5.27 中継型の通信モデル
中継サーバ [CHANNEL] sndname = 送信キュー名 R1 rcvname = 相手サーバの受信キュー名 R2 [RCHANNEL] rcvname = 自サーバの受信キュー名 R1
記述例
イベントチャネル連携サービスの接続例を図5.28 イベントチャネル連携サービスの接続例に示します。また、接続例の送信サーバに対応するサービス定義の記述例を図5.29 サービス定義の記述例に示します。
図5.28 イベントチャネル連携サービスの接続例
図5.29 サービス定義の記述例
[MNGR] # 基本情報 sproc = 1 # メッセージ送信指定 rproc = 1 # メッセージ受信指定 systemid = SERVER01 # MQDサーバ識別子 repository = SERVER01NSGWSERVERREPID # インプリメンテーションリポジトリID errorretry = continue # エラーリトライ回数 [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 = continue # エラーリトライ回数 [SERVER] # 送信先MQDサーバ情報 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 # 集信数
URLリストファイルとは、ネーミングサービス方式で通信する場合に、相手サーバのオブジェクトリファレンスを登録しているネーミングサービスのURLを格納するファイルです。ネーミングサービスのURLは複数格納することができます。
イベントチャネル連携サービスでは、通信先のオブジェクトリファレンスを獲得するために、URLリストファイルに格納されているネーミングサービスのURLへ順次問い合わせを行います。
ネーミングサービスのURLの指定方式を以下に示します。
iiop://<address>[:<port>]
キーワード | 記述内容の説明 |
---|---|
<address> | ホスト名、FQDN、IPアドレスを指定することが可能です。省略はできません。63文字以下で記述してください。 |
<port> | 接続先ORBのポート番号を指定します。 |
以下にURLリストファイルの設定例を示します。
iiop://255.255.255.1:8002 #ネーミングサービスのURL1 iiop://255.255.255.2:8002 #ネーミングサービスのURL2 iiop://255.255.255.255 #ネーミングサービスのURL3
URLリストファイルには、1023個までのURLが指定可能です。
あらかじめ、システムで使用しているネーミングサービスをURLリストファイルに記述しておくことにより、システム内でサーバを移動する時などに環境変更の操作が軽減され、サーバの移動が簡単に行えるようになります。
ネーミングサービスからのオブジェクトリファレンス取得処理は、URLリストファイルの先頭のURLから処理します。そのため、URLリストファイルへ複数のネーミングサービスのURLを記述する場合は、頻繁に接続するネーミングサービスをURLリストファイルの先頭(上位)に記述しておくことにより、性能面で有利になります。