Я работаю над утилитой на основе Java, которая мигрирует некоторые значения столбцов из одной таблицы в другую таблицу. Моя первая таблица содержит столбец ID, значения которого имеют фиксированный тип (например, некоторые типы перечисления в Java, которые были вставлены ранее в первой таблице) < /p>
Ниже приведены суммированные шаги, по которым я следую: < /p>
Получение новой подключения DataBase и настройки AutoCommit AwoCommit как false. идентификаторов из первой таблицы. < /li>
Создание пула потоков для каждого идентификатора уникального При отправке задания по миграции я передаю одно и то же соединение базы данных с каждым полученным ранее. Первая таблица (и выполнение явного коммита) и закрытие соединения. Однако для баз данных ZOS при закрытии подключения к базе данных я получаю ниже исключения: < /p>
com.ibm.db2.jcc.a.SqlException: [jcc][t4][10251][10308][3.52.90] java.sql.Connection.close() requested while a transaction is in progress on the connection.
The transaction remains active, and the connection cannot be closed.
ERRORCODE=-4471, SQLSTATE=null
< /code>
Здесь, в моем основном потоке я сначала сбрасываю таблицу, а затем закрываю соединение, тем самым делая это последовательным образом. Тогда почему я получаю вышеупомянутое исключение? Что я делаю не так?
Требуется ли сделать явный коммит для падения, так как я устанавливаю автоматическое объединение как false?
Я работаю над утилитой на основе Java, которая мигрирует некоторые значения столбцов из одной таблицы в другую таблицу. Моя первая таблица содержит столбец ID, значения которого имеют фиксированный тип (например, некоторые типы перечисления в Java, которые были вставлены ранее в первой таблице) < /p>
Ниже приведены суммированные шаги, по которым я следую: < /p>
[list] [*] Получение новой подключения DataBase и настройки AutoCommit AwoCommit как false. идентификаторов из первой таблицы. < /li> Создание пула потоков для каждого идентификатора уникального При отправке задания по миграции я передаю одно и то же соединение базы данных с каждым полученным ранее. Первая таблица (и выполнение явного коммита) и закрытие соединения. Однако для баз данных ZOS при закрытии подключения к базе данных я получаю ниже исключения: < /p>
com.ibm.db2.jcc.a.SqlException: [jcc][t4][10251][10308][3.52.90] java.sql.Connection.close() requested while a transaction is in progress on the connection. The transaction remains active, and the connection cannot be closed. ERRORCODE=-4471, SQLSTATE=null < /code>
Здесь, в моем основном потоке я сначала сбрасываю таблицу, а затем закрываю соединение, тем самым делая это последовательным образом. Тогда почему я получаю вышеупомянутое исключение? Что я делаю не так? [*] Требуется ли сделать явный коммит для падения, так как я устанавливаю автоматическое объединение как false? [/list]