使用jms时没有手动连接

使用jms时没有手动连接,jms,wildfly,Jms,Wildfly,我正在使用wildfly jms队列。。。我使用的是wildfly 9.0.2.Final 我让制片人这样做: @Inject private JMSContext jmsContext; private JMSProducer jmsProducer; @Resource(mappedName = "java:/jboss/exported/jms/queue/TosDownloadReport") private Queue queueDownloadReport;

我正在使用wildfly jms队列。。。我使用的是wildfly 9.0.2.Final

我让制片人这样做:

@Inject
private JMSContext jmsContext;
private JMSProducer jmsProducer;    

@Resource(mappedName = "java:/jboss/exported/jms/queue/TosDownloadReport")
private Queue queueDownloadReport;      

public void downloadReport(String adminId, DownloadReportFilter filter){
    try {
        jmsProducer = jmsContext.createProducer();
        String requestParam = Json.getInstance().getObjectMapper().writeValueAsString(filter);
        LOG.info("requestParam {}", requestParam);
        String id = UUID.randomUUID().toString().replace("-", "");
        RoutingRequest request = new RoutingRequest();
        request.putProperty("id", id);
        request.putProperty("adminId", adminId);
        request.putProperty("parameterRequest", requestParam);

        QueueMsgDownloadReport message = new QueueMsgDownloadReport();
        message.setId(id);
        message.setAdminId(adminId);

        String jsonMsg = Json.getInstance().getObjectMapper().writeValueAsString(message);

        gatewayService.send(RESOURCE, METHOD, request);
        jmsProducer.send(queueDownloadReport, jsonMsg);
    } catch (Exception e) {
        LOG.error(e.getMessage(),e);
    }
}
但有时我会遇到这样的异常,我必须重新启动wildfly

2017-05-05 11:08:20,004 ERROR [com.daksa.tos.infrastructure.api.TosTimer] (EJB default - 7) Could not create a session: IJ000453: Unable to get managed connection for java:/JmsXA: javax.jms.JMSRuntimeException: Could not create a session: IJ000453: Unable to get managed connection for java:/JmsXA
Caused by: javax.resource.ResourceException: IJ000655: No managed connections available within configured blocking timeout (30000 [ms])
从我读到的内容来看,如果我使用的是inject,我不需要调用jmsContext.close()


请告诉我我做错了什么…Thx

根据,如果您正在注射JMSContext,您不必担心它。但是,您是否在代码中使用java:/JmsXA即pooledconnection工厂?有多少同时发出的请求?您可以增加连接工厂的
max pool size
。您好,很抱歉回复晚了…是的,我使用的是java:/JmsXA…我想请求大约是每10秒1个,我有6个这样的代码…您的意思是“这一节”中的池大小?现在我尝试使用mdb使用旧方法,比如这个connection=connectionFactory.createConnection();我在代码末尾添加connection.close。异常不再显示,注入的jmsContext是否有bug?您是指本节中的池大小吗“正如所说,如果您正在注射JMSContext,您不必担心它。但是,您是否在代码中使用java:/JmsXA即pooledconnection工厂?有多少同时发出的请求?您可以增加连接工厂的
max pool size
。您好,很抱歉回复晚了…是的,我使用的是java:/JmsXA…我想请求大约是每10秒1个,我有6个这样的代码…您的意思是“这一节”中的池大小?现在我尝试使用mdb使用旧方法,比如这个connection=connectionFactory.createConnection();我在代码末尾添加connection.close。异常不再显示,注入jmsContext是否有错误?您是指本节中的池大小“