Sie sind auf Seite 1von 5

Configure Adapter Threads in Oracle SOA 10G

In a separate posting, I mentioned you can configure multiple threads of inbound (polling) adapters of
Oracle SOA. However, the ways to configure multiple threads vary between adapters and product
versions, and the information scatter across multiple documentations. Hence it is worth to consolidate
them here.
This post is for Oracle SOA 10.1.3.x. I have another blog post for configuring adapter threads in Oracle
SOA 11G.

1. JMS Adapter
For BPEL: Set 'adapter.jms.receive.threads' as activation agent properties in bpel.xml

<activationAgents>
<activationAgent className=" partnerLink="MsgQueuePL">
...
<property name="adapter.jms.receive.threads>5</property>
</activationAgent>
</activationAgents>

For OESB 10.1.3.3 onward: Set as endpoint property via JDeveloper (10.1.3.3) or directly at
*.esbsvc file

2. AQ Adapter
This blog summarizes the different kind of settings for AQ Adapter threads very well. Let me copy and
paste it below:
#### FOR ESB/BPEL 10.1.3.4.x
<property name="adapter.aq.dequeue.threads">NO_OF_THREADS</property>
#### FOR BPEL 10.1.3.3.x
<property name=activationInstances">NO_OF_THREADS<property>
#### FOR ESB 10.1.3.3.x
<endpointProperties>
<property name="numberOfAqMessageListeners" value="NO_OF_THREADS"/>
</endpointProperties>
3. MQ Adapter
Oracle Support Tech Note How to limit number of threads for reading messages from a queue (Doc ID
1144847.1] describes the details of how to setup the threads for Inbound MQAdapter . Copying here:
There exist a parameter called "InboundThreadCount" which is valid for both 11g and also it is tested on
SOA 10.1.3.5, And Confirmed to be working on 10.1.3.4.
To set the parameter, Please add the following to the Inbound MQ Adapter
<jca:operation
ActivationSpec="oracle.tip.adapter.mq.inbound.SyncReqResActivationSpecImpl"
MessageType="REQUEST"
QueueName="INBOUND_QUEUE"
Priority="AS_Q_DEF"
Persistence="AS_Q_DEF"
InboundThreadCount="1" <==== This parameter
Expiry="NEVER"
OpaqueSchema="true" >
</jca:operation>

4. Database Adapter
It takes multiple steps to configure database adapter threads.
Step 1: Configure distributed polling. The query in the polling database adapter needs to be a distributed
polling in order to avoid data duplication.
To set usesSkipLocking in SOA 10.1.3.x, you must first declare the property in ra.xml, then set the value
in oc4j-ra.xml. No re-packaging or redeployment of DbAdapter.rar is needed.
Step 2. Set activationInstances as activation properties at bpel.xml to achieve multiple threads in
database adapter.
Note: There is another property called NumberOfThreads. This property is NOT supported in clustered
environment or when activationInstances>1 in SOA 10.1.3.x, or even at versions prior to SOA 11.1.1.3.

Step 3. Tune MaxTransactionSize and MaxRaiseSize to throttle the incoming messages along side with
activationAgents/NumberOfThreads. These two properties are configured either through the DbAdapter
wizard at JDeveloper, or manually directly at the WSDL file of the DbAdapter
5. File/FTP Adapter
File/FTP adapter's has a separation poller thread and processor thread (comparatively, JMS/AQ adapters
always use the same thread to poll and process). There is always only one poller thread, while there
could be multiple processor threads. In SOA 10.1.3.x, the processor threads are globally shared among
File and FTP adapter instances, while in 11G you have an option to configure private processor thread
pool per adpater *.jca file.

In SOA 10.1.3.x, the configuration file for you to set the File/FTP adapter processor threads are:
[SOA_HOME]\bpel\system\services\config\pc.properties
[SOA_HOME]\integration\esb\config\pc.properties (need to rename from pc.properties.esb)
The property name is:
oracle.tip.adapter.file.numProcessorThreads=4
If BPEL and ESB co-located at the same OC4J container, the pc.properties for BPEL takes precedence
over that of ESB . In such cases, the values set in SOA_HOME\bpel\system\service\config\pc.properties
will suffice
Posted by Francis Ip at 5:40 PM
Email ThisBlogThis!Share to TwitterShare to Facebook

7 comments:
1.
PriaJune 21, 2012 at 3:51 AM
Hi

Francis,

A quick question. What is the equivalent of the adapter.jms.receive.timeout parameter in SOA 10g.

While tuning a AIA2.5/SOA 10g for a customer, I find a lot of SQL/NET Breaks in the AWR reports.
The AIA tuning guide recommends setting this to 60s in 11g, hence the question for an equivalent.
Thanks

in

Advance.

regards,
Reply
Replies

1.
Francis IpJune 21, 2012 at 9:35 AM
I

assume

you

are

asking

for

the

equivalent

in

SOA

11G.

You will be able to find the answer from another blog post of mine: Configure
Adapter Threads in SOA 11G

2.
PriaJune 21, 2012 at 10:28 PM
Thanks for your response, however I am looking for the equivalent of
jms.recieve.timeout ( which is in 11g) parameter in soa 10g.
I see a lot of SQL Net Breaks in the AWR report and my guess it is probably due to
the jms adapter polling the queues continuously. To verify this, I am looking to tune
the recieve timeout parameter for the JMS Adapter in SOA 10g.
Will tuning the inactivity-timeout/wait-timeout parameter in the oc4j-ra.xml help
resolve
this?
Awaiting

your

comment

on

the

same.

-regards,

3.
Francis IpJune 22, 2012 at 9:47 AM
Pria
The same adapter.jms.receive.timeout is supported in 10G. I believe the default
value
is
30
second.
The minimumDelayBetweenMessages is also supported in 10G.

4.
Francis IpJune 22, 2012 at 9:51 AM

Please do make sure you understand how the receive timeout works. You can refer
to the javax.jms.MessageConsumer.receive(long timeout) for more details.
Reply

2.
Francis IpJune 21, 2012 at 9:32 AM
This comment has been removed by the author.
Reply
3.
AnonymousJuly 25, 2012 at 11:49 PM
Hi

Francis,

I wanted to add a property in FTP adapter jca properties for CharacterSet as value "UTF-8". This I
am trying in 10g. But when I am adding this property the operation is failing with the following error.
Can you please let me know if CharacterSet property is supported in 10g.
Error:
Property
setCharacterSet
is
oracle.tip.adapter.ftp.outbound.FTPReadInteractionSpec

not

defined

for