Hello, we are having some problems with store-and-forward in specific scenarios.
The consumer is setup like this: try { BrokerService broker = new BrokerService(); // set persistence broker.setUseJmx(true); broker.addConnector("tcp:localhost:61616"); // Admin side listening port } catch (Exception ex) { // ... } the producer like this: try { BorkerService borker = new BrokerService(); // set persistence broker.addConnector("tcp:localhost:61615"); // Managed side listenning port, or we can // use vm transport if in same VM. DiscoveryNetworkConnector nc = new DiscoveryNetworkConnector(); nc.setUri(new URI("static:(tcp://localhost:61616)")); nc.setFailover(true); nc.addStaticallyIncludedDestination(new ActiveMQQueue("QUEUE.DEFAULT")); // Forward specified Queue broker.addNetworkConnector(nc); broker.start(); } catch (Exception ex) { // ... } and we send messages like this: // user = ActiveMQConnection.DEFAULT_USER; // pwd = ActiveMQConnection.DEFAULT_PASSWORD; // url = failover:tcp://localhost:61615 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, pwd, url); Connection connection = connectionFactory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("QUEUE.DEFAULT"); MessageProducer producer = session.createProducer(destination); producer.setDeliveryMode(DeliveryMode.PERSISTENT); // Persistent TextMessage tm = session.createTextMessage("jms-domain-log-prototype-embedded"); producer.send(tm); session.close(); connection.close(); This works well if we stop and start the producer. However if we stop and start the consumer it fails to reconnect - we end up having to stop and start the producer as well. We also tried using the JMS-JMS bridge like this: // Insert following codes before broker start. ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(); factory.setBrokerURL("failover:tcp://localhost:61616"); OutboundQueueBridge oqb = new OutboundQueueBridge(); oqb.setOutboundQueueName("QUEUE.DEFAULT"); JmsQueueConnector jc = new JmsQueueConnector(); jc.setOutboundQueueBridges(new OutboundQueueBridge[]{oqb}); jc.setOutboundQueueConnectionFactory(factory); broker.addJmsConnector(jc); but this has the unfortunate side effect of needing the consumer to be started first. Any thoughts appreciated. I believe this is AMQ 4 andy -- View this message in context: http://www.nabble.com/Trouble-with-Store-and-Forward-tf2350313.html#a6544577 Sent from the ActiveMQ - User mailing list archive at Nabble.com.