Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-3643

null message blob is created in the jms_messages table which leads to PersistenceManager fail to restore queue during restart

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Critical Critical
    • None
    • JBossAS-4.0.4.GA
    • JMS (JBossMQ)
    • None

      A null blob is inserted into the jms_message table as a result of sending message (greater than 4k messages) to jms queue. The Oracle jdbc persistence manager is deployed in our environment as JMS queue persistence mechanism. As a result, when JBoss is restarted, the persistence manager could not restore queue since there is null blob in the jms_messages table (please see the following stack traces and sqlplus output):

      I did a quick search and found that JBAS-2503 indicates the Oracle 4k limit problem should be resolved with JBossAS-4.0.4 GA. But I did run into the above problem with JBossAS-4.0.4 GA version.

      Your help is highly appreciated.

      ****************************************************************************************
      SQL> select count from jms_messages where messageblob is null;

      COUNT
      ----------
      3

      *******************************************************************************************
      2006-09-11 15:56:43,447 WARN [ServiceController] - Problem starting service jboss.mq.destination:name=edAuditQueue,service=Queue^M
      org.jboss.mq.SpyJMSException: Unexpected error in recovery; - nested throwable:
      (java.lang.NullPointerException)^M
      at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:78)^M
      at org.jboss.mq.SpyJMSException.rethrowAsJMSException(SpyJMSException.java:63)^M
      at org.jboss.mq.pm.jdbc2.PersistenceManager.restoreQueue(PersistenceManager.java:525)^M
      at org.jboss.mq.server.JMSQueue.<init>(JMSQueue.java:65)^M
      at org.jboss.mq.server.jmx.Queue.startService(Queue.java:78)^M

      ......
      ......

      Caused by: java.lang.NullPointerException^M
      at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2150)^M
      at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2163)^M
      at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)^M
      at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)^M
      at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)^M
      at org.jboss.mq.pm.jdbc2.PersistenceManager.extractMessage(PersistenceManager.java:665)^M
      at org.jboss.mq.pm.jdbc2.PersistenceManager.internalRestoreQueue(PersistenceManager.java:556)^M
      at org.jboss.mq.pm.jdbc2.PersistenceManager.restoreQueue(PersistenceManager.java:514)^M

      *******************************************************************************************************************

              Unassigned Unassigned
              elu1688 Edward Lu (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: