¿witch jar contains ManagedConnectionFactoryWrapper class and NameFactory class?.thanks.
Glenn Owen wrote: > > > Hmm, seems like the rollback of the message on the queues was due to > another problem. So we may not care so much, that Geronimo is throwing > the exception on shutdown. > > However, I'm still looking into this problem, because we get a similar > "Got duplicate deregisterConnection for client:" exception when shutting > down Geronimo if an MDB had sent any messages to another MDB. > > > -------- Forwarded Message -------- > From: Glenn Owen <[EMAIL PROTECTED]> > To: [email protected] > Subject: Problem during shutdown when using JMS in a GBean > Date: Thu, 01 Mar 2007 11:43:38 -0400 > > I have a problem trying to utilize a JMS queue from a GBean in Geronimo > 1.1.1. > > I believe I have correctly injected the Queue & Factory, as writing > messages > to the queue seems to work just fine, the problem occurs when Geronimo is > restarted. > I get an error on shutdown, that unfortunately has the side effect of > restoring > all the messages into the queues, so they get reprocessed on next > start-up. > > Here's the important bits of the code (I've removed the Queue injection > parts to simplify things) > > geronimo-application.xml: > > <sys:reference name="MyQueueFactory"> > <sys:name>ProxyConnectionFactory</sys:name> > </sys:reference> > > GBean Info: > > infoBuilder.addReference("MyQueueFactory", > ManagedConnectionFactoryWrapper.class, > NameFactory.JCA_MANAGED_CONNECTION_FACTORY); > > infoBuilder.setConstructor(new String[] {"MyQueueFactory"}); > > > GBean Constructor: > > public MyProxy (ManagedConnectionFactoryWrapper pFactoryWrapper) { > > jmsFactory = (QueueConnectionFactory) > pFactoryWrapper.getConnectionFactory(); > > QueueConnection sendQueueConn = (QueueConnection) > jmsFactory.createConnection(); > > // do regular Queue type stuff ... > > sendQueueConn.close(); > > > and during Geronimo shutdown I get..... > > 11:06:49,469 WARN [BrokerContainerImpl] Got duplicate > deregisterConnection for client: ID:laptop-38073-1172761593045-18:0 > 11:06:49,474 WARN [TransportChannelSupport] Caught exception dispatching > message and no ExceptionListener registered: javax.jms.JMSException: Error > reading socket: java.io.EOFException > javax.jms.JMSException: Error reading socket: java.io.EOFException > at > org.activemq.util.JMSExceptionHelper.newJMSException(JMSExceptionHelper.java:49) > at > org.activemq.transport.tcp.TcpTransportChannel.doClose(TcpTransportChannel.java:509) > at > org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:330) > at java.lang.Thread.run(Thread.java:595) > Caused by: java.io.EOFException > at java.io.DataInputStream.readByte(DataInputStream.java:243) > at > org.activemq.io.AbstractWireFormat.readPacket(AbstractWireFormat.java:230) > at > org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:313) > ... 1 more > 11:06:49,503 INFO [ActiveMQManagedConnection] Error occured during close > of a JMS connection. > javax.jms.JMSException: syncSendTimedOut: connection no longer OK > at > org.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1403) > at > org.activemq.ActiveMQConnection.sendConnectionInfoToBroker(ActiveMQConnection.java:1628) > at org.activemq.ActiveMQConnection.close(ActiveMQConnection.java:763) > at > org.activemq.ra.ActiveMQManagedConnection.destroy(ActiveMQManagedConnection.java:225) > at > org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor.internalDestroy(SinglePoolConnectionInterceptor.java:121) > at > org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.destroy(AbstractSinglePoolConnectionInterceptor.java:138) > at > org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.destroy(TransactionEnlistingInterceptor.java:98) > at > org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.destroy(TransactionCachingInterceptor.java:113) > at > org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.destroy(ConnectionHandleInterceptor.java:75) > at > org.apache.geronimo.connector.outbound.TCCLInterceptor.destroy(TCCLInterceptor.java:57) > at > org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.destroy(ConnectionTrackingInterceptor.java:86) > at > org.apache.geronimo.connector.outbound.AbstractConnectionManager.doStop(AbstractConnectionManager.java:169) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.destroyInstance(GBeanInstance.java:1143) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStop(GBeanInstanceState.java:337) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:188) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:548) > at > org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:423) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:180) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:548) > at > org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:423) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:180) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:548) > at > org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:423) > at > org.apache.geronimo.kernel.config.KernelConfigurationManager$ShutdownHook.run(KernelConfigurationManager.java:310) > at > org.apache.geronimo.kernel.basic.BasicKernel.notifyShutdownHooks(BasicKernel.java:668) > at > org.apache.geronimo.kernel.basic.BasicKernel.shutdown(BasicKernel.java:645) > at org.apache.geronimo.kernel.KernelGBean.shutdown(KernelGBean.java:378) > at > org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852) > at > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239) > at > org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168) > at > com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213) > at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815) > at > com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784) > at > javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408) > at > javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81) > at > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245) > at java.security.AccessController.doPrivileged(Native Method) > at > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348) > at > javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782) > at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) > at java.lang.Thread.run(Thread.java:595) > > > If don't do the connection close(), I get a different error..... > > 11:26:28,171 WARN [BrokerContainerImpl] No clientID available for client: > brokerConnector-client:(10268338) : TcpTransportChannel: > Socket[addr=/127.0.0.1,port=40729,localport=61616] > 11:26:28,175 WARN [ActiveMQManagedConnection] Connection failed: > javax.jms.JMSException: Error reading socket: java.io.EOFException > 11:26:28,180 WARN [GeronimoConnectionEventListener] > connectionErrorOccurred called with null > javax.jms.JMSException: Error reading socket: java.io.EOFException > at > org.activemq.util.JMSExceptionHelper.newJMSException(JMSExceptionHelper.java:49) > at > org.activemq.transport.tcp.TcpTransportChannel.doClose(TcpTransportChannel.java:509) > at > org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:330) > at java.lang.Thread.run(Thread.java:595) > Caused by: java.io.EOFException > at java.io.DataInputStream.readByte(DataInputStream.java:243) > at > org.activemq.io.AbstractWireFormat.readPacket(AbstractWireFormat.java:230) > at > org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:313) > ... 1 more > 11:26:28,185 INFO [ActiveMQManagedConnection] Error occured during close > of a JMS connection. > javax.jms.JMSException: syncSendTimedOut: connection no longer OK > at > org.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1403) > at > org.activemq.ActiveMQConnection.sendConnectionInfoToBroker(ActiveMQConnection.java:1628) > at org.activemq.ActiveMQConnection.close(ActiveMQConnection.java:763) > at > org.activemq.ra.ActiveMQManagedConnection.destroy(ActiveMQManagedConnection.java:225) > at > org.apache.geronimo.connector.outbound.MCFConnectionInterceptor.returnConnection(MCFConnectionInterceptor.java:57) > at > org.apache.geronimo.connector.outbound.XAResourceInsertionInterceptor.returnConnection(XAResourceInsertionInterceptor.java:47) > at > org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor.internalReturn(SinglePoolConnectionInterceptor.java:162) > at > org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.returnConnection(AbstractSinglePoolConnectionInterceptor.java:119) > at > org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.returnConnection(TransactionEnlistingInterceptor.java:94) > at > org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.returnConnection(TransactionCachingInterceptor.java:93) > at > org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.returnConnection(ConnectionHandleInterceptor.java:71) > at > org.apache.geronimo.connector.outbound.TCCLInterceptor.returnConnection(TCCLInterceptor.java:50) > at > org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.returnConnection(ConnectionTrackingInterceptor.java:82) > at > org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener.connectionErrorOccurred(GeronimoConnectionEventListener.java:81) > at > org.activemq.ra.ActiveMQManagedConnection.fireErrorOccurredEvent(ActiveMQManagedConnection.java:192) > at > org.activemq.ra.ActiveMQManagedConnection.onException(ActiveMQManagedConnection.java:409) > at > org.activemq.transport.TransportChannelSupport.onAsyncException(TransportChannelSupport.java:445) > at > org.activemq.transport.tcp.TcpTransportChannel.doClose(TcpTransportChannel.java:509) > at > org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:330) > at java.lang.Thread.run(Thread.java:595) > > > I must be missing something simple - but what is it? > > Note, I do need to admit I'm using Java 1.5 - if there's a chance it is > the cause. > > Glenn. > > > -- View this message in context: http://www.nabble.com/Problem-during-shutdown-when-using-JMS-in-a-GBean-tp9252234s134p14691986.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
