【发布时间】:2016-02-26 22:48:12
【问题描述】:
我在我的应用程序中使用 ActiveMQ。我的问题是如何删除我从 kahadb 成功使用的消息。因为如果不删除,我的db.data文件就一直在变大。
这是我的消费者;
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:8182");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("TEST.FOO");
MessageConsumer consumer = session.createConsumer(destination);
MessageListener listner = new MessageListener() {
int count = 0;
public void onMessage(Message message) {
if (message instanceof ObjectMessage) {
ObjectMessage objectMessage = (ObjectMessage) message;
ResponseDuration responseDuration = null;
try {
responseDuration = (ResponseDuration) objectMessage.getObject();
System.out.println("Received Time : " + new Date() + "Received: " + responseDuration.toString());
} catch (JMSException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
ResponseDurationOperations.insertResponseDurations(responseDuration);
count++;
System.out.println("Count = " + count);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
consumer.setMessageListener(listner);
【问题讨论】:
-
任何帮助,我只想在消费者收到消息后从 db.data 文件中删除消息
-
我的问题是相反的,我正在使用 Oracle 进行持久化。消息被消费后从数据库中删除,我怎样才能永远保留消息?
-
@NikhilJoshi:我也在寻找你的问题。目前对我们来说,消费者正在一个新的协议队列中发送每条消费的消息。所以我们每天都有消费消息的队列。但是肯定 ActiveMQ 本身一定有一些东西?
标签: activemq producer-consumer