multi-threaded issues with failover transport ---------------------------------------------
Key: AMQ-750 URL: https://issues.apache.org/activemq/browse/AMQ-750 Project: ActiveMQ Type: Bug Components: Transport Versions: 4.0 Environment: Got the June 6 code using svn, and test is run on Windows Reporter: Ning Li Priority: Minor Fix For: incubation Modified ProducerTool.java into multi-threaded test code: This is the peudo code: For ( thread 1 to 30 ) { Connection connection = createConnection(); Session session = createSession(connection); Producer producer = createProducer(session); sendMessages(producer, 10); //each thread send 10 messages to broker, using url = failover:tcp://localhost:61616 } Please turn on Debug info for log4j, otherwise you will hit other threading issue before this one, when client shutting down, this exception will be thrown: Thread-13 Sending total message: 10 Total time: 203 DONE !!! [ Thread-13] FailoverTransport DEBUG Stopped. [cp://localhost/127.0.0.1:61616] FailoverTransport DEBUG Transport failed, starting up reconnect task java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:48) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:55) at java.io.DataInputStream.readInt(DataInputStream.java:353) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:274) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:142) at java.lang.Thread.run(Thread.java:595) [ ActiveMQ Scheduler] InactivityMonitor DEBUG Message sent since last write check, resetting flag [cp://localhost/127.0.0.1:61616] FailoverTransport DEBUG Transport failed, starting up reconnect task java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:48) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:55) at java.io.DataInputStream.readInt(DataInputStream.java:353) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:274) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:142) at java.lang.Thread.run(Thread.java:595) [ ActiveMQ Task] FailoverTransport DEBUG Attempting connect to: tcp://localhost:61616 Thread-17 Sending total message: 10 Total time: 109 DONE !!! [ Thread-17] FailoverTransport DEBUG Stopped. [cp://localhost/127.0.0.1:61616] FailoverTransport DEBUG Transport failed, starting up reconnect task java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:48) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:55) at java.io.DataInputStream.readInt(DataInputStream.java:353) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:274) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:142) at java.lang.Thread.run(Thread.java:595) Thread-14 Sending total message: 10 Total time: 328 DONE !!! [cp://localhost/127.0.0.1:61616] FailoverTransport DEBUG Transport failed, starting up reconnect task java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:48) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:55) at java.io.DataInputStream.readInt(DataInputStream.java:353) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:274) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:142) at java.lang.Thread.run(Thread.java:595) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira