We have wrapped our access to the entity beans with a session facade layer
(as documented and recommended by many EJB experts).  Because of the
complexity of the model, we decided to use Entity beans to update as well as
retrieve the data.

All of our stateless facade session beans start a transaction.  Normally we
would not want to use a transaction when simply reading the data, however,
without a wrapping transaction a lot of ejbStore/ejbLoad (one after every
function call into the entity) are occurring on the entity beans.  And
rightly so, the container is trying to synchronize the bean with the
database.  This however, slows down the retrieve operation.

When we wrap a transaction around our read operations the container does not
have to ejbLoad/ejbStore for every call into the entity bean, however, we
noticed that users clicking on the same link in the browser in rapid
succession create multiple requests which all promptly deadlock on each
other.

So with transactions, things appear to run faster by removing the overhead
of ejbLoad/ejbStore, however, at the same time, it's easy to deadlock the
application.

Have any one ran in to these problems?  I really want the effect of a
transaction (ie avoid ejbLoad/ejbStore) without the deadlock situations.

Any ideas? By the way, I am using OrionServer 1.5.3.

Thanks.

-AP_

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to