Sorry, I didn't mean to give the impression that the application is using explicit
threads (except for the experiments). The UI and MDB threads I referred to are
automatically created by the EJB container.
I finally resolved the problem. Both the main code and the MDB were using CMP, and
referring to the same EJB (although reconstituted separately, not passed). So as the main
code tried to construct the web page, it blocked while accessing EJB's that might be
in use by the MDB. In particular, I found the main code waiting in
QueuedPessimisticEJBLock.waitForTx().
The solution was to change the MDB to bean-managed persistence, and only wrap actual
updates (not reads) in a UserTransaction.
Bob
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4048024#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...