1 Reply Latest reply on Aug 24, 2007 9:46 AM by adrian.brock

    OracleThinPersistenceManager instability

    barnaby33

      When testing a normal failure mode using oracle thin persistence manager I get an exception when trying to add new messages. The sequence goes like this

      1) Add 2 messages to the queue. ( On checking the jms_messages table there appears to be 4 messages being written. I assume it has something to with the blob workaround but not sure.)
      2) Make sure MDB cannot deliver messages.
      3) Turn off server without exiting JBoss. (This seems to be a very normal failure condition to me)
      4)Turn on Jboss server. (During startup JMS system barfs on the two records with null blobs. I worked around this by modifying the select query to only return messages with non-null blobs.)
      5)Add more messages. This causes a SQL exception because each time you restart the server, the messageid is reset to zero. (I looked through the code to find that little nugget.)

      So I'd like to sub-class the oraclethinpersistence manager and goto the jms_messages table to find out what its highest messageId is, then increment it by one and use this as the messageid for the new message. I wrote a class that does just that but when I startup jboss I get an exception along the lines of major and minor version are incorrect. Is there something preventing me administratively, say an xml config option, that I need to change? Whats are some other alternatives to my situation?

      Josh

        • 1. Re: OracleThinPersistenceManager instability

           

          "barnaby33" wrote:

          4)Turn on Jboss server. (During startup JMS system barfs on the two records with null blobs. I worked around this by modifying the select query to only return messages with non-null blobs.)


          I don't understand that. The write with null blob and update the blob
          are in the same transaction so they should either work together or not at all.

          The major/minor stuff is just you compiling with the wrong version of java (e.g. JDK5)
          for the version you want run with (e.g. JDK1.4).