+

Search Tips   |   Advanced Search

Custom finder SQL dynamic enhancement properties

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 JVM and bean (module) properties are provided. These properties allow us to indicate which custom finders to enhance, assuming the backend data store supports the SQL clauses.

(iSeries) (Dist) For i5/OS™ and distributed platforms, to view this administrative console page, click Servers > Server Types > WebSphere application servers > server > Java and process management > Process definition > Java virtual machine > Custom properties

(ZOS) For z/OS, to view this administrative console page, click Servers > Server Types > WebSphere application servers > server > Control (to define the property in the Control) or Servant (to define the property in the Servant) > Java and process management > Process definition > Java virtual machine > Custom properties.


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 we 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 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 installed into the container and represented by the bean names denoted.

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

Some of the 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 we must 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 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.

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


(ZOS) com.ibm.websphere.persistence.bean.managed.custom.finder.access.intent

Used by WebSphere Application Server for z/OS Version 4.x users to indicate that the SQL enhancement capability should not be applied to applications installed in the WAS for z/OS product.

The default behavior of the WAS for z/OS Version 4.x product is to perform the dynamic SQL enhancements. For those z/OS users choosing not to participate in dynamic SQL enhancement of custom finders in the Version 4.x product, this attribute is used to make this indication at both the bean and the server level.

At the bean level, a name/value pair consisting of this attribute name and a value of true disables the SQL enhancement of any custom finder defined on the given bean's home interface.

At the server level, an entry into the WAS for z/OS server property file with a value of true disables the SQL enhancement of all beans installed in the given server.

This custom finder enhancement attribute continues to be supported by the runtime at the bean level in the product. Its use as a server wide indicator has been deprecated by the fact that the default behavior of earlier versions is to not dynamically enhance custom finder SQL.

If our WAS for z/OS installation relies on the automatic dynamic enhancement of all custom finders in all applications installed, we should set the com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent indicator to all. If an application contains a bean that has the com.ibm.websphere.persistence.bean.managed.custom.finder.access.intent indicator set into its env-var settings, that indicator continues to be used, provided the dynamic SQL enhancement features of the product are enabled as previously described.

Information Value
Data type String
Range Valid values are true and false

Some notes about precedence:

  • Tune the application serving environment