AsyncNotification of TOraQueue don't work via Remoted base

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
cemick
Posts: 13
Joined: Wed 08 Oct 2008 11:32

AsyncNotification of TOraQueue don't work via Remoted base

Post by cemick » Wed 08 Oct 2008 12:03

I'm derive messages, When I use AsyncNotification with connection to localHost DataBase, but I don't derive when DataBase a remoted..
OCI ver. 9.2.0.8
ODAC ver. 6.50.0.39
OC Win Xp SP2, firewall disabled

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Thu 09 Oct 2008 09:17

This problem is caused by an OCI bug. AsyncNotification doesn't work for all servers.

cemick
Posts: 13
Joined: Wed 08 Oct 2008 11:32

Post by cemick » Thu 09 Oct 2008 10:08

Plash wrote:This problem is caused by an OCI bug. AsyncNotification doesn't work for all servers.
I'm using same server both times, only run my application on remote computer

cemick
Posts: 13
Joined: Wed 08 Oct 2008 11:32

Post by cemick » Thu 09 Oct 2008 12:09

And I don't receive Notification, If I try enqueue message from localhost with Oracle 10.2.0.4 OCI to remoted Oracle 10.2.0.3 DB Server

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Fri 10 Oct 2008 07:28

This is the OCI limitation.

Maybe you should use DBMS_AQ.LISTEN procedure to get notification about messages.

You should call this procedure from a separate thread to prevent the main thread from blocking.

You can use the Listen method of TOraQueue to call this procedure, or you can call the procedure using standard ODAC components such as TOraStoredProc or TOraQuery. In the second case you can set the NonBlocking property of TOraDataSet to True instead of manually creating a thread.

Post Reply