Разблокирование и повторное подключение постоянных сокетов

Соединение TCP/IP между IMS TM и IMS Connect является постоянным и остается открытым как в случае общего постоянного сокета, так и в случае выделенного постоянного сокета до тех пор, пока не произойдет ошибка.

Сокет должен закрыться в случае ошибки IMS TM или IMS Connect, либо если WebSphere Application Server отключает сокет для управления пулом соединений.

Выделенное соединение может использоваться для взаимодействий только с тем ИД клиента, который был указан при открытии соединения. Поэтому число соединений с выделенным постоянным сокетом возрастает с появлением новых ИД клиента.

Если вы присвоите ненулевые значения свойствам Максимальное число соединений и Тайм-аут соединений в административной консоли WebSphere Application Server, то при достижении максимального числа открытых (и используемых) соединений возникнет исключительная ситуация ConnectionWaitTimeoutException по истечении указанного тайм-аута. Этот формат является стандартным для WebSphere Application Server. Исключительная ситуация ConnectionWaitTimeoutException может возникать для соединений как с выделенным, так и с общим постоянным сокетом.

Однако если при достижении максимального числа открытых соединений будет найдено хотя бы одно неиспользуемое соединение, то это соединение будет закрыто сервером WebSphere Application Server, а вместо него будет открыто новое соединение. Это стандартное поведение WebSphere Application Server распространяется как на выделенные, так и на общие постоянные сокеты.

Совет: В WebSphere Application Server есть несколько параметров пула соединений, которые могут помочь в управлении пулом и перераспределении постоянных сеансов. Период отклонения физического соединения (в секундах) задается в параметре тайм-аута по возрасту.
Важное замечание: Если вы не пользуетесь сервером приложений для управления соединением (т.н. неуправляемая среда), то при выполнении транзакций в режиме фиксации 0 (CM0, или "фиксация-и-отправка") вы должны самостоятельно управлять пулами соединений. Так как транзакции CM0 восстанавливаемы, IMS Connect создает отдельный канал TPIPE для каждого клиента, использующего CM0. При отсутствии управления пулом соединений создавалось бы слишком много каналов TPIPE, что привело бы к перегруженности системы.

Повторное подключение сокетов

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.


Комментарии