I am trying to use Oracle's Advanced Queueing in my EJB session bean.

When using a Connection object obtained from the JOnAS pool, creating the queue
fails as the connection is "not a valid connection".
As a work around I did a ConnectionImpl.getConnection() to get the actual
connection object. This allows me to create the Oracle queue.
However, JOnAS doesn't seem to like me working directly with the "actual
connection", and complains giving the output included below.
At the moment it seems the only way out is for me to implement a private (real)
connection pool exclusively for the Oracle AQ.

My Q: Is there any way to synchronise the actual connection with the
ConnectionImpl, (i.e. tell JOnAS that all is OK with the actual connection) to
stop it getting into a frenzy when I meddle with the actual connection directly
?

Any help much appreciated,
..Chris.

---- Start of exceptions -----
Exception in connectionClosed:javax.transaction.SystemException: Cannot send XA
end:javax.transaction.xa.XAException

2000-06-20 15:14:30.0connection-open counter underflowremoveConnection:
connectionlist is empty
doPostInvoke: Rolling back transaction

Cannot enlist XAResource:javax.transaction.SystemException: Cannot send XA
start:javax.transaction.xa.XAException: mixed transactions

Inconsistent PoolItem removed from FreeList

WARNING: Connection was not always closed correctly 
Unexpected Exception on commit_one_phase:java.rmi.RemoteException:
XAException:javax.transaction.xa.XAException: Cannot mix
transactionsdoPostInvoke: javax.transaction.SystemException: Unexpected
Exception on commit_one_phase

---- Start of AQ code -----

         qConn = AQjmsQueueConnectionFactory.createQueueConnection(dbConn);
         qSess = qConn.createQueueSession(true, 0);

         qConn.start();
         queue = ((AQjmsSession )qSess).getQueue(queueOwner, queueName);

         qReceiver = ((AQjmsSession )qSess).createReceiver(queue, null,
ScheduledReadDBObj.getFactory() );
         message = (AdtMessage) qReceiver.receive(); // block indefinately (no
timeout)
         scheduledReadDBObj = (ScheduledReadDBObj)message.getAdtPayload();



----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".

Reply via email to