The <versiontriggers> database configuration element

The <upgrade> element in file database-config.xml contains, at most, a single occurrence of subelement <versiontriggers>. The use of the <versiontriggers> element is optional. Use this element to provide overrides for one or more named database version triggers.

Note: For Oracle, there is an important exception to the ability of the <versiontriggers> element to provide overrides for its <versiontrigger> subelements. Although the parent element, <upgrade>, might have defined the ora-parallel-dml and ora-parallel-query attributes, these values are not applied to version checks which are included as <versiontrigger> subelements. To get a version check to run with parallel query in Oracle, you must list it explicitly, add it as a subelement of the <versiontriggers> element, and indicate parallel-query="true" on that <versiontrigger> subelement.

For example: <versiontrigger name="com.guidewire.cc.system.database.upgrade.check.RecoveryCategoryNullForPaymentsAndReservesVersionCheck" parallel-query="true"/>. Other version triggers (but not version checks) that are not listed will inherit the parallel setting defined on the <upgrade> element. Note that even though RecoveryCategoryNullForPaymentsAndReservesVersionCheck is a version check, it must be included as <versiontrigger> element.)

In summary, version checks are exempted from Oracle parallelism unless you explicitly list them. Version triggers are not.

The database upgrade executes a series of version triggers that make changes to the database to upgrade between PolicyCenter versions. Usually, the default settings are sufficient. Change these settings only while investigating a slow database upgrade.

The <versiontriggers> element has the following syntax. The following code sample shows required attributes in bold font.

<database>
  <upgrade>
    <versiontriggers dbmsperfinfothreshold="integer">
      <versiontrigger extendedquerytracingenabled="true|false" name="string" 
            parallel-dml="true|false" parallel-query="true|false"
            queryoptimizertracingenabled="true|false" recordcounters="true|false"
            updatejoinorderedhint="true|false" updatejoinusemergehint="true|false"
            updatejoinusenlhint="true|false"/>
    </versiontriggers>
  </upgrade>
</database>

The <versiontriggers> element has the following attribute, which is optional.

dbmsperfinfothreshold

Specifies–for all version triggers–the threshold after which the database upgrader gathers performance information from the database. The default is 600 (seconds).

If a version trigger takes longer than dbmsperfinfothreshold number of seconds to execute, PolicyCenter:

  • Queries the underlying database management system (DBMS).
  • Builds a set of HTML pages with performance information for the interval in which the version trigger was executing.
  • Includes these HTML pages in the upgrader instrumentation for the version trigger.

You can completely turn off the collection of database snapshot instrumentation for version triggers by setting the value of the dbmsperfinfothreshold attribute to 0. If you do not have the license for the Oracle Diagnostics Pack, you must set dbmsperfinfothreshold to 0 before running the upgrade.

The <versiontriggers> element has the following subelement, of which there can be multiple occurrences.

versiontrigger

Provides override instructions for a specific, named, version trigger. See The <versiontrigger> database configuration element

See also