我正在设计一个独立的应用程序(没有应用程序服务器),它将每 5 分钟调用两个计时器并发送(基于文件是否存在于导向器中)并从队列接收消息。此应用程序计划连续运行很长时间(年)......
现在我遇到了一个难题,是只创建一次 JMS 连接并一直使用它..还是每 5 分钟连接一次连接并关闭它们......(在执行业务逻辑之后)
对设计有任何建议会有帮助吗?如果我选择单一连接(并使用 JMS MessageListenr),如果队列管理器关闭并在一两天后出现会发生什么......
我尝试了一个带有 ActiveMQ 的示例......一旦我杀死了活动的 mq 代理和生产者......监听器线程(它只创建一次 conn 并使用 MessageListener)应用程序会在几分钟后自动结束
// 下面的监听器代码
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
ActiveMQConnection.DEFAULT_BROKER_URL);
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("mmy first active mq queue");
MessageConsumer consumer = session.createConsumer(destination);
MyListener mylistener = new MyListener();
consumer.setMessageListener(mylistener);
connection.setExceptionListener(mylistener);