Da IP keine statische Verbindung ist, kann es durchaus zu Unterbrechungen kommen.
Normalerweise regelt dann die VPN, dass die Verbindung wiederhergestellt wird.

Jetzt liegt es allerdings an der VPN, den Clientport entsprechend wieder zu verwenden. Tut sie das nicht, ist das eine neue Verbindung und hat keinen Bezug zu aktuellen Verbindung, was den Timeout auslöst.

In der 5250-Sitzung (.ws-Profil) kann man einen Keepalive eintragen, manchmal hilfts.

In Windows kann man hierzu einen Keepalive einstellen:
Einstellung der TCP-Keepalive-Zeit für Windows-Server

Ob der hilft, liegt ggf. am VPN ob dieser auch durchgelassen wird.

Bei ODBC-Anwendungen sieht die Welt leider nicht ganz so gut aus.
Hier kann es beim ConnectionPooling zum Problem kommen, dass die unterbrochene Verbindung nicht wieder hergestellt werden kann.

Ich habe es mir mittlerweile angewöhnt, das ConnectionPooling abzuschalten.
Per eigenem Timer wird die Verbindung geschlossen, wenn innerhalb einer bestimmten Zeit kein SQL ausgelöst wurde. Bei einer erneuten Anfrage wird die Verbindung dann halt wieder geöffnet.