ここでは、次の項目について説明します。
Oracle B2Bでは、SOAインフラストラクチャおよびJMS内部キューの使用によって、大きなペイロードを処理できます。
インバウンドの設定
図A-1に、インバウンドの場合に設定するプロパティを示します。「管理」 > 「構成」の順に移動します。
大きなペイロードを処理するためにコンポジットをデプロイする場合、必要な構成はこのプロパティのみです。B2Bでペイロードがコンポジットに配信されていない場合は、図A-2に示すように、「JMSキューをデフォルトとして使用」を「true」に設定します。「管理」 > 「構成」の順に移動します。
「JMSキューをデフォルトとして使用」が「true」に設定されていると、ペイロードは、JMSベースのキューであるB2B_IN_QUEUE
に配信されます。
アウトバウンドの設定
図A-3に、アウトバウンドの場合に設定するプロパティを示します。
また、B2Bに、サービス・エンジンで大きなペイロードが送信されていることを通知する必要があります。この変更には次の2つの手順があります。
大きなペイロードをOracle B2Bに送信する場合は、b2b.largePayload
プロパティをBPELプロセスで設定する必要があります。大きなペイロードを処理しないコンポジット・サンプルの場合、変更はありません。
このフラグを処理するためのOracle B2Bのコード変更
アウトバウンドBPELプロセスの<variables>
セクションで、Variable_largePayload変数を宣言します。
<variable name="Variable_largePayload" type="xsd:string"/>
assignアクティビティで、'true'
を変数にコピーします。
<copy> <from expression="'true'"/> <to variable="Variable_largePayload"/> </copy>
invokeアクティビティで、変数をb2b.largePayload
に割り当てます。
<bpelx:inputProperty name="b2b.largePayload" variable="Variable_largePayload"/>
注意: BPELによって大きなペイロードがOracle B2Bに送信されていない場合、このプロパティは設定しないでください。 コードがチェックインされた場合は、このコードに適合するように大きなペイロードのサンプルを更新する必要があります。 BPELおよびMediatorで、 Oracle B2Bでは、対応するエンドポイントにペイロードが送信された後、大きなペイロードは大きなペイロード処理ディレクトリに保持されます。 |
大きなペイロードのサポートについて
大きなペイロードをテストしている場合は、「管理」 > 「構成」タブの「ペイロードをログに記録」を「false」に設定します。
大きなペイロードをテストしている場合は、ペイロードがレポートにリストされないように、「管理」 > 「構成」タブの「ペイロードの表示」を「false」に設定します。
大きなペイロードの処理時にエンキュー・スクリプトを使用する場合は、次の指定を追加します。
eventName=LARGE_PAYLOAD=true
最大ヒープ・サイズを、-Xmx2048m
を使用するように増やします。
soadatasourceが自動拡張するようにデータベースの表領域サイズを増やし、表領域ファイル・サイズの上限を増やします。
alter database datafile '/scratch/$user/auto_work/db230/oradata/db230/SH_soainfra.dbf' autoextend on next 10M maxsize 4096M
Oracle WebLogic管理サーバーでトランザクション・タイムアウトを設定します。
Weblogicコンソール・サービス -> JTAタイムアウト秒=720秒。
Weblogicコンソール・サービス -> 「JDBC」->データソース->SOADataSource。XAタイムアウトを120秒から180秒に増やします。
Oracle B2Bを(SOAインフラストラクチャを使用せずに)単独で使用する場合は、Oracle Enterprise Manager Fusion Middleware Controlを使用して、b2b.jtaTimeout
にJTAタイムアウトを設定できます。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。
アウトバウンドSOAコンポジットの場合は、図A-4に示すように、Fileアダプタ用に「ファイル・ストリーミングを使用します」オプションを常に選択します。
32ビットのWindowsコンピュータでは、ペイロード・サイズの制限が50MBです。これは、Windows固有の制限によって、1536Mを超えるヒープ・サイズを設定できないためです。Java VMによって、メモリー不足例外がスローされます。
次の推奨設定は、約2,500の取引パートナを含むデータセット(サイズが約253MBのエクスポートZIPファイル)があり、6GBのコンピュータを使用することを想定しています。このような設定を使用すると、アップグレード・アシスタントを使用した場合に、データ・アップロード時間を大幅に短縮できる可能性があります。
Oracle WebLogic Server管理コンソールを使用して、次の値を増やします。
JTAトランザクション・タイムアウトを30から350に増やします。
最大メッセージ・サイズをデフォルト・サイズから200000000に増やします。
パフォーマンス向上のために索引を追加します。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;
次の更新後のメモリー設定を使用して管理対象サーバーを起動します。
DEFAULT_MEM_ARGS="-Xms1024m -Xmx2048m"
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
スタック・スレッド最大時間を600から2000に変更します。