Custom finder SQL dynamic enhancement properties

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

To ensure that the SQL dynamic enhancements occur correctly for custom finders defined on an EJB 1.1 Home interface utilizing a backend data store that requires the special SQL locking clauses, the following JVM and bean (module) properties are provided. These properties enable one to indicate which custom finders to enhance, provided 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 that 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 runtime 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 installed in the appserver, 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 runtime.

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 runtime. 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(...)

com.ibm.websphere.persistence.bean.managed.custom.finder.access.intent Used by WAS 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 Version 5.x product. Its use as a server wide indicator has been deprecated by the fact that the default behavior of Version 5.x is to not dynamically enhance custom finder SQL.

Note that If your WAS for z/OS installation relies on the automatic dynamic enhancement of all custom finders in all applications installed, 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 Version 5.x product are enabled as described above.

Data type String
Range Valid values are true and false

Some notes about precedence...

  • The com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent.methodLevel attribute overrides any server-wide or bean level attribute setting

  • Any bean listed through a J2EE Name in the com.ibm.websphere.ejbcontainer.customfinder.honorAccessIntent indicator causes dynamic enhancement to occur for custom finders defined for that bean, even if the default behavior is in effect for the server in question.

  • The com.ibm.websphere.persistence.bean.managed.custom.finder.access.intent attribute disables a particular bean's use of this feature if the server-wide setting or bean setting is enabled and no method level settings are specified.