PLSQL Notification Loadbalancing on RAC

  • From: Sriram Kumar <k.sriramkumar@xxxxxxxxx>
  • To: "List, Oracle-l Freelists" <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 21 May 2009 10:13:48 +0530

Hello Gurus,

*Environment:*

10.2.0.4 RAC om HP-UX

*Background:*

 We have a 4 node RAC setup and we have created multiple AQ queues (around
8) and we have setup instance affinity of the queue tables to instances
(Queues 1,2 on node1 and 3,4 on node2 so on ) and we have configured PL/SQL
notification call back on each of these queues.

 It is one single application that enqueues the message to all these queues
within the same session . ie.

connect RAC service
enqueue Q1;
enqueue Q2;
enqueue Q3;
enqueue Q4;
disconnect

Load on each of the queues would be more or less same .The idea behind
creating node affinity is that all the nodes in the RAC would have similar
load and when we enqueue messages in each of these queues, notification call
back is expected run on the respective nodes (notiication for queues 1,2
runs on node 1 and notification for 3,4 runs on node2 and so on)


*Problem Statement:*

Notification for all the queues runs only on the node where the queues were
enqueued from. i.e. if the source application connects to node1 and enqueues
messages on all the queues then the noticiation runs only on node1 and the
situation is that node1 is running 100% CPU utilization and other nodes are
running at 5% CPU utilization.


Any ideas/suggestions to get around this

Thanks and Best Regards

Sriram Kumar

Other related posts: