この章では、デフォルトのAQキュー・インタフェースまたはJMSキュー・インタフェースを介してOracle B2Bとの間でビジネス・メッセージを送受信するためのOracle B2Bユーティリティについて説明します。
Oracle B2Bには、ホスト(バックエンド)アプリケーションに接続する前にインストールと構成をテストおよび検証するためのユーティリティがあります。これらのユーティリティを使用して、デフォルトのAQキュー・インタフェースまたはJMSキュー・インタフェースを介してOracle B2Bとの間でビジネス・メッセージを送受信できます。他のAQ内部デリバリ・チャネルも同様に処理できます。これらのユーティリティを実装する方法の例は、B2Bのサンプルを参照してください(サンプルの詳細は、第1.7項 Oracle B2Bのサンプルと解説を参照してください)。
この章には次のトピックが含まれます:
AQキューへのエンキューおよびAQキューからのデキューは、Javaを使用して行うことができます。IPEnqueue
およびIPDequeue
をOracle B2B環境で実行する必要があります。
表24-1に、Java AQエンキュー・ユーティリティ(oracle.tip.b2b.data.IPEnqueue
)のプロパティを示します。
表24-1 IPEnqueueプロパティ
名前 | 説明 |
---|---|
queue |
アウトバウンドAQキュー名。指定しない場合、Javaエンキュー・ユーティリティは、デフォルトのアウトバウンド・キュー |
replyToMsgID |
送信メッセージの返信先のメッセージID。通常は、レスポンス・メッセージ・タイプに使用されます。 |
from |
メッセージを送信する取引パートナ |
to |
メッセージを受信する取引パートナ |
doctypeName |
メッセージのドキュメント・タイプ名 |
doctypeRevision |
メッセージのドキュメント・プロトコル・リビジョン |
payload |
ペイロード・ファイル名 |
attachment_name |
添付ファイル名。このプロパティを使用して、電子メールの件名とは異なる名前を添付ファイルに割り当てます。 AQによる電子メールでのカスタム・アウトバウンド・メッセージの場合は、次のようにします。 actionName=ATTACHMENT_NAME:Sample.txt |
url |
データベースURLの書式は、 |
user |
データベース・ユーザー |
password |
データベース・パスワード |
eventName |
アクション名 |
msgID |
メッセージID(オプション)。メッセージIDがエンキューの一部として提供されない場合、B2Bによって独自のメッセージIDが生成されます。 |
msgType |
オプションのメッセージ・タイプを指定します。
|
dateFormat |
電子メールのデリバリ・チャネルで使用されている日付書式を変換するために使用されます |
dynamicemail |
actionName=DYNAMICEMAIL:email_id
|
dynamic_from_email |
actionName=DYNAMIC_FROM_EMAIL:email_id
|
例: ipenqueue.properties
queue = url = jdbc:oracle:thin:@host:1521:sid user = user1 password = password replyToMsgID = from = Acme to = GlobalChips doctypeName = 850 doctypeRevision = 4010 payload = Acme_850.xml attachment =
注意: Windows ja_JPロケールのインスタンスでは、VARCHAR/文字列の値はキューに正しくエンキューされません。INTおよびCLOBの値は正しくエンキューされます。このため、ファイルのエンキューにIPEnqueueユーティリティが使用される場合、 |
メッセージをデキューするには、IPDequeue
ユーティリティを使用します。
表24-2に、Java AQデキュー・ユーティリティ(oracle.tip.b2b.data.IPDequeue
)のプロパティを示します。
表24-2 IPDequeueプロパティ
名前 | 説明 |
---|---|
queue |
インバウンドAQキュー名。指定しない場合、Javaデキュー・ユーティリティは、デフォルトのインバウンド・キュー |
count |
デキューされるメッセージ数。指定しない場合、1つのメッセージのみがデキューされます。 |
output |
出力ファイル名 |
url |
データベースURLの書式は、 |
user |
データベース・ユーザー |
password |
データベース・パスワード |
例: ipdequeue.properties:
queue = count = 1 output = t1.trc url = jdbc:oracle:thin:@host:1521:sid user = user1 password = password
JMS接続先(キューまたはトピック)へのエンキューおよびJMS接続先(キューまたはトピック)からのデキューは、ユーティリティを使用して行うことができます。ユーザー名とパスワードを指定しない場合は、接続先が分散されていると、クラスタ環境も含めてローカルJNDIが使用されます。Oracle B2Bはjavax.jms.ObjectMessageをサポートしていません。
JMS接続先(キューまたはトピック)にメッセージを送信するには、JMSエンキュー・ユーティリティoracle.tip.b2b.data.JMSEnqueue
を使用します。このユーティリティでは、コマンドライン引数として指定されたプロパティ・ファイルを使用し、このファイルから、送信する詳細を読み取ります。
表24-3に、このファイルで構成できるプロパティを示します。
表24-3 JMSエンキュー・プロパティ
名前 | 説明 |
---|---|
destination |
メッセージの送信先のキューまたはトピックのJNDI名 |
cf |
使用する接続ファクトリのJNDI名 |
factory |
ファクトリのプロバイダ・クラス |
isTopic |
トピックのインジケータ(オプション) |
url |
JNDI URLの書式は、 |
user |
アプリケーション・サーバー管理者のユーザーID。 |
password |
アプリケーション・サーバー管理者のパスワード |
from |
送信元パーティ |
to |
送信先パーティ |
eventName |
アクション名 |
doctypeName |
ドキュメント・タイプ名 |
doctypeRevision |
ドキュメント・タイプのリビジョン |
payload |
ペイロード・ファイルのパス |
attachment |
添付ファイルのパス |
msgID |
メッセージID(オプション)。メッセージIDがエンキューの一部として提供されない場合、B2Bによって独自のメッセージIDが生成されます。 |
replyToMsgID |
メッセージへの返信(オプション) |
msgType |
メッセージ・タイプ。デフォルトは |
attachment_name |
添付ファイル名。このプロパティを使用して、電子メールの件名とは異なる名前を添付ファイルに割り当てます。 JMSによる電子メールでのカスタム・アウトバウンド・メッセージの場合は、次のようにします。 constant : Sample.xml property : jca.jms.JMSProperty.ATTACHMENT_NAME |
dateFormat |
電子メールのデリバリ・チャネルで使用されている日付書式を変換するために使用されます |
dynamicemail |
constant : email_id property : jca.jms.JMSProperty.DYNAMICEMAIL
|
dynamic_from_email |
constant : email_id property : jca.jms.JMSProperty.DYNAMIC_FROM_EMAIL
|
例24-1に、サンプルのjms_enqueue.properties
ファイルを示します。
例24-1 サンプルのjms_enqueue.propertiesファイル
####### Destination Details ####### destination = jms/b2b/B2B_IN_QUEUE cf = jms/b2b/B2BQueueConnectionFactory ####### Server and Factory Details ####### factory=weblogic.jndi.WLInitialContextFactory url=t3://host_name:port_number/ #user=<uncomment and provide you username> #password=<uncomment and proivde you password if required> ####### Payload Details ####### from=Acme to=GlobalChips #eventName=SampleEvent doctypeName=Custom doctypeRevision=1.0 payload=/scratch/work/GlobalChips_1234.dat
これらのユーティリティの実行方法は、サンプルのドキュメントを参照してください。
AQおよびJMSユーティリティによって使用されるプロパティは、メッセージが接続先に送信される前に、内部的に変換されます。表24-4のプロパティが、B2Bがリスニングする接続先に配信されるjavax.jms.Message
の一部として設定されていることを確認してください。
表24-4 AQ/JMSプロパティのカスタム・ユーティリティ用の変換
AQ/JMSユーティリティ | 変換された値: カスタム・ユーティリティ用 | JMSメッセージ |
---|---|---|
from |
FROM_PARTY |
|
to |
TO_PARTY |
|
doctypeName |
DOCTYPE_NAME |
|
doctypeRevision |
DOCTYPE_REVISION |
|
eventName |
ACTION_NAME |
|
msgID |
MSG_ID |
|
replyToMsgID |
INREPLYTO_MSG_ID |
|
msgType |
MSG_TYPE |
|
attachment |
ATTACHMENT |
|
payload |
- |
メッセージ本文として送信 |
JMSデキュー・ユーティリティoracle.tip.b2b.data.JMSDequeue
によって、接続先からメッセージが受信されます。接続先から取得するメッセージ数を制御するために、count
プロパティを指定できます。取得したメッセージは、現在のパス(ユーティリティの実行場所)のファイルJMSDequeue.txt
に書き込まれます。
これらのユーティリティの実行方法は、Oracle Technology Networkのサンプルのドキュメントを参照してください。
例24-2に、サンプルのJMSデキュー・プロパティ・ファイルを示します。
例24-2 サンプルのjms_dequeue.propertiesファイル
####### Destination Details####### destination = jms/b2b/B2B_IN_QUEUE cf = jms/b2b/B2BQueueConnectionFactory count=1 ####### Server and Factory Details ####### factory=weblogic.jndi.WLInitialContextFactory url=t3://host_name:port_number/ #user=<uncomment and provide your username> #password=<uncomment and provide your password if required>
添付ファイルの送信には、attachmentsDescriptor.xsd
ファイルを使用します。
例24-3に、サンプルの添付XMLファイルを示します。
例24-3 サンプルの添付XMLファイル
<?xml version="1.0" encoding="ISO-8859-1"?> <!--Sample XML file generated by XMLSpy v2005 sp1 U (http://www.xmlspy.com)--> <Attachments xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AttachmentsDescriptor.xsd" version="1.0" boundary="boundary---"> <AttachmentPart> <Location>file:///home/user_dir/data.xml</Location> <Content-Type> <Top-Level-Type>text</Top-Level-Type> <Sub-Type>plain</Sub-Type> <Parameter Value="charset" Name="us-ascii"/> </Content-Type> <!--Content-Transfer-Encoding>BASE64</Content-Transfer-Encoding--> <Content-ID/> <Content-Description/> </AttachmentPart> </Attachments>