-
Bug
-
Resolution: Done
-
Major
-
1.1.0.Final
-
None
Oracle databases have a hard limit on identifier length - 30 bytes. JBeret's DDL file for Oracle contains two identifiers which break this: constraints FK_PARTITION_EXECUTION_STEP_EXECUTION and FK_STEP_EXECUTION_JOB_EXECUTION. This means that Batch applications can't deploy if a JDBC storage if an Oracle database is used. The stack trace from WildFly:
12:27:39,379 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."ejb-batchlet.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ejb-batchlet.war".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment "ejb-batchlet.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.batch.operations.BatchRuntimeException: JBERET000624: Failed to create tables for batch job repository database product name Oracle with DDL sql/jberet-oracle.ddl
at org.jberet.repository.JdbcRepository.createTables(JdbcRepository.java:231)
at org.jberet.repository.JdbcRepository.<init>(JdbcRepository.java:180)
at org.jberet.repository.JdbcRepository.create(JdbcRepository.java:109)
at org.wildfly.extension.batch.job.repository.JobRepositoryFactory.getJobRepository(JobRepositoryFactory.java:63)
at org.wildfly.extension.batch.deployment.BatchEnvironmentProcessor.deploy(BatchEnvironmentProcessor.java:81)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156)
... 5 more
Caused by: java.sql.BatchUpdateException: error occurred during batching: ORA-00972: identifier is too long
at oracle.jdbc.driver.OracleStatement.executeBatch(OracleStatement.java:5031)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:246)
at org.jboss.jca.adapters.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:1077)
at org.jberet.repository.JdbcRepository.createTables(JdbcRepository.java:229)
... 10 more
12:27:39,382 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 4) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "ejb-batchlet.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"ejb-batchlet.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"ejb-batchlet.war\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment \"ejb-batchlet.war\"
Caused by: javax.batch.operations.BatchRuntimeException: JBERET000624: Failed to create tables for batch job repository database product name Oracle with DDL sql/jberet-oracle.ddl
Caused by: java.sql.BatchUpdateException: error occurred during batching: ORA-00972: identifier is too long
"}}
12:27:39,383 ERROR [org.jboss.as.server] (management-handler-thread - 4) WFLYSRV0021: Deploy of deployment "ejb-batchlet.war" was rolled back with the following failure message:
{"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"ejb-batchlet.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"ejb-batchlet.war\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment \"ejb-batchlet.war\"
Caused by: javax.batch.operations.BatchRuntimeException: JBERET000624: Failed to create tables for batch job repository database product name Oracle with DDL sql/jberet-oracle.ddl
Caused by: java.sql.BatchUpdateException: error occurred during batching: ORA-00972: identifier is too long
"}}
12:27:39,389 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0028: Stopped deployment ejb-batchlet.war (runtime-name: ejb-batchlet.war) in 5ms
- clones
-
JBEAP-183 Too long identifiers in Oracle DDL for JDBC repository
-
- Closed
-