Oracle

The Temenos Transact Oracle Direct Connect driver is a middleware component between Temenos Transactand Oracle database. It enables Temenos Transact to send to and retrieve data from Oracle database storage. The data is stored in Oracle 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 Oracle 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 Oracle 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.

Database Configuration

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

  • SET ORACLE_HOME= D:\app\oracle\product\11.2.0\dbhome_1
  • SET LD_LIBRARY_PATH=%ORACLE_HOME%\lib
  • SET PATH=%ORACLE_HOME%\bin:%PATH%
  • SET TNS_ADMIN=%ORACLE_HOME%\network\admin
  • SET NLS_LANG=AMERICAN_AMERICA. AL32UTF8
NOTE: For Linux, you need to use EXPORT instead of SET.

To access the database, you need to use the Oracle command line tool sqlplus.

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

Libraries

Executable

config.XMLORACLE.dll

config-XMLORACLE.dll

Dynamic linked library Oracle Driver

config.XMLORACLE.exe

config-XMLORACLE.exe

Executable used for the Oracle driver configuration

libTAFCtransformer.dll

Dynamic linked library for TAFC transformers

libTAFCora.dll

Dynamic linked library for TAFC- Oracle utils

libTAFCorautils.dll

Dynamic linked library for TAFC utils

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

  • SET DRIVER_HOME=%TAFC_HOME%\XMLORACLE
  • SET JBCOBJECTLIST=%JBCOBJECTLIST%;%DRIVER_HOME%\lib
  • SET PATH=%PATH%;%TAFC_HOME%\bin;%DRIVER_HOME%\bin

You can configure the Oracle Direct connect driver using the config-XMLORACLE 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 Oracle 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

The XML Schema Definition document (.xsd) is required for Oracle and XML Schema Definition is 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 Oracle Driver schema directory

By default, the XML Schema Definition is not registered in the Oracle RDBMS Database. To de-register the XML Schema Definition manually, you can add the additional qualifier XSDSCHEMAREG with the CREATE-FILE command line set to NO. For example, XSDSCHEMAREG=NO. This creates an XML CLOB type table but uses long tag XML format for data storage.

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 in .profile located in the bnk.run directory to be used with the Oracle Direct Connect Driver.

Internationalisation

  • JBASE_I18N=1 (Mandatory)
  • JBASE_CODEPAGE=utf8
  • JBASE_LOCALE=en_US
  • JBASE_TIMEZONE=Europe/London
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_DISPLAY=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

NOTE: Some of the above listed settings tend to affect the performance and generate large volumes of trace information. Hence, these variables are enabled only for diagnostic purposes under the direction of Temenos personnel.

Database Objects

You need to create the following objects on the target database.

Object Action
Table spaces Create two tablespaces in each of the database, one each to store data and indexes, with auto-extend functionality.
User Create user with sufficient privileges and grant unlimited quota to the user on both the tablespaces created.

Backup and Recovery Strategies

There are two standard backup types for Oracle—offline and online. You can choose the backup mode depending on whether the application can be shut down or not. If yes, offline mode is the best. If no, online mode needs to be used. Both these methods require the following.

  • Database must be in archive log mode to enable point-in-time recovery using Oracle online and archived redo logs.
  • Temenos Transact backup must be restored at the same time as the database backup, which means, the Temenos Transact backup and offline backup must start simultaneously, should both be restored.

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.

Promoted Columns

This section describes the implementation of promoted columns in the Oracle server database. The promoted columns improve the performance of expensive queries by reducing the response time.

The principle is that the fields in the XML document corresponding to single value attributes in Temenos Transact, can be promoted, that is, duplicated into a separate relational column, so that it can be retrieved more quickly. In addition, an index can be created on the individual column to increase the performance further.

The driver will translate the JQL query accordingly, that is, the driver will create a SQL column expression instead of an XPATH query, which would have been used before to select the field from within the XML document column.

Currently this is implemented as a manual modification to the database, and will normally be done by Temenos technical personnel or in liaison with them at client sites.

A single value field or even a specific value of a multi-valued field, which is part of XMLRECORD, can be promoted as computed column of the table and be used in relational search conditions. Further, a relational index can be created on the computed column to improve the query performance.

The promotion of a single value XML field as a column involves the creation of the following.

  • Function, which evaluates the value of the field based on this XML element. For example, c2, that is, attribute 2 of the file
  • Persisted column for the specific field to hold the data for that field
  • Non-clustered index on the promoted column
NOTE: All the above three steps are the same for the ORACLE and DB2 databases. They only vary in the SQL syntax for function creation, adding the column and creation of index. Refer below.

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=XMLMSSQL NOXMLSCHEMA=YES COMPRESSION=YES

Oracle Binary XML and XML Index

This section provides a summary of Oracle’s Binary XML and XML Index, which were introduced in 11g Release 1 and will be supported in Temenos Transact R12.

Oracle Data Encryption

The Temenos Transact data is banking data, which is highly critical and sensitive. These data must be protected from unauthorized 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 unauthorized 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-XMLORACLE 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:29 PM IST

Feedback
x