Avoiding ejbStore invocations on non-modified EntityBean instances
We can configure your EntityBean instances to bypass an invocation of the ejbStore method if they have not been modified during the current transaction.
About this task
There are two options available for indicating that a particular EJB type should only have its ejbStore method invoked if the bean has been modified during the current transaction:
- Set an EJB environment variable within the bean's deployment descriptor
- Have the bean implementation class implement a marker interface. This second technique is especially useful if you have a number of bean implementations that all extend a single root class; in this case you may have the root class implement the marker interface, causing all beans that extend this class to inherit the behavior as well.
Procedure
- To use the EJB environment variable technique, edit the EJB deployment descriptor using any standard Java 2, Enterprise Edition (J2EE) development tool. Use the following steps as a guide. (For information on your tool options, consult the Assembly tools article.)
- Start the tool.
- Select the EJB deployment descriptor of the bean you want to work with.
- Create an EJB environment variable with the name com/ibm/websphere/ejbcontainer/disableEJBStoreForNonDirtyBeans.
- Set the type of this variable to java.lang.Boolean.
- Set the value to True to avoid the ejbStore invocation, or False to enable the default behavior.
- Save your changes.
- To use a marker interface, code your bean implementation class to implement the com.ibm.websphere.ejbcontainer.DisableEJBStoreForNonDirtyBeans interface. The bean implementation class need not directly implement the interface; any parent class can implement the interface. See the com.ibm.websphere.ejbcontainer package in the Reference > Developer > API documentation section of the information center.
IBM is a trademark of the IBM Corporation in the United States, other countries, or both.