Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-8523

Paging doesn't work with JDBC persistence store

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 7.1.0.DR13
    • 7.1.0.DR11, 7.1.0.DR12
    • ActiveMQ, JMS
    • None
    • Hide
      git clone git://git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git
      cd eap-tests-hornetq/scripts/
      git checkout 69a7e874e3db10f8106849d072ecc8910f0e3fd5
      groovy -DEAP_VERSION=7.1.0.DR12 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=SmokeTestCase#pagingTest -DfailIfNoTests=false -Deap=7x -Dprepare.param.DATABASE=oracle12c -Dprepare.param.JDBC_STORE=true | tee log
      
      Show
      git clone git: //git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git cd eap-tests-hornetq/scripts/ git checkout 69a7e874e3db10f8106849d072ecc8910f0e3fd5 groovy -DEAP_VERSION=7.1.0.DR12 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=SmokeTestCase#pagingTest -DfailIfNoTests= false -Deap=7x -Dprepare.param.DATABASE=oracle12c -Dprepare.param.JDBC_STORE= true | tee log

    Description

      If JDBC persistence store is configured, Artemis throws exception [1] in initialization phase of EAP. Then everything works correctly until paging is needed. If Artemis wants to page some message, exceptions [2] [3] are thrown.

      [1]

      10:25:53,361 WARN  [org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile] (ServerService Thread Pool -- 72) null: java.lang.NullPointerException
      	at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFileFactoryDriver.readFromFile(JDBCSequentialFileFactoryDriver.java:275) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile.read(JDBCSequentialFile.java:252) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile.read(JDBCSequentialFile.java:268) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryDatabase.readActiveMQBuffer(PagingStoreFactoryDatabase.java:206) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryDatabase.reloadStores(PagingStoreFactoryDatabase.java:161) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl.reloadStores(PagingManagerImpl.java:226) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl.start(PagingManagerImpl.java:315) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart1(ActiveMQServerImpl.java:2036) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:62) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:520) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:469) [artemis-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:412) [artemis-jms-server-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
      	at org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:199) [wildfly-messaging-activemq-7.1.0.Alpha1-redhat-12.jar:7.1.0.Alpha1-redhat-12]
      	at org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:63) [wildfly-messaging-activemq-7.1.0.Alpha1-redhat-12.jar:7.1.0.Alpha1-redhat-12]
      	at org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:97) [wildfly-messaging-activemq-7.1.0.Alpha1-redhat-12.jar:7.1.0.Alpha1-redhat-12]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_111]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_111]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_111]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_111]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_111]
      	at org.jboss.threads.JBossThread.run(JBossThread.java:320) [jboss-threads-2.2.1.Final-redhat-1.jar:2.2.1.Final-redhat-1]
      

      [2]

      11:04:52,473 WARN  [org.apache.activemq.artemis.core.server] (default I/O-15) AMQ222037: IO Error, impossible to start paging: java.lang.NullPointerException
              at org.apache.activemq.artemis.jdbc.store.drivers.JDBCUtils.getSQLProvider(JDBCUtils.java:52)
              at org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryDatabase.newFileFactory(PagingStoreFactoryDatabase.java:196)
              at org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryDatabase.newFileFactory(PagingStoreFactoryDatabase.java:140)
              at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.createPage(PagingStoreImpl.java:531)
              at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.openNewPage(PagingStoreImpl.java:1041)
              at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.startPaging(PagingStoreImpl.java:497)
              at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.addSize(PagingStoreImpl.java:721)
              at org.apache.activemq.artemis.core.server.impl.ServerMessageImpl.incrementRefCount(ServerMessageImpl.java:116)
              at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1054)
              at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:691)
              at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:593)
              at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:1591)
              at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1285)
              at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1224)
              at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1217)
              at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:428)
              at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:624)
              at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:373)
              at org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:356)
              at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:621)
              at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68)
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
              at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)
              at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
              at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)
              at org.xnio.netty.transport.AbstractXnioSocketChannel$ReadListener.handleEvent(AbstractXnioSocketChannel.java:435)
              at org.xnio.netty.transport.AbstractXnioSocketChannel$ReadListener.handleEvent(AbstractXnioSocketChannel.java:371)
              at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) [xnio-api-3.4.3.Final-redhat-1.jar:3.4.3.Final-redhat-1]
              at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) [xnio-api-3.4.3.Final-redhat-1.jar:3.4.3.Final-redhat-1]
              at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) [xnio-nio-3.4.3.Final-redhat-1.jar:3.4.3.Final-redhat-1]
              at org.xnio.nio.WorkerThread.run(WorkerThread.java:567) [xnio-nio-3.4.3.Final-redhat-1.jar:3.4.3.Final-redhat-1]
      

      [3]

      11:04:52,908 WARN  [org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile] (Thread-3 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$3@340c07aa-1540214933)) ORA-00932: inconsistent datatypes: expected CHAR got BLOB
      : java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected CHAR got BLOB
      
              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.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)
              at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)
              at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:943)
              at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
              at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
              at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:4875)
              at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1361)
              at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:537)
              at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFileFactoryDriver.writeToFile(JDBCSequentialFileFactoryDriver.java:249) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
              at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile.internalWrite(JDBCSequentialFile.java:157) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
              at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile.internalWrite(JDBCSequentialFile.java:174) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
              at org.apache.activemq.artemis.jdbc.store.file.JDBCSequentialFile$1.run(JDBCSequentialFile.java:185) [artemis-jdbc-store-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
              at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-1.5.1.jbossorg-001.jar:1.5.1.jbossorg-001]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_111]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_111]
              at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_111]
      

      Customer impact: PAGE mode cannot be used with JDBC persistence store. This is basic functionality which was requested by RFE EAP7-660.

      Attachments

        Issue Links

          Activity

            People

              mtaylor1@redhat.com Martyn Taylor (Inactive)
              eduda_jira Erich Duda (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: