Chyba pravděpodobně souvisí s migrací z Oracle na Azure SQL Server.
Jak můžete vidět v zdrojový kód knihovny under the hood Spring Batch používá různé strategie, když generování ID pro úlohy, provádění úloh a provádění kroků .
V případě Oracle používají sekvence ; s SQL Server implementovali generování id pomocí tabulky se sloupcem identity .
Proces migrace také replikoval různé sekvence Oracle vyžadované Spring Batch a velmi pravděpodobně způsobuje problém, když se výše uvedená strategie generování ID SQL Serveru pokouší získat další hodnotu.
Zahoďte migrované sekvence a vytvořte tři tabulky požadované pro SQL Server s příslušnými hodnotami:
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (
ID BIGINT IDENTITY(<last analogous Oracle sequence value>, 1)
);
CREATE TABLE BATCH_JOB_EXECUTION_SEQ (
ID BIGINT IDENTITY(<last analogous Oracle sequence value>, 1)
);
CREATE TABLE BATCH_JOB_SEQ (
ID BIGINT IDENTITY(<last analogous Oracle sequence value>, 1)
);