У меня есть веб-приложение, работающее на сервере Tomee.Это приложение имеет код, который выполняет соединение jdbc с IBM I и запускает удаленный вызов команды и / или sql для него.Приложение использует пул соединений Tomcat для управления соединениями JDBC.Как вы знаете, в зависимости от того, что приложение хочет сделать, соединение IBM I jdbc выполнит соединение с другим заданием порт / сервер в IBM I. Например, для выполнения удаленного вызова команды оно подключится к ас-Порт rmtcmd-s, и для запуска sql он подключится к порту as-database-s.Для этого приложения я хочу сохранить не менее 10 незанятых соединений.Чтобы сохранить их работоспособность, я установил для свойства testWhileIdle в файле конфигурации tomee.xml значение true, которое будет запускать пул соединений для выполнения фиктивной проверки SQL через регулярный интервал.Это прекрасно работает с подключением as-database-s, поскольку фиктивная проверка sql попадает на этот порт.Но я не могу сказать то же самое для порта as-rmtcmd-s.У пула соединений на самом деле нет отдельного параметра, который заставит его выполнить фиктивный удаленный командный вызов, чтобы сохранить соединение живым.Таким образом, через некоторое время эти бездействующие соединения as-rmtcmd-s устаревают и приводят к сбою приложения при попытке их использования.Есть ли способ решить эту проблему, которая является уникальной для системы IBM I?
Ниже приведен полный параметр конфигурации tomee.xml
<Resource id="jdbc/MyIBMI" type="javax.sql.DataSource">
alternateUsernameAllowed = true
defaultAutoCommit = true
ignoreDefaultValues = false
initialSize = 0
jdbcDriver = com.ibm.as400.access.AS400JDBCDriver
jdbcUrl = jdbc:as400://MyIBMI;secure=true;naming=system;errors=full;prompt=false;libraries=*LIBL;timeFormat=iso;dateFormat=iso;dateSeparator=-
jtaManaged = false
validationQuery = select 1 from sysibm/sysdummy1
maxActive = 100
maxIdle = 50
maxWaitTime = 10000 millisecond
minEvictableIdleTime = 3 minutes
timeBetweenEvictionRuns = 180000
minIdle = 10
numTestsPerEvictionRun = 50
testOnBorrow = false
testWhileIdle = true
validationInterval = 300000
</Resource>