The resource clean up code for dead clients doesn't seem to work reliably. Probably not a show-stopper for a beta release, but definitely needs to be cleaned up for production. Basically, when Artemis detected a dead client (it stopped responding because I hit a breakpoint in my debugger), it tried to clean it up, but failed. The result is that I can no longer connect a new client from that client machine, because the broker thinks I already have a connection. This is after I killed my client app and restarted it. I'll log a bug for this one, but here's the server log:
WARN [org.apache.activemq.artemis.core.server] AMQ222067: Connection failure has been detected: AMQ119014: Did not receive data from /xxx.xxx.xxx.xxx:53516. It is likely the client has exited or crashed without closing its connection, or the network between the server and client has failed. You also might have configured connection-ttl and client-failure-check-period incorrectly. Please check user manual for more information. The connection will now be closed. [code=CONNECTION_TIMEDOUT] WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session ID:testmachine-63273-635671999039695375-1:0:-1 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session ID:testmachine-63273-635671999039695375-1:0:-1 WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session ID:testmachine-63273-635671999039695375-1:0:1 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session ID:testmachine-63273-635671999039695375-1:0:1 *INFO [org.apache.activemq.artemis.core.server] AMQ221021: failed to remove connection* Attempting to run a fresh client gets the following return exception on the client: Apache.NMS.Test.AsyncConsumeTest.TestAsynchronousConsume(Persistent): Apache.NMS.InvalidClientIDException : Broker: mybroker - Client: ID:AsyncConsumeTest:1:2 already connected from /xxx.xxx.xxx.xxx:53516 On Thu, May 14, 2015 at 11:37 AM, Jim Gomes <e.se...@gmail.com> wrote: > Another reason for not releasing this build: the destinations are not > automatically created. Server throws *ActiveMQNonExistentQueueException *when > trying to create a destination. Is this a configurable feature? If so, it > should be set to the standard ActiveMQ behavior by default (i.e., > auto-create destinations). Here's the exception that gets thrown: > > ERROR [org.apache.activemq.artemis.core.server] error decoding: > ActiveMQNonExistentQueueException[errorType=QUEUE_DOES_NOT_EXIST > message=AMQ119017: Queue > jms.queue.TEST.AsyncConsumeTest.2df14c0d-4e0c-4d74-91ab-8abbd3ba02ea does > not exist] > at > org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1401) > [artemis-server-1.0.0.jar:1.0.0] > at > org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1390) > [artemis-server-1.0.0.jar:1.0.0] > at > org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1380) > [artemis-server-1.0.0.jar:1.0.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager.deleteQueue(OpenWireProtocolManager.java:689) > [artemis-openwire-protocol-1.0.0.jar:1.0.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.processRemoveDestination(OpenWireConnection.java:1641) > [artemis-openwire-protocol-1.0.0.jar:1.0.0] > at > org.apache.activemq.command.DestinationInfo.visit(DestinationInfo.java:124) > [activemq-client-5.10.0.jar:5.10.0] > at > org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:271) > [artemis-openwire-protocol-1.0.0.jar:1.0.0] > at > org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:694) > [artemis-server-1.0.0.jar:1.0.0] > at > org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73) > [artemis-core-client-1.0.0.jar:1.0.0] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:318) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:507) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:464) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_20] > > > On Thu, May 14, 2015 at 8:05 AM, Jim Gomes <e.se...@gmail.com> wrote: > >> -1 >> >> Two reasons: >> >> 1. The default configuration of localhost for the broker does not allow >> connections from off-machine. For some reason, socket connections are >> refused from non-local clients. I had to change the broker.xml config to >> use the machine's actual IP address, and then non-local clients could >> connect. >> 2. The basic NMS OpenWire client fails to connect at all. It is getting >> unknown response IDs from the broker. I don't think the OpenWire protocol >> is being negotiated correctly. I am running with the latest NMS trunk >> version (1.8.0). >> >> >> On Wed, May 13, 2015 at 10:12 AM, Martyn Taylor <mtay...@redhat.com> >> wrote: >> >>> Hello all. >>> >>> I've cut a second release candidate of Apache Artemis 1.0.0 addressing >>> the initial RC feedback from community members. >>> >>> This is a first release of the Artemis project with protocol support for >>> AMQP, STOMP, CORE, HORNETQ and OPENWIRE. >>> >>> The release notes can be found here: >>> >>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12328953 >>> >>> The binary distributions can be found here: >>> >>> https://repository.apache.org/content/repositories/orgapacheactivemq-1051/org/apache/activemq/apache-artemis/1.0.0/ >>> >>> The source archives can be found here: >>> >>> https://repository.apache.org/content/repositories/orgapacheactivemq-1051/org/apache/activemq/apache-artemis/1.0.0/ >>> >>> The Maven repository is here: >>> >>> https://repository.apache.org/content/repositories/orgapacheactivemq-1051/ >>> >>> The source tag: >>> >>> https://git-wip-us.apache.org/repos/asf?p=activemq-artemis.git;a=tag;h=refs/tags/1.0.0 >>> >>> The project website for that version has been staged to: >>> http://people.apache.org/~martyntaylor/ >>> >>> The vote will remain open for 72 hours. >>> >>> [ ] +1 approve the release as Apache Artemis 1.0.0 >>> [ ] +0 no opinion >>> [ ] -1 disapprove (and reason why) >>> >>> Here's my (non-binding) +1 >>> >>> Regards >>> Martyn >>> >> >> >