0% found this document useful (0 votes)
30 views157 pages

Course Document Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views157 pages

Course Document Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 157

Transact TAFJ Foundation TR1PRAFJ - R22

Revision 1 English

©2023 Temenos Headquarters SA - all rights


reserved.
Warning: This document is protected by copyright
law and international treaties. Unauthorised
reproduction of this document, or any portion of
it, may result in severe and criminal penalties, and
will be prosecuted to the maximum extent
possible under the law.
Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Table of Contents

Table of Contents ................................................................................................................................................................................... 1


Document History .................................................................................................................................................................................. 7
Introduction ............................................................................................................................................................................................. 8
Lesson Overview ............................................................................................................................................................................................... 8
Your Course » Objective and Learning Outcomes .................................................................................................................................. 9
Your Course » Timetable ............................................................................................................................................................................. 10
Lesson Summary ............................................................................................................................................................................................ 11
Architecture ........................................................................................................................................................................................... 12
Lesson Overview ............................................................................................................................................................................................ 12
Platform Framework ..................................................................................................................................................................................... 13
Platform Framework » TAFJ as a Platform .............................................................................................................................................. 14
Platform Framework » TAFJ ........................................................................................................................................................................ 15
TAFJ Architecture ........................................................................................................................................................................................... 16
TAFJ Architecture » TAFJ Modes............................................................................................................................................................... 17
Exploring Features » Coding ....................................................................................................................................................................... 18
Exploring Features » OS Independence .................................................................................................................................................. 19
Exploring Features » Resource Management - Clustering ................................................................................................................. 20
Exploring Features » Threads and Thread Management .................................................................................................................... 21
Standalone Mode » Running a TAFJ Shell .............................................................................................................................................. 22
Standalone Mode » TAFJ Shell ................................................................................................................................................................... 23
Lesson Summary ............................................................................................................................................................................................ 24
Standalone Tools .................................................................................................................................................................................. 25
Lesson Overview ............................................................................................................................................................................................ 25
TAFJ Folder Structure » %TAFJ_HOME% ................................................................................................................................................. 26
TAFJ Folder Structure » %TAFJ_HOME%\Data ...................................................................................................................................... 27
TAFJ Folder Structure » %TAFJ_HOME%\conf ....................................................................................................................................... 28
Properties » .Properties File ........................................................................................................................................................................ 29
Properties » Important Properties ............................................................................................................................................................. 30
Properties » Database Properties .............................................................................................................................................................. 31
Properties » Additional Database Properties ......................................................................................................................................... 32
Properties » Addl Database Properties » Locking Mode .................................................................................................................... 33
TAFJ Standalone Tools ................................................................................................................................................................................. 34
TAFJ Standalone Tools » TAFJ Bootstrap ................................................................................................................................................. 35
TAFJ Standalone Tools » tCompile............................................................................................................................................................ 36
TAFJ Standalone Tools » Compilation Output ....................................................................................................................................... 37
TAFJ Standalone Tools » Exclude Files From Compilation ................................................................................................................. 38

2 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Insert Folder ..................................................................................................................................................... 39


TAFJ Standalone Tools » Compile a List of Files ................................................................................................................................... 40
TAFJ Standalone Tools » Standard Compilation Options ................................................................................................................... 41
TAFJ Standalone Tools ».java and .class Files ........................................................................................................................................ 42
TAFJ Standalone Tools » Grammar Levels .............................................................................................................................................. 43
TAFJ Standalone Tools » TAFJ Properties for Compiler Settings ...................................................................................................... 44
TAFJ Standalone Tools » TAFJ Properties for Compiler Settings ...................................................................................................... 45
TAFJ Standalone Tools » Execute a BASIC Program ............................................................................................................................ 46
TAFJ Standalone Tools » TAFJ Properties for Runtime Parameters ................................................................................................. 47
TAFJ Standalone Tools » tDiag ................................................................................................................................................................... 48
TAFJ Standalone Tools » tShow ................................................................................................................................................................. 49
TAFJ Standalone Tools » tCrypt ................................................................................................................................................................. 50
TAFJ Standalone Tools » tFindDevice ...................................................................................................................................................... 51
TAFJ Standalone Tools » DBImport/DBUpdate ..................................................................................................................................... 52
TAFJ Standalone Tools » tUserMgnt ......................................................................................................................................................... 53
Services » Executing Services ..................................................................................................................................................................... 54
Services » Configuration .............................................................................................................................................................................. 55
Services » Close of Business ....................................................................................................................................................................... 56
Services » Close of Business ....................................................................................................................................................................... 57
Services » COMO ........................................................................................................................................................................................... 58
Services » COMO Configuration » TAFJTrace.properties ................................................................................................................... 59
Services » TAFJ Session Monitor ................................................................................................................................................................ 60
Services » TAFJ Session Monitor » Execution ........................................................................................................................................ 61
Lesson Summary ............................................................................................................................................................................................ 62
DB Tools .................................................................................................................................................................................................. 63
Lesson Overview ............................................................................................................................................................................................ 63
Database Structure » Table Format .......................................................................................................................................................... 64
Database Structure » TAFJ_VOC Table ..................................................................................................................................................... 65
Database Structure » TAFJ Views .............................................................................................................................................................. 66
DB Tools Console » Introduction ............................................................................................................................................................... 67
DB Tools Console » User Creation for DBTools Access ....................................................................................................................... 68
DB Tools Console » Launching DBTools Console ................................................................................................................................. 69
DB Tools Console » DBTools Console Header ....................................................................................................................................... 70
DB Tools Console » DBTools Console Main Panel ............................................................................................................................... 71
DB Tools Console » DBTools Console Footer ........................................................................................................................................ 72
Database Functionalities » Overview ....................................................................................................................................................... 73
Database Functionalities » SQL Mode ..................................................................................................................................................... 74
Database Functionalities » SQL Mode » Result Sets and Exceptions .............................................................................................. 75
Database Functionalities » JQL Mode » Supported Commands ...................................................................................................... 76

3 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » OFS Mode ..................................................................................................................................................... 77


Database Functionalities » JQL2SQL Mode ........................................................................................................................................... 78
Database Functionalities » JED Console » View and Edit a Record ................................................................................................. 79
Database Functionalities » JED Console » Using Script Mode .......................................................................................................... 80
Database Functionalities » Extract and Load Data from the Database .......................................................................................... 81
Database Functionalities » Extract and Load Data from the Database .......................................................................................... 82
Database Functionalities » Extract and Load Data from the Database .......................................................................................... 83
Database Functionalities » Lock Management ..................................................................................................................................... 84
Database Functionalities » Table Statistics ............................................................................................................................................ 85
DBTools Console Functionalities ............................................................................................................................................................... 86
DBTools Console Functionalities » Command History ........................................................................................................................ 87
DBTools Console Functionalities » Aliases ............................................................................................................................................. 88
DBTools Console Functionalities » More about Aliases ...................................................................................................................... 89
DBTools Console Functionalities » Setup................................................................................................................................................ 90
DBTools Console Functionalities » Setup................................................................................................................................................ 91
DBTools Console Functionalities » Setup................................................................................................................................................ 92
DBTools Console Functionalities » Default Command and Script Mode....................................................................................... 93
DBTools Console Functionalities » Script Mode » Log Result Sets .................................................................................................. 94
tJed Editor » Launch tJed ............................................................................................................................................................................. 95
tJed Editor » Understanding the UI ........................................................................................................................................................... 96
tJed Editor » Insert and Delete MV and SV ............................................................................................................................................. 97
tJed Editor » Delete a record ...................................................................................................................................................................... 98
tJed Editor » Display settings ...................................................................................................................................................................... 99
tJed Editor » GUI mode ..............................................................................................................................................................................100
tJed Editor » Script Mode » Modify a Record .......................................................................................................................................101
tJed Editor » Script Mode » Column Mode ...........................................................................................................................................102
Lesson Summary ..........................................................................................................................................................................................103
TAFJEE Servlet .................................................................................................................................................................................... 104
Lesson Overview ..........................................................................................................................................................................................104
Pre-requisite » Create a JBoss User ........................................................................................................................................................105
Overview » Launch ......................................................................................................................................................................................106
Overview » Helper Servlet Functions .....................................................................................................................................................107
Overview » Helper Servlet Functions .....................................................................................................................................................108
Configuration » Properties Setup ............................................................................................................................................................109
Configuration » TAFJ_CONFIGURATION Table ....................................................................................................................................110
Diagnostic » tDiag Servlet .........................................................................................................................................................................111
Diagnostic » tShow Servlet ........................................................................................................................................................................112
Diagnostic » tShow » Component Method ...........................................................................................................................................113
Diagnostic » Sanity Check .........................................................................................................................................................................114

4 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Sanity Check Dashboard ...................................................................................................................................................115


