]
Jeff Mesnil moved JBEAP-9346 to WFLY-8307:
------------------------------------------
Project: WildFly (was: JBoss Enterprise Application Platform)
Key: WFLY-8307 (was: JBEAP-9346)
Workflow: GIT Pull Request workflow (was: CDW with loose statuses v1)
Component/s: JMS
(was: JMS)
Affects Version/s: (was: 7.1.0.DR13)
If name of database table is written in small letters Artemis
can't detect its existence
----------------------------------------------------------------------------------------
Key: WFLY-8307
URL:
https://issues.jboss.org/browse/WFLY-8307
Project: WildFly
Issue Type: Bug
Components: JMS
Environment: Oracle 12c database
Reporter: Jeff Mesnil
Assignee: Jeff Mesnil
Priority: Critical
If the name of database table is written in small letters - e.g. node1_messages_table,
Artemis can't detect its existence and it tries to create it again what leads to error
\[1\]. This happens after restarting of server.
I don't see the issue if name of database table is written in capital letters - e.g.
NODE1_MESSAGES_TABLE.
\[1\]
{code}
14:00:26,208 ERROR [org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver]
(ServerService Thread Pool -- 72)
SQL STATEMENTS:
CREATE TABLE node1_large_messages_table(ID NUMBER(19) GENERATED BY DEFAULT ON NULL AS
IDENTITY, FILENAME VARCHAR(255), EXTENSION VARCHAR(10), DATA BLOB, PRIMARY KEY(ID))
SQL EXCEPTIONS:
SQLState: 42000 ErrorCode: 955 Message: ORA-00955: name is already used by an existing
object
14:00:26,372 ERROR [org.apache.activemq.artemis.journal] (ServerService Thread Pool --
72) Could not start file factory, unable to connect to database:
java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing objec
t
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:30)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:931)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
at
oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1707)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1670)
at
oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:310)
at
org.jboss.jca.adapters.jdbc.WrappedStatement.executeUpdate(WrappedStatement.java:430)
at
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTableIfNotExists(AbstractJDBCDriver.java:170)
[artemis-jdbc-store-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.createTable(AbstractJDBCDriver.java:99)
[artemis-jdbc-store-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFileFactoryDriver.createSchema(JDBCSequentialFileFactoryDriver.java:66)
[artemis-jdbc-store-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver.start(AbstractJDBCDriver.java:71)
[artemis-jdbc-store-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFileFactory.start(JDBCSequentialFileFactory.java:91)
[artemis-jdbc-store-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.persistence.impl.journal.JDBCJournalStorageManager.init(JDBCJournalStorageManager.java:74)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.<init>(AbstractJournalStorageManager.java:216)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager.<init>(JournalStorageManager.java:104)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.persistence.impl.journal.JDBCJournalStorageManager.<init>(JDBCJournalStorageManager.java:52)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createStorageManager(ActiveMQServerImpl.java:1860)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart1(ActiveMQServerImpl.java:2000)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:62)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:520)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:469)
[artemis-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:412)
[artemis-jms-server-1.5.3.003-redhat-1.jar:1.5.3.003-redhat-1]
at
org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:199)
[wildfly-messaging-activemq-7.1.0.Alpha1-redhat-14.jar:7.1.0.Alpha1-redhat-14]
at
org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:63)
[wildfly-messaging-activemq-7.1.0.Alpha1-redhat-14.jar:7.1.0.Alpha1-redhat-14]
at
org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:97)
[wildfly-messaging-activemq-7.1.0.Alpha1-redhat-14.jar:7.1.0.Alpha1-redhat-14]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[rt.jar:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_121]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[rt.jar:1.8.0_121]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[rt.jar:1.8.0_121]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
[jboss-threads-2.2.1.Final-redhat-1.jar:2.2.1.Final-redhat-1]
{code}
*Customer impact:* If names of database tables are written in small letters, EAP fails at
second start. From logs it's not easy to find out what is wrong and how workaround the
issue. It is serious user experience problem.