Bugs item #990315, was opened at 2004-07-13 17:30
Message generated for change (Comment added) made by ejort
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=990315&group_id=22866

Category: JBossMQ
Group: v3.2
>Status: Closed
>Resolution: Postponed
Priority: 5
Submitted By: James DeFelice (jdefelice)
>Assigned to: Adrian Brock (ejort)
Summary: rollinglogger PersistenceManager fails to reset Tx from pool

Initial Comment:
In 3.2.4/3.2.5, 
org.jboss.mq.pm.rollinglogged.PersistenceManager.getT
x() reuses Tx objects from an internal pool.  When it 
pulls an old Tx from its pool, it resets the Tx's value 
(the tx id) but not its status.   This results 
in "Transaction is not active" exceptions being thrown 
at the end of a transaction when the attempt is made to 
commit the transaction.

I added a reset method to org.jboss.mq.pm.Tx:

   public void reset(long tx) {
      setValue(tx);
      this.status = OPEN;
   }

and changed the persistence manager code to:

   protected org.jboss.mq.pm.Tx getTx(long value)
   {
      if (txPool.isEmpty())
      {
         return new org.jboss.mq.pm.Tx(value);
      }
      else
      {
         org.jboss.mq.pm.Tx tx = (org.jboss.mq.pm.Tx)
txPool.remove(txPool.size() - 1);
         tx.reset(value);
         return tx;
      }
   }

this fixed my problem.  It would be nice to see this (or 
similar) change in the upcoming 3.2.6 release.


----------------------------------------------------------------------

>Comment By: Adrian Brock (ejort)
Date: 2004-07-13 19:49

Message:
Logged In: YES 
user_id=9459

The file persistence managers are no longer supported
and will likely be dropped for jboss4

The rollinglogged version was never anything more than
experimental
anyway.

I am not prepared to test your patch unless somebody
with an interest in these persistence managers steps
forwards to make them enterprise strength.

i.e.
1) I want proper flushing the disk - see
java.io.FileDescriptor.sync()
2) Checksums to confirm the data in the file(s) is complete and
accurate
3) Proper testing, clean shutdowns are easy, test what happens
when you kick the power cable out of your machine while it is
writing the file.

A plausable alternative would be to write a persistence manager
based on SleepyCat.

If you are prepared to do any of this, please use the JBoss/JMS
development forum to volunteer.

Besides, Object pooling of this variety is rubbish and should be
removed, not fixed.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=990315&group_id=22866


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to