users@glassfish.java.net

AUTO_ACKNOWLEDGEMENT issues

From: <glassfish_at_javadesktop.org>
Date: Fri, 05 Jun 2009 15:05:53 PDT

We are using glassfish 9.1_01 b09d in a clustered environment. We have a MDB using AUTO_ACKNOWLEDGEMENT. The MDB calls a Remote Session Bean and catches a : nested exception is: java.rmi.AccessException: CORBA NO_PERMISSION 9998 Maybe; nested exception is:

        org.omg.CORBA.NO_PERMISSION: ----------BEGIN server-side stack trace----------
org.omg.CORBA.NO_PERMISSION: vmcid: 0x2000 minor code: 1806 completed: Maybe
 
and returns from the onMessage. However, the container does not remove the message from the queue and we end up in an endless loop.

I have changed this to a CLIENT_ACKNOWLEDGEMENT and called message.acknowledge() which solved the endless resending of the same message. However, I am now receiving [#|2009-06-05T14:50:55.121-0500|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=30;_ThreadName
=p: thread-pool-1; w: 12;_RequestID=5b1ef737-4ba0-44a2-9b0e-707b2b10e3a7;|
com.sun.messaging.jms.JMSException: [ACKNOWLEDGE_REPLY(25)] [C4036]: A broker error occurred. :[409] [B1261]: Transa
ction acknowledgement could not be added because message 741-166.37.164.45(a3:9:b0:3e:53:95)-59079-1244231440955[[co
nsumer:4198236325854191872, type=NONE]:[consumer:0, type=CLIENT_ACKNOWLEDGE]]TUID=4198236325911618048 has already be
en removed user=guest, broker=ndcplc01:43570(50816)
        at com.sun.messaging.jmq.jmsclient.ProtocolHandler.throwServerErrorException(ProtocolHandler.java:3930)
        at com.sun.messaging.jmq.jmsclient.ProtocolHandler.acknowledge(ProtocolHandler.java:2555)
        at com.sun.messaging.jmq.jmsclient.SessionImpl.doAcknowledge(SessionImpl.java:1321)
        at com.sun.messaging.jmq.jmsclient.SessionImpl.acknowledgeFromRAEndpoint(SessionImpl.java:1057)
        at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:267)
        at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
|#]

[#|2009-06-05T14:50:55.126-0500|INFO|sun-appserver9.1|javax.enterprise.system.stream.out|_ThreadID=30;_ThreadName=p:
 thread-pool-1; w: 12;|
com.sun.messaging.jms.JMSException: [END_TRANSACTION_REPLY(59)] [C4036]: A broker error occurred. :[500] Cannot perf
orm operation END_TRANSACTION(58) (XAFlag=0x4000000:TMSUCCESS) for the transaction has been set to FAILED from START
ED(1) user=guest, broker=ndcplc01:43570(50816)
.
.
.
.
.
[#|2009-06-05T14:50:55.128-0500|WARNING|sun-appserver9.1|javax.enterprise.system.core.transaction|_ThreadID=30;_Thre
adName=p: thread-pool-1; w: 12;_RequestID=5b1ef737-4ba0-44a2-9b0e-707b2b10e3a7;|JTS5064: Unexpected exception occurr
ed while delisting the resource
javax.transaction.xa.XAException
        at com.sun.messaging.jmq.jmsclient.XAResourceForRA.end(XAResourceForRA.java:282)
[Message sent by forum member 'cobar' (cobar)]

http://forums.java.net/jive/thread.jspa?messageID=349488