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

前
 
次
 

大きなペイロードの処理

この付録では、Oracle B2BでSOAインフラストラクチャおよびJMS内部キューを使用して大きなペイロードを処理する方法について説明します。

この付録には次のトピックがあります。

A.1 大きなペイロードの処理

Oracle B2Bでは、SOAインフラストラクチャおよびJMS内部キューを通じて大きなペイロードを処理できます。

A.1.1 大きなペイロードのサポートの概要

インバウンド設定

図A-1に、インバウンドの場合に設定するプロパティを示します。「管理」「構成」に移動します。

図A-1 大きなペイロード・サイズ

図A-1の説明が続きます
「図A-1 大きなペイロード・サイズ」の説明

大きなペイロードを処理するためにコンポジットをデプロイする場合は、この構成のみが必要となります。B2Bでペイロードをコンポジットに配信しない場合は、図A-2に示すように、「JMSキューをデフォルトとして使用」を「true」に設定します。「管理」「構成」に移動します。

図A-2 JMSキューの使用

図A-2の説明が続きます
「図A-2 JMSキューの使用」の説明

「JMSキューをデフォルトとして使用」を「true」に設定すると、ペイロードはB2B_IN_QUEUE (JMSベースのキュー)に配信されます。

アウトバウンド設定

図A-3に、アウトバウンドの場合に設定するプロパティを示します。

図A-3 大きなペイロード・ディレクトリ

図A-3の説明が続きます
「図A-3 大きなペイロード・ディレクトリ」の説明

サービス・エンジンによって大きなペイロードが送信されることをB2Bに通知することも必要となります。変更は次の2つの手順で行います。

Oracle B2Bに大きなペイロードを送信する場合は、BPELプロセスにb2b.largePayloadプロパティを設定する必要があります。大きなペイロードを処理しないコンポジット・サンプルの場合、変更はありません。

Oracle B2Bでこのフラグを処理するためのコード変更

  1. <variables>セクションでアウトバウンドBPELプロセスにVariable_largePayload変数を宣言します。

    <variable name="Variable_largePayload" type="xsd:string"/>
    
  2. 「割当て」アクティビティで、変数に'true'をコピーします。

    <copy>
     <from expression="'true'"/>
     <to variable="Variable_largePayload"/>
    </copy>
    
  3. 「起動」アクティビティで、変数をb2b.largePayloadに割り当てます。

    <bpelx:inputProperty name="b2b.largePayload"
     variable="Variable_largePayload"/>
    

注意:

BPELでOracle B2Bに大きなペイロードを送信しない場合は、このプロパティを設定しないでください。

コードをチェックインした後、その確認のために大きなペイロードのサンプルを更新する必要があります。

BPELおよびメディエータで、b2b.largePayloadtrueに設定した場合、largePayloadDirが必要になります(Oracle B2Bで設定します)。b2b.largePayloadを設定していない場合、このディレクトリは問題になりません。

Oracle B2Bでは、大きなペイロードを対応するエンドポイントに送信した後、そのペイロードを大きなペイロード処理ディレクトリに保持します。


