URGENT: Oracle queuing with poor performance [message #649556] |
Wed, 30 March 2016 23:06 |
|
ivanduar
Messages: 1 Registered: March 2016 Location: Brazil
|
Junior Member |
|
|
Hi people.
Please your help!!!
I have designed a solution which uses Oracle advanced queuing for transporting data from a DB to another.
In general, I have a single multiple consumer queue table. There are 32 queues with 96 subscribers.
Each subscriber is properly registered to its queue using its own PLSQL callback procedure.
Each callback procedure "does what it have to do" and before have finished, it enqueues the message to the next subscriber.
In general it works fine for a single message. When a single message is queued, all 96 susbcribers promptly consume their messages as soon as they are available in the correspondent queues, and the whole process is finished in 9 seconds. But when I enqueue 1000 messages, the first 200-250 messages still keep the high performance. The next 300 messages are not so fast. The last 500 messages have very poor performance.
I have noticed that for the last ones, the message is queued but the callback procedure is not executed immediately.
The callback procedure starts 2-5 minutes after the message is available in the queue.
Do you know why it happen? I have tried with persistent and buffered queues (streams pool size 1GB) but in both situations, the same problem.
Maybe oracle have a parameter that limits the number os callback processes in parallel, something like that,
Please, your comments are important to me.
Thanks on advance.
Ivan.
|
|
|
|