在Jboss中配置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

我已经为jms主题配置了JBOSS_EAP_7.0。在jboss管理控制台中,我无法查看任何已发送的消息。但对于jms队列连接,即使没有任何使用者,我也可以查看已发送的项目。我无法查看任何消息的原因是什么?在jms主题中,如何验证消息是否已发送到主题

这是我的制片人班

@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)。在这段时间内,若我发送一些消息,那个些消息将被标记为已送达计数,这意味着消息被推送到订户,但尚未确认。一旦我重新连接到服务器,这些传递的消息就会丢失。