ActiveMQ Jdbc持久化配置 启动了两个 端口分别为 61616 、61617
package com.nk.activemq.basic; import org.apache.activemq.ActiveMQConnectionFactory; import org.junit.jupiter.api.Test; import javax.jms.*; /** * @author nelson */ public class ActiveMQTest { public static void main(String[] args) throws JMSException { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = null; try { connection = factory.createConnection(); connection.start(); //表示默认是持久化的 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination test = session.createQueue("test"); MessageProducer producer = session.createProducer(test); int count = 4; while (count-- > 0){ TextMessage textMessage = session.createTextMessage("收到了没"+count); System.out.println(textMessage); producer.send(textMessage); } } catch (JMSException e) { e.printStackTrace(); }finally { if(connection != null){ connection.close(); } } } @Test public void testConsumer() throws JMSException { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = null; try { connection = factory.createConnection(); connection.setClientID("na"); connection.start(); Session session = connection.createSession(true, Session.CLIENT_ACKNOWLEDGE); Destination test = session.createQueue("test"); MessageConsumer consumer = session.createConsumer(test); while(true){ TextMessage message = (TextMessage) consumer.receive(); System.out.println(message.getText()); message.acknowledge(); } } catch (JMSException e) { e.printStackTrace(); }finally { if(connection != null){ connection.close(); } } } @Test public void testConsumer1() throws JMSException { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = null; try { connection = factory.createConnection(); connection.setClientID("nk"); connection.start(); Session session = connection.createSession(true, Session.CLIENT_ACKNOWLEDGE); Destination test = session.createQueue("test"); MessageConsumer consumer = session.createConsumer(test); while(true){ TextMessage message = (TextMessage) consumer.receive(); System.out.println(message.getText()); message.acknowledge(); } } catch (JMSException e) { e.printStackTrace(); }finally { if(connection != null){ connection.close(); } } } }需要修改的地方: 关闭获得数据库lock的 端口61616 ActiveMQ程序 再次发送消息 成功获取到了