A Handling Large Payloads

This appendix describes how to use Oracle B2Bto handle large payloads by using the SOA Infrastructure and JMS internal queues.

The appendix contains the following topics:

A.1 Handling Large Payloads

Oracle B2B can handle large payloads through the SOA Infrastructure and JMS internal queues.

A.1.1 Introduction to Large Payload Support

Inbound Setup

Figure A-1 shows the properties to set for inbound cases. Go to Administration > Configuration.

Figure A-1 Large Payload Size

Description of Figure A-1 follows
Description of "Figure A-1 Large Payload Size"

If a composite is deployed to handle the large payload, this is the only configuration needed. If B2B is not delivering the payload to a composite, set Use JMS Queue as default to true, as shown in Figure A-2. Go to Administration > Configuration.

With Use JMS Queue as default set to true, the payload is delivered to B2B_IN_QUEUE, a JMS-based queue.

Outbound Setup

Figure A-3 shows the properties to set for the outbound case.

Figure A-3 Large Payload Directory

Description of Figure A-3 follows
Description of "Figure A-3 Large Payload Directory"

You must also notify B2B that a service engine is sending a large payload. The change involves two steps:

The b2b.largePayload property must be set in the BPEL process when sending a large payload to Oracle B2B. For composite samples, which do not handle large payload, there is no change.

Code change in Oracle B2B to handle this flag

  1. Declare the Variable_largePayload variable in an outbound BPEL process in the <variables> section.

    <variable name="Variable_largePayload" type="xsd:string"/>
  2. In the Assign activity, copy 'true' into the variable.

     <from expression="'true'"/>
     <to variable="Variable_largePayload"/>
  3. Assign the variable to b2b.largePayload in the Invoke activity.

    <bpelx:inputProperty name="b2b.largePayload"


If BPEL is not sending a large payload to Oracle B2B, this property should not be set.

Once the code is checked in, any Large Payload Sample must be updated to confirm to this.

In BPEL and Mediator, if b2b.largePayload is set to true, then largePayloadDir must be present (set it in Oracle B2B). If b2b.largePayload is not set, then this directory should not matter.

Oracle B2B retains the large payloads in the large payload processing directory, after sending the payload to corresponding endpoints.

About Large Payload Support

  1. If you are doing large payload testing, set Log Payload on the Administration > Configuration tab to false.

  2. If you are doing large payload testing, set Show Payload on the Administration > Configuration tab to false to avoid listing the payload in reports.

  3. If an enqueue script is used when working with large payloads, add

  4. Increase the maximum heap size to use -Xmx2048m.

  5. Increase the database tablespace size for soadatasource to have autoextend on and increase the tablespace file size maximum limit.

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

  6. Set the transaction timeout in Oracle WebLogic Administration Server:

    • Weblogic Console Services -> JTA Timeout Seconds=720 seconds

    • Weblogic Console Services -> JDBC->DataSources->SOADataSource - increase XA timeout to 120-180 seconds

  7. If Oracle B2B is used alone (without the SOA Infrastructure), the JTA timeout can be set in b2b.jtaTimeout by using Oracle Enterprise Manager Fusion Middleware Control. See Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite for more information.

  8. For an outbound SOA composite, always select the Use file streaming option for the File Adapter, as shown in Figure A-4.

    Figure A-4 The File Adapter Use File Streaming Option

    Description of Figure A-4 follows
    Description of "Figure A-4 The File Adapter Use File Streaming Option"

A.1.2 Large Payloads and 32-Bit Windows PCs

On a 32 bit Windows computer, the payload size limit is 50 MB. This is because the heap size cannot be set to more than 1536m due to Windows-specific limits. Java VM throws an out-of-memory exception.

A.1.3 Settings for a Large Dataset Scenario

The following suggested settings are based on a dataset with approximately 2,500 trading partners, an export ZIP file that is approximately 253 MB in size, and assumes a 6 GB computer. Using these settings can considerably reduce data upload time when using the Upgrade Assistant.

  1. Use Oracle WebLogic Server Administration Console to increase the

    • JTA transaction timeout from 30 to 350

    • Maximum message size from the default size to 200000000

  2. Add indices for better performance. Using Oracle Database 11g Enterprise Edition Release - Production, with the Partitioning, OLAP, Data Mining and Real Application Testing options, do the following:

    SQL> create index idx_mds_attr on
    Index created.
    SQL> create index idx_mds_path on
    Index created.
    SQL> commit;
  3. Start the managed server with the following updated memory setting:

    DEFAULT_MEM_ARGS="-Xms1024m -Xmx2048m"
  4. Change ORACLE_HOME/bin/UA default memory from the default 256 to 2048. The default is

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

    Change the default to

    $JAVA_HOME/bin/java ${JAVAMODE} -Xmx2048m -classpath ${CLASSPATH}
    -Dua.home=$base_dir -Dice.pilots.html4.ignoreNonGenericFonts=true
    -Doracle.installer.oui_loc=$OUI_HOME oracle.ias.upgrade.UpgradeDriver
  5. Change the value of Stuck Thread Max Time from 600 to 2000.