I believe I know what the issue is now. I had a look at the SSLHandler documentation in Netty:
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/ssl/SslHandler.html It says the following must be done on reconnect: "To restart the SSL session, you must remove the existing closed SslHandler from the ChannelPipeline, insert a new SslHandler with a new SSLEngine into the pipeline, and start the handshake process as described in the first section." I don't see this remove/reinitialize of the SSLHandler being done in Netty currently. As well, in the Netty Producer I see options being set using the following calls: if (clientBootstrap == null) { clientBootstrap = new ClientBootstrap(channelFactory); clientBootstrap.setOption("child.keepAlive", configuration.isKeepAlive()); clientBootstrap.setOption("child.tcpNoDelay", configuration.isTcpNoDelay()); clientBootstrap.setOption("child.reuseAddress", configuration.isReuseAddress()); clientBootstrap.setOption("child.connectTimeoutMillis", configuration.getConnectTimeout()); } In the Netty user guide, section 3.1, bubble 3: http://docs.jboss.org/netty/3.1/guide/html_single/index.html it indicates that for client connections the "child" prefix is not required. If someone has a chance to look into these two issues there it would be much appreciated. If no-one has a chance to look at the issues tonight, I will have a go in the morning. thanks in advance, Gareth Gareth Collins wrote: > > Hello Claus, > > I am still having some problems. Whilst the connection is re-established, > I believe the ChannelFuture never indicates that the send completes. I > believe this is happening because: > > (1) Only one message after establishing the connection again appears to > start processing. > > (2) When I try to shutdown my executable (kill <pid>) I see the following: > > 2010-05-09 21:42:13,529::DEBUG: 1 inflight and pending exchanges for > consumer: Consumer[activemq://xxx.yyy] > 2010-05-09 21:42:13,530::INFO : Waiting as there are still 1 inflight and > pending exchanges to complete before we can shutdown > 2010-05-09 21:42:14,533::DEBUG: 1 inflight and pending exchanges for > consumer: Consumer[activemq://xxx.yyy] > 2010-05-09 21:42:14,533::INFO : Waiting as there are still 1 inflight and > pending exchanges to complete before we can shutdown > 2010-05-09 21:42:15,537::DEBUG: 1 inflight and pending exchanges for > consumer: Consumer[activemq://xxx.yyy] > 2010-05-09 21:42:15,538::INFO : Waiting as there are still 1 inflight and > pending exchanges to complete before we can shutdown > 2010-05-09 21:42:16,541::DEBUG: 1 inflight and pending exchanges for > consumer: Consumer[activemq://xxx.yyy] > 2010-05-09 21:42:16,541::INFO : Waiting as there are still 1 inflight and > pending exchanges to complete before we can shutdown > > I will play with the camel netty component tomorrow (Monday) and see if I > can find out why this is occurring. > > thanks again, > Gareth > > > Claus Ibsen-2 wrote: >> >> Hi >> >> I have committed fixes to camel-netty today. >> >> Can you test it on your system. It should now support re-connection >> and proper shutdown and whatnot. >> >> Mind that I have aligned and added the options so it matches the one >> we got in camel-mina. >> eg sync is now default true etc. >> >> Updated wiki page >> https://cwiki.apache.org/confluence/display/CAMEL/Netty >> >> >> On Thu, May 6, 2010 at 11:19 AM, Claus Ibsen <claus.ib...@gmail.com> >> wrote: >>> Hi >>> >>> I created a couple of tickets to improve/fix camel-netty >>> https://issues.apache.org/activemq/browse/CAMEL-2698 >>> https://issues.apache.org/activemq/browse/CAMEL-2699 >>> >>> I got the first one committed, and will work on the 2nd ticket. >>> >>> >>> On Thu, May 6, 2010 at 6:33 AM, Claus Ibsen <claus.ib...@gmail.com> >>> wrote: >>>> Hi >>>> >>>> Well spotted. Can you create a JIRA ticket ticket for that. >>>> >>>> >>>> On Thu, May 6, 2010 at 6:29 AM, Gareth Collins >>>> <gareth_coll...@hotmail.com> wrote: >>>>> >>>>> Hello, >>>>> >>>>> I took a look at the Netty Producer code: >>>>> >>>>> public void process(Exchange exchange) throws Exception { >>>>> if (configuration.isSync()) { >>>>> countdownLatch = new CountDownLatch(1); >>>>> } >>>>> >>>>> Channel channel = channelFuture.getChannel(); >>>>> channel.write(exchange.getIn().getBody()); >>>>> >>>>> if (configuration.isSync()) { >>>>> boolean success = >>>>> countdownLatch.await(configuration.getReceiveTimeoutMillis(), >>>>> TimeUnit.MILLISECONDS); >>>>> if (!success) { >>>>> throw new ExchangeTimedOutException(exchange, >>>>> configuration.getReceiveTimeoutMillis()); >>>>> } >>>>> Object response = ((ClientChannelHandler) >>>>> clientPipeline.get("handler")).getResponse(); >>>>> exchange.getOut().setBody(response); >>>>> } >>>>> } >>>>> >>>>> After taking a look at the netty documentation, I don't see how this >>>>> will >>>>> detect write failures (as I understand the channel.write() is >>>>> asynchronous). >>>>> Don't we need to wait on the ChannelFuture returned from the >>>>> channel.write()? (i.e. >>>>> >>>>> Channel channel = channelFuture.getChannel(); >>>>> ChannelFuture channelWriteFuture = >>>>> channel.write(exchange.getIn().getBody()); >>>>> channelWriteFuture.awaitUninterruptibly() >>>>> if (channelWriteFuture.isSuccess() == false) >>>>> { >>>>> // throw some exception >>>>> // or possibly if connection closed, try to create connection and >>>>> send >>>>> again >>>>> // if fails again throw exception >>>>> } >>>>> >>>>> thanks in advance, >>>>> Gareth Collins >>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://old.nabble.com/Recovery-From-Netty-Connection-Drop-tp28467631p28469185.html >>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Claus Ibsen >>>> Apache Camel Committer >>>> >>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>> Open Source Integration: http://fusesource.com >>>> Blog: http://davsclaus.blogspot.com/ >>>> Twitter: http://twitter.com/davsclaus >>>> >>> >>> >>> >>> -- >>> Claus Ibsen >>> Apache Camel Committer >>> >>> Author of Camel in Action: http://www.manning.com/ibsen/ >>> Open Source Integration: http://fusesource.com >>> Blog: http://davsclaus.blogspot.com/ >>> Twitter: http://twitter.com/davsclaus >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> >> > > -- View this message in context: http://old.nabble.com/Recovery-From-Netty-Connection-Drop-tp28467631p28517718.html Sent from the Camel - Users mailing list archive at Nabble.com.