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

第2部 拡張機能編> 第4章 イベントチャネル連携サービス

4.6 アプリケーションの作成方法

 送信側と受信側の非同期メッセージ基盤が異なる場合やグローバルサーバなどの他のプラットフォームとの間でイベントチャネル連携サービスを使用したサーバ間連携を行う場合は、表1.26に示す各々の非同期メッセージ基盤で動作するアプリケーションが共通して処理できるメッセージの範囲でアプリケーション論理を作成する必要があります。

 各通信形態で通信可能なメッセージの形式とアプリケーション作成時の留意点を以下に示します。

[表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)

○:対象非同期メッセージ基盤の形式の範囲で利用できます。

  1. Linuxおよび Windows Server 2003 for Itanium-based Systems では使用できません。
  2. 受信側の非同期メッセージ基盤がMQDの場合、受信できない形式のメッセージを受信するとシテムログにMQD6374のエラーメッセージが出力されます。
  3. 文字列データとして送信するメッセージの終端がNULL文字以外の場合は、自動的にメッセージの終端にNULL文字(1バイト)が付加されます。
  4. 本製品の機能範囲外です。

形式1

 “J2EEユーザーズガイド”に示すメッセージの形式の範囲でアプリケーションを作成してください。

形式2

 ノーティフィケーションサービスのアプリケーションでは、表1.27の形式のメッセージをMQDのアプリケーションに送信できます。

[表1.27 利用可能なCORBAサービスのデータ型]

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のアプリケーションから受信できます。

[表1.28 利用可能なCORBAサービスのデータ型]

CORBAサービスのデータ型

C言語での定義

文字列型

CORBA_string

シーケンス型のオクテッド型

CORBA_Sequence_octet

形式3

 ノーティフィケーションサービスのアプリケーションとグローバルサーバのアプリケーションでは表1.29のCORBAサービスのデータ型でメッセージの送受信ができます。

[表1.29 利用可能なCORBAサービスのデータ型]

CORBAサービスのデータ型

説明

基本データ型

整数型、浮動小数点型、文字型、オクテット型、ブーリアン型、文字列型が利用可能

シーケンス型 (注1)

応用プログラムの実行時に要素数を指定する可変長の一次元配列のデータ型

配列型 (注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のアプリケーションでは、表1.30の形式のメッセージをMQDのアプリケーションに送信できます。

[表1.30 利用可能なCORBAサービスのデータ型]

JMS Message

対応するCORBAサービスのデータ型

ByteMessage

シーケンス型のオクテッド型

TextMessage

ワイド文字列型

 JMSのアプリケーションでは、表1.31の形式のメッセージをMQDのアプリケーションから受信できます。

[表1.31 利用可能なCORBAサービスのデータ型]

JMS Message

対応するCORBAサービスのデータ型

ByteMessage

シーケンス型のオクテッド型

TextMessage

文字列型

形式5

 JMSのアプリケーションでは、表1.32の形式のメッセージをグローバルサーバのアプリケーションに送信できます。

[表1.32 利用可能なCORBAサービスのデータ型]

JMS Message

対応するCORBAサービスのデータ型

ByteMessage

シーケンス型のオクテッド型

TextMessage

ワイド文字列型

 JMSのアプリケーションでは、表1.33の形式のメッセージをグローバルサーバのアプリケーションから受信できます。

[表1.33 利用可能なCORBAサービスのデータ型]

JMS Message

対応するCORBAサービスのデータ型

ByteMessage

シーケンス型のオクテッド型
配列型のオクテッド型

TextMessage

文字列型
ワイド文字列型


 非同期メッセージ基盤にノーティフィケーションサービスまたはJMSを使用する場合、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指定してください。
 有限の時間を指定した場合、イベントチャネル連携サービスの転送処理中にメッセージの生存時間切れでメッセージが削除されてしまう場合があります。イベントチャネル連携サービスの動作上の問題は発生しませんが、送信側と受信側でメッセージの数に食い違いが発生するなど、運用上の問題になる可能性が高いため、ユーザアプリケーションから送信するメッセージの生存時間は無限大を指定することを強く推奨します。

形式6

 MQDのアプリケーションと通信するグローバルサーバのアプリケーションについては本製品の機能範囲外のため説明を省略します。


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

All Rights Reserved, Copyright(C) 富士通株式会社 2006