This content has been marked as final. Show 6 replies
You generally poll a queue when you want to dequeue from it.
To control the polling frequency on the AQAdapter for dequeuing, on the partner link, you can use the property:
refer metalink note: https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=HOWTO&id=465747.1
I feel this property is used to control the speed at which the adapter posts messages to Oracle BPEL Process Manager.But my requirement is that AQ adapter delays in polling the queue which is in Apps database.
I found out that the property to delay the dequeing activity in a AQ is <property name="DequeueTimeOut">120</property>.
We are facing a similar issue but a slightly different scenario. Following is the setup:
- Oracle SOA Suite 18.104.22.168.
- BPEL process (within a Composite App) using AQ Adapter reading messages from a AQ queue (corresponding to a subscription to a Business Event) in Oracle EBS.
- Huge number of messages backed up in the queue: delay of between 10 secs to 1 min between consecutive dequeue logs noticed in the BPEL process.
The 'DequeueTimeOut' parameter is explained as "It is the interval after which the dequeue() API will time out if no message is received on the inbound queue.".
But what if there a lot of messages in the queue waiting to be processed? How can we increase the polling frequency so that messages are drained immediately, or is this the default behavior?
Any response is appreciated.
- Hari Nadathur
Your problem seems to be due to a slow consumer. If you want to parrelize the receive activity you can set the below endpoint property.
7.2.8 Multiple Receiver Threads
Oracle AQ Adapter supports an activation endpoint property, "adapter.aq.dequeue.threads". Setting this property is a preferred way to spawn multiple threads for the inbound message flow between the adapter and the Enterprise Information System (EIS). Earlier versions of the Oracle AQ Adapter relied on the activationInstances endpoint property, which was used by JCA Binding Component to initiate multiple endpoints.
Thanks for your quick response. I will try this and update on how it goes.