Update ORACLE DDL script to immediately create table segments

The default table segment creation in Oracle is DEFERRED.
This means when Spring Batch tries to insert rows for the
first time, it will compete with the Oracle process that
tries to create segments lazily at the same time, which
leads to an error.

This commit changes the default table segment creation
to IMMEDIATE.

Resolves #1127
This commit is contained in:
Mahmoud Ben Hassine
2021-09-17 15:11:25 +02:00
parent ef81b67065
commit fac59e6319

View File

@@ -6,7 +6,7 @@ CREATE TABLE BATCH_JOB_INSTANCE (
JOB_NAME VARCHAR2(100 char) NOT NULL,
JOB_KEY VARCHAR2(32 char) NOT NULL,
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
) ;
) SEGMENT CREATION IMMEDIATE;
CREATE TABLE BATCH_JOB_EXECUTION (
JOB_EXECUTION_ID NUMBER(19,0) NOT NULL PRIMARY KEY ,
@@ -22,7 +22,7 @@ CREATE TABLE BATCH_JOB_EXECUTION (
JOB_CONFIGURATION_LOCATION VARCHAR(2500 char) NULL,
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
) ;
) SEGMENT CREATION IMMEDIATE;
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
JOB_EXECUTION_ID NUMBER(19,0) NOT NULL ,
@@ -35,7 +35,7 @@ CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
IDENTIFYING CHAR(1) NOT NULL ,
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ;
) SEGMENT CREATION IMMEDIATE;
CREATE TABLE BATCH_STEP_EXECUTION (
STEP_EXECUTION_ID NUMBER(19,0) NOT NULL PRIMARY KEY ,
@@ -58,7 +58,7 @@ CREATE TABLE BATCH_STEP_EXECUTION (
LAST_UPDATED TIMESTAMP,
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ;
) SEGMENT CREATION IMMEDIATE;
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
STEP_EXECUTION_ID NUMBER(19,0) NOT NULL PRIMARY KEY,
@@ -66,7 +66,7 @@ CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
SERIALIZED_CONTEXT CLOB ,
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
) ;
) SEGMENT CREATION IMMEDIATE;
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
JOB_EXECUTION_ID NUMBER(19,0) NOT NULL PRIMARY KEY,
@@ -74,7 +74,7 @@ CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
SERIALIZED_CONTEXT CLOB ,
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ;
) SEGMENT CREATION IMMEDIATE;
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 ORDER NOCYCLE;
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 ORDER NOCYCLE;