Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


9.5.4 パラメタを設定する

非同期受付(MDB(WS-R))のメソッドを呼び出すため,JMSメッセージにパラメタを設定します。

〈この項の構成〉

(1) プロパティの設定

JMSメッセージのプロパティを設定します。設定するプロパティの詳細については,「(4) パラメタの詳細」を参照してください。

(例)要求電文がXMLの場合

textMessage = qSession.createTextMessage();
textMessage.setStringProperty("CSCServiceName", serviceName);
     // サービス部品名
textMessage.setStringProperty("CSCCorrelationID", clientID);
     // クライアント相関ID
textMessage.setStringProperty("CSCRequestFormatID", requestFormatID);
     // リクエストフォーマットID
textMessage.setStringProperty("CSCResponseFormatID", responseFormatID);
     // レスポンスフォーマットID
textMessage.setStringProperty("CSCServiceOperationName", operationName);
     // オペレーション名
textMessage.setStringProperty("CSCReplyToQueueName", replyToQueueName);
     // 応答用のキュー名
textMessage.setStringProperty("CSCMessageType", "XML");
     // 電文種別
注意事項

バイナリ電文の要求電文を送信できるのは,サービス部品側で使用している電文形式がバイナリ形式のときだけです。DBキューのサービス部品に送信する要求電文はバイナリ変換します。バイナリ変換する場合は,サービスリクエスタ側とサービス部品側で同じエンコードの方式を使用してください。

(2) 引き継がれるヘッダおよびプロパティ

次のヘッダおよびプロパティは,要求時の内容がサービス部品側のキューまで引き継がれます。したがって,必要に応じて次のヘッダおよびプロパティを設定してください。

注※1

指定できる範囲は,255バイトまでです。

注※2

ただし,次のプロパティはサービス部品側のキューまで引き継がれません。

  • JMSXで始まるJMS定義によるプロパティ名

  • JMS_で始まるプロバイダ指定のプロパティ名

  • CSCで始まるプロパティ名

  • HCSCで始まるプロパティ名

(3) ペイロードの設定

JMSメッセージのペイロードに要求電文(ユーザ電文)を設定します。ペイロードの詳細については,「(4) パラメタの詳細」を参照してください。

(例)要求電文がXMLの場合

textMessage.setText( userData );

(4) パラメタの詳細

パラメタの詳細を次の表に示します。

表9‒14 パラメタの詳細(標準の非同期受付(MDB(WS-R)))

パラメタ名

データ型

パラメタ

プロパティ/ペイロード

説明

TextMessage

BytesMessage

サービス名

String

StringProperty

("CSCServiceName")

プロパティ

要求先のサービス名です。

このパラメタは必ず指定してください。

要求先のサービス名は,開発環境で定義したサービスアダプタまたはビジネスプロセスを指定してください。

クライアント相関ID

String

StringProperty

("CSCCorrelationID")

プロパティ

サービスリクエスタからの要求電文を一意に識別するための相関識別子です。

255文字以内の英数字,アンダーバー(_),ピリオド(.)およびハイフン(-)で指定してください。

サービスリクエスタからの要求電文と,HCSCサーバで管理している実行履歴やログおよびトレースを対応づけるために使用します。したがって,HCSCサーバに送信した要求電文ごとに異なるIDを指定してください。

なお,このパラメタを指定しないことで,クライアント相関IDを省略できます。

リクエストフォーマットID

String

StringProperty

("CSCRequestFormatID")

プロパティ

サービスリクエスタからの要求電文フォーマットを一意に識別するためのIDです。

1,024文字以内の英数字,アンダーバー(_),ピリオド(.)およびハイフン(-)で指定してください。

このパラメタにはNULLを指定してください。なお,このパラメタを指定しないことで,NULLが設定されます。

レスポンスフォーマットID

String

StringProperty

("CSCResponseFormatID")

プロパティ

HCSCサーバからの応答電文フォーマットを一意に識別するためのIDです。

1,024文字以内の英数字,アンダーバー(_),ピリオド(.)およびハイフン(-)で指定してください。

このパラメタにはNULLを指定してください。なお,このパラメタを指定しないことで,NULLが設定されます。

オペレーション名

String

StringProperty

("CSCServiceOperationName")

プロパティ

要求先のサービス名に対するオペレーション名です。

オペレーション名は,開発環境で定義したサービス部品のオペレーション名を指定します。255バイト以内のXMLSchemaのNCName定義文字で指定してください。

要求先のサービス部品が同期のサービス部品(WebサービスまたはSessionBean)またはビジネスプロセスの場合,必ず指定してください。

要求先のサービス部品が非同期のサービス部品の場合,オペレーション名を省略できます。このパラメタを指定しないことで,オペレーション名を省略できます。

応答用のキュー名

String

StringProperty

("CSCReplyToQueueName")

プロパティ

要求先のサービス部品が同期(WebサービスまたはSessionBean)またはビジネスプロセスの場合に,サービス部品またはビジネスプロセスからの応答を受け取るキュー名です。

要求先のサービス部品が同期か非同期かわからない場合にこの指定をすると,応答を受け取ることができます。

応答用のキューの詳細については,「9.5.7 応答用のキューを設定する」を参照してください。

なお,このパラメタを指定しないことで,応答用のキュー名を省略できます。省略した場合,NULLが設定され,応答を受け取ることができません。

電文種別

String

StringProperty

("CSCMessageType")

プロパティ

次に示す要求電文の種別を指定してください。

  • XML電文(ペイロードがTextMessage)の場合:XML

  • バイナリ電文(ペイロードがBytesMessage)の場合:Binary

要求電文がある場合,このパラメタは必ず指定してください。

要求電文がない場合,このパラメタを指定しないことで,電文種別を省略することができます。

ユーザ電文

TextMessage

×

ペイロード

サービスリクエスタからの要求電文です。

要求電文がXMLの場合に指定します。要求電文がない場合,指定する必要はありません。要求電文の詳細については,「9.5.5 要求電文を作成する」を参照してください。

ユーザ電文長

long

×

LongProperty

("CSCMessageLength")

プロパティ

要求電文の長さです。

要求電文がバイナリの場合に指定します。

ユーザ電文

×

BytesMessage

ペイロード

サービスリクエスタからの要求電文です。

要求電文がバイナリの場合に指定します。要求電文がない場合,指定する必要はありません。要求電文の詳細については,「9.5.5 要求電文を作成する」を参照してください。

(凡例)

−:該当しません。

×:指定できません。

注※

要求先のサービス部品のプロトコルがSOAPの場合,ユーザ電文のルート要素の名称(データ変換を行う場合,データ変換後の電文のルート要素の名称)から呼び出すオペレーションを決定します。そのため,ユーザ電文のルート要素に誤った名称を指定した場合,意図しないオペレーションを呼び出してしまうので注意してください。