MessageQueueDirector説明書
目次 索引 前ページ次ページ

第2部 拡張機能編> 第11章 イベントチャネル連携サービス> 11.3 環境作成> 11.3.3 環境定義の記述

11.3.3.1 サービス定義の記述

 サービス定は、メッセージの送受信で使用するイベントチャネルに関する各種情報とイベントチャネル連携サービスの基本情報を記述します。サービス定義は以下のセクションから構成されます。

 表11.17にメッセージの送受信で必要なセクションの組み合わせを示します。なお、表中の[ ]の中に示す値は、設定値を意味します。

[表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リストファイルの記述”を参照してください。

IORファイルを使用する相手サーバの指定

 送信側のサーバで、SERVERセクションのiorfileキーワードに受信側のサーバで作成したIORファイルを指定します。

送信側のサーバ

[SERVER]
name          = 送信先MQDサーバ識別子 SV1
iorfile       = 送信先サーバから配布されたIORファイルの絶対パス名

送信側のサーバの非同期メッセージ基盤がMQDの場合

 送信側のサーバで、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

記述内容の説明

a) MNGRセクション

 イベントチャネル連携サービスの動作する基本情報を記述します。記述内容を表11.18に示します。

[表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バイト以内の英大文字と数字で指定します。

[表11.19 エラー事象ごとのリトライ可否]

エラー事象

数値またはendless

continue

イベントチャネル連携サービスの送信先MQDサーバが未起動

イベントチャネル連携サービスの送信先MQDサーバの受信キューの蓄積イベントデータ数が最大蓄積数を超えた

イベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、一時的な異常が発生した

メッセージ送信先のメッセージキューまたはイベントチャネルが閉塞していた

メッセージ送信先のイベントチャネル連携サービスの非同期メッセージ基盤がMQDの場合に、メッセージキューが閉塞していた

×

通信異常

×

メモリ不足

×

イベントチャネルへの接続異常

×

イベントチャネル連携サービスの環境に異常がある

×

×

イベントチャネル連携サービスのサービス起動時に、送信キューが停止していた

×

×

何らかの異常により、相手サーバの検索に失敗した

×

×

サービスの継続に困難な異常が発生した

×

×

b) SERVERセクション

 イベントチャネル連携サービスが他サーバにメッセージを送信する際に送信先のサーバを特定する相手サーバ情報を記述します。SERVERセクションは1〜128まで定義できます。

 なお、SERVERセクションの内容を変更(nameキーワードとメッセージ送信先の関係を変更)する場合はサービス環境を再作成する必要があります。

 この定義は、メッセージを送信するサーバにだけ必要です。記述内容については表11.20を参照してください。

[表11.20 SERVERセクションの記述内容]

キーワード

省略

データ型

記述方法

記述内容の説明

Name

不可

文字列

8バイト以内の英数字で指定します。(注1)

メッセージ送信先のMQDサーバ識別子を指定します。

Iorfile

不可

文字列

255バイト以内の文字列で指定します。

メッセージ送信先のイベントチャネル連携サービスのIORファイル名(注2)、またはネーミングサービスのURLリストファイル名を絶対パスで指定します。(注3)

  1. グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。
  2. IORファイル、URLリストファイルはメッセージを送信するサーバのローカルディスク上に格納してください。
  3. グローバルサーバと通信を行う場合、必ずIORファイルを指定してください。

 URLリストファイルの詳細については、“URLリストファイルの記述”を参照してください。

c) CHANNELセクション

 メッセージの送信で使用するキューについて、送信キューと受信キューとの対応関係などの送信キュー情報を記述します。CHANNELセクションは1〜128まで定義でき、メッセージを送信するサーバ側に、送信先の受信キュー単位に必要です。記述内容については表11.21を参照してください。

[表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キーワード値に指定した時間(秒)が経過しても、本キーワード値に指定した数にメッセージ数が満たない場合、その時点でメッセージを相手システムに送信します。
  • 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サービスにより文字コードの変換が行われます。

また、“TEXT”または“LIMITEDTEXT”を指定した場合は、メッセージの終端をNULL文字としてメッセージを格納してください。

  1. グローバルサーバと通信を行う場合、先頭が英大文字で始まる8バイト以内の英大文字と数字で指定します。
  2. グローバルサーバと通信を行う場合、チャネル名だけを指定します。
  3. MQDのメッセージヘッダ通知機能は、送信側のサーバの非同期メッセージ基盤がMQDの場合にだけ使用できます。

d) RCHANNELセクション

 メッセージの受信で使用するキューについて、受信キューの属性(集信数)などの受信キュー情報を記述します。RCHANNELセクションは1〜128まで定義でき、メッセージを受信するサーバ側に、受信キュー単位に必要です。記述内容については表11.22を参照してください。

[表11.22 RCHANNELセクションの記述内容]

キーワード

省略

データ型

記述方法

記述内容の説明

rcvname

不可

文字列

  • 自サーバの受信キューがイベントチャネルまたはJMSのキューの場合は、255バイト以内の英数字、“: ”(コロン)および“_”(アンダースコア)で指定します。“グループ名::チャネル名”で指定します。
  • 自サーバの受信キューがMQDのメッセージキューの場合は、63文字以内の英数字と“_”(アンダースコア)で指定します。または、31文字以内の全角文字で指定します。

受信キュー名を指定します。

recvnum

数値

1〜128の範囲で指定します。

省略値は“1”です。

受信キューに送信する送信キュー数を指定します。

集信数はMQDシステム内で最大128までとなります。

ectype

文字列

channelまたはqueueを指定します。

省略値は“channel”です。

受信側のサーバの非同期メッセージ基盤により以下を指定します。

  • ノーティフィケーションサービスまたはJMSの場合は、channelを指定します。
  • MQDの場合は、queueを指定します。

目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED