|Oracle® Fusion Middleware User's Guide for Oracle B2B
11g Release 1 (11.1.1)
Part Number E10229-01
This appendix contains the following topics:
To improve performance, set memory arguments appropriately based on your requirements and system. Code clean-up, multithreading, and table indexing are major contributors to maximizing the use of available resources. Java performance tuning also helps in sharing the resources among the various processes based on the usage/need of the resource.
When using the large payload settings, the internal delivery channel must be the default channel or a JMS queue.
The following settings improved Oracle B2B performance based on 2 GB of RAM on a 32-bit computer and 200 MB of B2B configuration data. When working in a Windows operating system with large payloads, a 64-bit server is recommended.
For Oracle JRocket
export JAVA_VENDOR Oracle DEFAULT_MEM_ARGS="-Xms1024m -Xmx1024m"
For Sun JVM
export JAVA_VENDOR Sun DEFAULT_MEM_ARGS="-Xms1024m -Xmx1024m" if["$JAVA_VENDOR"!= "Oracle"];then DEFAULT_MEM_ARGS="$DEFAULT_MEM_ARGS -XX:CompileThreshold=100000 -XX:PermSize=256m -XX:MaxPermSize=256m"
-Xmx can be increased up to 2 GB based on memory availability.
The SOA managed server
The WebLogic Admin Server
Using precise heap settings when starting the servers is necessary for B2B to process large payloads.
<property> <name>b2b.mdsCache</name> <value>200000</value> <comment>MDS Instance cache size </comment> </property>
A ratio of 5:1 is recommended for the xmx-to-mdsCache values. For example, if the xmx size is 1024, maintain mdsCache at 200 MB.
Changing the value of
threadCount can improve Oracle B2B message processing. The recommended value depends on your system. For a 2 GB computer, a setting of 3 to 5 is recommended. The
sleepTime property puts a thread to sleep after message processing. A setting between 10 and 1000 (milliseconds) is recommended.
<property> <name>b2b.inboundProcess.threadCount</name> <value>5</value> <comment></comment> </property> <property> <name>b2b.inboundProcess.sleepTime</name> <value>10</value> <comment></comment> </property> <property> <name>b2b.outboundProcess.threadCount</name> <value>5</value> <comment></comment> </property> <property> <name>b2b.outboundProcess.sleepTime</name> <value>10</value> <comment></comment> </property> <property> <name>b2b.defaultProcess.threadCount</name> <value>5</value> <comment></comment> </property> <property> <name>b2b.defaultProcess.sleepTime</name> <value>10</value> <comment></comment> </property>
Changing the value of Stuck Thread Max Time can improve Oracle B2B message processing if a thread is stuck. This is the maximum amount of time that the server checks the number of seconds that a thread must be continually working before the server considers the thread stuck.
Only if you see a stuck thread exception should you change the Stuck Thread Max Time setting in Oracle WebLogic Server Administration Console. Increasing this number can degrade performance.
Navigate to Environment > Servers > soa_server_name > Configuration > Tuning. Set Stuck Thread Max Time, shown in Figure A-1, to a maximum of 1200. (The default value is 600 seconds.)
Figure A-1 Changing Stuck Thread Max Time
ALTER TABLESPACE sh_mds add DATAFILE 'sh_mds01.DBF' SIZE 100M autoextend on next 10M maxsize unlimited; ALTER TABLESPACE sh_ias_temp add TEMPFILE 'sh_ias_temp01.DBF' SIZE 100M autoextend on next 10M maxsize unlimited;
On slower Windows computers (2 to 4 GB, 32-bit), the JTA timeout must be increased for Oracle B2B. Use the Oracle WebLogic Server Administration Console to increase the JTA transaction timeout to a higher number, depending on your environment. In some situations, a setting of 350 seconds is sufficient.
Figure A-2 shows the properties to set for inbound cases. Go to Administration > Configuration > Performance.
Figure A-2 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 to true, as shown in Figure A-3. Go to Administration > Configuration > Generic.
Figure A-3 Use JMS Queue
With Use JMS Queue set to true, the payload is delivered to
B2B_IN_QUEUE, a JMS-based queue.
Figure A-4 shows the properties to set for the outbound case.
Figure A-4 Large Payload Directory
If you are doing large payload testing, set showpayload to false to avoid listing the payload in reports.
Increase the maximum heap size by using -Xmx2048m.
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
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
If Oracle B2B is used alone (without the SOA Infrastructure), the JTA timeout can be set in
b2b-config.xml by using the advanced property
For an outbound SOA composite, always select the Use file streaming option for the File Adapter.