I don’t see an issue from that code snippet. What does the producer side look like? Maybe the producer is taking the messages?
-Jordan From: Donald Laidlaw [email protected] Reply: [email protected] [email protected] Date: July 2, 2014 at 5:01:38 AM To: [email protected] [email protected] Subject: DistributedQueue - subscriber not receiving all messages Hi All, Despite the advice not to use Zookeeper for queues, I thought I would try it for a very low volume application rather than install a dedicated messaging system. I already had zookeeper, so it seemed like a decent fit. I create a DistributedQueue<T> for my type and provide the serializer, path, client, and the consumer interface. I then start it and immediately receive any messages that are already in the queue. Meanwhile in another JVM (same machine) I connect to the same path with a DistributedQueue<T> with a null consumer interface parameter and send new messages. Those messages never get consumed by the consumer I created earlier. I can start the zookeeper shell and actually see the messages in the path. So I know the messages are there. If I stop the original consumer (stop the whole JVM, not just the DistributedQueue object)and start it again then it will consume the messages that were waiting there. I don't think this is the expected behavior, and I am not sure why it is happening. Can anyone see something I missed? Java 8 on Mac OSX Mavericks, fully updated Zookeeper 3.4.6 Curator 2.4.2 The Code ... QueueBuilder<NodeStateEvent> builder = QueueBuilder.builder( curatorFramework, queueConsumer, new JsonQueueSerializer<>(NodeStateEvent.class), queuePath); DistributedQueue<NodeStateEvent> queue = builder.buildQueue(); queue.start(); // At this point events already in the queue arrive and are processed by the // queueConsumer without any issues. However, no newly queued events are // ever received. Don Laidlaw 866 Cobequid Rd. Lower Sackville, NS B4C 4E1 Phone: 1-902-576-5185 Cell: 1-902-401-6771
