ヘッダーをスキップ
Oracle Fusion Middleware Oracle B2Bユーザーズ・ガイド
11g リリース1(11.1.1.4.0)
B61381-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

24 インスタンス・メッセージ・データへのプログラムでのアクセス

この章では、インスタンス・メッセージ・データにプログラムでアクセスするためのインスタンス・メッセージJava APIの概要について説明します。

項目は次のとおりです。

インスタンス・メッセージAPIのInstanceMessageUtilクラスの詳細は、Oracle Fusion Middleware B2Bのインスタンス・メッセージJava APIリファレンスを参照してください。

24.1 インスタンス・メッセージ・データへのプログラムでのアクセス

インスタンス・メッセージJava APIは、取引パートナ間で交換されるランタイム・データを取得するためにOracle B2Bで提供されているJava APIです。

次のような場合にインスタンス・メッセージJava APIを使用します。

インスタンス・メッセージAPIはランタイム・データを問い合せて、様々な基準に対するインスタンス・データの形式で結果を提供します。インスタンス・メッセージAPIは、ビジネス・メッセージとワイヤ・メッセージの両方をカプセル化しているインスタンス・メッセージ・ビューの上位のJavaラッパーです。


注意:

このAPIを使用するときは、b2b.jarおよびweblogic.jarまたはwlthint3client.jarに加えて、追加ライブラリをクラスパスの一部として設定する必要があります。

インスタンス・メッセージAPI問合せオプション

インスタンス・メッセージJava APIを使用すると、次の基準に基づいてインスタンス・メッセージを取得できます。

インスタンス・メッセージAPIの詳細は、Oracle Fusion Middleware B2Bのインスタンス・メッセージJava APIリファレンスを参照してください。

24.2 インスタンス・メッセージJava APIの例

次の出力に基づいてロジックを作成できます。

Vector messages = (Vector) imUtil.getInstanceMessagesForTP("GlobalChips")

この例を例24-1に示します。

これと似たもう1つのメソッドgetInstanceMessagesForMsgId(String messageId)が公開されています。すべてのメソッドについては、Oracle Fusion Middleware B2Bのインスタンス・メッセージJava APIリファレンスを参照してください。

例24-1 取引パートナ名に基づく取得

import java.util.Vector;
import oracle.tip.b2b.utility.InstanceMessageUtil;
 
public class MyInstanceData {
    public static void main(String[] args) throws Exception {
 
        InstanceMessageUtil imUtil = new InstanceMessageUtil();
        Vector messages = (Vector) imUtil.getInstanceMessagesForTP("GlobalChips");
        System.out.println(messages.size());
    }
}

24.3 インスタンス・メッセージJava APIのトラブルシューティング

トラブルシューティングについては、次のトピックを参照してください。

24.3.1 多数のメッセージの処理

問合せから多数のメッセージが変える場合、weblogic.socket.MaxMessageSizeExceededExceptionが発生することがあります。

この問題を解決するには、weblogic.MaxMessageSizeの値を増やし、コマンド・ラインで-Dweblogic.MaxMessageSize=100000000を渡します。このパラメータ設定を指定すると、100 MBのメッセージを受信できます。

次に例を示します。

java -cp
.:$ORACLE_HOME/wlserver_10.3/server/lib/wlthint3client.jar:$SOA_HOME/
/soa/modules/oracle.soa.b2b_11.1.1/b2b.jar
-Dweblogic.MaxMessageSize=100000000 TestInstanceMsg

24.3.2 大きなペイロードの処理

大きいインバウンドまたはアウトバウンド・ペイロードの場合は、ペイロード自体を返すのではなく、ペイロードの場所に対する参照を返します。

次に例を示します。

/tmp/GlobalChips_1_custnonxml_largepayload.dat@9844C4341297D3EB7B60000011A0CC9D .dat 

Oracle B2Bによる大きいペイロードの処理の詳細は、付録A「大きなペイロードの処理」を参照してください。

24.3.3 Weblogic.jarを使用した問合せのリモート実行

weblogic.jarを使用してリモートで問合せを実行しているときに、Oracle WebLogic Serverのクラスパスの問題が発生し、java.lang.ClassNotFoundException:weblogic.security.subject.AbstractSubject例外を受け取る場合があります。

この問題を解決するには、wlthint3client.jarを使用して問合せを実行してください。

次に例を示します。

java -cp
.:$ORACLE_HOME/wlserver_10.3/server/lib/wlthint3client.jar:$SOA_HOME/
/soa/modules/oracle.soa.b2b_11.1.1/b2b.jar TestInstanceMsg