[
https://issues.apache.org/jira/browse/AMQ-6846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16216528#comment-16216528
]
Alessandro Baggio commented on AMQ-6846:
----------------------------------------
Thanks Gary for your reply. Unfortunatly we do not have a way to reproduce it,
it just happened once in our production environment.
In our operations we do not make use of null messages, so we do not know what
is causing null messages to be stored.
> java.lang.NullPointerException on recovering next messages with jdbc adapter
> ----------------------------------------------------------------------------
>
> Key: AMQ-6846
> URL: https://issues.apache.org/jira/browse/AMQ-6846
> Project: ActiveMQ
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 5.15.0
> Reporter: Alessandro Baggio
>
> Hi,
> on broker side we have observed a series of the following exception that
> blocked the messages delivery of a specific queue to its consumers.
> {code:java}
> INFO | jvm 2 | 2017/10/20 20:04:29 | WARN | Exception
> INFO | jvm 2 | 2017/10/20 20:04:29 | java.lang.NullPointerException
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.util.ByteSequence.<init>(ByteSequence.java:32)[activemq-client-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.store.jdbc.JDBCMessageStore$4.recoverMessage(JDBCMessageStore.java:363)[activemq-jdbc-store-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecoverNextMessages(DefaultJDBCAdapter.java:1094)[activemq-jdbc-store-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.store.jdbc.JDBCMessageStore.recoverNextMessages(JDBCMessageStore.java:358)[activemq-jdbc-store-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:110)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:127)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:448)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:168)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:169)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1976)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:2205)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.broker.region.Queue.iterate(Queue.java:1641)[activemq-broker-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:112)[activemq-client-5.15.0.jar:5.15.0]
> INFO | jvm 2 | 2017/10/20 20:04:29 | at
> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:42)[activemq-client-5.15.0.jar:5.15.0]
> {code}
> We had to change the database schema used by the broker in order to make it
> working properly.
> The problem seems to be related to null values in the binary representation
> of the messages stored in database. Indeed, performing the following query
> (on the old schema):
> {code:java}
> select container, count(*) from ACTIVEMQ.ACTIVEMQ_MSGS where msg is null
> group by container;
> {code}
> results in:
> ||Container||Count Messages||
> |e://<myQueue>que|934|
> |queue://<myQueue>|540|
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)