OAQ message getting dequeued issue.

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
prathapsulam
Posts: 1
Joined: Sat 01 Sep 2012 11:42

OAQ message getting dequeued issue.

Post by prathapsulam » Sat 01 Sep 2012 12:02

Hi,
I am facing a strange issue when interacting with oracle queue using devart which doesnot occur when interacting with MSMQ.

Following are the business requirement..
1. I am opening a transaction to dequeue using a queue manager inside which the logic of dequeing a message from OAQ exists.
2. After dequeing a message from oracle queue the message will be processed with business logic and if suceesfull a new message will be posted to the target queue which can be either MSMQ or OAQ which runs under a new transaction scope.
3. if any exception occurs while processing a business operation the message will be routed to source queue. If the same case persists for configured retries the message will be routed to exception queue(Msmq).
4.The outer transaction would be commited at all scenarios but the inner transaction would be commited when there is no business operation exception.
So the issue is,
When a dequeue occurs for the first time the dequeue operation is able to participate in a outer transaction successfully, so even the outer transaction fails the dequeue operation is getting rollback. But in the next iteration, using the same queue manager instance when i retry the dequeue operation the message is getting dequeued immediately even before the outer transaction is completed and the message is lost forever. This is not the case with Msmq. Please note that I have used the same queue manager instance in which the connection to oracle database is still open when i retry.

Why is this inconsistency for the second time with OAQ. Is there anything to do with the reusing the opened connection. Please help.

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Re: OAQ message getting dequeued issue.

Post by Shalex » Mon 03 Sep 2012 06:48

Please turn on the dbMonitor tool and make sure that the connection still participates in the distributed transaction in the second iteration.
Download link: http://www.devart.com/dbmonitor/dbmon3.exe
Documentation: http://www.devart.com/dotconnect/oracle ... nitor.html

If this doesn't help, please specify:
1) the exact versions of your:
a) dotConnect for Oracle (x.xx.xxx)
b) Oracle server (xx.x.x.x)
c) Oracle client (xx.x.x.x) if it is used
2) your connection string (roughly, without credentials)
3) modify one of our samples (http://www.devart.com/dotconnect/oracle/docs/?AQ.html) and post it here so that we can reproduce the issue in our environment.
As an alternative, you can contact us via our contact form.

Post Reply