Diagnostic » EAR File Configuration » Application Report ...............................................................................................................116
Diagnostic » Application Server Configuration Report .....................................................................................................................117
Diagnostic » Application Server Configuration Report .....................................................................................................................118
Diagnostic » Validation Report ................................................................................................................................................................119
Diagnostic » Runtime Properties .............................................................................................................................................................120
Diagnostic » Runtime properties » After Configuration of Runtime Properties .......................................................................121
Diagnostic » TAFJ_CONFIGURATION ......................................................................................................................................................122
Execution » Execute Servlet ......................................................................................................................................................................123
Execution » Execute Servlet ......................................................................................................................................................................124
Execution » Entry Points .............................................................................................................................................................................125
Execution » Synchronous Invocation Webservices » OFS ................................................................................................................126
Execution » Synchronous Invocation Webservices » Subroutine Invoker ...................................................................................127
Execution » Web Services » Subroutine Invoker » User Defined Routine ...................................................................................128
Execution » Web Services » Subroutine Invoker » User Defined Routine ...................................................................................129
Execution » Web Services » tRun Invoker » Configuration Properties .........................................................................................130
Execution » Web Services » tRun Invoker » Configuration Properties .........................................................................................131
Execution » Web Services » tRun Invoker » User Defined Routine ...............................................................................................132
Execution » DBTools Servlet » Configuration ......................................................................................................................................133
Execution » DBTools Servlet » Authentication ....................................................................................................................................134
Execution » DBTools Servlet .....................................................................................................................................................................135
Execution » DBTools Servlet .....................................................................................................................................................................136
Execution » DBTools Servlet » Log Output ...........................................................................................................................................137
Management » TAFJ Sessions Management .......................................................................................................................................138
Troubleshooting » TAFJ Technical Monitor ..........................................................................................................................................139
Troubleshooting » TAFJ Technical Monitor ..........................................................................................................................................140
Troubleshooting » TAFJ Logger Servlet .................................................................................................................................................141
Troubleshooting » TAFJ COB Monitor ....................................................................................................................................................142
Troubleshooting » TAFJ TEC Monitor .....................................................................................................................................................143
Troubleshooting » Accessing COMO......................................................................................................................................................144
Lesson Summary ..........................................................................................................................................................................................145
Practice ................................................................................................................................................................................................ 146
Quiz I ...............................................................................................................................................................................................................146
Quiz II ..............................................................................................................................................................................................................147
Practice ................................................................................................................................................................................................ 148
Quiz..................................................................................................................................................................................................................148
Workshop 1 » Create New Properties File ............................................................................................................................................149
Workshop 1 » Check Properties ..............................................................................................................................................................150
Workshop 2 ...................................................................................................................................................................................................151

5 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Practice ................................................................................................................................................................................................ 152


Quiz..................................................................................................................................................................................................................152
Workshop 1 ...................................................................................................................................................................................................153
Workshop 2 ...................................................................................................................................................................................................154
Workshop 3 ...................................................................................................................................................................................................155
Practice ................................................................................................................................................................................................ 156
Quiz..................................................................................................................................................................................................................156
Workshop .......................................................................................................................................................................................................157

6 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Document History

Author Version Release Date Comments

TLC CaTS 1.0 20-Jun-23 Initial document.

7 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Introduction
Lesson Overview
In this lesson, I am going to describe what your course is all about.

8 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Your Course » Objective and Learning Outcomes


This course will allow you to: Describe and work with the TAFJ Runtime for Transact. In particular, you will be able to: Explain
the TAFJ Architecture. Describe and configure important properties and use the common tooling. Use the database-related
tooling to access the Transact database. Use the web-based TAFJEE Servlet admin console.

9 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Your Course » Timetable


’ W ’ , ’ , , ,
DBTools, TAFJEE Servlet.

10 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Lesson Summary
In this lesson, I described what your course is all about.

11 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Architecture
Lesson Overview
In this lesson, I am going to describe, Platform Framework, TAFJ Architecture, Features, Standalone mode.

12 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Platform Framework
The Platform framework offers: Compiler, Libraries, Tools. It also handles resource management through: Transactions,
Messages, Persistence, Context, Threads, Memory.

13 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Platform Framework » TAFJ as a Platform


TAFJ can be deployed within a JEE application server such as JBoss, Oracle WebLogic or IBM WebSphere. In TAFJ, resource
management is handled by the JEE application server.

14 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Platform Framework » TAFJ


TAFJ (Temenos Application Framework Java) provides a powerful platform for Transact to run on Java. This enables core
banking to harness the full functionality of J2EE application servers like connection pooling, threading, security etc. It is
Temenos proprietary runtime for the Transact application code, TAFJ has a compiler for jBC code, This converts standard jBC
code to Java code. The generated Java code is converted to bytecode using standard compilers provided by supported Java
releases. TAFJ itself is written in Java. TAFJ manages the connectivity to JDBC-compliant databases such as Oracle, Microsoft
SQL Server, PostGres SQL and for development purposes on H2. TAFJ requires JDK 1.8 or other supported releases such as
Open JDK 1.8, and IBM JDK 1.8 to run.

15 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Architecture
The diagram represents TAFJ core banking architecture Transact source code (*.b) is compiled into java classes (*.class) on
TAFJ, packaged into jar files and deployed on a J2EE server. TAFJ uses JDBC drivers to connect to JDBC-compliant databases
such as H2, Oracle, SQL server, DB2, DB2-zOS. TAFJ runtime comes with easy-to-use tools to manage the runtime and
database. For e.g., DBImport is a TAFJ tool to import data from a jBase database into oracle database. All the runtime
configurations (URL of the database to connect to, compiler settings, location of the runtime user directory etc.) are specified
and managed using property files. TAFJ uses log4J loggers. Extensive logs are generated for troubleshooting. TAFJ makes
use of the OS print manager and the JVM print mechanism to configure printers. TAFJ provides a lock manager for database
lock management. TAFJ also has the capability of redirecting all in and out streams to a remote client console.

16 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Architecture » TAFJ Modes


TAFJ can be run in two modes: A standalone mode where the TAFJ platform executes outside an application server. This is
rather similar to the classic mode used in TAFC based system earlier. This mode is typically useful for development and could
also be used for running services/COB etc. Application server mode where Transact and TAFJ are deployed and executed
within the context of an application server. Temenos follows a supported stacks policy, where a stack is either a combination
of an Operating System and Application server for deployments on-premise or denotes a deployment for a specific cloud
such as AWS, Azure and so on. A specific combination of Temenos products with other supporting software is tried and tested
on each stack and is listed for each release. The supported application servers in the R22 stacks are JBoss EAP 7.x, Wildfly 26
(for on-cloud stacks only), WebSphere v9, Weblogic 14c.

W
W
W

17 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Exploring Features » Coding


Transact applications are normally coded using Design Studio IDE in jBC (alternatively referred as Basic in this course). This
is made possible by TAFJ plugins. During compilation, the TAFJ lexer-parser-tree walker translates standard jBC code into
equivalent Java code and generates the source code file(*.java), which is then compiled into a java compliant
bytecode(*.class). The bytecode can be run on any JVM thus making Transact platform independent.

18 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Exploring Features » OS Independence


Transact code on TAFC compiled on a for example Windows platform can be executed only on Windows, and those compiled
in RH Linux can only be run in RH Linux. However, Java programs follow the write once and run anywhere principle. Transact
on TAFJ is in the form of Java code, where this code could be jBC that is translated into Java by TAFJ or Java code written
directly using APIs provided by Temenos. This makes the Transact platform independent. A platform is the hardware and
software environment in which the program runs. Any program that needs to be executed on a platform must be converted
into machine instructions understandable by that platform. When developers write Transact application code on TAFJ, using
jBC or Java, and compile it, the code is not converted into machine instructions unlike in TAFC, but is compiled into ByteCode.
Byte code can be executed on any compatible Java Virtual Machine. The JVM provides a layer of abstraction from the
platform and makes the byte code platform independent. Currently, Temenos supports both the Oracle and OpenJDK Java
platforms for R22.

19 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Exploring Features » Resource Management - Clustering


Application server clustering is implemented for performance. Transact on TAFJ is deployed inside an Application server such
as JBoss, Websphere or Weblogic. Hence, when the application server is clustered, Transact is also automatically clustered
and benefits from it.

20 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Exploring Features » Threads and Thread Management


COB and services execute in a multiprocessing fashion on a Transact server that is, each agent executes as a distinct process.
Transact code executing on TAFJ uses the full functionality of J2EE. COB on an application server is multi-threaded, where
each tSA executes as a distinct thread instead of running as a process. The resource management and allocation of threads
are done by the AS.

21 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Standalone Mode » Running a TAFJ Shell


You will normally launch the database and then the TAFJ shell. In the workshop, VDI or in a typical UTP installation shown
here, use the following scripts found under the Temenos folder. a) launch-h2. b) Command. In a Temenos Model Bank
environment, use the following scripts found under the Env>Commons>Scripts>Slot01 folder: StartUpH2, TAFJ_Shell.

22 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Standalone Mode » TAFJ Shell


TAFJ Shell is an ordinary Windows or Unix command shell. There is no background service executing (as against the older
TAFC platform which had a telnet daemon executing). It has some special environment variables set: TAFJ_HOME – points to
where TAFJ is installed, T24_HOME – points to the Transact working folder, JAVA_HOME – points to the Java bin folder.

23 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Lesson Summary
In this lesson, I described, Platform Framework, TAFJ Architecture, Features, Standalone mode.

24 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Standalone Tools
Lesson Overview
In this lesson, I am going to describe, TAFJ Folder Structure, Properties, TAFJ Standalone Tools like tDiag, tCompile, Services.

25 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Folder Structure » %TAFJ_HOME%


