Трассировка стека жидкой базы, которую вы имели в Как использовать --logLevel в Liquibase на самом деле дает нам подсказку, но мне потребовалось некоторое время, чтобы понять, что вероятно происходит. Там мы можем увидеть ликвидазу с использованием кэшированного набора результатов. Кэширование ResultSets (курсоры) опасно, так как драйвер Informix JDBC не удерживает курсоры над коммитами. Таким образом, есть большая вероятность, что программа открыла набор результатов (курсор) и выполнила какую-то другую операцию, которая заставила Informix / JDBC закрыть курсор, затем она попыталась использовать уже закрытый курсор, что вызывает вашу ошибку.
Существует API, чтобы заставить JDBC держать курсоры открытыми:
connection.setHoldability(ResultSet.HOLD_CURSORS_OVER_COMMIT)
Но я предполагаю, что у вас нет возможности повлиять на это внутри этих продуктов, чтобы попробовать это. К сожалению, Informix не позволяет этому параметру войти в URL. Функция, которая должна быть добавлена :)
Я протестировал схему на одной из моих баз данных (22 таблицы, 126 столбцов) без проблем с последним драйвером Informix JDBC 4.10.JC12W1. Точная проблема может заключаться в том, что для того, чтобы команда поддержки наверняка разобралась с ней, нужно воспроизвести ее.