Skip Headers
Oracle® Fusion Middleware User's Guide for Oracle B2B
11g Release 1 (11.1.1.7)

Part Number E10229-13
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

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.

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

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

Notes:

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

after 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

    eventName=LARGE_PAYLOAD=true
    
  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 11.1.0.7.0 - Production, with the Partitioning, OLAP, Data Mining and Real Application Testing options, do the following:

    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. 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
    -Dsun.lang.ClassLoader.allowArraySyntax=true
    -Doracle.installer.oui_loc=$OUI_HOME oracle.ias.upgrade.UpgradeDriver
    $ARGUMENTS
    

    Change the default to

    $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. Change the value of Stuck Thread Max Time from 600 to 2000.