Let us understand TAFJ_HOME in detail. This folder contains the TAFJ Runtime files. 3rd Party – stores 3rd party jars like
Apache Ignite and JackRabbit, Jackson etc. The directory contains specific 3rd party Libraries. These libraries are not loaded
by default in the Classpath of TAFJ. appserver - Application server configuration files are kept here. These files are necessary
for deploying Transact on AS like JBboss, Websphere, and Weblogic. bin - contains TAFJ tools like tCompile, DBTools. lib -
TAFJ runtime libraries. CodeCoverageReceiver – a standalone application for calculating and reporting test coverage. conf -
configuration directory where the project property files are stored. data – contains classes, jars and java folders for storing
jBC code compilation outputs. dbdrivers - drivers of TAFJ-supported databases are stored here. dbscripts – stores database
scripts for DB2, Oracle, MSSQL and H2. These scripts create tablespaces, users and load the necessary stored functions on a
fresh database installation. Doc – TAFJ user guides, ext - stores Java extensions, eclipse\plugins – contains TAFJ eclipse
plugins which enable TAFJ perspective in DS, ext- The directory contains Java extension, JarSigner - The directory contains
the standalone tools to sign and verify a jar, Javadoc - The directory contains the JavaDoc of TAFJClientAPI, JbcSonarPlugin
– SonarQube plugin extension for JBC language, JMSInjector – a standalone application to inject OFS into queues, Lib - The
directory contains the TAFJ libraries, Maven - contains settings.xml for configuring TAFJ maven plugin repository path during
the build, MessageIntegrity - This directory contains the standalone tools and jars for MessageIntegrity. PROC - Empty folder
needed for back compatibility. Regression – contains scripts to perform regression testing. Log and log_T24 – end-to-end
runtime logs and Transact logs. Samples – sample basic codes /. TAFJSessionMonitor – contains TAFJ MW42 monitor.
T24Email/T24SMS/RulesEngine – stores Email/SMS/RulesEngine jars used by Transact runtime. TemnMonitor- used for
monitoring Transact and TAFJ using Grafana, ElasticSearch, Logstash, Prometheus etc and consists of .yml scripts to deploy
Grafana and other TS tools onto docker with the .yml scripts pre-configured for creation of grafana dashboards and panels.

26 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Folder Structure » %TAFJ_HOME%\Data


%TAFJ_HOME%\data\ folder stores the output of compilation. The folder contains the below sub folders \<Project Dir>\
The default project directory name. When you create a project in Design Studio, the Eclipse builder creates this directory
automatically with the project name. For example, DEV \<Project Dir>\classes\ The final output of a compiled BASIC code
goes here i.e., *.class e.g., %TAFJ_HOME%\data\DEV\classes. \<Project Dir>\java\ The Java source code translated from a
BASIC code on the compilation is stored here when the generate java property is set. This property is set to false by default
e.g., TAFJ_HOME%\data\DEV\java. \<Project Dir>\jars the default directory containing jars created during compilation when
generating jar option is enabled in compilation properties.

27 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Folder Structure » %TAFJ_HOME%\conf


TAFJ setup is based on a properties file. These files have a .properties file extension. The property files contain properties for
configuring the behaviour of TAFJ projects and are available under %TAFJ_HOME%\conf directory. Each property is stored
as (key=value) pair of strings, one storing the name of the property (called the key), and the other storing the value. For
e.g., temn.tafj.jdbc.driver = org.h2.Driver. All key=value pairs are loaded as Java System Properties. tafj.properties file is the
default TAFJ configuration file. It gets created when TAFJ_HOME is set up for the first time. TAFJ refers to this file for setting
information on the compiler, database, runtime etc. It provides vast information for the development and runtime
environment on TAFJ. You may create multiple projects in Design Studio like DEV, PROJA etc. For each project, a property
file is created in conf with the same name. But only one project is maintained as the default project. The property file name
of the default project is maintained in the file .default. This file is useful when you execute TAFJ commands without passing
a property file name explicitly as a parameter. TAFJ uses the default property file in such cases. The default property file
“ ” icy is a Java policy file which
defines security permissions for the code to run. TAFJTrace.properties is the default logger configuration file for writing
execution logs to files.

28 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Properties » .Properties File


All project properties files are in %TAFJ_HOME%\conf, Default project set by the file .default, By default, tafj.properties is set
in the file .default, Each file *.properties is a project for TAFJ [except TAFJTrace.properties], All key=value pairs are loaded as
Java System Properties(–Dtafj.home), To create a new project use .properties, Copy and rename .properties file, Set the
correct properties inside the new properties file.

29 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Properties » Important Properties


TAFJ does not use environment variables. TAFJ setup is done through the properties in the property files. Some required
properties for setting up a standalone environment are: tafj.home - points to the %TAFJ_HOME% folder which contains the
TAFJ runtime libraries. temn.tafj.directory.java - The default value is %TAFJ_HOME%\java if left blank and only one path can
be set where the generated .java files are stored. temn.tafj.directory.classes – Mandatory property and only one path can be
set where the generated .class files are stored. temn.tafj.directory.precompile, refers to the folder location where the
precompiled jars are kept. Multiple paths can be specified using the separators. The precompiled paths are overridden by
” ” W routine, it will be
available in the classes folder and will override the class in the precompiled path.

30 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Properties » Database Properties


The database properties are used to define the connection to the Transact database in the standalone mode. These
properties will not be used in the App server mode, as each application server has its own manner of specifying the database
connection. The properties are: temn.tafj.jdbc.url: URL to the Transact database, temn.tafj.jdbc.driver: The
database driver module name. The specific database drivers you are targeting should be in the /ext folder.
temn.tafj.jdbc.username: Database user id for connecting to the database, temn.tafj.jdbc.password: Password for this
database user. This password can be converted to an encrypted format, as we will see later on.

31 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Properties » Additional Database Properties


Transaction processing systems like Transact allows multiple transactions to run concurrently. Concurrent transaction
processing improves the performance of the system in terms of increased throughput and reduced response time. To
z ‘ ’ k
modes. The lock manager settings can be configured as desired in the properties file in the property temn.tafj.locking.mode.
e.g., temn.tafj.locking.mode = JDBC.

32 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Properties » Addl Database Properties » Locking Mode


A brief description of the various locking modes is given on this page.

33 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools


The folder %TAFJ_HOME%\bin, contains all the scripts for executing TAFJ tools. These scripts have meaning only in the
standalone environment and will not be applicable on the Application Server. Execute TAFJ tools from: %TAFJ_HOME%\bin.
Set JAVA_HOME before launching the tools. Launch TAFJ tools at this tafj shell prompt in the model bank area after changing
to TAFJ_HOME\bin path.

34 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » TAFJ Bootstrap


TAFJ Bootstrap is a batch file executed by all <script>.bat in bin. Among several checks and settings done by this script, one
essential setting is the min and max memory setting for the JVM, which can be amended as needed. Since all script files
uniformly execute this batch file, what you set here applies to all scripts.

35 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » tCompile


Write a simple basic PROGRAM using Notepad and save it in a folder. We will use an existing sample file called HELLO found
in TAFJ_HOME\samples\. The compilation of a basic program is done using tCompile. The full path to the program to compile
must be provided. The syntax for using tCompile is - tCompile [-options] dirName\filelist. There are 4 options available –cf, -
f, -h, -I: -cf is used to specify a configuration file for the compilation, -f specifies a list of files to compile, -h is used to get help
on the command, -I is used to specifying the Insert directories. The full path to a folder in the command compiles all the
basic files in the directory. For example, all the routines in TAFJ_HOME\samples will get compiled.

36 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Compilation Output


tCompile uses the configuration file passed as the parameter during compilation. If the –cf option is not used, then the default
configuration file specified in the %TAFJ_HOME%\conf\.default file is used for compilation. The final output of compilation
of EB.LOCKERS.b is a class file which is stored in the Classes Destination Dir(temn.tafj.directory.classes) path. Java Package
(temn.tafj.package) is the name of the package to which the java class will belong to, and the class file is stored in a similar
folder structure example, com > temenos > t24.

37 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Exclude Files From Compilation


