Following situation: * There is a bean "Page". In the field "type" there's the JNDI name of another bean ("SimplePage" in that case), which contains the actual data of the page. * The "Page" bean and the "SimplePage" bean both have a method "update()" which takes a java.util.Map as argument containing the values to update. * To find the page data, Page invokes the findByPrimaryKey() method of SimplePage (via reflection, because there will be other page types). * If I call update() on a Page, it first updates its own values, then finds it's page data (SimplePage) and calls update() on that bean which then updates its values. I hope this makes clear what I was trying to do... The transaction policies were: "Requiered" for both update() methods and create() of Page, "Supported" for any other method. I'm using BMP. During the update() call to Page, it called findByPrimaryKey() on the SimplePage (-> select statement). This seemed to lock the table, the following update statement on the SimplePage table was just waiting forever -- dead lock. But because these two calls (and the resulting SQL statements) *should* have been made within the same transaction, the select should not have blocked the update, or am I wrong here? Anyway, setting the transaction policy for any method except update() and create() to "NotSupported" solved the problem but I don't understand why. Can anyone tell me what happened? I think this is very basic. -- Raffael Herzog [EMAIL PROTECTED] May the penguin be with you! ---- To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "unsubscribe jonas-users". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".