Я работаю над секцией 'Simple Point-to-Point Example' руководства Sun JMS (sender source, receiver source), используя Glassfish в качестве моего поставщика JMS. Я установил QueueConnectionFactory и Queue в пользовательском интерфейсе браузера Glassfish и добавил соответствующие JAR в мой путь к классам, и получатель получает сообщения, отправленные отправителем.Как я могу закрыть этот внешний JMS-клиент?
Однако ни отправитель, ни приемник не прекращаются. Выходы основной нити обычно (после успешного вызова queueConnection.close()
), а два не-демон нити повис вокруг:
- iMQReadChannel-0
- imqConnectionFlowControl-0
кажется (из this java.net thread), что причина в том, что queueConnection.close()
просто возвращает соединение с пулом, а не закрывает его. Я не могу найти способ отключить пул, поэтому единственный вариант, с которым я остаюсь, - System.exit()
, что кажется неправильным.
Я попытался установить минимальный размер пула на 0, максимальный размер пула до 1 и тайм-аут простоя до 10 секунд, но, похоже, не имеет значения. Даже когда я просто просматриваю фабрику соединений и не прошу подключения, эти два потока все еще запускаются и не прерываются.
Любая помощь очень ценится!