[rabbitmq-discuss] Distributed queue setup
Meredith Gregory
lgreg.meredith at gmail.com
Tue Jul 5 18:10:38 BST 2011
Dear Rabbitters,
We've got a situation -- it must be quite common -- where, in the simplest
case, we have two application nodes, call them A and B. RabbitMQ server is
running on the machines for both A and B. The B node has established it's
connection to exchange and queue, but does not know whether A has. In the
case that A has, all is well in the world. When B sends a message to A over
RabbitMQ, A happily processes it and returns a response message. However, if
A has not established it's connection to exchange and queue, then if B has
sent a message to A on this exchange and queue, then when A establishes it's
connection -- not only does it not see the pending message, the next message
B sends causes a Java exception to be thrown (see below). Now, we can
arrange a bit of a handshake to work around this, and have done so. However,
we'd like to know if there's a better or Rabbitier way of doing this.
Best wishes,
--greg
com.rabbitmq.client.AlreadyClosedException: clean connection shutdown;
reason: Attempt to use closed channelscala>
at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:181)
at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:276)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:521)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:507)
at net.liftweb.amqp.AMQPSender.send(AMQPSender.scala:25)
at net.liftweb.amqp.AMQPSender$$anonfun$loop$1.apply(AMQPSender.scala:32)
at net.liftweb.amqp.AMQPSender$$anonfun$loop$1.apply(AMQPSender.scala:31)
at scala.actors.ReactorTask.run(ReactorTask.scala:31)
at scala.actors.Reactor$class.resumeReceiver(Reactor.scala:129)
at net.liftweb.amqp.AMQPSender.scala$actors$ReplyReactor$$super$resumeReceiver(AMQPSender.scala:15)
at scala.actors.ReplyReactor$class.resumeReceiver(ReplyReactor.scala:68)
at net.liftweb.amqp.AMQPSender.resumeReceiver(AMQPSender.scala:15)
at scala.actors.Actor$class.searchMailbox(Actor.scala:500)
at net.liftweb.amqp.AMQPSender.searchMailbox(AMQPSender.scala:15)
at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(Reactor.scala:117)
at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply(Reactor.scala:114)
at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply(Reactor.scala:114)
at scala.actors.ReactorTask.run(ReactorTask.scala:33)
at scala.concurrent.forkjoin.ForkJoinPool$AdaptedRunnable.exec(ForkJoinPool.java:611)
at scala.concurrent.forkjoin.ForkJoinTask.quietlyExec(ForkJoinTask.java:422)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:340)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325)
--
L.G. Meredith
Managing Partner
Biosimilarity LLC
7329 39th Ave SW
Seattle, WA 98136
+1 206.650.3740
http://biosimilarity.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110705/3c753451/attachment.htm>
More information about the rabbitmq-discuss
mailing list