TAFJ Setup
TAFJ Setup
R23
Revisio
Date Amended Name Description
n
1 1st April 2011 TAFJ team Initial version
2 7st February 2012 H. Aubert R12GA review
4th September
11 JN Charpin COMO logger
2017
14th December
12 JN Charpin Properties in DB
2017
29th December
14 Riswana Commit Capture configuration.
2017
Vinod
15 13th April 2018 Shunmugave Log redirect to Splunk
l
Preethi
19 25th March 2022 R22 AMR Review
Evangelin
Copyright
Please include your name, company, address, and telephone and fax numbers, and email
address if applicable. [email protected]
Table of Contents
Document History................................................................................................................... 2
Copyright................................................................................................................................ 3
Errata and Comments............................................................................................................. 3
What is TAFJ............................................................................................................................ 5
Overview................................................................................................................................. 5
Install guide............................................................................................................................. 6
Prerequisites.............................................................................................................................. 6
Java JDK.................................................................................................................................. 6
Setup TAFJ............................................................................................................................... 7
A Step by Step TAFJ Installation................................................................................................. 8
Exploring the Setup result.......................................................................................................... 9
Setup Eclipse Plug-ins.............................................................................................................. 11
Setup project......................................................................................................................... 11
How it works with properties file and .default.......................................................................13
Logging................................................................................................................................. 14
Properties.............................................................................................................................. 14
File configuration..................................................................................................................... 14
Database configuration............................................................................................................ 14
Properties................................................................................................................................. 15
Configuration override – multi-configuration............................................................................15
Printer................................................................................................................................... 17
Check TAFJ Installation.......................................................................................................... 18
EarFilebuilder........................................................................................................................ 19
Commit Capture.................................................................................................................... 20
Property Setup...................................................................................................................... 20
Configuration........................................................................................................................ 20
Events table.......................................................................................................................... 21
Outbox Events....................................................................................................................... 21
Property Setup...................................................................................................................... 21
What is TAFJ
TAFJ (Temenos Application Framework Java) is a Pick BASIC runtime and compiler, written in
100% java. It allows compiling and running Pick BASIC programs. TAFJ has been written
specifically for T24 needs, and all tests and proof of concepts have been done using T24. TAFJ
also manage the connectivity on JDBC compliant databases like jBASE, Oracle, Microsoft SQL
Server, DB2, derby, derby (Embedded). It comes with an embedded exporting tool for migrate
your Pick data to Oracle.
Overview
Install guide
Prerequisites
Java JDK
To install TAFJ, the only prerequisite is having a Java Development Kit (JDK) version 11.x
installed. To check what version of java you have, type in a console:
>java -version
openjdk version "11.0.16.1" 2022-08-12 LTS
OpenJDK Runtime Environment (Red_Hat-
11.0.16+1.1-1) (build 11.0.16.1+1-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.16+1.1-1)
(build 11.0.16.1+1-LTS, mixed mode)
If the version reported is not 11.x, you should install it. Java JDK can be downloaded here:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
NOTE: If you have installed java 11 but the command java -version doesn't report the correct
version, this is certainly because your PATH environment variable points to another version. This
is a bad practice to have your java virtual machine (VM) in the PATH. We highly recommend
removing it. The best practice is to set-up an environment variable called JAVA_HOME pointing
to the root directory of your Java Development Kit (JDK) installation. Then, you could reference
JAVA_HOME/bin in your PATH environment variable.
On Windows:
START Menu -> Settings -> Control Panel -> System -> Advanced -> Environment
Variables
You could use System variables (Preferred) OR User variables to set the JAVA_HOME.
Setup TAFJ
The installation comes as a single .tar file. On Unix/Linux, run the “tar -xf <filename>”
command. On Windows, you can use 7zip® to extract the zip Contents.
$ tar -xf
Setup_[version].tar
$ ls
Setup_TAFJ.[version].jar
Setup_TAFJ.[version].sh
Setup_TAFJ.[version].bat
Then run the script .sh on UNIX or .bat on Windows operating system.
Note: That the JAVA_HOME environment variable must be set before running the scripts.
The following section will show a typical install procedure on a UNIX platform. The procedure will
be exactly the same on Windows®. The user input is in [blue]. If you have values in brackets,
these are the default values (typing <ENTER> is accepting the default).
Note: If you do not have the T24 sources you will need to give any existing directory in order to
continue the setup. The insert directory is optional.
On UNIX:
$ . ./Setup_TAFJ.<version>.sh
On Windows:
> Setup_TAFJ.<version>.bat
YAJI v R23
WARNING : JDK 11 or above required
Starting setup...
========================================================
. Welcome to the Installation program of TAFJ .
. This setup will install the necessary libraries to .
. compile and run BASIC programs as well as some .
. additional tools and Eclipse plug-ins. .
. Note that nothing will be modified outside of the .
. directory you will specify for the installation. .
. To fully uninstall it, just delete the directory. .
========================================================
'C:\Temenos\Development\TAFJ_SOURCES\TAFJ_DEV\
samples/basic/HELLO (text)
samples/basic/HELLO.FAILURE (text)
samples/basic/HELLO.GR0 (text)
samples/basic/LOGGER.b (text)
samples/basic/MAIN.PRG.b (text)
samples/basic/TEST.SUB.b (text)
samples/basic/TEST.SUB1.b (text)
Getting available devices .... [DONE]
Creating project "tafj" ... [DONE]
Updating : 'C:\TAFJ_GA\conf\tafj.properties'.
Updating : 'C:\TAFJ_GA\conf\.properties'.
Updating : 'C:\T24_DEV\Temenos\TAFJ\dbscripts\oracle\
<TAFJ_HOME>/data/
/tafj/ The default project directory
/tafj/classes/ The default directory where the compiled BASIC goes (like globuslib).
/tafj/java/ The default directory containing the BASIC converted in java.
/tafj/jars/ The default directory containing jar files produced during compilation when generate jar option is made
true in properties file.
Once the setup of TAFJ is completed and if you have eclipse jdk11 compatible version installed,
you can simply link the contents of the directory <TAFJ_HOME>/eclipse/plugins in your
directory <ECLIPSE_HOME>/dropins.
1. Create a file tafj.link in <ECLIPSE_HOME>/dropins.
2. Edit the file tafj.link and add a property key : path=<relative_path_to _TAFJ_HOME>
3. Set the path with the relative path from <ECLIPSE_HOME> to <TAFJ_HOME>
i.e
For the directory structure:
+---3rdParty
| +---eclipse
+---TAFJ
path=../../TAFJ
Depending on the TAFJ version you are using you could generate this tafj.link
automatically when running TAFJ Setup and providing your ECLIPSE_HOME path.
When using am automated setup (no prompt), tafj.link will be generated under
TAFJ_HOME/conf.
Once done, in order to verify that all TAFJ Plug-ins are loaded with eclipse, you can go in the
Eclipse menu:
Help -> About Eclipse SDK, press on “Installation Details”, and Tab: “Plug-ins”
Setup project.
A project is a specific setting of properties. All properties of a project are in file properties in
<TAFJ_HOME>\conf. the name of the project is given by the name of the properties file.
To Create a new project base on a properties file, copy the file <TAFJ_HOME>\
conf\.properties and renamed it with the name of your project.
You can omit the -cf argument to use the default project. The default project is specified in the
file <TAFJ_HOME>\conf\.default. After a setup of TAFJ the default project in tafj.properties.
By conventions, the java and class path for TAFJ of a project have to be set under:
<TAFJ_HOME>/data/<ProjectName>/java and classes
i.e
for myProject.properties :
# Specify where the java files will be generated
# by the compiler
#
temn.tafj.directory.java = <tafj.home>\data/myProject/java
Logging
See TAFJ-Logging.pdf.
Properties
File configuration
TAFJ doesn’t use environment variables but properties for its internal configuration.
Properties can be either stored in a properties file or at database level for application
server deployments.
.properties is the file extension to store configuration and properties on disk.
File based properties are stored under $TAFJ_HOME/conf directory.
The file name will identify a specific configuration or project.
e.g.
- production-system.properties
- l3-dev.properties
To make use of a specific properties file in an application server environment, set the
following system property at JVM startup.
-Dtafj.properties=production-system
Or
-Dtafj.properties=production-system.properties
The file must exist under $TAFJ_HOME/conf directory.
Database configuration
When using the database to store properties, the main T24 data source is used and must be
available for the configuration service to work.
The configuration service is automatically creating the configuration table
‘TAFJ_CONFIGURATION’, if it doesn’t already exists.
Then this table is used to store configurations, a configuration being identified by a unique
configuration id.
e.g.
- production-system
- l3-dev
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
The configuration “production-system” will be created automatically with default values if it
doesn’t exist in the configuration table (no entries for configuration_id=’ production-system’).
The ‘TAFJ_CONFIGURATION’ table structure is the following:
- CONFIGURATION_ID: the configuration identified
- USER_NAME: the user name responsible for the modification (default values are created
by user ‘system’).
Properties
Be it file or database configuration, each parameter is stored as a pair of strings, one storing the
name of the parameter (called the key), and the other storing the value.
All properties are loaded as a Java System Properties.
All Properties can be overloaded with -D<key>=<value> set to the JVM (Java Virtual Machine).
A value can contain:
A string as a value
i.e.
tafj.home = \Temenos\T24Enterprise\TAFJ
A string including keys between ‘<’ ’>’, the substitution will be done at runtime with the
corresponding key value.
i.e.
tafj.home = \Temenos\T24Enterprise\TAFJ
temn.tafj.runtime.directory.current = <tafj.home>/UD
A String with an Environment variable ‘<’ ’>’, the substitution will be done at
runtime with the corresponding environment variable value.
tafj.home = <%TAFJ_HOME%>
temn.tafj.runtime.directory.current = <$TAFJ_HOME>/UD
In case of properties file storage, properties needs to be edited manually with a text editor.
In case of database storage, an administration console and a REST API are available to change
properties.
- /TAFJConfiguration/dashboard.xhtml : GUI admin console access to current runtime
configuration defined through -Dtafj.configuration.
temn.key1=conf2 conf2
#********************************************************************
# Printer
#********************************************************************
# Printer list
# This list has been generated during the setup. You can modify it at any moment to
reflect any
#Specify where is the &HOLD& directory when SETPTR is used with the HOLD option
temn.tafj.printer.directory.hold = <temn.tafj.runtime.directory.current>/&HOLD&
To Check to installation of tafj, you can execute the command “tDiag”. The command will show
you the where is set TAFJ_HOME, the version of the JVM, the version of TAFJ, the default project
and all details of all projects set in <TAFJ_HOME>\conf
__________________________________________________________________
Home : 'C:\TAFJ_GA'
Version : R23_AMR
__________________________________________________________________
java.home : C:\Temenos\Development\3rdParty\jdk\java-11-openjdk-
11.0.16.1.1-1
java.version : 11.0.16.1
os.arch : amd64
os.name : Windows 10
HostName : LCLTJ2Z2
IP Address : 10.92.4.11
__________________________________________________________________
__________________________________________________________________
Common validation:
__________________________________________________________________
- Project : 'tafj'
------------------------------------------------------------------
------------------------------------------------------------------
DataBase URL :
DataBase user :
EarFilebuilder
Under TAFJ_HOME/bin the utility tEARFilebuilder.sh/bat will help generating the necessary EAR
file for TAFJ and T24 libraries related, including all necessary deployment files specific to
weblogic container.
The following is the help for the tEARFilebuilder utility.
tEarFilebuilder.sh/bat -h
Usage: EarFileBuilder -name <ear-file-name> -source <jars-path> -dest <dest> -dep
{optional} [dependency-spec-version] -include{optional} [jar-names]
where arguments can be :
-name :Name of the ear file to be generated with {,specification,implementation}
version (default 0.0 for both)
-source : The list of folder you want to parse (os path separator between folders)
-dest : The path where you want the ear file to be generated
-dep <opt> : Depedency module names followed by {,specification,implementation}
version if any separated with , (os path separator between for more than one dependency).
-include <opt> : when specified with , seperated jar names will only be included part of
ear file from mentioned source directories. i.e TAFJCore.jar,TAFJBasic.jar
Example:
tEARFilebuilder -name TAFJ_LIB,201803 -source C:\Temenos\Development\TAFJ_SOURCES\
TAFJ_DEV\ReleaseDir\lib;C:\Temenos\Development\TAFJ_SOURCES\TAFJ_DEV\
ReleaseDir\ext;C:\Temenos\Development\DEV\TAFJ\RulesEngine -dest C:\Temenos\
Development\DEV\T24 -dep T24_LIB,201803
Searching directory ... C:\Temenos\Development\TAFJ_SOURCES\TAFJ_DEV\ReleaseDir\lib [ OK ]
Searching directory ... C:\Temenos\Development\TAFJ_SOURCES\TAFJ_DEV\ReleaseDir\ext [ OK ]
Searching directory ... C:\Temenos\Development\DEV\TAFJ\RulesEngine [ OK ]
generating application.xml file ... [ OK ]
generating weblogic-application.xml file ... [ OK ]
generating Manifest file ... [ OK ]
generating TAFJ_LIB file ... [ OK ]
clean up ... [ OK ]
Ear file is generated under: C:\Temenos\Development\DEV\T24 in 4565 ms.
Note : please make a note in the above example the specification version is passed while
generating EAR file name along with dependency name,specification version.
Commit Capture
Commit capture, triggers a data event when a WRITE/DELETE is performed inside or outside
transaction boundary on configured files. The triggered Data events are then stored in event
table, F.DATA.EVENTS.
Property Setup
In your TAFJ properties file, set the below property to enable commit capture
temn.tafj.runtime.use.df.cache = true
Set the below property to write the event to disk whenever the event size exceeds 32K.
temn.tafj.runtime.df.cache.huge.event=true
Configuration
Execute the below command from a JBC program to turn ON/OFF the feature for a file. Internally,
the option is set in TAFJ_VOC, hence it will not be reset still it is changed again.
DF_COMMIT_CAPTURE( FileName, FilterMode )
Where, FileName is the name of the file as in TAFJ_VOC.
FilterMode should set to either “U” or “Y” or by default it is NULL. Where NULL indicates
the feature is turned OFF.
In U Mode, the write events are captured whereas in Y Mode, both the WRITE and DELETE
events are captured.
Sample command to turn ON the feature for a file:
EXECUTE "DF_COMMIT_CAPTURE('FBNK.CURRENCY','Y')" CAPTURING EXE.OUT
Outbox Events
Based on T24-Transact raising business events on demand using SYSTEM (5005), the events are
collected part of transaction boundary and are emitted to outbox MS library to process it
(update some relational tables) and receive back event Id’s which are pushed to a configured
queue.
Property Setup
In your TAFJ properties file, set the below property to enable outbox Events
temn.tafj.runtime.outbox.events = true
Set the below property to specify the queue name to which the events has to be delivered part
of transaction.
temn.tafj.runtime.outbox.queue.name=queue/TAFJ-outboxIdQueue
Set the below property to specify the connectionFactory to be used for interacting with the
queue name specified above. If the property is left empty, the default connection Factory is
used to resolve the queue.