送信側と受信側の非同期メッセージ基盤が異なる場合やグローバルサーバなどの他のプラットフォームとの間でイベントチャネル連携サービスを使用したサーバ間連携を行う場合は、表5.27 通信可能なメッセージの形式に示す各々の非同期メッセージ基盤で動作するアプリケーションが共通して処理できるメッセージの範囲でアプリケーション論理を作成する必要があります。
各通信形態で通信可能なメッセージの形式とアプリケーション作成時の留意点を以下に示します。
送信側の非同期メッセージ基盤 | 受信側の非同期メッセージ基盤 | |||
---|---|---|---|---|
ノーティフィケーションサービス | 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) |
○:対象非同期メッセージ基盤の形式の範囲で利用できます。
注意
Windows Server(R) for Itanium-based Systems 、 Windows Server(R) x64 Editions 、 64bit版のSolaris、Linux、では使用できません。
受信側の非同期メッセージ基盤がMQDの場合、受信できない形式のメッセージを受信するとシステムログにMQD6374のエラーメッセージが出力されます。
文字列データとして送信するメッセージの終端がNULL文字以外の場合は、自動的にメッセージの終端にNULL文字(1バイト)が付加されます。
本製品の機能範囲外です。
形式1
“J2EEユーザーズガイド(旧版互換)”に示すメッセージの形式の範囲でアプリケーションを作成してください。
形式2
ノーティフィケーションサービスのアプリケーションでは、表5.28 利用可能なCORBAサービスのデータ型の形式のメッセージを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 |
ノーティフィケーションサービスのアプリケーションでは、表5.29 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションから受信できます。
CORBAサービスのデータ型 | C言語での定義 |
---|---|
文字列型 | CORBA_string |
シーケンス型のオクテッド型 | CORBA_Sequence_octet |
形式3
ノーティフィケーションサービスのアプリケーションとグローバルサーバのアプリケーションでは表5.30 利用可能なCORBAサービスのデータ型の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*
形式4
JMSのアプリケーションでは、表5.31 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションに送信できます。
JMS Message | 対応するCORBAサービスのデータ型 |
---|---|
ByteMessage | シーケンス型のオクテッド型 |
TextMessage | ワイド文字列型 |
JMSのアプリケーションでは、表5.32 利用可能なCORBAサービスのデータ型の形式のメッセージをMQDのアプリケーションから受信できます。
JMS Message | 対応するCORBAサービスのデータ型 |
---|---|
ByteMessage | シーケンス型のオクテッド型 |
TextMessage | 文字列型 |
形式5
JMSのアプリケーションでは、表5.33 利用可能なCORBAサービスのデータ型の形式のメッセージをグローバルサーバのアプリケーションに送信できます。
JMS Message | 対応するCORBAサービスのデータ型 |
---|---|
ByteMessage | シーケンス型のオクテッド型 |
TextMessage | ワイド文字列型 |
JMSのアプリケーションでは、表5.34 利用可能なCORBAサービスのデータ型の形式のメッセージをグローバルサーバのアプリケーションから受信できます。
JMS Message | 対応するCORBAサービスのデータ型 |
---|---|
ByteMessage | シーケンス型のオクテッド型 |
TextMessage | 文字列型 |
注意
非同期メッセージ基盤にノーティフィケーションサービスまたはJMSを使用する場合、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指定してください。
有限の時間を指定した場合、イベントチャネル連携サービスの転送処理中にメッセージの生存時間切れでメッセージが削除されてしまう場合があります。イベントチャネル連携サービスの動作上の問題は発生しませんが、送信側と受信側でメッセージの数に食い違いが発生するなど、運用上の問題になる可能性が高いため、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指定することを強く推奨します。
形式6
MQDのアプリケーションと通信するグローバルサーバのアプリケーションについては本製品の機能範囲外のため説明を省略します。