Oracle B2Bには、ホスト(バックエンド)アプリケーションに接続する前に、インストールと構成をテストして検証するためのユーティリティが用意されています。ユーティリティを使用して、デフォルトのAQキュー・インタフェースまたはJMSキュー・インタフェースを介してOracle B2Bとの間でビジネス・メッセージを送受信する方法を習得できます。他のAQ内部デリバリ・チャネルも同じ方法で処理できます。これらのユーティリティの実装方法の例は、B2Bのサンプルを参照してください(サンプルの詳細は、第1.7項「Oracle B2Bのサンプルとクックブック」を参照してください)。
項目は次のとおりです。
AQキューへのエンキューおよびAQキューからのデキューは、Javaを使用して実行できます。IPEnqueue
およびIPDequeue
は、Oracle B2B環境で実行する必要があります。
表22-1に、Java AQエンキュー・ユーティリティ(oracle.tip.b2b.data.IPEnqueue
)のプロパティを示します。
表22-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(オプション)。B2Bでは、メッセージIDがエンキューの一部として提供されない場合、独自のメッセージ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ユーティリティを使用してファイルをエンキューする場合は、from フィールドやto フィールドなどの一部のフィールドがNULLになります。回避策として、ja_JPロケールでは、oracle.tip.b2b.data.IPEnqueueの使用時はクラスパスにorai18n.jarを追加してください。 |
メッセージのデキューには、IPDequeue
ユーティリティを使用します。
表22-2に、Java AQデキュー・ユーティリティ(oracle.tip.b2b.data.IPDequeue
)のプロパティを示します。
表22-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
)を使用します。このユーティリティには、コマンドライン引数としてプロパティ・ファイルを提供する必要があります。送信する詳細はこのファイルから読み取られます。
表22-3に、このファイルに構成可能なプロパティを示します。
表22-3 JMSエンキューのプロパティ
名前 | 説明 |
---|---|
destination |
メッセージ送信先のキューまたはトピックのJNDI名。 |
cf |
使用するコネクション・ファクトリのJNDI名。 |
factory |
ファクトリのプロバイダ・クラス。 |
isTopic |
トピックのインジケータ(オプション)。 |
url |
JNDI URLの書式は、 |
user |
アプリケーション・サーバー管理者のユーザーID。 |
password |
アプリケーション・サーバー管理者のパスワード。 |
from |
送信元のパーティ。 |
to |
送信先のパーティ。 |
eventName |
アクション名。 |
doctypeName |
ドキュメント・タイプ名。 |
doctypeRevision |
ドキュメント・タイプ・リビジョン。 |
payload |
ペイロード・ファイルのパス。 |
attachment |
添付ファイルのパス。 |
msgid |
メッセージID(オプション)。B2Bでは、メッセージIDがエンキューの一部として提供されない場合、独自のメッセージ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
|
例22-1に、サンプルのjms_enqueue.properties
ファイルを示します。
例22-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のユーティリティで使用されるプロパティは、メッセージが接続先に送信される前に内部的に変換されます。表22-4のプロパティが、B2Bがリスニングする接続先に配信されたjavax.jms.Message
の一部として設定されていることを確認してください。
表22-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のサンプル・ドキュメントを参照してください。
例22-2に、サンプルのJMSデキュー・プロパティ・ファイルを示します。
例22-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
ファイルを使用します。
例22-3に、サンプルの添付XMLファイルを示します。
例22-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>