Сокет должен закрыться в случае ошибки IMS TM или IMS Connect, либо если WebSphere Application Server отключает сокет для управления пулом соединений.
Выделенное соединение может использоваться для взаимодействий только с тем ИД клиента, который был указан при открытии соединения. Поэтому число соединений с выделенным постоянным сокетом возрастает с появлением новых ИД клиента.
Если вы присвоите ненулевые значения свойствам Максимальное число соединений и Тайм-аут соединений в административной консоли WebSphere Application Server, то при достижении максимального числа открытых (и используемых) соединений возникнет исключительная ситуация ConnectionWaitTimeoutException по истечении указанного тайм-аута. Этот формат является стандартным для WebSphere Application Server. Исключительная ситуация ConnectionWaitTimeoutException может возникать для соединений как с выделенным, так и с общим постоянным сокетом.
Однако если при достижении максимального числа открытых соединений будет найдено хотя бы одно неиспользуемое соединение, то это соединение будет закрыто сервером WebSphere Application Server, а вместо него будет открыто новое соединение. Это стандартное поведение WebSphere Application Server распространяется как на выделенные, так и на общие постоянные сокеты.
IMS TM содержит функцию повторного подключения сокетов, которая повторно устанавливает простаивающее соединение пула соединений при сбое связи в одном из соединений во время отправки запроса в IMS Connect или получения ответа от него.
Когда поступает очередной запрос, если IMS TM обнаружит простаивающее соединение, то адаптер выдаст исключительную ситуацию. Когда следующий запрос поступает и пытается воспользоваться тем же соединением, IMS TM проверяет, активен ли IMS Connect. Если IMS Connect активен, IMS TM подключается повторно, прежде чем передавать запрос на взаимодействие. При восстановлении соединения в протокол заносится информационное сообщение ICO0140I.
Эта функция повторного подключения сокетов повышает отказоустойчивость IMS TM при возникновении временной неполадки в сети. Более важно то, что эта функция позволяет перерабатывать IMS Connect во время обслуживания системы, не перезапуская взаимодействия IMS TM из клиентского приложения.
Когда в соединении между IMS TM и WebSphere Application Server используется распределитель сисплекса, в пуле соединений WebSphere Application Server могут существовать соединения с несколькими IMS Connect. Если перерабатывается один из экземпляров IMS Connect, то новые запросы будут направляться в другие экземпляры IMS Connect. Новые запросы будут передаваться в переработанный IMS Connect только в том случае, если выполняется резервное копирование этого экземпляра IMS Connect и другие экземпляры IMS Connect уже не справляются с нагрузкой.
Для того чтобы помочь в перераспределении нагрузки среди экземпляров IMS Connect, вы можете воспользоваться свойством тайм-аута по возрасту в параметрах пула соединений WebSphere Application Server. Так как устаревшие соединения аннулируются, новое соединение поможет перераспределить соединение на переработанные экземпляры IMS Connect.
В случае запроса внешнего вызова IMS TM попытается восстановить связь на основе значений свойств retryLimit и retryInterval IMSActivationSpec. Свойство retryLimit задает максимальное число попыток, которое предпримет IMS TM для восстановления связи с IMS Connect - в случае прерывания соединения, или с IMS - в случае прерывания соединения с хранилищем данных IMS. Свойство retryInterval задает интервал между попытками узнать состояние IMS Connect.