[jboss-user] [JBoss Messaging] - JBM-1.4.0.SP1 Bridge Deploy/Undeploy Issues
LeifOO
do-not-reply at jboss.com
Sun Nov 25 20:28:06 EST 2007
Hello,
#JBMESSAGING-999 now works, but I run into a problem when I un-deploy a bridge service after stopping the "remote" node.
The scenario:
Start two nodes, node0 and node1.
Deploy Remote JMS-DS and Bridge Service on node0
Stop node1. The bridge service detects that node1 is unavailable.
Un-deploy Remote JMS-DS and Bridge Service. It seems that the bridge service is not completly un-deployed and tries to connect to node1 even if the service is un-deployed(stopped). This is the output from node0:
| 02:21:20,671 INFO [BridgeService] Started bridge BridgeService. Source: /queue/A Target: /queue/A
| 02:21:28,640 ERROR [SocketClientInvoker] Got marshalling exception, exiting
| java.io.IOException: Connection reset by peer: socket write error
| at java.net.SocketOutputStream.socketWrite0(Native Method)
| at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
| at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
| at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
| at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
| at java.io.DataOutputStream.flush(DataOutputStream.java:106)
| at org.jboss.jms.wireformat.SerializedPacket.write(SerializedPacket.java:81)
| at org.jboss.jms.wireformat.JMSWireFormat.write(JMSWireFormat.java:237)
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:983)
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:559)
| at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:413)
| at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
| at org.jboss.remoting.ConnectionValidator.doCheckConnection(ConnectionValidator.java:133)
| at org.jboss.remoting.ConnectionValidator.run(ConnectionValidator.java:308)
| at java.util.TimerThread.mainLoop(Timer.java:512)
| at java.util.TimerThread.run(Timer.java:462)
| 02:21:28,640 WARN [Bridge] Detected failure on connection
| javax.jms.JMSException: Failure on underlying remoting connection
| at org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener.handleConnectionException(ConsolidatedRemotingConnectionListener.java:102)
| at org.jboss.remoting.ConnectionValidator$1.run(ConnectionValidator.java:452)
| 02:21:40,656 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed to ping to server: Can not get c
| onnection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss
| .jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowF
| actor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat]
| 02:21:40,703 WARN [loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.rollbackxaerror] [com.arjuna.ats.internal.jta.resources.arjunacore.rollbackxaerror] XAResourceReco
| rd.rollback - xa error XAException.XAER_NOTA
| 02:21:40,703 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_54] - Top-level abort of action -3f57fe97:5db:474a1955:a6 received TwoPhaseOutcome.FINISH_ERROR fr
| om <ClassName:RecordType.JTA_RECORD>
| 02:21:40,703 INFO [BridgeService] Stopped bridge BridgeService
| 02:21:50,718 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed to ping to server: Can not get c
| onnection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss
| .jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowF
| actor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat]
| 02:22:00,781 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed to ping to server: Can not get c
| onnection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss
| .jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowF
| actor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat]
| 02:22:10,828 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed to ping to server: Can not get c
| onnection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss
| .jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowF
| actor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat]
| 02:22:18,875 WARN [Client] unable to remove remote callback handler: Can not get connection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.
| 0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss.jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWire
| Format&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowFactor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFor
| mat]
| 02:22:20,890 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed to ping to server: Can not get c
| onnection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss
| .jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowF
| actor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat]
| 02:22:28,843 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed sending disconnect for client le
| ase for client with session ID 5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1o
| 02:22:30,843 WARN [LeasePinger] LeasePinger[SocketClientInvoker[1933eab, bisocket://127.0.0.1:4557](5c4o12x-l5758i-f9gafm8t-1-f9gbdsk1-1p)] failed to ping to server: Can not get c
| onnection to server. Problem establishing socket connection for InvokerLocator [bisocket://127.0.0.1:4557/?clientLeasePeriod=10000&clientMaxPoolSize=200&clientSocketClass=org.jboss
| .jms.client.remoting.ClientSocketWrapper&dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&numberOfRetries=10&pingFrequency=214748364&pingWindowF
| actor=10&socket.check_connection=false&timeout=0&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat]
| 02:22:38,890 ERROR [MicroRemoteClientInvoker] error shutting down lease pinger
| 02:22:38,890 ERROR [ClosedInterceptor] ClosedInterceptor.ClientSessionDelegate[u1-clsdbg9f-1-t8mfag9f-i8575l-x21o4c5]: method getXAResource() did not go through, the interceptor is
| CLOSED
| 02:22:38,890 WARN [Bridge] Will retry after a pause of 5000 ms
| 02:22:44,828 WARN [Bridge] Failed to set up connections
| javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1199 [Root exception is javax.naming.CommunicationException: Failed to connect to s
| erver localhost:1199 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1199 [Root exception is java.net.ConnectException: Connectio
| n refused: connect]]]
| at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1562)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
| at javax.naming.InitialContext.lookup(InitialContext.java:392)
| at org.jboss.jms.server.bridge.JNDIFactorySupport.createObject(JNDIFactorySupport.java:66)
| at org.jboss.jms.server.bridge.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:45)
| at org.jboss.jms.server.bridge.Bridge.setupJMSObjects(Bridge.java:910)
| at org.jboss.jms.server.bridge.Bridge.setupJMSObjectsWithRetry(Bridge.java:1152)
| at org.jboss.jms.server.bridge.Bridge.access$1500(Bridge.java:66)
| at org.jboss.jms.server.bridge.Bridge$FailureHandler.run(Bridge.java:1507)
| at java.lang.Thread.run(Thread.java:619)
| Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1199 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server
| localhost:1199 [Root exception is java.net.ConnectException: Connection refused: connect]]
| at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:274)
| at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1533)
| ... 10 more
| Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1199 [Root exception is java.net.ConnectException: Connection refused: connect]
| at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:248)
| ... 11 more
| Caused by: java.net.ConnectException: Connection refused: connect
| at java.net.PlainSocketImpl.socketConnect(Native Method)
| at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
| at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
| at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
| at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
| at java.net.Socket.connect(Socket.java:519)
| at java.net.Socket.connect(Socket.java:469)
| at java.net.Socket.<init>(Socket.java:366)
| at java.net.Socket.<init>(Socket.java:267)
| at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)
| at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)
| at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244)
| ... 11 more
| 02:22:44,843 ERROR [ClosedInterceptor] ClosedInterceptor.ClientSessionDelegate[u1-clsdbg9f-1-t8mfag9f-i8575l-x21o4c5]: method getXAResource() did not go through, the interceptor is
| CLOSED
| 02:22:44,843 WARN [Bridge] Failed to set up connections, will retry after a pause of 5000 ms
| 02:22:50,765 WARN [Bridge] Failed to set up connections
Everything works as expected if I un-deploy while both nodes are running.
The remote ds:
| <?xml version="1.0" encoding="UTF-8"?>
|
| <connection-factories>
|
| <!-- The Remote JMS provider loader -->
| <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
| name="jboss.messaging:service=JMSProviderLoader,name=RemoteJMSProvider">
| <attribute name="ProviderName">MyRemoteJMSProvider</attribute>
| <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
| <!-- The combined connection factory -->
| <attribute name="FactoryRef">/XAConnectionFactory</attribute>
| <!-- The queue connection factory -->
| <attribute name="QueueFactoryRef">/XAConnectionFactory</attribute>
| <!-- The topic factory -->
| <attribute name="TopicFactoryRef">/XAConnectionFactory</attribute>
| <!-- Access JMS via HAJNDI -->
| <attribute name="Properties">
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
| java.naming.provider.url=localhost:1199
| jnp.disableDiscovery=true
| </attribute>
| </mbean>
| </connection-factories>
|
The bridge service:
| <?xml version="1.0" encoding="UTF-8"?>
| <!--
| Example deployment descriptor for a message bridge
| $Id: messaging-secure-socket-service.xml 2737 2007-05-29 17:56:49Z timfox $
| -->
|
| <server>
|
| <mbean code="org.jboss.jms.server.bridge.BridgeService"
| name="jboss.messaging:service=Bridge,name=TestBridge"
| xmbean-dd="xmdesc/Bridge-xmbean.xml">
|
| <!-- The JMS provider loader that is used to lookup the source destination -->
| <depends optional-attribute-name="SourceProviderLoader">jboss.messaging:service=JMSProviderLoader,name=JMSProvider</depends>
| <!-- The JMS provider loader that is used to lookup the target destination -->
| <depends optional-attribute-name="TargetProviderLoader">jboss.messaging:service=JMSProviderLoader,name=RemoteJMSProvider</depends>
|
| <!-- The JMS provider loader that is used to lookup the source destination
| <depends optional-attribute-name="SourceProviderLoader">jboss.messaging:service=JMSProviderLoader,name=HAJNDIJMSProvider</depends>
| -->
| <!-- The JMS provider loader that is used to lookup the target destination
| <depends optional-attribute-name="TargetProviderLoader">jboss.messaging:service=JMSProviderLoader,name=HAJNDIJMSProvider</depends>
| -->
|
|
| <!-- The JNDI lookup for the source destination -->
| <attribute name="SourceDestinationLookup">/queue/A</attribute>
|
| <!-- The JNDI lookup for the target destination -->
| <attribute name="TargetDestinationLookup">/queue/A</attribute>
|
| <!-- The username to use for the source connection
| <attribute name="SourceUsername">bob</attribute>
| -->
|
| <!-- The password to use for the source connection
| <attribute name="SourcePassword">cheesecake</attribute>
| -->
|
| <!-- The username to use for the target connection
| <attribute name="TargetUsername">mary</attribute>
| -->
|
| <!-- The password to use for the target connection
| <attribute name="TargetPassword">hotdog</attribute>
| -->
|
| <!-- Optional: The Quality Of Service mode to use, one of:
| QOS_AT_MOST_ONCE = 0;
| QOS_DUPLICATES_OK = 1;
| QOS_ONCE_AND_ONLY_ONCE = 2; -->
| <attribute name="QualityOfServiceMode">2</attribute>
|
| <!-- JMS selector to use for consuming messages from the source
| <attribute name="Selector">specify jms selector here</attribute>
| -->
|
| <!-- The maximum number of messages to consume from the source before sending to the target -->
| <attribute name="MaxBatchSize">5</attribute>
|
| <!-- The maximum time to wait (in ms) before sending a batch to the target even if MaxBatchSize is not exceeded.
| -1 means wait forever -->
| <attribute name="MaxBatchTime">-1</attribute>
|
| <!-- If consuming from a durable subscription this is the subscription name
| <attribute name="SubName">mysub</attribute>
| -->
|
| <!-- If consuming from a durable subscription this is the client ID to use
| <attribute name="ClientID">myClientID</attribute>
| -->
|
| <!-- The number of ms to wait between connection retrues in the event connections to source or target fail -->
| <attribute name="FailureRetryInterval">5000</attribute>
|
| <!-- The maximum number of connection retries to make in case of failure, before giving up
| -1 means try forever-->
| <attribute name="MaxRetries">-1</attribute>
|
| <!-- If true then the message id of the message before bridging will be added as a header to the message so it is available
| to the receiver. Can then be sent as correlation id to correlate in a distributed request-response -->
| <attribute name="AddMessageIDInHeader">false</attribute>
|
| </mbean>
|
| </server>
|
Regards
Leif Olsen
My environment:
WinXP
jdk1.6.0
jboss-4.2.2.GA
MySql5
jboss-messaging-1.4.0.SP1
jboss-remoting 2.2.2.SP1
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107626#4107626
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107626
More information about the jboss-user
mailing list