Поведение клиентского соединения WMQ заключается в том, что в режиме ожидания оно будет подключаться до тех пор, пока не произойдет сбой вызова API или не истечет время ожидания соединения. Поэтому isConnected (), скорее всего, будет сообщать true до тех пор, пока не будет предпринят и не произойдет вызов get, put или inquire, после чего QMgr сообщит об отключении.
Еще одна вещь, которую следует учитывать, это то, что 2009 год - не единственный код, который вы можете получить. Это тот, который вы получаете, когда соединение разорвано, но есть коды подключения для выключения QMgr, выключения канала, а также различных ресурсов и других ошибок.
Обычно для требования поддерживать постоянное соединение вы хотите заключить цикл обработки соединения и сообщения в блок try / catch, вложенный в оператор while. Когда вы поймаете исключение, отличное от преднамеренного выхода, закройте объекты и QMgr, спите не менее 5 секунд, а затем переходите к началу цикла. Сон очень важен, потому что если вы оказались в тесном цикле переподключения и бросили сотни попыток соединения с QMgr, вы можете поставить даже мэйнфрейм QMgr на колени.
Альтернативой является использование клиента WMQ v7 и QMgr. С помощью этой комбинации автоматическое переподключение настраивается как конфигурация канала.