The concurrency strategy for WebLogic specifies how the container should manage concurrent access to an entity type enterprise bean. This rule detects the presence of the <concurrency-strategy> element in the weblogic-ejb-jar.xml file.
There are four WebLogic concurrency strategies that must be migrated to WebSphere traditional:
In the source scanner, the quick fix provided for this rule migrates your concurrency strategies defined in weblogic-ejb-jar.xml to concurrency strategies defined in the WebSphere EJB extension file. You can use the quick fix preview option to see the changes before you apply the quick fix.
Source scanner quick fix actions:For the Exclusive WebLogic strategy, the following WebSphere(R) Application Server bean cache options are set for the corresponding bean:
These parameters avoid calls to ejbLoad function and serialize access to the bean instance. This option increases memory utilization by maintaining persistent state in the cache but can provide better response time if the bean instance is not generally accessed concurrently. This is caching Option A in the EJB specification.
ReadOnlyFor the ReadOnly WebLogic strategy, the following WebSphere Application Server Bean Cache options are set for the corresponding bean:
For the Database WebLogic strategy, the following WebSphere Application Server bean cache options are set for the corresponding bean:
This is the default for the WebSphere Application Server bean cache. Since it is the default, it does not have to be explicitly set it for each of the beans that use the database concurrency strategy; however, the quick fix does explicitly set it. This strategy is also referred to as caching Option C in the EJB specification.
OptimisticFor the Optimistic WebLogic strategy, optimistic locking is used in WebSphere. The access intent is set in the WebSphere extension file to wsOptimisticUpdate. Also, when the CMP map is created, the OptimisticPredicate property is set to TRUE for all fields that are defined in the weblogic-cmp-rdbms-jar.xml file as <verify-columns>. These columns are checked for updates before committing the changes to the database. If a change is detected, the transaction is rolled back.