DB2

The Temenos Transact DB2 Direct Connect driver is a middleware component between Temenos Transact and DB2 database. It enables Temenos Transact to send to and retrieve data from DB2 database storage. The data is stored in DB2 server as either XML columns or BLOBs (Binary Large Objects) for internal or work files. This section provides details about the database configuration, commands, transactions and driver environment variables involved in multiple database access and table details.

Having huge Temenos Transact data in single server or database hinders the performance of the database in both transactional and reporting services. Therefore, this data need to be separated categorically as per the business needs.

The Temenos Transact data is classified into volatile (transactional) and non-volatile (read-only) data. The data is separated and stored in different databases, which:

  • Boosts the performance of the transactional processing
  • Enables timely retrieval of the historical (non-volatile) data for the reports

The DB2 Direct Connect Driver (DCD) enables you to configure and access maximum of ten databases. Each database can be configured with its own credentials. A table can be created in a specific database for an easier and accurate access. Each table has two columns as listed in the following table.

Column

Description

RECID

Holds the primary key of the table

XMLRECORD

Holds the table data.

If the XMLRECORD is of XML type, the data will be converted from the internal dynamic array format into an XML sequence for insertion into the DB2 database. If the record is of BLOB type, the data will be stored directly in the XMLRECORD column in binary format.

On retrieval of data, the row information from the XMLRECORD column is converted back from an XML sequence into the internal dynamic array format for use by the application.

The Temenos Transact DB2 RDBMS Direct Connect driver is implemented using standard DB2 Command Line functions to communicate with the DB2 database and supports internationalized characters by the standard DB2 RDBMS code page conversion configuration.

Database Configuration

This section provides configuration for the Linux version of DB2. However, the same configuration is applicable for the Windows version as well. You need to make changes corresponding to the operating system while setting the following environment variables.

You can find the location of the DB2 server and edit the following in .profile.

  • export DB2_HOME=/home/db2inst1/sqllib
  • export DB2_SHLIB=$DB2_HOME/lib64
  • export DB2_SHLIB_PATH=$DB2_HOME/lib64
  • export DB2_LD_LIBRARY_PATH=$DB2_HOME/lib64
  • export PATH=$DB2_HOME/bin:$PATH
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DB2_LD_LIBRARY_PATH
  • export LIBPATH=$LIBPATH:$DB2_SHLIB
NOTE: For Linux, you need to use EXPORT instead of SET.

To access the database, you need to use the DB2 command line tool db2.

The version of the DB2 server is visible when db2 command is executed.

The XMLDB2 Driver is located in %TAFC_HOME%\XMLDB2 folder. The following table lists the libraries and executables available in the driver.

Libraries

Executable

config.XMLDB2.so

config.XMLDB2.so.el

Dynamic linked library DB2 Driver

config.XMLDB2

Executable used for the DB2 driver configuration

libTAFCdb2.so

libTAFCdb2.so.el

Shared object for DB2

libTAFCdb2utils.so

libTAFCdb2utils.so.el

Shared object for TAFC-DB2 utils

libTAFCtransformer.so

libTAFCtransformer.so.el

Shared object for TAFC transformers

The following commands enable you to edit .profile or remote.cmd.

  • export DRIVER_HOME=$TAFC_HOME/XMLDB2
  • export JBCOBJECTLIST=$JBCOBJECTLIST:$DRIVER_HOME/lib
  • export PATH=$PATH:$TAFC_HOME/bin:$DRIVER_HOME/bin

You can configure the DB2 Direct connect driver using the config-XMLDB2 executable. This creates the jedi_config driver configuration file at %TAFC_HOME%\config, which stores all the data entered through this executable.

Commands for Multi-Database Access

This section provides examples of commands that can be used with the DB2 driver and expected output. These commands are mostly built in the Temenos Transact environment, which you can execute with the necessary options when required.

Table Creation Using Long Tag XML

Generally, the XML Schema Definition document (.xsd) is not required for DB2 and XML Schema Definition is not registered, by default. However, you can use the long tag elements as per the Temenos Transact XML Schema Definition (.xsd) document and store the definition within the table. The short tag XML is the default format.

NOTE: There is an overhead to system while using the long tag format in the amount of data and the performance of the system.

You can invoke the long tag table XML format by specifying the XSDSCHEMA qualifier when creating the table.

The XML Schema Definition (ACCOUNT in this case) must be:

  • Generated by the Temenos Transact Standard Selection Rebuild (See XSD Schema Generation User Guide)
  • Placed in the MSSQL Server Driver schema directory

By default, the XML Schema Definition is not registered in the DB2 RDBMS Database. To register the XML Schema Definition manually, you can add the additional qualifier XSDSCHEMAREG with the CREATE-FILE command line set to YES. For example, XSDSCHEMAREG=YES.

The following screen capture displays an Oracle describe, which shows the table type to be different from the short tag XML CLOB table description

The following screen capture shows an example of a data record in the long tag structured storage format.

The following screen capture shows an example of index creation on a long tag xml table. It is similar to creating indexes for normal files.

Table Querying

You can use the general jBase Query Language (JQL) queries used to query a J4/JR file, to query the tables as well. The driver converts these queries to the corresponding underlying database query and fetches the data. The translated query is logged in the log file. If the translated query is to be displayed on the standard output, you need to set JEDI_XMLDRIVER_DEBUG_DISPLAY. The following are the different commands involved in querying tables.

Transaction in Multi-Databases

When a WRITE or UPDATE action is performed within the transaction boundary (between TRANSTART and TRANSEND), it is termed a transaction. The transaction starts only with WRITE, so only the database where the data is written is in the transaction. The transaction can also read a file from one database and write to another file from a different database.

