Прежде чем сделать это, выясните, почему соединения не освобождаются должным образом. Похоже, есть одно место, где это забыто (у вас есть все close () в предложениях finally?).
Я настоятельно рекомендую Майклу Найгарду "Release It!" для методов, чтобы сделать производство программного обеспечения готовым.
РЕДАКТИРОВАТЬ # 1: Если я правильно понимаю ваше описание, ваши бэкэнд-программы идут в MSGW в QSYSOPR, что приводит к зависанию соединения, пока не будет дан ответ, который в вашем случае близок к никогда. Можно ли использовать профиль с ответом по умолчанию «C», который позволяет распространять ошибку как исключение?
В противном случае вы можете установить период ожидания для подключений или для всего сервера в 24 часа? Тогда, по крайней мере, соединения в конечном итоге будут закрыты. Это решение не масштабируется, но может облегчить разработку.
Обратите внимание, также возможно иметь отдельный поток наблюдения, который регулярно ищет MSGW и автоматически отправляет им ответ ПОСЛЕ захвата стека обратного вызова для посмертного анализа.