在Jboss中配置JMS主题
我已经为jms主题配置了JBOSS_EAP_7.0。在jboss管理控制台中,我无法查看任何已发送的消息。但对于jms队列连接,即使没有任何使用者,我也可以查看已发送的项目。我无法查看任何消息的原因是什么?在jms主题中,如何验证消息是否已发送到主题 这是我的制片人班在Jboss中配置JMS主题,jboss,jms,wildfly,Jboss,Jms,Wildfly,我已经为jms主题配置了JBOSS_EAP_7.0。在jboss管理控制台中,我无法查看任何已发送的消息。但对于jms队列连接,即使没有任何使用者,我也可以查看已发送的项目。我无法查看任何消息的原因是什么?在jms主题中,如何验证消息是否已发送到主题 这是我的制片人班 @Stateless public class ClientSenderFacadeBean { private static final OMSLogHandlerI logger = new Log4j2Handl
@Stateless
public class ClientSenderFacadeBean {
private static final OMSLogHandlerI logger = new Log4j2Handler("ClientSenderFacadeBean");
@Resource(lookup = "java:/JmsXA") // inject ConnectionFactory (more)
protected ConnectionFactory factory;
@Resource(lookup = "java:/jms/topic/ORD_CLINT_PUSH")
protected Topic target;
private Connection connection = null;
private Session session = null;
public void sendMessage(String message) {
MessageProducer producer= null;
try {
if(connection==null){ //todo verify
connection = factory.createConnection();
}
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
producer = session.createProducer(target);
producer.setDisableMessageID(true);
TextMessage outmsg = session.createTextMessage(message);
producer.send(outmsg);
logger.info("Message was sent to Topic");
producer.setTimeToLive(900000);//15min //todo
} catch (Exception e) {
logger.error(" Error when sending order to jboss:", e);
throw new OMSCoreRuntimeException(e.getMessage(), e);
} finally {
try {
if (producer != null)
producer.close();
} catch (JMSException e) {
logger.warn("\n jms producer close error:",e);
}
try {
if (session != null)
session.close();
} catch (JMSException e) {
logger.warn("\n jms session close error:",e);
}
}
}
您无法看到消息,因为订阅服务器为零的主题从未发送任何消息。谢谢您的回复。选项是为主题创建持久订阅服务器,请将其附加到主题一次。在此之后,发送消息的每个副本都将保留在持久订户的主题中,直到您取消订阅为止。谢谢Varsha我创建了持久订户。但当订户断开连接时,Jboss会让订户会话保持一段时间(连接ttl)。在这段时间内,若我发送一些消息,那个些消息将被标记为已送达计数,这意味着消息被推送到订户,但尚未确认。一旦我重新连接到服务器,这些传递的邮件就会丢失。您无法看到这些邮件,因为订阅服务器为零的主题永远不会有任何邮件要发送。谢谢您的回复。选项是为主题创建持久订阅服务器,请将其附加到主题一次。在此之后,发送消息的每个副本都将保留在持久订户的主题中,直到您取消订阅为止。谢谢Varsha我创建了持久订户。但当订户断开连接时,Jboss会让订户会话保持一段时间(连接ttl)。在这段时间内,若我发送一些消息,那个些消息将被标记为已送达计数,这意味着消息被推送到订户,但尚未确认。一旦我重新连接到服务器,这些传递的消息就会丢失。