大きなペイロードのサポートについて

  1. 大きなペイロードのテストを行う場合は、「管理」「構成」タブの「ペイロードをログに記録」を「false」に設定します。

  2. 大きなペイロードのテストを行う場合は、「管理」「構成」タブの「ペイロードの表示」を「false」に設定して、レポートにペイロードが表示されないようにします。

  3. 大きなペイロードを処理するときにエンキュー・スクリプトを使用する場合は、次の指定を追加します

    eventName=LARGE_PAYLOAD=true
    
  4. -Xmx2048mを使用するように最大ヒープ・サイズを増やします。

  5. SOAデータソースが自動的に拡張されるようにデータベースの表領域サイズを増やし、表領域ファイル・サイズの上限を上げます。

    alter database datafile '/scratch/$user/auto_work/db230/oradata/db230/SH_soainfra.dbf' autoextend on next 10M maxsize 4096M

  6. Oracle WebLogic管理サーバーのトランザクション・タイムアウトを次のように設定します。

    • Weblogicコンソール・サービス -> JTAタイムアウト秒=720秒

    • Weblogicコンソール・サービス -> JDBC -> DataSources -> SOADataSource - XAタイムアウトを120秒と180秒の間に増やす

  7. Oracle B2Bを(SOAインフラストラクチャを使用せずに)単独で使用する場合は、Oracle Enterprise Manager Fusion Middleware Controlを使用して、b2b.jtaTimeoutにJTAタイムアウトを設定できます。詳細は、Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイドを参照してください。

  8. アウトバウンドSOAコンポジットの場合は、図A-4に示すように、ファイル・アダプタ用に「ファイル・ストリーミングを使用します」オプションを常に選択します。

    図A-4 ファイル・アダプタ用の「ファイル・ストリーミングを使用します」オプション

    図A-4の説明が続きます
    「図A-4 ファイル・アダプタ用の「ファイル・ストリーミングを使用します」オプション」の説明

A.1.2 大きなペイロードと32ビット版Windows PC

32ビット版Windowsコンピュータでは、ペイロード・サイズの制限は50MBです。これは、Windows固有の制限によって、1536Mを超えるヒープ・サイズを設定できないためです。Java VMによって、メモリー不足例外がスローされます。

A.1.3 大きなデータセットの設定シナリオ

次の推奨設定は、約2,500の取引パートナを含むデータセット(サイズが約253MBのエクスポートZIPファイル)があり、6GBのコンピュータを使用することを想定しています。このような設定を使用すると、アップグレード・アシスタントを使用した場合に、データ・アップロード時間を大幅に短縮できます。

  1. Oracle WebLogic Server管理コンソールを使用して、次の値を増やします

    • JTAトランザクション・タイムアウトを30から350に増やします

    • 最大メッセージ・サイズをデフォルト・サイズから200000000に増やします

  2. パフォーマンス向上のために索引を追加します。Oracle Database 11g Enterprise Editionリリース11.1.0.7.0 - 製品版を「パーティショニング」、「OLAP」、「データ・マイニング」、「Real Application Testing」の各オプションとともに使用して、次の処理を実行します。

    SQL> create index idx_mds_attr on
    rc1_mds.MDS_ATTRIBUTES("ATT_VALUE","ATT_LOCALNAME");
    Index created.
    
    SQL> create index idx_mds_path on
    rc1_mds.MDS_PATHS("PATH_CONTENTID","PATH_PARTITION_ID");
    Index created.
    
    SQL> commit;
    
  3. 次の更新後のメモリー設定を使用して管理対象サーバーを起動します。

    DEFAULT_MEM_ARGS="-Xms1024m -Xmx2048m"
    
  4. ORACLE_HOME/bin/UAデフォルト・メモリーをデフォルトの256から2048に変更します。デフォルトは次のとおりです

    $JAVA_HOME/bin/java ${JAVAMODE} -Xmx256m -classpath ${CLASSPATH}
    -Dua.home=$base_dir -Dice.pilots.html4.ignoreNonGenericFonts=true
    -Dsun.lang.ClassLoader.allowArraySyntax=true
    -Doracle.installer.oui_loc=$OUI_HOME oracle.ias.upgrade.UpgradeDriver
    $ARGUMENTS
    

    このデフォルトを次のように変更します

    $JAVA_HOME/bin/java ${JAVAMODE} -Xmx2048m -classpath ${CLASSPATH}
    -Dua.home=$base_dir -Dice.pilots.html4.ignoreNonGenericFonts=true
    -Dsun.lang.ClassLoader.allowArraySyntax=true
    -Doracle.installer.oui_loc=$OUI_HOME oracle.ias.upgrade.UpgradeDriver
    $ARGUMENTS
    
  5. 「スタック・スレッド最大時間」の値を600から2000に変更します。