Excluding files from compilation, When compiling a directory, you could also exclude some files from the compilation by
using the reject option. tCompile [-cf <confFile>] [-reject rejectPattern] <program_path_and_name> Examples: tCompile -
reject */EB.* D:\T24.BP – Compile everything in the directory T24.BP, but not the files starting with EB. tCompile -reject
*/SUB/* D:\T24.BP - Compile everything in the directory T24.BP, but not the subfolder called SUB. tCompile - reject */SUB/EB.*
D:\T24.BP - Compile everything in the directory T24.BP, but not the files starting with EB in the subfolder SUB. tCompile -
“*/ /*|*/ /*” \T24.BP - Compile everything in the directory T24.BP but exclude subfolder SUB and SUB2.
Specify the reject pattern between double quotes when using multiple criteria.

38 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Insert Folder


The insert directory can be specified as part of compiler options. If this is not specified, then the search order given below is
followed. Insert directory (temn.tafj.directory.insert), Precompile Directory (temn.tafj.directory.precompile), Current
Directory (temn.tafj.runtime.directory.current) – the directory from which .b is compiled, Error Message. The compiler option
takes precedence over the insert property if both are specified.

39 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Compile a List of Files



compile them at one go. Pass the list of file names to tCompile as shown in the snapshot and all these files are compiled in
one go. Alternatively, create a file with the list of programs to be compiled as above. The command to compile the list of
BASIC files will be tCompile –f <list_file_name>.

40 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Standard Compilation Options


temn.tafj.compiler.generate.java= true: Java code is generated in memory. Setting this property writes the generated Java
code into a file under temn.tafj.directory.java. This property is set to false by default. This property does not have to be
enabled to generate classes. temn.tafj.compiler.generate.class=true: This decides do we want to generate classes or do we
only want to parse the code. Obviously, this property is set to true normally. temn.tafj.compiler.generate.jar: This property
decides if the generated classes should be packaged into a jar file. The jar file has the same name as the package name in
the code. If a package is not specified, then T24_NoPackage is given as the name. The jar is generated in the jars folder under
the data\<project name>. You could use the temn.tafj.compiler.generated.jar.dir property to specify your jar folder.

41 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools ».java and .class Files


To summarize, tCompile parses the code, checks for compilation errors, generates Java source code in memory for the
BASIC code and then compiles the Java code to generate a Java class. The java code is stored on file under
%TAFJ_HOME%\data\<projectname>\java \<package folder structure > if temn.tafj.compiler.generate.java property is set to
true. The class files get created under %TAFJ_HOME%\data\<projectname>\classes\<package folder structure > and are
appended with _cl.class. In TAFJ all Java classes are grouped into a package specified using temn.tafj.package property.
Therefore the .java (and .class) files automatically get created in the com.temenos.t24 package.

42 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Grammar Levels


, ’ ,
compil “ ” ,
CODE. There are 2 main grammars levels on TAFJ: 2/3 and 0 The grammar 2/3 implies that there are no control flow
G , N … G O, RETURN TO, and labels, especially inside the below programming constructs (branching
and looping constructs). - … N… … N - GN … … N - …N X - …W
| N … G / ost optimized, and the generated Java is well-formed and maintainable
by a Java developer. The grammar 0 is due to the presence of branching to a label within a looping construct as shown in
the snapshot. This grammar level exists because the existing Tran G ’
, ‘ N ’
looping construct. Thus, this program will compile in grammar 0 only. Labels can be removed with some intelligent code
changes.

43 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » TAFJ Properties for Compiler Settings


temn.tafj.compiler.grammar.maxlevel - The maximum grammar level required by the compiler for the code to be compiled.
It has to be greater than or equal to minimum-level grammar. temn.tafj.compiler.grammar.minlevel - Is the minimum
grammar level expected in the code to compile. If the quality of the code to be compiled at a lesser level than what is set
here, then the compilation is cancelled. temn.tafj.compiler.grammar.line.number – Useful if you want to debug the basic.
Setting this property to true will generate the Java source code with line numbers.
Temn.tafj.compiler.grammar.warning.depreciation – Generate traces (logs) if a program cannot be compiled with the highest
grammar level. Temn.tafj.compiler.grammar.warning.equate. – Generate traces if duplicates are found in EQUATE
statements added to your basic code. Temn.tafj.compiler.insert.name.any - As per standards, a Basic Insert file starts with I_%
like I_COMMON. With this property set to true, the TAFJ compiler will accept any name as a $INSERT file.
Temn.tafj.compiler.basic.encoding – By default the basic source file encoding should be UTF-8, but you may have to specify
another file encoding when running on a specific platform, i.e. ibm zOs.

G
G
G

44 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » TAFJ Properties for Compiler Settings


temn.tafj.package, - A Java code is usually a part of a package. Since basic codes are converted to Java, they must be within
a package. Specify the package name here. By default, com.temenos.t24 for Transact code. temn.tafj.compiler.javac.options
- The TAFJ Compiler use Javac to compile the generated .java file. This property allows setting the Javac options. Type javac
at the command prompt to see the complete list of javac options. temn.tafj.compiler.javac.compliance - Defines the Java
version compliance for use. For example, when set to 1.8, you will be able to execute the generated code only on the targeted
version 1.8x.

45 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » Execute a BASIC Program


To execute a program in TAFJ, use the tool tRun. tRun is the main entry point for running a program. tRun is found under
%TAFJ_HOME%\bin. The tRun command takes three parameters. Option. program name. arguments to the program at
runtime. If specified, these arguments will be given after the name of the program. There are two options available. It is not
a mandatory input. -cf specifies the configuration file. -h to get help on the command. <parameters> used to pass runtime
arguments. Parameters are also optional. Syntax. tRun [-cf <confFile>] <BASIC program> [<parameters>].

46 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » TAFJ Properties for Runtime Parameters


TAFJ manages the class loader. There are no classpaths to set that is, in the CLASSPATH environment variable. The order of
loading the classpath in TAFJ is as below. <temn.tafj.directory.classes> <temn.tafj.runtime.classpath> - List of jars or
directories to load in the classloader, before %TAFJ_HOME%\ext. For e.g., Rules Engine. %TAFJ_HOME%\ext
<temn.tafj.runtime.extended.classpath> - List of jars or directories to load in the classloader, after %TAFJ_HOME%\ext
<temn.tafj.directory.precompile> The field separators, FM, VM, and SM are double-byte separators in TAFJ while in TAFC
they are maintained as single-byte separators. The maximum number of characters that can be represented with one byte
is 256 characters, while two bytes can represent up to 65,536 characters.

47 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » tDiag


tDiag is part of the TAFJ tools and is the equivalent of jdiag in TAFC. It displays the environment setting for your TAFJ
installation and the TAFJ projects available. It provides information like the Java version, the TAFJ version, and some project-
specific information. It is useful in pinpointing problem areas of the setup. [Note: the .properties extension to the
] , “ ” cts in
your TAFJ area.

48 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » tShow


tShow is similar to jShow in TAFC. tShow displays the compilation details of the basic routine passed as the parameter to the
tool. In the example shown above –cf indicates the name of the configuration file [i.e., property file]. Hence the details of the
routine inside that project alone are displayed. JAVA class label shows the location of the compiled class. The tool searches
for the resource on one single project (specified with –cf) or all available projects (when –cf is not specified) in your tafj area.
So, to search for a particular routine in all your projects, type tShow <rtn.name>.

49 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » tCrypt


tCrypt encrypts the password specified in temn.tafj.jdbc.password and temn.tafj.jdbc.password.comparer i.e., it encrypts the
database password in the configuration file specified using –cf. The algorithm used for encryption is DES3. The key used to
encrypt is auto-generated and stored in a file called .key in the conf directory of your TAFJ installation.

50 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » tFindDevice


Gets information about the Default Printer on your System and a list of printers which are available on your system. TAFJ
Project-specific Printer Configuration: To configure a printer-specific to the Project, go to the
%TAFJ_HOME%\conf\<configuration>.properties,and then manually add the list of printers. During the Installation of TAFJ
setup, it will automatically detect system default printers and add to the corresponding <Configuration>.properties file. To
add a Printer manually; temn.tafj.channel.class.0 = com.temenos.tafj.jlp.drivers.jPrinterDriver temn.tafj.channel.device.0 =
<SPECIFY YOUR PRINTER NAME> The properties temn.tafj.channel.class.0 and temn.tafj.channel.device.0 starts with 0. To
add more printers, assign incrementally i.e.., from 1 onwards.

51 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » DBImport/DBUpdate


DBImport is a tool to migrate data from one database to another. The databases supported are jBase, H2, Oracle, DB2 and
SQL. For e.g., the tool can translate a j4 file format to an RDBMS file format. The same tool can also be used to migrate a
TAFJ Oracle database to a TAFJ DB2 database. All RDBMS stores our Transact J4 tables in the 2-column format. The first
column contains the rec id and the second column contains the entire record in XML format. H2 database stores the record
in the TEXT format. The tool primarily performs 4 steps: Create corresponding tables in the RDBMS target database Create
VOC entries for the tables Insert records into tables Create TAFJ views DBUpdate is a tool to update a TAFC format database
to the same database in TAFJ format for e.g., a TAFC oracle database to a TAFJ oracle database. The tool creates TAFJ_VOC
table, and views for all the tables. VOC exists at the TAFC layer for a TAFC database and the views concept for querying
Transact tables is exclusive for TAFJ.

52 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJ Standalone Tools » tUserMgnt


Some TAFJ tools like DBTools which execute commands against the database have protected access. A TAFJ user credential
is required to use these tools. tUserMgnt is the TAFJ tool to create TAFJ users. It works in 3 modes as shown in the snapshot.
--Add: to add a new TAFJ user. --Reset: TAFJ blocks the user when the user credential is used with an incorrect password for
3 attempts. Password can be reset with this option. --Del: To delete an existing user. Use the –u Username to supply a
preferred username and –p Password to supply a preferred password. The username and encrypted password are stored in
a .dbtools.security file.

53 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » Executing Services


’ -threading capabilities Transact background services (TSA Services) can be
executed from the TAFJ shell or from within the App Server using a special Servlet interface The service can be run as a
process or as a thread in the standalone mode, when run as a background service (i.e when you execute TSM without the
debug parameter) The service is always executed as process, if you use the –debug parameter while starting the TSM. A
service is always executed as a thread within the App Server

54 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » Configuration
A Transact service can be executed in a multithreading or multiprocessing fashion from the TAFJ Shell. Setting the property
temn.tafj.runtime.phantom.as.process = true will initiate the service as a process. That is, instead of spawning multiple
threads f , ’
pool size when running the service as a process.

55 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » Close of Business


The command to start the TSM is tRun START.TSM –DEBUG. (-DEBUG is optional )

56 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » Close of Business


Start the tSAs using tRun tSA <Agent_Number>, for example, tRun tSA 5.

57 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » COMO
Transact services-related details are logged in the COMO logs. By default, COMOs log files are generated under
<TAFJ_HOME>/log_T24/como. The default behaviour could be overridden by using the following property:
temenos.log.directory.como=<PATH_TO_YOUR_COMO_LOG_FOLDER>. The property has to be set at TAFJ start-up and should
be done through environment variables or JVM arguments. You cannot use the tafj.properties file as loggers get initialized
before tafj properties gets loaded. The tafj property
“ /& &” and is used only when
temenos.log.como=false. P.S. The &COMO& directory is deprecated since UD directory would be completely removed for
cloud migration in future.

58 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » COMO Configuration » TAFJTrace.properties


The COMO appender and logger are defined in TAFJTrace.properties.

59 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » TAFJ Session Monitor


TAFJ Session Monitor is used to monitor Transact session activities like no. of method calls, reads and writes etc. (similar to
MW42 in TAFC). Session Monitor runs as a background service and can be used to monitor more than one system. Each
monitored machine must have monitoring enabled as shown in the screenshot. Session-related information is sent to a
listener on port 8377 running on 10.93.7.253. This listener is the Session Monitor. Session Monitor can be run on the same
system as Transact/TAFJ or on a separate system (System 1 and 2 can be the same machine in the table shown here).

60 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Services » TAFJ Session Monitor » Execution


’ ,
%TAFJ_HOME%\TAFJSessionMonitor\config. Set the tcp_port. This is the listener port that Session Monitor is listening on. It
is preset to 8377. Set the http_port. This is the port on which you get the web application that displays the session monitor
information. It is preset to 8370. To launch Session Monitor, use the script start.bat under TAFJSessionMonitor/bin. To view
the Session Monitor console, type http://localhost:8370/SessionMonitor.

61 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Lesson Summary
In this lesson, I described, TAFJ Folder Structure, Properties, TAFJ Standalone Tools, Services.

62 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools
Lesson Overview
In this lesson, I am going to describe, Database structure, DBTools Console, Database Functionalities, DBTools Console
Functionalities, tJed Editor.

63 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Structure » Table Format


, ’ owed a file
structure with multi-value fields. A multi-value system allows you to store multiple values in a field as opposed to the standard
normalized relational table structure To permit Transact to continue storing and processing data in a multi-value format,
data is stored as XML structures in relational database tables. Each database table has only two columns – RECID, and
XMLRECORD. RECID is the primary key and the rest of the data is stored in an XML structure within XMLRECORD. The file
name and file structure (referenced by Transact) is stored in a master table called VOC (short for Vocabulary).

64 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Structure » TAFJ_VOC Table


The VOC entries are in a table called TAFJ_VOC. The actual database table name, can be queried from TAFJ_VOC.

65 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Structure » TAFJ Views


The data records are stored as XML data in the RDBMS. The tables have a two-column format – recid, xmlrecord. In H2, the
data record is stored as CLOB i.e., TEXT. Because of the 2-column format, the Transact tables cannot be queried using field
, * N N W N ‘ ’ N
name in the table since the table has only two columns recid and xmlrecord. To query Transact tables like normal tables in
a relational database, TAFJ uses views. If you look at the structure of the view, you can see all the fields of the table. The view
is n N ‘ ’

66 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools Console » Introduction


TAFJ-DBTools Console is a unique tool that gives you the ability to manage the Transact tables. This is because the traditional
‘ ’ /
integrate the various database-related TAFJ tools. It is also designed to help users to launch various commands in a quick
and efficien ’
upon the TAFJ-Core framework to be independent of any native libraries.

67 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools Console » User Creation for DBTools Access


TAFJ-DBTools can be accessed only by authenticated users. The username and password have to be passed as parameters
to DBTools. Create a valid user using tUserMgnt.bat/tUserMgnt.sh. Run from %TAFJ_HOME%\bin: tUserMgnt.bat or
tUserMgnt.sh depending on the platform. It works in 3 modes: --Add: to add a new TAFJ user. --Reset: TAFJ blocks the user
when the user credential is used with an incorrect password for 3 attempts. A blocked user cannot be used until the user is
reset with a new password or deleted/re-created. Password can be reset with this option. --Del: To delete an existing user.
Use the –u Username to supply a preferred username and the –p Password to supply a preferred password. The username
and encrypted password are stored in a .dbtools.security file in %TAFJ_HOME%\conf folder. After a user is created, you can
log in and access DBTools and tJed wizard commands. Pass the username and password along with the –u and –p option
respectively.

68 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools Console » Launching DBTools Console


DBTools Console can be launched from %TAFJ_HOME%\bin. DBTools [-cf <configuration>[.properties]] –u <un> -p <pwd>.
The targeted database will be the one defined in the default configuration file or in the configuration file specified by the -cf
option. DBTools console consists of three panels. Header panel that contains information about the current mode or running
command. Main panel that contains the result of the last executed command. Footer panel that contains the command line.
When DBTools is launched you can view the DBTools HELP document automatically launched in the main panel.
Alternatively, type HELP at the footer.

69 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools Console » DBTools Console Header


Header: The header presents the following information: The current mode or running command. For e.g., JQL, SQL or HELP.
A warning in case of an unrecognized command. The current page/column number and the total number of pages/columns
if the result of the command is being displayed on multiple pages and/or columns. In SQL Mode, you will in addition also see
the auto-commit status. By default, it is set to off.

70 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools Console » DBTools Console Main Panel


Main panel: The main panel contains the command result to be displayed or edited. It is displayed in columns and rows. If
’ 8 ,
then only the first 80 characters are displayed in the first column, the remaining data is wrapped to the next column that is,
2. In the example shown we can see column 1/7. Type sr at the command prompt to scroll right to the next column and sl to
scroll left. If the ’
multiple pages. Type f to move forward to the next page and b to move backwards. The result set of the below Select is
displayed on 2 pages and 7 columns as seen in the snapshot SELECT.
RECID,RANK,CCY_NAME,NUMERIC_CCY_CODE,BUY_RATE,SELL_RATE,COUNTRY_CODE,BASE_CCY_RANK,NO_OF_DECIMALS,
THE_RECORD FROM V_FBNK_CURRENCY

71 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DB Tools Console » DBTools Console Footer


Footer: The footer panel contains the command line from where the DB commands can be issued. The footer also shows by
default the database connection parameters: username, database name and hostname IP address. For command results that
can be edited (For example. editing a record), the field number is displayed on the left margin of the panel adjacent to the
data. Type the field number on the command line in the footer to make the corresponding data in the field editable as shown.

72 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » Overview


We will first look at all the database-related functionalities in DBTools. Execution modes SQL, JQL, and OFS to execute
commands. Execute JED application (edit and modify record). Extract and load data from and to a database. Show current
locks and release locks on the database. Display table statistics.

73 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » SQL Mode


The console operates in SQL/JQL/OFS modes: SQL: To execute SQL statements, you must switch to SQL mode by typing the
“ ” command with the SQL keyword. The header panel displays
the keyword SQL to confirm that SQL mode is activated. The console is now ready to execute SQL statements. The allowed
SQL statements are listed on the slide. To be recognized the statement must start with one of the keywords in uppercase:
For e.g., SELECT * from FBNK_CURRENCY. To know the actual table name of a Transact table in the RDBMS, type JQL
GETDBNAME <VOC file name>. By default, the database connection is set to auto-commit=false. An explicit COMMIT is
needed after any DML execution using the COMMIT statement. Otherwise, the changes made will be rollbacked on exiting
the console.

74 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » SQL Mode » Result Sets and Exceptions


If a DML statement returns a result set, then the result set is displayed. Else the number of rows affected by the statement is
displayed. SQL Exceptions are displayed on the console. To avoid excessive memory usage when retrieving an important set
of data, by default only the first 200 rows are displayed. Use setup to modify the defaults.

75 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » JQL Mode » Supported Commands


, “ ” and line or by
prefixing your JQL command with JQL keyword. JQL mode gets activated and is displayed in the header panel. The console
is now ready to execute JQL statements. The allowed keywords are displayed on the slide. Use the command USAGE at the
footer to get this list. The CREATE-FILE command can be used to create tables of XML, CLOB, BLOB, MULTI-COLUMN, and
VARCHAR types. CREATE-FILE F.TESTROFILE TYPE=<<TYPE>> To specify MULTI-COLUMN file creation, an existing dictionary
is needed, CREATE-FILE FBNK.CURRENCY.2 TYPE=MULTI-COLUMN DICT=D_F_CURRENCY CHANGE-TABLETYPE: In addition
to these modes the CHANGE-TABLETYPE statements will allow you to change a table type from one type of data storage to
another (for example, from XML to CLOB, or vice-versa) while moving the existing data to the new format. A backup file is
created with the original data named with the suffix. BACKUP of the target file. This backup file is deleted finally. Types
currently supported are XML, CLOB, BLOB, and VARCHAR. CHANGE-TABLETYPE TABLE=FBNK.CURRENCY FROM=XML
TO=CLOB.

G N ,
,

76 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » OFS Mode


, “ ”
The default OFS source is GCS. Note: Your TAFJ default properties file must point to a valid Transact precompile directory or
jars.

77 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » JQL2SQL Mode


JQL2SQL mode gives the SQL equivalent statements for JQL statements.

78 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » JED Console » View and Edit a Record


You can call JED console to display and edit database records by using command JED <<FILE NAME>> <<RECORD KEY>>.

79 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » JED Console » Using Script Mode


The option –s, executes the JED command in the script mode. The script mode can be used to directly update a record
without opening JED Console. JED -s <<FILE NAME>> <<RECORD KEY>> <<FIELD NUMBER>>=<<VALUE>>; The screenshots
on this page show the command to update field no 6 in TSA.SERVICE to STOP, and then shows the updated record by using
Jed in the normal mode.

80 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » Extract and Load Data from the Database


Extract table: This EXTRACT-TABLE command extracts records from a table and writes them on the local file system. The
options are: -f: file mode (default) - one file per record, the name of the file has the format <filename>-<recordId> -d:
directory mode. – creates a directory with the table name and inside this directory, each record will be stored in a distinct
file. The file name is the record id itself. If any file or directory already exists, it will be overridden.

81 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » Extract and Load Data from the Database


Extract table: This EXTRACT-TABLE command extracts records from a table and writes them on the local file system. The
options are -f: file mode (default) - one file per record, the name of the file has the format <filename>-<recordId> -d: directory
mode. – creates a directory with the table name and inside this directory, each record will be stored in a distinct file. The file
name is the record id itself. If any file or directory already exists, it will be overridden.

82 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » Extract and Load Data from the Database


Load data: This LOAD-DATA command loads data from your file system into the database. You can load a single record at a
time or specify the directory itself as a parameter to load a set of records. -f: file mode (default). The file name has the format
<filename>-<recordId>. If the file passed is a directory, all files having the previous format will be processed. -d: directory
mode. The parameter must be a directory. This directory will be recursively processed until a file is found. To load a single
record from a file on your file system – LOAD-DATA/CURRENCY/FBNK.CURRENCY-AUD where FBNK.CURRENCY-AUD is a file
in the CURRENCY directory. To load a set of records from a directory on your file system – LOAD-DATA
/CURRENCY/FBNK.CURRENCY where FBNK.CURRENCY is a directory containing individual files for each record in the
FBNK.CURRENCY table.

83 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » Lock Management


LOCKS command displays all records locked in the database. It displays locks managed by one of the below locking modes.
tLockManager JDBC (TAFJ_LOCKS table) –screenshot on this page ORCL/MSSQL DATABASE internal locking on the database.
The RELEASE locks command is specially designed for tLockManager. It is used to release the locked record from
tLockManager. View the currently locked records by launching the command LOCKS and release the record you want using
the command RELEASE <<FILE NAME>> <<RECORD ID>> Note: With ORCL and MSQL locking, it is not possible to release
locks because DBTools does not own the database session where the lock was taken. It is not possible to release locks that
are taken with SELECT FOR UPDATE when the locking mode = DATABASE.

84 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Database Functionalities » Table Statistics


This command gets information about a JBase file, its file path, its H2 equivalent database filename and its record count.
Syntax - STAT <<FILE.NAME>>.

85 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities


We shall look at all the console functionalities: Command History, Create, execute and delete aliases, Setup command.

86 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Command History


A history of the last commands launched (10 last commands by default) is maintained to give the ability to reuse quickly the
“ ” . You will get the resulting output that shows the list of last-
used commands. Whether you are under history mode or not you can recall the command you want by typing its history
index on the command line. If you want to recall the last SQL command just type h1 and you will get that command executed.
You can clear history by typing the command clear-history.

87 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Aliases


DBTools “ ” ,
, , “ ” G N “ N”
JED –s F.TSA.SERVICE COB 3=TEN;6=START; You can create an alias to create a shortcut to this command by typing: alias
<<ALIAS NAME>><<BLANK>><<COMMAND>>. Display aliases: To display all stored aliases you can type the command
“ ” t type the alias name on the command line.

88 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » More about Aliases


If you create an alias for a SQL or JQL statement, you have to switch to the appropriate mode before calling the alias or the
’ zed. In the snapshot shown invoking CURRLIST in the JQL mode does not yield the result set as
CURRLIST is an alias for an SQL command. Hence switch to the SQL mode before executing the alias. You can also add
selection criteria to your alias. To delete an existing alias just type the command unalias <<ALIAS NAME>>

89 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Setup


The setup command allows you to customize your session by manipulating a list of properties. These properties are specified
in the DBTools properties file. As with all property files, there is only one DBTools.properties file for your TAFJ area and is
shared between all users. Max row retrieved ( SQL) - This property allows you to customize the maximum number of rows
that would be retrieved from a SQL SELECT statement. This prevents memory exceptions in case the SQL query yields a large
result set. The value should be an Integer, the default value is 200. Max records per page - This property allows you to
customize the maximum number of results that would be displayed in the main panel. The value should be an Integer, the
default value is 20. Make sure your console is correctly sized to display the requested number of records. Max line length -
This property allows you to customize the maximum line length (i.e., columns) that would be displayed in the main panel.
The value should be an Integer, the default value is 80. Make sure your console is correctly sized to display the full line length.

90 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Setup


The setup command allows you to customize your session by manipulating a list of properties. These properties are specified
in the DBTools properties file. As with all property files, there is only one DBTools.properties file for your TAFJ area and is
shared between all users. Max row retrieved (SQL)- This property allows you to customize the maximum number of rows
that would be retrieved from a SQL SELECT statement. This prevents memory exceptions in case the SQL query yields a large
result set. The value should be an Integer, the default value is 200. Max records per page - This property allows you to
customize the maximum number of results that would be displayed in the main panel. The value should be an Integer, the
default value is 20. Make sure your console is correctly sized to display the requested number of records. Max line length -
This property allows you to customize the maximum line length (i.e., columns) that would be displayed in the main panel.
The value should be an Integer, the default value is 80. Make sure your console is correctly sized to display the full line length.
History size max - This property allows you to customize the maximum number of history commands. The value should be
an Integer; the default value is 10. Show session long name - This property allows you to customize the session name that
W ‘ ’ ,
default value is false.

91 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Setup


’ - This property allows you to display or hide information about
page numbers and column numbers in the header panel. The value should be a Boolean, and the default value is true. SQL
auto-commit - This property allows you to enable/disable auto-commit on your database connection. When running SQL
statements with auto- , ’
before exiting. The value should be a Boolean, the default value is false. Log file - This property allows logging command
, ’
logged. OFS source and OFS separator – This property allows you to configure the OFS source record and the separator for
working in the OFS mode.

92 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Default Command and Script Mode


DBTools Console gives also the ability to launch the console along with a command. Add your command to the command
line when launching DBTools console. DBTools [-cf <configuration>[.properties]] –u <un> -p <pwd> COMMAND. Now the
console opens with the result set of the command. Execution in script mode. DBTools console allows you to execute the
same commands that you execute in the interactive mode, in a script mode. In the script mode, the command gets executed
against the running database without opening the console. DBTools –u <un> -p <pwd> –s JQL CLEAR-FILE F.EB.EOD.ERROR
DBTools –u <un> -p <pwd> – N N N ‘ ’, ‘ ’ N
sequence \\ when using *

93 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

DBTools Console Functionalities » Script Mode » Log Result Sets


When you execute a command in DBTools console, the result set is buffered and displayed on the console by default. Even
when you use the script mode –s, the command execution result set is displayed on the command window without opening
the DBTools console. This output form is suitable for commands that do not produce large execution reports or result sets.
Log mode: The execution report is appended in a log file a) On providing -log logFileName along with –s, the execution
report will be redirected to the specified log file. This file is generated with .log extension under %TAFJ_HOME%\log. DBTools
–u <un> -p <pwd> -s -log currencyId SQL SELECT RECID FROM FBNK_CURRENCY will redirect the output to
%TAFJ_HOME%\log\currencyID.log. b) In the DBTools console use the Setup command to specify the log file. Then the
execution report will be displayed on the DBTools console and also redirected to the log file. Use the SPOOL command to
turn on the spool to redirect output to the log. To turn off SPOOL, type SPOOL once again at the footer prompt. This way you
can control for which commands you want to log the output. Silent mode: No execution report. You can use the -silent option
in script mode to silence the execution report It could be useful for commands appending a lot of output during execution.

94 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Launch tJed


The TAFJ-JED application is designed to edit and modify database records by providing their file name and record key. Like
the DBTools console, the JED console is also built upon the TAFJCore framework to be independent of any native libraries. It
could be called from the DBTools console as seen earlier and in standalone mode too. Execution – Interactive mode JED
Console could be launched from %TAFJ_HOME%\bin. tJed [-cf <configuration>[.properties]] –u <un> -p <pwd> <file name>
<record key> The targeted database will be in the configuration specified by the -cf option or the one defined in the default
configuration file. The command list given at the bottom of the screen allows you to navigate in the console and is similar to
the DBTools console.

95 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Understanding the UI


JED console consists of three panels like the DBTools console: Header panel that contains information about the record. The
main panel contains the record to be edited. Footer panel that contains the command line. Header - The header presents
‘ ’ N
(default)/LOCKED ( if the LOCK parameter is provided in the tJed command). Main panel - The main panel contains the
record to be displayed. The record is displayed vertically. Each field is displayed in a row. Each row displays a number that
corresponds to a single value field no (i.e., 11 is FREQUENCY field), a multi-value field with its MV position (i.e.,15.5 is the
fifth multivalued Date field) or a sub-value field no with the SV position (i.e.,1.1.1). The field number is displayed on a margin
on the panel left; the field data is displayed adjacent to the margin. JED console can display 80 characters per row, by default
the margin is 5 characters long and so the data part 75 characters long. Footer - The footer panel contains the command
line. You can see some of the available commands listed on the command line. [note: -cn option is discussed later].

96 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Insert and Delete MV and SV


Insert a field/Multi-value/Sub-value: To insert a new field, multi-value or sub-value just type the command i followed by the
<field position>:<multivalue position>:<subvalue position> number on the command line. Delete a field/Multi-value/Sub-
value: To delete a field, type the command d followed by the <field position>:<multivalue position>:<subvalue position>
number on the command line. The fields, multi-values, and sub-values that follow the deleted field will be renumbered.

97 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Delete a record


Delete a record: You can delete a record by typing command d. You will be asked for confirmation.

98 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Display settings


Optional parameters: Fields per page number - By default, the JED console is configured to display 20 fields per page. By
providing option line: –l <fields per page number > you will be able to change dynamically this property. Please ensure that
your terminal is correctly sized to display the number of lines required or the data w ’
names - By default JED console is configured to display a record with no field name. By providing the column name option:
-cn you will be able to retrieve the record field names if they are defined in the related Transact application. Since field names
are also displayed in the margin, the display length of the field data will be less than 75 characters. Type cn at the command
line to toggle between display/hide field names.

99 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » GUI mode


tJed can be run in the GUI mode as shown here. help - Use the help option to display the available functionalities on the JED
console -help tJed –u <un> -p <pwd> -help F.VERSION TELLER,ACCT.TFR LOCK - By default, JED console will read the
requested record with no lock on it. To perform a readu, provide the LOCK parameter with the value Y. tJed –u <un> -p
<pwd> F.VERSION TELLER,ACCT.TFR LOCK=Y JED Graphical mode – By providing the option graphical user interface: -gui
you will be able to launch JED in graphical mode. Useful when your Transact area does not have a VT100 console. However,
on Unix systems X Windows must be installed for launching the gui. tJed –u <un> -p <pwd> -gui F.VERSION TELLER,ACCT.TFR
[Note: Use a Windows command prompt to launch the gui console. -gui will not display correctly from a vt100 console.]

100 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Script Mode » Modify a Record


Execution - script mode: It is also possible to modify a record without opening it in the JED console from the command line.
“ ” ‘- ’
want to change and provide the associated values. Example: To change in file F.TSA.SERVICE, COB record, service status
(SERVICE.CONTROL), you have to do the following: On Windows – tJed –u <un> -p <pwd> -s F.TSA.SERVICE 6=STOP; On
UNIX (use quotes)- tJed –u <un> -p <pwd> - ‘ ;’
the console. It also works for multi-value and sub-value fields. i.e. tJed –s MY.FILE MYRECORD 1.1=VM;2.1.1=SM; tJed –u
<un> -p <pwd> -s F.TSA.SERVICE COB 3=TWO;6=START; It also works for multi-value and sub-value fields. For example, tJed
–s MY.FILE MYRECORD 1.1=multivaluefield;2.1.1=subvaluefield;

101 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

tJed Editor » Script Mode » Column Mode


Change column mode: Fields with values greater than the display length in the column is split and displayed across multiple
columns. Toggle the column mode, to display such field data in multiple lines in the same column. Type help at the command
line for a valid list of commands to use on the JED console. Type x at the command line to exit the console.

102 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Lesson Summary
In this lesson, I described Database structure, DBTools Console, Database Functionalities, DBTools Console Functionalities,
tJed Editor.

103 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

TAFJEE Servlet
Lesson Overview
In this lesson, I am going to describe, Configuration, Diagnostic, Execution, Management, Troubleshooting.

104 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Pre-requisite » Create a JBoss User


add-user.bat from Jboss\bin. This user credential is needed to run the TAF JEE servlet.

105 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Overview » Launch
TAFJJEE_EAR.ear file also contains a war file which is a helper servlet. Access this helper servlet at
http://localhost:9089/TAFJEE. Note: Port offset 1009 has been added to the default port 8080 in the URL.

106 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Overview » Helper Servlet Functions


The Helper servlet functions are listed in this slide.

107 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Overview » Helper Servlet Functions


Some more functions of the helper servlet are listed here.

108 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Configuration » Properties Setup


Click on Properties setup to retrieve the entries of the TAFJ_CONFIGURATION table. The TAFJ_CONFIGURATION table initially
contains the entry for the properties set under the .default file. TAFJ_CONFIGURATION table is not available in standalone
mode.

109 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Configuration » TAFJ_CONFIGURATION Table


When using the database to store properties, the main Transact data source is used and must be available for the
configuration service to work. The configuration service is automatically creating the configuration table
‘ N G N’, ’ ,
identified by a unique configuration id. To make use of a database-based configuration instead of a properties file in an
application server environment, set the following system property at JVM startup. -Dtafj.configuration=production-system.

N G N

110 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » tDiag Servlet


Click on the tDiag link to execute the tDiag servlet which retrieves details about TAFJ Installation.

111 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » tShow Servlet


Use the tShow Servlet at the URL: http://localhost:9089/TAFJEE/tShow to get Transact routine details on the application
server. Alternatively, click on the tShow link.

112 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » tShow » Component Method


tShow servlet can be used to introspect the component methods as well.

113 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Sanity Check


Many components and resources are involved in a deployment and different types of errors could occur with greater or
lesser consequences after a setup. E.g., Error where application server starts, application deploys but Transact is not or
partially available. An error where the application is up and running but the behavior is altered after a certain time. The sanity
check application is designed to help diagnose what could be wrong or not optimal in a Transact Java deployment. Based on
the failure fast principle the sanity check application ensures that the application (EAR file) and application server resources
are coherent before running Transact. The tool identifies configuration mistakes and possible lack of resources before
investing time and effort in testing. The diagnosis is available on an online dashboard that could be browsed at the URL:
http://localhost:9089/TAFJEE/sanitycheck/dashboard.xhtml. A text report is also generated under:
TAFJ_HOME/log/sanitycheck.log.

114 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Sanity Check Dashboard


The dashboard is made of 3 main panels, EAR file configuration – contains the channel view, the MDBs view and the EJBs
view. A one-to-one association exists between the MDB and EJB. This is referred to as a channel. The channel's view displays
this association and its configuration details. Application server configuration – displays the configuration of data sources,
JMS objects, thread pools, timeouts and JVM parameters on the application server. Validation panel – displays a report after
validating the configuration. It has events and suggestions about fixing the wrongly configured resources or parameters.

115 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » EAR File Configuration » Application Report


Sanity check tool first parses the EAR file to extract configuration information from the deployment descriptors of MDB and
EJB archives. The application report is then displayed in the first panel titled EAR file configuration. SanityCheck.log in
%TAFJ_HOME%\log folder displays the same information in a text format. The EAR parser is also available as a standalone
application, which can be executed from the TAFJ shell. The application is useful to run application analysis for non-deployed
EAR files or to run comparisons between different EAR file versions. The parameters are: -log: appends configuration report
to %TAFJ_HOME%\log\sanitycheck.log EAR file path: path to the EAR file. example.,
%TAFJ_HOME%\appserver\jboss\jboss7eap\TAFJJEE_EAR.ear The application server provider is an optional parameter
JBOSS/WAS/WEBLO. It generates a report for a specific provider.

116 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Application Server Configuration Report


The second step in the sanity check process is the extraction of the application server configuration. The configuration
cartography is displayed in the second panel titled Application server configuration. This provides a clear picture of the
application server parameters and relevant resources for Transact. Configuration details like the ones below are extracted
from the application server and displayed. Data sources and related parameters: jndi binding, connectio , z …
, … , z
management-http interface port is 9990. Remember to add the offset to the default port if there is one and click on validate
the configuration.

117 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Application Server Configuration Report


The second step in the sanity check process is the extraction of the application server configuration. The configuration
cartography is displayed in the second panel titled Application server configuration. This provides a clear picture of the
application server parameters and relevant resources for Transact. Configuration details like the ones below are extracted
from the application server and displayed. Data sources and related parameters: jndi binding, connection URL, pool size.
JMS resources and related parameters: jndi binding, queue depth. EJB and MDB parameters: timeout, pool size. The default
management-http interface port is 9990. Remember to add the offset to the default port if there is one and click on validate
the configuration.

118 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Validation Report


The last step of the sanity check process is to run validation tests against collected information. Based on the channels
definition and the application server configuration a rule engine validates the coherence between the two and generates
validation events. An event is associated with a severity (DEBUG, INFO, WARNING, ERROR) and eventually with a fix
proposition. The rules are categorized as Classpath: Check for correctly configured classpath. For example, Transact code
OFS.BULK.MANAGER is available. Database: Check for version mismatch of Java stored functions loaded in the database and
the runtime. Data source: Check for data source parameters. For example, locking data source must not be transactional
Memory: Check for enough memory setup to run the expected number of sessions (based on the sum of all pool size for all
channels). Pool: Check for thread, component pool and data source pool coherence. For e.g., EJB pool >= MDB pool so that
there are enough EJBs to handle the expected number of concurrent MDBs, Phantom listener pool >= number of
AUTO/START tSA's so that all services could be started through ExecQueue Resource: Check that for each channel, the
configured resources like JMS queues, and data sources are correctly defined at the application server level. Timeout: Check
for coherence between component timeout. For example, MDB >= EJB >= OFS timeout. MDBs must be set with the highest
timeout in the chain. In the snapshot shown, the channel SEATTransactedMDB-SEATProcessingBean displays incoherence
for the Timeout category. The Channel info shows that MDB timeout < OFS timeout.

/ / /
N
/ /

119 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Runtime Properties


The runtime properties view gives an overview of the runtime configuration. The view is very similar to the properties setup
, ’ , d.
Filtering option is available to refine the selection of properties of interest.

120 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » Runtime properties » After Configuration of Runtime Properties


To make use of a database-based configuration, instead of a properties file in an application server environment, set the
following system property at JVM startup -Dtafj.configuration=<production-properties-file>. For example –
Dtafj.configuration=dev property could be set in the setenv.bat script for UTP areas or in startUpJBoss.bat for ModelBank
areas. This loads the properties file in a table TAFJ_CONFIGURATION at startup. The runtime properties reflect the current
configuration set in JBoss using -Dtafj.configuration=dev. Restart the JBoss server after setting this property.

121 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Diagnostic » TAFJ_CONFIGURATION
The TAFJ_CONFIGURATION table reflects the current configuration along with the default configuration.

N G N

122 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Execute Servlet


TAFJJEE_WAR_TAFJ contains a servlet to post a message to the JMS queue -t24ExeqQueue. Navigate to this URL-
http://localhost:9089/TAFJEE/Execute. To post START.TSM, submit START.TSM command in the form.

123 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Execute Servlet


W “ ” X ,
launches a thread to run the program START.TSM. The Phantom MDB equals tRun, i.e., it picks up the command from the
queue and prefixes it with tRun – “ ” ,
Batch Job Control reads the workload profile for the number of agents to start. It will then auto-generate and push the
“ ”, “ ”… W , X
phantom MDB consumes the tSA commands and launches threads to execute COB. Note: On the application server, COB is
multithreaded.

124 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Entry Points


TAFJEE provides entry points to process OFS requests, invoke routines with parameters and trigger background program
execution. This could be done in two different ways: Synchronously by doing a Webservice or EJB invocation with TAFJClient
API. Asynchronously by sending a JMS message with a JMS client or by using a CALLJEE statement.

125 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Synchronous Invocation Webservices » OFS


ENQUIRY.SELECT,,INPUTT/123456,%CUSTOMER,MNEMONIC:EQ=DELL

126 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Synchronous Invocation Webservices » Subroutine Invoker


The routine ALLOCATE.UNIQUE.TIME takes one output parameter. Click on Add to add one parameter. Then click execute to
see the response.

N N

127 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Web Services » Subroutine Invoker » User Defined Routine


Write a subroutine GREET.b and save it under the TAFJ samples folder. Set Strict mode to false in the tafj.properties file to
compile this routine without an internal check (i.e without a package) i.e set property
temn.tafj.compiler.internal.development='false' Use the tCompile command to compile the routine from the TAFJ
shell prompt. This will additionally generate a package under the jars folder. Copy the generated jar file to the
%JBOSS_HOME%\modules\com\temenos\t24\main folder Note – Some configurations may use a further sub-folder t24lib
under the main. Edit the module.xml file found under the main folder to include the newly added package.

128 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Web Services » Subroutine Invoker » User Defined Routine


Web Services subroutine invoker for user-defined routine.

129 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Web Services » tRun Invoker » Configuration Properties


The temn.tafj.appserver.trun.allowed.commands should be added in the configuration properties to execute the program
using tRun command. For example, temn.tafj.appserver.trun.allowed.commands=\bGREET\b|\bSTART.TSM\b
temn.tafj.appserver.trun.allowed.commands The program name should be enclosed using \b and multiple programs are
segregated using the symbol. Click on Save to Save the changes. Restart the application server.

130 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Web Services » tRun Invoker » Configuration Properties


ADD the property temn.tafj.appserver.trun.allowed.commands=\bGREET\b|\bSTART.TSM\b to the tafj.properties file as
shown.

131 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » Web Services » tRun Invoker » User Defined Routine


Execute the basic program configured using tRun. The jar file of the user-defined program should be included in the
module.xml. The program must be included as part temn.tafj.appserver.trun.allowed.commands property.

132 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » DBTools Servlet » Configuration


The DBTools servlet provides access to DBTools command through the application server deployment to database
administrators during development or testing phases. The servlet has to be used in conjunction with DBTools.jar referenced
in the TAFJ module.xml. This is normally not referenced in the module.xml of TAFJ and should be added. Restart the
application server after adding this entry.

133 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » DBTools Servlet » Authentication


DBTools on the application server has protected access and are subject to BASIC authentication and TAFJ authentication.
BASIC authentication: Create an application user on jBoss using add-user.bat. Add the user to TAFJAdmin role. what type of
user – Application user provide preferred username and password groups the user should belong to – TAFJAdmin Add a user
for realm ApplicationRealm – …- No TAFJ Authentication DBTools can be accessed only using
authenticated users. TAFJ Authenticated users can be created/deleted/reset using tUserMgnt.bat script. Eg: tUserMgnt –Add
–u admin –p Temenos@123 If there are 3 unsuccessful attempts to login, user gets blocked. The blocked user cannot be
used further until the user is reset with a new password or deleted/re-created.

134 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » DBTools Servlet


On executing a DBTools command, a message is posted to the Exec queue, which is asynchronously executed as it could be
a long-running job. The command is executed in the background and generates the output to a default generated log file
(command type - timestamp) or to the user-specified log file name. To execute the command, select from the command
, “ ” ,
message corresponding to the command is posted and displayed. Depending on the command an output will be generated
“ ”

135 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » DBTools Servlet


To run DBTools, use the URL http://localhost:9089/TAFJEE/DBTools or click on the DBTools link on the TAFJEE home page:
Specify the TAFJ username and password created in the previous step. Enter a sample JQL command COUNT FBNK.ACCOUNT
and a log file name. Click on Execute. Click on Refresh Logs to refresh the log list. Click on the View button of the log to view
the output.

// 8 / /

136 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Execution » DBTools Servlet » Log Output


This log is found in the TAFJ_HOME/log/DBTools Folder and can be viewed by clicking on the view button in the output
section

137 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Management » TAFJ Sessions Management


TAFJEE sessions management helps in managing the sessions for Browser and Services. Batch sessions live update provides
details about services whereas Online sessions live update provides details about the browser.

138 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Troubleshooting » TAFJ Technical Monitor


TAFJEE application could be monitored by browsing the following URL. http://localhost:9089/TAFJEE/monitoring. Technical
Monitor exploits java melody which is an open-source application to monitor Java EE applications. With very low overhead
it gives useful statistics and charts about Memory, threads, CPU The Technical monitor gives information on SQL Statements
execution statistics, number of EJB calls and response times, error logs etc.

139 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Troubleshooting » TAFJ Technical Monitor


TAFJEE application could be monitored by browsing the following URL. http://localhost:9089/TAFJEE/monitoring Technical
Monitor exploits java melody which is an open-source application to monitor Java EE applications. With very low overhead
it gives useful statistics and charts about Memory, threads, CPU The Technical monitor gives information on SQL Statements
execution statistics, number of EJB calls and response times, error logs etc.

140 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Troubleshooting » TAFJ Logger Servlet


The logger servlet allows changing dynamically the log level of any TAFJ logger without having to restart the application

application behaviour where temporarily the log level can be changed to the most verbose value to get more information.
As logging is a performance killer, it should be used with care in a production environment. To change the log level for a
specific logger, select from the combo box the appr “ ”
, “ ”
’ , “ ”
button. This log viewer also provides filtering functionalities for specific information or log level.

141 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Troubleshooting » TAFJ COB Monitor


TAFJ COB monitor helps to monitor the COB progress. COB Progress Meter provides stage-wise progress status. General tab
provides details on the current system date, the company for which the COB is being executed, COB execution status, the
current batch that is being executed and the number of agents that are available and running. Agent details provide the
information from TSA.STATUS application. COB progress bar provides information on the number of batches that have been
processed.

142 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Troubleshooting » TAFJ TEC Monitor


TEC Monitor is used to monitor Transact stubs. The metrics details are taken from TEC.PROFILE.

143 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Troubleshooting » Accessing COMO


COMO file content can be browsed from this servlet. This tool is mainly a helper to provide direct access to the como and is
not a COB monitor, there is no automatic refresh functionality. Recall the servlet periodically to get an updated view. The
como file size (in bytes) is displayed adjacent to the file name. Consider this information before viewing a huge file from the
servlet as the file content will be loaded into memory. COMOs can be sorted by name, and last modified date by changing
the sort option value in the combo box. A specific file can be viewed by providing its name or the last 10 files for example.

144 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Lesson Summary
In this lesson, I described, Configuration, Diagnostic, Execution, Management, Troubleshooting.

145 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Practice
Quiz I
TAFC and TAFJ Java classes JDBC drivers JDK1.8 and above Property

146 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Quiz II
True False True

147 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Practice
Quiz
%TAFJ_HOME%\bin tCompile tRun tDiag tShow

148 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop 1 » Create New Properties File


For point d verify the location of the t24 jars. You may give an absolute path here instead of using the system variables as
shown. For point e, check the port no that H2 is using and the name of the database. You can check the port no in the H2
server window. The db name is usually TAFJDB. You can check for the .db file under either the db folder (for UTP areas) or
the data folder (for model bank areas)

W N

// / /
// /

149 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop 1 » Check Properties

150 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop 2
Open a TAFJ command Shell by clicking on the command script under your Temenos Folder or by using the Windows menu.
tCompile –cf dev %TAFJ_HOME%\samples\basic\HELLO.GRO tCompile %TAFJ_HOME%\samples\basic\ tRun –cf dev
HELLO.GR0 tRun tSS GCS ENQUIRY.SELECT,,INPUTT/123456,CATEGORY-LIST

151 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Practice
Quiz
DBTools tUserMgnt SQL, JQL, OFS LOCKS STAT

152 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop 1
In the SQL mode, SELECT * FROM FBNK_CURRENCY USAGE

153 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop 2
In the JQL mode GETDBNAME FBNK.CURRENCY LIST-ITEM FBNK.CUSTOMER WITH @ID=100100

154 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop 3
1. Use LIST-ITEM in JQL mode or use SELECT in SQL mode. DBTools -u <un> -p <pwd> -s SQL SELECT \\* FROM
N NW ' ‘ -u <un> -p <pwd> -s JQL LIST-ITEM F.STANDARD.SELECTION
CUSTOMER 2. DBTools -u <un> -p <pwd> -s JQL CLEAR-FILE F.BATCH.STATUS 3. DBTools -u <un> -p <pwd> -s JED –s
F.TSA.SERVICE COB 6=STOP; 4. tJed -u admin -p Temenos@123 -gui FBNK.CUSTOMER 100100 LOCK=Y

155 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Practice
Quiz
Add-User.bat TAFJ_CONFIGURATION tRun tDiag tShow

156 ©2023 Temenos Headquarters SA - all rights reserved


Transact TAFJ Foundation TR1PRAFJ - R22 Revision 1 English

Workshop
On the application server, launch the helper servlet Check whether the routine OPF is available in the classpath – tShow
servlet View the runtime log – logger servlet View the tSA logs generated by the COB run – Como servlet Launch DBTools
Create application user and add to TAFJAdmin role Amend module.xml to add the resource /ext/DBTools.jar Restart the
application server Post an OFS request to create an account. Sample Request: ACCOUNT,/I,
INPUTT/123456,,CUSTOMER=100100, CURRENCY=USD,CATEGORY=1001

/ /

N ,/ , N / ,, , N , G

157 ©2023 Temenos Headquarters SA - all rights reserved

You might also like