日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除

發布時間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

我把消息設置的持久化到數據庫。采用topic的方式發送消息。

每次發送消息之后,數據庫的ACTIVEMQ_MSGS表里都會插入10條記錄(每次是發送10條消息),在接收端接收消息之后,ACTIVEMQ_MSGS表里的數據沒有被刪掉,求大神幫忙給看看。(采用queue方式發送消息,接收端沒接收消息之前,ACTIVEMQ_MSGS表里有數據,接收之后ACTIVEMQ_MSGS的數據庫就自動被刪掉了)

發送端的代碼如下;

import javax.jms.Connection;

import javax.jms.DeliveryMode;

import javax.jms.JMSException;

import javax.jms.MessageProducer;

import javax.jms.Session;

import javax.jms.TextMessage;

import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

public class TopicPublisher {

public static void main(String[] args) throws JMSException {

ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");

Connection connection = factory.createConnection();

connection.start();

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Topic topic = session.createTopic("myTopic.messages");

MessageProducer producer = session.createProducer(topic);

producer.setDeliveryMode(DeliveryMode.PERSISTENT);

for(int i =0;i<10;i++){

TextMessage message = session.createTextMessage();

message.setText("message_" + System.currentTimeMillis());

producer.send(message);

System.out.println("Sent message: " + message.getText());

// try {

// Thread.sleep(1000);

// } catch (InterruptedException e) {

// e.printStackTrace();

// }

}

session.close();

connection.stop();

connection.close();

}

}

接收端的代碼如下:

import javax.jms.Connection;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageConsumer;

import javax.jms.MessageListener;

import javax.jms.Session;

import javax.jms.TextMessage;

import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

public class TopicSubscriber {

/**

* @param args

*/

public static void main(String[] args) {

ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");

try {

Connection connection = factory.createConnection();

connection.setClientID("null");

connection.start();

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Topic topic = session.createTopic("myTopic.messages");

MessageConsumer consumer = session.createDurableSubscriber(topic,"123");

consumer.setMessageListener(new MessageListener() {

public void onMessage(Message message) {

TextMessage tm = (TextMessage) message;

try {

System.out.println("Received message: " + tm.getText());

} catch (JMSException e) {

e.printStackTrace();

}

}

});

} catch (JMSException e) {

e.printStackTrace();

}

}

}

總結

以上是生活随笔為你收集整理的java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。