Custom finder SQL dynamic enhancement properties

Use this page to modify custom finder SQL dynamic enhancement properties settings.

To ensure that the Structured Query Language (SQL) dynamic enhancements occur correctly for custom finders defined on an EJB 1.1 Home interface that uses a backend data store that requires the special SQL locking clauses, the following Java Virtual Machine (JVM) and bean (module) properties are provided. These properties enable you to indicate which custom finders to enhance, assuming the backend data store supports the SQL clauses.

To view this administrative console page, click Servers > Application Servers > server > Process Definition > Control (to define the property in the Control) or Servant (to define the property in the Servant) > Java Virtual Machine > Custom Properties .

 

Configuration tab

com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent

Used to indicate which enterprise beans should have custom finder SQL dynamic enhancement enabled at runtime.

This property takes effect at the server level. Any EJB 1.1 home interface-defined custom finder (prefix named find) that has Update as an access intent is a candidate for custom finder SQL dynamic enhancement based on its specified isolation level. If the backend data store requires special SQL semantics, they are applied. The particular SQL used varies according to the isolation level you choose for beans in the application, as well the backend data base being used. If set to all, custom finder SQL dynamic enhancement is enabled for all custom finders defined in any beans that are installed into the container. If set to J2EENAME[:J2EENAME], where J2EENAME is a fully qualified package or bean name, custom finder SQL dynamic enhancement is enabled for only the custom finders defined in the beans that are installed into the container and represented by the bean names denoted.

Data type String
Range Valid values are all or J2EENAME[:J2EENAME]
Default Enhancement behavior not active

Note: Some of your applications might use custom finders that have been manually coded and already contain the SQL locking clauses, or keywords ORDER BY and DISTINCT on the SELECT operation. In these instances, if the run time attempts SQL dynamic enhancement, the possibility exists of introducing malformed SQL statements to the underlying backend data store. If an application contains these custom finders, then be careful when specifying the value for the JVM property com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent. A value of all causes custom finder SQL dynamic enhancement to occur for every custom finder method defined with an access intent of Update found in all beans that are installed in the application server, thus introducing malformed SQL for that subset of custom finders.

To prevent this from happening, do not set the server-wide setting to all. Instead, use the bean method level property, com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent.methodLevel to indicate on a per bean basis only those custom finder methods that should have the custom finder SQL dynamic enhancement executed on them at run time.

com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent.methodLevel

Used to indicate custom finder SQL dynamic enhancement be enabled at the method level on a particular bean.

When a bean is defined with this property set to a list of one or more custom finder methods, any custom finder (prefix named find) defined on the home interface that has a matching method name and parameter signature has SQL locking semantics applied at run time. This occurs only if the custom finder method has an access intent of Update specified and the backend data store supports the SQL clauses. The particular SQL used varies according to the isolation level chosen for the application as well as the backend data store being used.

Data type String
Range Valid value is a string of this form: method1(parm1,parm2,..parmn):method2(parm1,parm2,..parmn):methodn(...)