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
- is cloned by
-
JBERET-171 Too long identifiers in Oracle DDL for JDBC repository
- Resolved
- relates to
-
WFLY-4933 Upgrade jberet-core to 1.2.0.Alpha2
- Closed