activemq不能持久化topic
用下面的代码持久化Queue是可以的,试过了;但持久化Topic就不行,我用的activemq是5.10最新版,没有找到什么原因,谁知道的请告诉下:
public static void sendMessage(Session session, MessageProducer producer) throws Exception { for (int i = 1; i <= 50000; i++) { TextMessage message = session .createTextMessage("ActiveMq 发送的1消息" + i); // 发送消息到目的地方 producer.send(message); session.commit(); System.out.println("发送消息:" + "ActiveMq 发送的消息" + i); Thread.sleep(20l); } }
public static void main(String []args) throws JMSException { // ConnectionFactory :连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS Provider 的连接 Connection connection = null; // Session: 一个发送或接收消息的线程 Session session; // Destination :消息的目的地;消息发送给谁. Destination destination; // MessageProducer:消息发送者 MessageProducer producer; // TextMessage message; // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); try{ // 构造从工厂得到连接对象 connection = connectionFactory.createConnection(); // 启动 connection.start(); // 获取操作连接 session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createTopic("testTopic"); // 得到消息生成者【发送者】 producer = session.createProducer(destination); // 设置不持久化,此处学习,实际根据项目决定 producer.setDeliveryMode(DeliveryMode.PERSISTENT); sendMessage(session,producer); }catch(Exception e){ }finally{ try { connection.close(); } catch (JMSException e) { e.printStackTrace(); } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用createDurableSubscriber,并先开启消费者。