Hi,
I am researching using a MessageListener in JBoss to communicate via JMS to Oracle Advanced Queuing (AQ). This communication worked okay with Oracle DB version 8.1.7.0.0. However, when I ran a test retrieving 1000 large text message it caused the JBoss server to crash. I was also able to reproduce this problem using a stand-alone Java program. Here is the error message:
Exception in thread "main" java.lang.OutOfMemoryError
<<no stack trace available>>
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6d447287
Function name=(N/A)
Library=D:\devtools\jdk1.3.1_06\jre\bin\hotspot\jvm.dll
NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions.
Current Java thread:
at oracle.jms.AQjmsConsumer.ocideq(Native Method)
at oracle.jms.AQjmsConsumer.dequeue
(AQjmsConsumer.java:1141)
at oracle.jms.AQjmsConsumer.receiveFromAQ
(AQjmsConsumer.java:685)
at oracle.jms.AQjmsConsumer.receive
(AQjmsConsumer.java:628)
at wms_adaptor_test.TestAQ.receive
(TestAQ.java:236)
at wms_adaptor_test.TestAQ.main
(TestAQ.java:70)
I searched metalink and found this problem was fixed in Oracle DB version Oracle 8.1.7.4.1. Thus, I upgraded from Oracle 8.1.7.0.0 to 8.1.7.4.1. I then re-ran my stand-alone Java program to verify that 1000 large text messages could be retrieved and it worked. However, my MessageListener in JBoss no longer works because it does not receive any asynchronous notifications from Oracle AQ that result in execution of the onMessage function!!
Has anyone experienced similar JMS problems using JBoss 3.0.4 and Oracle AQ/DB version 8.1.7.4.1?
Regards,
Richard
The problem was a memory leak in the OCI8 driver that was fixed by switching to the thin driver.