当我的 MQ 服务器不可用时,对 QueueConnectionFactory.createQueueConnection() 的调用将挂起,并最终(1-2 分钟后)抛出“javax.transaction.TransactionRolledbackException:事务因超时而结束”。
我找不到用于设置函数超时的 JavaEE 调用。
当无法访问 MQ 服务器时,有没有办法让此函数更快地失败或在 WebSphere 上抛出异常?
QCF 通过依赖注入(inject)来访问。
@Resource(name = "jndi-name-for-QCF")
private QueueConnectionFactory queueConnectionFactory;
…
// this line is timing out.
QueueConnection connection = queueConnectionFactory.createQueueConnection();
最佳答案
我认为通常这将通过配置进行管理处理,而不是在应用程序代码中以编程方式处理。例如。请参阅this article举一些例子。
也不确定配置 WebSphere 连接池设置是否可以做很多事情。这似乎指向配置 MQ 提供程序本身(例如 channel )。
关于java - QueueConnectionFactory.createQueueConnection() 不返回或抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233660/