MessageQueueDirector説明書 |
目次
索引
![]() ![]() |
第2部 拡張機能編 | > 第11章 イベントチャネル連携サービス |
送信側と受信側の非同期メッセージ基盤が異なる場合やグローバルサーバなどの他のプラットフォームとの間でイベントチャネル連携サービスを使用したサーバ間連携を行う場合は、表11.28に示す各々の非同期メッセージ基盤で動作するアプリケーションが共通して処理できるメッセージの範囲でアプリケーション論理を作成する必要があります。
各通信形態で通信可能なメッセージの形式とアプリケーション作成時の留意点を以下に示します。
送信側の非同期メッセージ基盤 |
受信側の非同期メッセージ基盤 |
|||
---|---|---|---|---|
ノーティフィケーションサービス |
JMS |
|
グローバルサーバのMQD |
|
ノーティフィケーションサービス |
○ |
形式1 |
形式2 |
形式3 |
JMS |
形式1 |
○ |
形式4 |
形式4 |
MQD (注2) |
形式2 |
形式4 |
○ |
形式5 |
グローバルサーバのMQD |
形式3 |
形式4 |
形式5 |
- |
○: 各非同期メッセージ基盤に対応したメッセージの送信が可能
×: 通信不可能
- : 本機能の機能範囲外
注1) 受信側の非同期メッセージ基盤がMQDの場合、受信できない形式のメッセージを受信するとシテムログにMQD6374のエラーメッセージが出力されます。
注2) 文字列データとして送信するメッセージの終端がNULL文字以外の場合は、自動的にメッセージの終端にNULL文字(1バイト)が付加されます。
“J2EEユーザーズガイド”に示すメッセージの形式の範囲でアプリケーションを作成してください。
ノーティフィケーションサービスのアプリケーションでは、表11.29の形式のメッセージを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 |
ノーティフィケーションサービスのアプリケーションでは、表11.30の形式のメッセージをMQDのアプリケーションから受信できます。
CORBAサービスのデータ型 |
C言語での定義 |
文字列型 |
CORBA_string |
シーケンス型のオクテッド型 |
CORBA_Sequence_octet |
ノーティフィケーションサービスのアプリケーションとグローバルサーバのアプリケーションでは表11.31のCORBAサービスのデータ型でメッセージの送受信ができます。
CORBAサービスのデータ型 |
説明 |
構造体 |
IDL言語で構造体structとして定義したメッセージ |
JMSのアプリケーションでは、表11.32の形式のメッセージをMQDもしくはグローバルサーバのMQDのアプリケーションに送信できます。
JMS Message |
対応するCORBAサービスのデータ型 |
ByteMessage |
シーケンス型のオクテッド型 |
TextMessage |
ワイド文字列型 |
JMSのアプリケーションでは、表11.33の形式のメッセージをMQDもしくはグローバルサーバのMQDのアプリケーションから受信できます。
JMS Message |
対応するCORBAサービスのデータ型 |
ByteMessage |
シーケンス型のオクテッド型 |
TextMessage |
文字列型 |
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の範囲で指定してください。 |
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* |
目次
索引
![]() ![]() |