Yesterday I have run a benchmark on a 2 node RAC cluster (ProLiant BL685c G6 with 4 Six-Core AMD Opteron 8431) and 32G RAM each. It’s running Oracle Grid Infrastructure 184.108.40.206 as well as an Oracle 220.127.116.11 database on Oracle Enterprise Linux 5.5 64bit and device-mapper-multipath.
I was testing how the system would react under load but also wanted to see if the Runtime Load Balancing was working. The easiest way to check this is to view the AQ events that are generated for a service if AQ HA notifications is set to true. They can either be dequeued from the database as described in chapter 11 of Pro Oracle Database 11g RAC on Linux or alternatively queried from the database. The latter is the quicker method and this article will focus on it.
Before you can make use of Runtime Load Balancing you need to set at least 2 properties in your service:
- Connection Load Balancing Goal (either SHORT or LONG)
- Runtime Load Balancing Goal (SERVICE_TIME or THROUGHPUT)
.Net applications require AQ HA notifications to be set to true as these can’t directly make use of Fast Application Notification (FAN) events as said in the introduction. My JDBC application is fully capable of using the FAN events, however as you will see later I am using the AQ notifications anyway to view the events.