Hi all, I'm trying to get my understanding/control of declarative transactions in EJB up to speed, and I'm puzzled by the following: Context: The Product EJB that comes with the ejb/demos with Orion. Action: I set the value of "trans-attribute" ejb-jar.xml for the "Product" bean that comes with the ejb demos in orion to "Mandatory" for all methods in the Product bean (this is just for illustrative purposes). Expected Result: Since the ProductClient in the ejb demos does _not_ explicitly start a UserTransaction, its first invocation of a method on the Product bean is outside of any transaction context, and so should cause a TransactionRequiredException to be thrown, should it not? Actual Result: In fact, after Orion redeploys the Product bean, and the ProductClient runs just fine. Can someone please tell me what I'm missing? I've included the ejb-jar.xml and the ProductClient code below. As an aside, if someone could point me to a good example system with non-trivial transactions controlled declaratively in orion, I'd be grateful. Here's the ejb-jar.xml - <ejb-jar> <description> </description> <enterprise-beans> <entity> <description> </description> <ejb-name>MyProduct</ejb-name> <home>ProductHome</home> <remote>Product</remote> <ejb-class>ProductEJB</ejb-class> <primkey-class>java.lang.Integer</primkey-class> <reentrant>True</reentrant> <persistence-type>Container</persistence-type> <cmp-field><field-name>id</field-name></cmp-field> <cmp-field><field-name>name</field-name></cmp-field> <cmp-field><field-name>description</field-name></cmp-field> <cmp-field><field-name>price</field-name></cmp-field> <primkey-field>id</primkey-field> </entity> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>Product</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Mandatory</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> And here's the relevant code on the ProductClient - // Create a new Product and narrow the reference. Product product = (Product)PortableRemoteObject.narrow(home.create(id), Product.class); product.setName(name); product.setPrice(cost); Thanks, Vivek