ActiveMQ
  1. ActiveMQ
  2. AMQ-2436

JDBC synchronization problems under high load

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.3.0
    • Fix Version/s: 5.3.0
    • Component/s: Broker
    • Labels:
      None

      Description

      It's possible to get exception like this

      java.lang.NullPointerException
              at java.util.TreeMap.rotateLeft(TreeMap.java:1261)
              at java.util.TreeMap.fixAfterInsertion(TreeMap.java:1328)
              at java.util.TreeMap.put(TreeMap.java:483)
              at java.util.TreeSet.add(TreeSet.java:210)
              at org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doRecoverNextMessages(DefaultJDBCAdapter.java:751)
              at org.apache.activemq.store.jdbc.JDBCMessageStore.recoverNextMessages(JDBCMessageStore.java:214)
              at org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:87)
              at org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:81)
              at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:227)
              at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.hasNext(AbstractStoreCursor.java:134)
              at org.apache.activemq.broker.region.cursors.StoreQueueCursor.hasNext(StoreQueueCursor.java:131)
              at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1280)
              at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1419)
              at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1103)
              at org.apache.activemq.thread.DeterministicTaskRunner.runTask(DeterministicTaskRunner.java:84)
              at org.apache.activemq.thread.DeterministicTaskRunner$1.run(DeterministicTaskRunner.java:41)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
              at java.lang.Thread.run(Thread.java:595)
      

      if you run multiple producers/consumers in high load environment using JDBC persistence.

        Activity

          People

          • Assignee:
            Dejan Bosanac
            Reporter:
            Dejan Bosanac
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development