Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-8307

If name of database table is written in small letters Artemis can't detect its existence

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Done
    • None
    • 11.0.0.Alpha1
    • JMS
    • None
    • Hide
      git clone git://git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git
      cd eap-tests-hornetq/scripts/
      git checkout 4eb595e76a43bcdf834954a9632dd9553da359ce
      groovy -DEAP_VERSION=7.1.0.DR13 PrepareServers7.groovy
      export WORKSPACE=$PWD
      export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap
      export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap
      export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap
      export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap
      
      cd ../jboss-hornetq-testsuite/
      
      mvn clean test -Dtest=JDBCTestCase#smallLettersTableNamesWithRestart -DfailIfNoTests=false -Deap=7x | tee log
      
      Show
      git clone git: //git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git cd eap-tests-hornetq/scripts/ git checkout 4eb595e76a43bcdf834954a9632dd9553da359ce groovy -DEAP_VERSION=7.1.0.DR13 PrepareServers7.groovy export WORKSPACE=$PWD export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap cd ../jboss-hornetq-testsuite/ mvn clean test -Dtest=JDBCTestCase#smallLettersTableNamesWithRestart -DfailIfNoTests= false -Deap=7x | tee log
    • User Experience
    • Workaround Exists
    • Hide

      Write names of database tables in capital letters.

      Show
      Write names of database tables in capital letters.

    Description

      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]

      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]
      

      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.

      Attachments

        Issue Links

          Activity

            People

              jmesnil1@redhat.com Jeff Mesnil
              jmesnil1@redhat.com Jeff Mesnil
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: