[QA](7.1.z) Artemis doesn't boot after restart when journal is
stored in DB2 and lower case table name is used
--------------------------------------------------------------------------------------------------------------
Key: WFLY-10695
URL:
https://issues.jboss.org/browse/WFLY-10695
Project: WildFly
Issue Type: Bug
Reporter: Peter Mačkay
Assignee: Jeff Mesnil
Priority: Critical
*Scenario:*
* Configure Artemis in Wildfly to use DB2 JDBC persistence store.
* Redefine name of a database table and use lower case letters.
* Restart Wildfly
After the restart of Wildfly, boot of Artemis component fails. It seems that if table
name is in lower case, Artemis is not able to detect that the particular table exists and
tries to recreate it. The create operation fails and thus initialization of JDBC driver
fails as well.
The same scenario works with Oracle 12c database. It seems that Oracle JDBC driver is
case insensitive.
{code}
13:22:14,557 ERROR [org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver]
(ServerService Thread Pool -- 78)
SQL STATEMENTS:
CREATE TABLE node1_bindings(id BIGINT,recordType SMALLINT,compactCount SMALLINT,txId
BIGINT,userRecordType SMALLINT,variableSize INTEGER,record BLOB,txDataSize INTEGER,txData
BLOB,txCheckNoRecords INTEGER,seq BI
GINT NOT NULL, PRIMARY KEY(seq))
CREATE INDEX node1_bindings_IDX ON node1_bindings (id)
SQL EXCEPTIONS:
SQLState: 42710 ErrorCode: -601 Message: DB2 SQL Error: SQLCODE=-601, SQLSTATE=42710,
SQLERRMC=DBALLO00.NODE1_BINDINGS;TABLE, DRIVER=4.24.92
13:22:14,679 ERROR [org.apache.activemq.artemis.core.server] (ServerService Thread Pool
-- 78) AMQ224000: Failure in initialisation: com.ibm.db2.jcc.am.SqlSyntaxErrorException:
DB2 SQL Error: SQLCODE=-601, SQLST
ATE=42710, SQLERRMC=DBALLO00.NODE1_BINDINGS;TABLE, DRIVER=4.24.92
at com.ibm.db2.jcc.am.b6.a(b6.java:810)
at com.ibm.db2.jcc.am.b6.a(b6.java:66)
at com.ibm.db2.jcc.am.b6.a(b6.java:140)
at com.ibm.db2.jcc.am.k3.c(k3.java:2817)
at com.ibm.db2.jcc.am.k3.d(k3.java:2801)
at com.ibm.db2.jcc.am.k3.b(k3.java:2161)
at com.ibm.db2.jcc.t4.ab.k(ab.java:445)
at com.ibm.db2.jcc.t4.ab.c(ab.java:104)
at com.ibm.db2.jcc.t4.p.b(p.java:38)
at com.ibm.db2.jcc.t4.av.h(av.java:124)
at com.ibm.db2.jcc.am.k3.ak(k3.java:2156)
at com.ibm.db2.jcc.am.k3.a(k3.java:3359)
at com.ibm.db2.jcc.am.k3.c(k3.java:783)
at com.ibm.db2.jcc.am.k3.executeUpdate(k3.java:762)
at
org.jboss.jca.adapters.jdbc.WrappedStatement.executeUpdate(WrappedStatement.java:430)
at
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTableIfNotExists(AbstractJDBCDriver.java:243)
[artemis-jdbc-store-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTable(AbstractJDBCDriver.java:113)
[artemis-jdbc-store-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.jdbc.store.journal.JDBCJournalImpl.createSchema(JDBCJournalImpl.java:130)
[artemis-jdbc-store-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.start(AbstractJDBCDriver.java:82)
[artemis-jdbc-store-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.jdbc.store.journal.JDBCJournalImpl.start(JDBCJournalImpl.java:119)
[artemis-jdbc-store-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.start(AbstractJournalStorageManager.java:1435)
[artemis-server-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart1(ActiveMQServerImpl.java:2055)
[artemis-server-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:62)
[artemis-server-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:539)
[artemis-server-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:485)
[artemis-server-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:413)
[artemis-jms-server-1.5.5.jbossorg-012.jar:1.5.5.jbossorg-SNAPSHOT]
at
org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:206)
[wildfly-messaging-activemq-14.0.0.Beta1-SNAPSHOT.jar:14.0.0.Beta1-SNAPSHOT]
at
org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:65)
[wildfly-messaging-activemq-14.0.0.Beta1-SNAPSHOT.jar:14.0.0.Beta1-SNAPSHOT]
at
org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:100)
[wildfly-messaging-activemq-14.0.0.Beta1-SNAPSHOT.jar:14.0.0.Beta1-SNAPSHOT]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[rt.jar:1.8.0_151]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_151]
at
org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
[jboss-threads-2.3.2.Final.jar:2.3.2.Final]
at
org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
[jboss-threads-2.3.2.Final.jar:2.3.2.Final]
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
[jboss-threads-2.3.2.Final.jar:2.3.2.Final]
at
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
[jboss-threads-2.3.2.Final.jar:2.3.2.Final]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_151]
at org.jboss.threads.JBossThread.run(JBossThread.java:485)
[jboss-threads-2.3.2.Final.jar:2.3.2.Final]
{code}