в моем приложении я проверяю, доступно ли мое соединение MQ методом javax.jms.ConnectionFactory.createConnection()
фабрики соединений.
connection = connectionFactory.createConnection();
В настоящее время брандмауэр MQ заблокирован, поэтому соединение не установлено, и я получаю com.ibm.msg.client.jms.DetailedJMSException: MQJCA1011: Failed to allocate a JMS connection
.
Проблема, с которой я столкнулся, заключается в том, что метод имеет время выполнения около 2 минут.
Я хотел бы установить это значение намного ниже. У метода нет параметров для установки тайм-аута, поэтому я думаю, что он должен быть установлен на сервере приложений.
Я использую Liberty 18.0.0.1.
Мой server.xml
выглядит так:
<jmsQueueConnectionFactory id="myConnectionFactory"
jndiName="myJNDI" connectionManagerRef="ConMgr0">
<properties.wmqJms transportType="CLIENT" hostName="x.x.x.x"
port="1234" channel="myChannel" queueManager="myQmanager"
userName="myUSER" password="myPW" />
</jmsQueueConnectionFactory>
<connectionManager id="ConMgr0" maxPoolSize="10"
agedTimeout="0s" connectionTimeout="10s"/>
Однако опция connectionTimeout
для диспетчера соединений не изменяет это поведение (перезапускает Liberty после сохранения значений). Даже если я не установлю его, значением по умолчанию будет 30 с, что явно меньше 2 минут:)
Есть ли какая-то другая конфигурация, которую мне здесь не хватает?
С уважением