Hi,

Thanks everyone for your help with this. It turned out to be my bug, 
and Ole gave me the clue (so thanks especially to him). By the 
way, nothing to do with the web tier which was a red herring 
caused by the browser cache and developer (e.g. self) stupidity. 

I'll explain the bug to anyone who cares. I cache information like 
the InitialContext and the Transaction to improve performance. 
There are certain paths through the bean life-cycle at which I need 
to refresh this cache. I missed one--the bean class instance can 
be reused after ejbRemove!

After Ole's suggestion, the biggest clue was all the work being 
done on the cache. My bug disappeared between 2.4 beta and 2.5 
alpha. I think we stopped reusing bean instance classes and 
started just throwing them away between those two versions, right? 
So I clear the cache on ejbRemove and problem solved!

Sorry to take up jboss-development time on what turned out to be a 
jboss-user question. Thanks again for all your help.

-Dan

On 27 Jul 01, at 3:32, Ole Husgaard wrote:

> Hi,
> 
> Strange, this should only happen if you are holding
> on to a Transaction reference, and that transaction
> was terminated (committed or rolled back).
> 
> For more information about what is going on in the
> default TM, change the trace flag near the top of
> org.jboss.tm.TxCapsule to true, and recompile.
> 
> You are not trying to use UserTransaction in your
> web tier? I don't think that works, though it should
> not give this error.
> Anyway, if your transaction is propagated with an
> optimized local call, where and how do you start it?
> 
> 
> Best Regards,
> 
> Ole Husgaard.
> 
> 
> 
> Dan OConnor wrote:
> > 
> > Hi guys,
> > 
> > I was hoping someone would know where this bug would be as
> > soon as I described the symptoms.
> > 
> > A bean-managed entity registers a synchronization object with a
> > transaction. If it is called from a web-tier client with optimizations
> > turned on, it fails like this:
> > 
> > java.lang.IllegalStateException: No transaction.
> > at
> > org.jboss.tm.TransactionImpl.registerSynchronization(TransactionIm
> > pl.java:135)
> > 
> > If this method is called from a remote client, it always works. If it is
> > called from a web-tier client with optimizations turned off, this
> > always works. (The transaction attribute of the business method is
> > Required.)
> > 
> > Anyone know the answer?
> > 
> > -Dan
> > 
> > _______________________________________________
> > Jboss-development mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/jboss-development
> 
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-development



_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to