Column-Mapping Methods

The Relational Population Service wizard in the JADE development environment enables you to map a table column to a column-mapping method, a mapping method for a virtual property, or a blob, slob, or slobutf8 mapping method executed on an RPS node to return a derived value. (For details about using the wizard to specify the RPS mapping, see Chapter 15, "Using the Relational Population Service (RPS) Wizard", of the JADE Development Environment User’s Guide.)

The user-defined mapping methods can access other database objects (in addition to self). These methods execute on the RPS node and can access persistent instances. The RPS node (which must be Full replication mode, to access all object) runs in a mode similar to a native (JADE) SDS system, with kernel cache coherency, transaction isolation, and share lock semantics.

The data pump replication process invokes mapping methods when the associated column is to be output, and converts the result to meet the requirements of the relational database.

Column-mapping methods cannot update persistent objects and when invoked by the default Datapump application, cannot access application context.

If the methods require a user application context to execute, you must set a user-defined Datapump application. The value of the method column remains in the RDBMS database until that object is updated in a subsequent transaction.

When you specify a file name in the LogNullColumnOnException parameter in the [JadeRps] section of the JADE initialization file, exception information is written out to the specified file for any handled exceptions in a column‑mapping method, a mapping method for a virtual property, or a blob, slob, or slobutf8 mapping method. If no file name is specified (the default value), no exception information is logged for handled exceptions in mapping methods and virtual properties.

Changing the method source does not version the schema or automatically re-populate the affected relational database tables. If repopulation is required, you must version the schema manually, modify the method in the versioned schema, and stop the Datapump application on instantiation so that you can reload the data manually.