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".
