MessageQueueDirector説明書 |
目次
索引
![]() ![]() |
第2部 拡張機能編 | > 第4章 イベントチャネル連携サービス |
送信側と受信側の非同期メッセージ基盤が異なる場合やグローバルサーバなどの他のプラットフォームとの間でイベントチャネル連携サービスを使用したサーバ間連携を行う場合は、表1.26に示す各々の非同期メッセージ基盤で動作するアプリケーションが共通して処理できるメッセージの範囲でアプリケーション論理を作成する必要があります。
各通信形態で通信可能なメッセージの形式とアプリケーション作成時の留意点を以下に示します。
送信側の非同期メッセージ基盤 |
受信側の非同期メッセージ基盤 |
|||
ノーティフィケーションサービス |
JMS |
MQD (注1) (注2) |
グローバルサーバのMQD |
|
ノーティフィケーションサービス |
○ |
形式1 |
形式2 |
形式3 |
JMS |
形式1 |
○ |
形式4 |
形式5 |
MQD (注1) (注3) |
形式2 |
形式4 |
○ |
形式6 (注4) |
グローバルサーバのMQD |
形式3 |
形式5 |
形式6 (注4) |
(注4) |
○:対象非同期メッセージ基盤の形式の範囲で利用できます。
“J2EEユーザーズガイド”に示すメッセージの形式の範囲でアプリケーションを作成してください。
ノーティフィケーションサービスのアプリケーションでは、表1.27の形式のメッセージをMQDのアプリケーションに送信できます。
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 |
|
オクテッド型 |
CORBA_octet |
ブーリアン型 |
CORBA_boolean |
文字列型 |
CORBA_string |
ワイド文字列型 |
CORBA_wstring |
列挙型 |
CORBA_enum |
シーケンス型のオクテッド型 |
CORBA_Sequence_octet |
ノーティフィケーションサービスのアプリケーションでは、表1.28の形式のメッセージをMQDのアプリケーションから受信できます。
CORBAサービスのデータ型 |
C言語での定義 |
文字列型 |
CORBA_string |
シーケンス型のオクテッド型 |
CORBA_Sequence_octet |
ノーティフィケーションサービスのアプリケーションとグローバルサーバのアプリケーションでは表1.29のCORBAサービスのデータ型でメッセージの送受信ができます。
CORBAサービスのデータ型 |
説明 |
基本データ型 |
整数型、浮動小数点型、文字型、オクテット型、ブーリアン型、文字列型が利用可能 |
シーケンス型 (注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. 000030 49 LEN PIC S9(9) BINARY. 000040 49 DAT PIC X(10000). 000050* |
JMSのアプリケーションでは、表1.30の形式のメッセージをMQDのアプリケーションに送信できます。
JMS Message |
対応するCORBAサービスのデータ型 |
ByteMessage |
シーケンス型のオクテッド型 |
TextMessage |
ワイド文字列型 |
JMSのアプリケーションでは、表1.31の形式のメッセージをMQDのアプリケーションから受信できます。
JMS Message |
対応するCORBAサービスのデータ型 |
ByteMessage |
シーケンス型のオクテッド型 |
TextMessage |
文字列型 |
JMSのアプリケーションでは、表1.32の形式のメッセージをグローバルサーバのアプリケーションに送信できます。
JMS Message |
対応するCORBAサービスのデータ型 |
ByteMessage |
シーケンス型のオクテッド型 |
TextMessage |
ワイド文字列型 |
JMSのアプリケーションでは、表1.33の形式のメッセージをグローバルサーバのアプリケーションから受信できます。
JMS Message |
対応するCORBAサービスのデータ型 |
ByteMessage |
シーケンス型のオクテッド型 |
TextMessage |
文字列型 |
非同期メッセージ基盤にノーティフィケーションサービスまたはJMSを使用する場合、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指定してください。
有限の時間を指定した場合、イベントチャネル連携サービスの転送処理中にメッセージの生存時間切れでメッセージが削除されてしまう場合があります。イベントチャネル連携サービスの動作上の問題は発生しませんが、送信側と受信側でメッセージの数に食い違いが発生するなど、運用上の問題になる可能性が高いため、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指定することを強く推奨します。
MQDのアプリケーションと通信するグローバルサーバのアプリケーションについては本製品の機能範囲外のため説明を省略します。
目次
索引
![]() ![]() |