The transaction aborts on updating or writing data to the files of multi-databases resulting in a coredump.

Driver Environment Variables

You need to configure the following environment variables to be used with the DB2 Direct Connect Driver.

Internationalisation

  • JBASE_I18N=1 (Mandatory)
  • JBASE_CODEPAGE=utf8
  • JBASE_LOCALE=en_US
  • JBASE_TIMEZONE=Europe/London
  • JBASE_CORE_DUMP=1      (Force core dump on segmentation violation)
You can use the jtimezones keyword to list all the possible values for JBASE_TIMEZONE configuration.

Optional

The following table lists the optional variables and their functionality.

Command

Functionality

JEDI_XMLDRIVER_TRACE=1

Traces all driver functions

JEDI_XMLDRIVER_DEBUG=1

Traces only query translations

JEDI_XMLDRIVER_NO_SPACE_PRESERVE=1

Indicates that the white space is not preserved in xml Trace

JEDI_XMLDRIVER_PREFETCH_ROWS = n

Indicates the number of rows to be pre-fetched in each fetch. The default value is 500.

JEDI_XMLDRIVER_ENABLE_DB_SORT=1

Enables the DB sort instead of JQL Sort

JEDI_XMLDRIVER_DISABLE_RECID_NUMSORT=1

Ignores the data type of the RECID while sorting on RECID

JEDI_XMLDRIVER_ENABLE_EDICT_TYPE=1

Enables the EDICT data type detection

JEDI_XMLDRIVER_DISABLE_DATABASE_LOCKS=1

Disables the DB row locks

BASE64 XML

BASE64 is a special type of file to be specified during file creation, using the NOXMLSCHEMA qualifier. There is no specific environment variable, procedure or function associated with BASE64. It is just another file type like BLOB or WORK. After the file is created using the appropriate qualifier, the driver code manages the internal representation of the data that is written and read to the DB2 database server.

This section describes the implementation of the BASE64 changes made for Direct Connect DB2 Driver. This implementation improves the query performance by utilizing the database cache by converting the BLOB data that are stored in the BLOB type file to BASE64. This allows the data to be held in the UTF8 format, which can be stored in the XML. The conversion from BLOB to BASE64 also eliminates the possibility of illegal binary character. In addition, the XML records are cached and BLOB records are not, resulting in an increased performance as compared to BLOB.

Extended Dictionary

This section describes the implementation of the extended dictionary changes for DCD. This enables you to utilise the description present in an extended dictionary part of an attribute. Prior to this enhancement, DCD used the justification of the attributes to determine its SQL translation—an attribute with left justification was translated to string compare in the SQL translation and attribute with right justification was translated to both numeric compare and string compare in the SQL translation.

This enhancement bypasses the justification of the attributes if extended dictionary is available for the attribute. If the numeric value 101 is present in the extended dictionary, it will either do a numeric compare or string compare.

This enhancement is available for all the ORACLE, DB2 and MSSQL direct connect drivers. In addition, to see the extended dictionary used in the translation, you need to set the following environment variables.

  • JEDI_XMLDRIVER_ENABLE_EDICT_TYPE=1
  • JEDI_XMLDRIVER_ENABLE_ALL_COLUMNS=1

On creating the file and specifying the attributes, you need to use the use numeric value 101 in the extended dict to enable numeric comparison and 108 or any other number for string comparison. Though any valid integer number can be used in the extended dict part for string comparison, it is recommended to use 108, as it has been tested.

In the following sample, a file with two attributes ATTR1 and ATTR2 is created, where ATTR1 is specified with a value of 101 in the Extended Dict and ATTR2 is specified with a value of 108.

NOTE: The following example is valid for all the drivers—ORACLE, DB2 and MSSQL.

Log time for Database Queries

This section provides the details of the log time for database queries.

Table Compression

Table compression is implemented using the following command to reduce data tablespace requirements and network traffic. The compress/decompress is done automatically at the client site.

CREATE-FILE DATA TSTBLOB TYPE=XMLDB2 NOXMLSCHEMA=YES COMPRESSION=YES  

DB2 Data Encryption

The Temenos Transact data is banking data, which is highly critical and sensitive. These data must be protected from unauthorised access when stored in public cloud. The simple way to protect data is to enable encryption functionality to the data. The data has to be encrypted in the client application server before getting stored in the database server.

Encryption is the conversion of data into a form that cannot be understood at ease by unauthorised people. Decryption is the process of converting encrypted data back into its original form. This conversion happens through different algorithms or keys, which are standardised and accepted by the financial community.

A base encryption key is configured and maintained in the client server. This key is held outside the database, which protects against removal of the database or integration of an image of the database. Without access to the client, the key remains hidden. Removal of this record from the client system would disable the base encryption key.

The next level of security is given by adding an encryption key to the table. Tables are encrypted with different keys so that the decryption each table completely differs from the other. When the data is entered, the base key and encryption key are taken together processed, encrypted and stored in the database. When the data is queried, the same encryption key and base key has to be used to decrypt the data and given back to the user.

When the table is queried with criteria using JQL, the translation from JQL to SQL is suppressed. All the data in the table is sent and jQL executes the criteria on the result set, which may have some performance hiccups.

You need to configure the database server name, database name, and user credentials for the driver and check if the database gets connected using config-XMLDB2 utility.

ENCRYPT Qualifier

The ENCRYPT qualifier defines the encryption key for the table. This encryption key is stored in stub/VOC entry of the table in encrypted format. This functionality is available for both XML and BLOB types.

Copyright © 2020- Temenos Headquarters SA

Published on :
Wednesday, October 12, 2022 7:00:31 PM IST

Feedback
x