ヘッダーをスキップ
Oracle® Fusion Middleware Oracle B2Bユーザーズ・ガイド
11g リリース1 (11.1.1.7)
B61381-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

この章には次のトピックが含まれます:

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

26.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リファレンスを参照してください。

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

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

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

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

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

例26-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());
    }
}

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

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

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

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

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

例:

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

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

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

例:

/tmp/GlobalChips_1_custnonxml_largepayload.dat@9844C4341297D3EB7B60000011A0CC9D
.dat

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

26.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