Professional Documents
Culture Documents
TAFJ MicroEE
TAFJ MicroEE
R20
TAFJ-Mi c r o E E
Amendment History:
Revisio
Date Amended Name Description
n
9th September
1 JN. Charpin Initial version
2019
18th September
2 JN. Charpin Websphere MQ support
2019
Page 2
TAFJ-Mi c r o E E
Copyri g h t
Copyright © Temenos Headquarters SA 2009-2020. All rights reserved.
This document contains proprietary information that is protected by copyright. No part of this document may
be reproduced, transmitted, or made available directly or indirectly to a third party without the express
written agreement of TEMENOS UK Limited. Receipt of this material directly TEMENOS UK Limited
constitutes its express permission to copy. Permission to use or copy this document expressly excludes
modifying it for any purpose, or using it to create a derivative therefrom.
Temenos Headquarters SA
2 Rue de l’Ecole-de-Chimie,
CH - 1205 Geneva,
Switzerland
Please include your name, company, address, and telephone and fax numbers, and email
address if applicable. TAFJdev@temenos.com
Page 3
TAFJ-Mi c r o E E
Table of Contents
Copyright................................................................................................................................................ 3
Errata and Comments............................................................................................................................ 3
1 Purpose.......................................................................................................................................... 5
2 Presentation................................................................................................................................... 5
2.1 TAFJEE_EAR architecture....................................................................................... 5
2.2 Micro EE architecture............................................................................................... 6
2.2.1 Single responsibility principle................................................................................ 6
2.2.2 Better scalability.................................................................................................... 7
2.2.3 Fastest deployment and startup............................................................................ 8
2.2.4 Lower resource consumption................................................................................ 9
2.2.5 Simplified and open configuration......................................................................... 9
3 User guide.................................................................................................................................... 10
3.1 Targeted architecture............................................................................................. 10
3.2 Differences with TAFJJEE_EAR deployment......................................................... 11
3.2.1 Separated artifacts.............................................................................................. 11
3.2.2 No deployment descriptors................................................................................. 11
3.2.3 JMS resources.................................................................................................... 12
3.2.4 Shared phantom queue...................................................................................... 12
3.2.5 Additional module................................................................................................ 13
3.3 Deployment............................................................................................................ 13
3.4 Configuration.......................................................................................................... 14
3.4.1 Deployment configuration................................................................................... 14
3.4.2 Application configuration..................................................................................... 19
Page 4
TAFJ-Mi c r o E E
1 Purp o s e
The purpose of this document is to describe the concept behind TAFJJEE Micro and the
step-by-step process to deploy it. Detailed information about TAFJEE services, which remain
unchanged, can be found within TAFJ-AS documentation.
2 Pre s e n t a t i o n
TAFJJEE_Micro is an alternative to the original TAFJ EE solution which is based on the
deployment of an EAR file regrouping multiple artifacts covering different needs: business
processing, management operations, technical and functional monitoring, configuration,
diagnostic, utilities etc…
2. 1 TAFJEE_EAR arc h i t e c t u r e
For some a drawback of this approach could be that all services are deployed and started at
application server startup, even if they are not necessarily needed.
For example, all online channels are present by default in the deployment, 18 OFS sources
are defined and must be bound to 18 pairs of JMS queues and a significant amount of
listeners are started and consuming resources.
The configuration can also be tedious since it is managed through deployment descriptors
within the ear file. In containerized environment, it means that the application image has to
be amended depending on the expected configuration.
Page 5
TAFJ-Mi c r o E E
2. 2 Micr o EE arc hi t e c t u r e
The goal with Micro EE is to offer same functionalities than TAFJ EE but with a new
deployment capability, simpler, scaling better, with a lower footprint and a faster startup.
It covers the micro-services architecture model, with single responsibility principle, and latest
deployment requirements in the cloud regarding dynamic provisioning and elastic scaling.
Page 6
TAFJ-Mi c r o E E
The main change, simply considering the business services offered by TAFJ EE, is that the
Micro EE architecture is defining one and only one online channel per deployment.
Page 7
TAFJ-Mi c r o E E
2. 2. 2 Bet t e r sc al a b i l i ty
Each service is available as a separate artifact in the release package and could be
deployed and scaled independently.
In addition, there is no need to deploy on each instance the COB monitor or the TAFJ
configuration web application.
- TAFJJEE_Micro.jar
- TAFJCobMonitor.war
- TAFJConfiguration.war
- TAFJEE.war
- TAFJRestServices.war
- TAFJTECMonitor.war
Page 8
TAFJ-Mi c r o E E
tRun processing
Management
processing
TAFJJEE_Micro.jar DBTools
Management
tDIAG
tSHOW
tRUN
Webservices
Management entrypoint
tRun entrypoint
Configuration servlet
Configuration entry
point
Page 9
TAFJ-Mi c r o E E
2. 2. 5 Si m p l i fi e d and op e n co n fi g u r a t i o n
Micro EE is configurable through the platform itself with environment variables, system
properties, database configuration etc…
It allows controlling what are the running services, their dimensioning (pool size) and also the
business parameters.
The JMS resources to be defined at deployment level are also greatly simplified:
Page 10
TAFJ-Mi c r o E E
3 Us er gui d e
This section describes the targeted platform requirements, and how to deploy and configure
the solution.
3. 1 Targ e t e d arc h i t e c t u r e
At first place, the targeted architecture for the application layer is a cloud / containerized
Wildfly / JBoss EAP deployment but it could also be deployed on a standard Wildfly / JBoss
EAP installation on premises.
It is important to note that Wildfly / JBoss EAP is required for the dynamic configuration
capabilities it offers at runtime by injecting environment variables and system properties
within application server and application configuration.
The main configuration is automated with scripts (JBoss - CLI) and at runtime environment
variables set at orchestrator level are resolved and injected to run the expected setup.
There are different categories of parameters which are used at different level to wire the
components altogether and to configure the application.
The default JMS broker is ActiveMQ deployed on a separate tier but it could be any other
JMS broker. Wildfly AMQ internal broker is not used since there is no need for a local Exec
queue.
A sample configuration file, jboss-ejb3-wmq.xm, is provided within the archive under META-
INF.
Page 11
TAFJ-Mi c r o E E
3. 2. 1 Se p ar a t e d artifa c t s
The deployable artifacts are available within the release under the $TAFJ_HOME/appserver
path within the “micro” subfolder.
3. 2. 2 No depl o y m e n t de s c r i p t o r s
The application configuration is achieved through environment variables. There is no
deployment descriptor anymore to edit in order to setup the appropriate OFS source and
other parameters.
The minimal jboss-ejb3.xml is simply used to define specific “activation config” parameters to
connect to a different broker than ActiveMQ.
Page 12
TAFJ-Mi c r o E E
- Environment variables
- System properties
- TAFJ configuration (database)
3. 2. 3 JMS res o u r c e s
In comparison with TAFJJEE_EAR there is little JMS configuration to do to have the Micro
EE application deployed.
Each deployment defines the following generic JMS resources, which are bound at runtime
to common / specific ActiveMQ resources.
3. 2. 4 Sh ar e d ph a n t o m qu e u e
A local “Exec queue” per deployment for Phantom processing is no longer required. The
phantom queue could be shared across all instances by defining a message selector.
This variable will be used at server startup to define a unique message selector for the
PhantomListener (MDB).
Page 13
TAFJ-Mi c r o E E
3. 2. 5 Additi o n a l mo d u l e
Besides the usual global modules for T24 and TAFJ libraries an additional module
“org.primefaces” needs to be defined in case of JSF support is required when deploying the
following artifacts:
- TAFJEE.war
- TAFJConfiguration.war
- TAFJTECMonitor.war
- TAFJCobMonitor.war
This module definition is part of the CLI scripts and the primefaces library is sahred with the
TAFJ_HOME/appserver/micro folder.
3. 3 De pl o y m e n t
Same deployment process than the one used for T24 / TAFJ EE deployment can be used,
be it on premises or in a containerized environment.
This process is described within usual Temenos – Runbooks and TAFJ documentation.
Differences are :
Page 14
TAFJ-Mi c r o E E
CLI scripts and a docker build example to get started can be found in the release package
under $TAFJ_HOME/appserver/micro/deployment.
This docker build example is making use of Temenos internal maven repository to install T24
and TAFJ aplications, and should be used as a model when an access to this repository is
not possible (by replacing curl commands with copy commands).
3. 4 Confi g u r a t i o n
There is two different property types to configure the deployment and the application.
The one used to configure the application can be part of TAFJ configuration. It means they
can be provided as environment variables, system properties and be part of the TAFJ
configuration.
3. 4. 1 Dep l oy m e n t co n fi g u r a t i o n
Deployment configuration properties respect the following formalism:
DEPLOYMENT_CONFIG / deployment_config.
They are used to configure links between application tiers (server / DB / broker) and also to
enable and configure the application services.
Page 15
TAFJ-Mi c r o E E
h2 / sqljdbc / ora12c
H2 example
DB_URL=jdbc:h2:tcp://host.docker.internal:2234/TESTDB;DB_CLOSE_ON_EXIT=FALSE;M
ODE=Oracle;TRACE_LEVEL_FILE=0;TRACE_LEVEL_SYSTEM_OUT=0;FILE_LOCK=NO;I
FEXISTS=TRUE;CACHE_SIZE=8192;MVCC=TRUE;LOCK_TIMEOUT=60000
DB_USERNAME=tafj
DB_PASSWORD=tafj
DB_DRIVER=h2
MSSQL example
DB_URL=jdbc:sqlserver://host.docker.internal:1433;databaseName=TESTDB
DB_USERNAME=tafjuser
DB_PASSWORD=tafjuser1
DB_DRIVER=sqljdbc
ORACLE example
DB_URL=jdbc:oracle:thin:@host.docker.internal:1521/TESTDB
DB_USERNAME=tafj
DB_PASSWORD=secret
DB_DRIVER=ora12c
Page 16
TAFJ-Mi c r o E E
Example:
AMQ_URL=failover:(tcp://host.docker.internal:61616?soLinger=0)
AMQ_USERNAME=admin
AMQ_PASSWORD=admin
MQ_CHANNEL None
Example:
MQ_HOSTNAME= host.docker.internal
MQ_PORT=1414
MQ_QUEUE_MANAGER=MQ_T24
MQ_CHANNEL=T24_CHANNEL
Page 17
TAFJ-Mi c r o E E
ONLINE_QUEUE=t24OFSQueue
ONLINE_REPLY_QUEUE=t24OFSReplyQueue
The Phantom queue and management topic are shared and should be the same on each
environment.
EXEC_QUEUE=t24EXECQueue
MANAGEMENT_TOPIC=t24ManagementTopic
Page 18
TAFJ-Mi c r o E E
false
channel_type=ofs
online_active=true
max_online_session=10
channel_type=callat
online_active=true
max_online_session=5
Page 19
TAFJ-Mi c r o E E
phantom_active=true
max_phantom_session=20
phantom_selector=server1
3. 4. 2 Appli c a t i o n con f i g u r a t i o n
Application configuration properties follows the formalism: application.config /
applicationConfig.
They are used to configure the application itself, services behaviour and processing
parameters.
MDBs / EJBs properties can also be added to the TAFJ configuration to avoid duplicating
them in all environment.
channel_name=tws
Page 20
TAFJ-Mi c r o E E
channel_type=callat
ofsSource=JAVA.FRAMEWORK
ofsTimeout=30
channel_name=browserweb
browserweb.ofsSource=BROWSERTC
browserweb.ofsTimeout=300
browserweb.maxJmsRedeliveryAttempt=0
phantom.isJTA=true
phantom.jtaTimeout=600
trun.trunTimeout=60
trun.allowedCommand=\bA.JBC.ROUTINE\b|\bANOTHER.JBC.ROUTINE\b
Page 21
TAFJ-Mi c r o E E
management.ejbWarmup=OFSProcessingBean=2
management.tsaStart=3
management.logoffBatchSessionOnDestroy=true
management.logoffOnLineSessionOnDestroy=false
3.4.2.2 Differences
The MDB / EJB configuration is the same than the one described in TAFJ-AS-TAFJ
documentation and usually done through deployment descriptors.
EJB warmup:
Since there is only one channel per deployment the EJB warmup pattern is simplified and
applies for a single EJB type.
Page 22
TAFJ-Mi c r o E E
Integer parameter.
Defines whether response
message is delivered as a
PERSISTENT or NON-
PERSISTENT message.
Page 23
TAFJ-Mi c r o E E
Page 24
TAFJ-Mi c r o E E
Page 25
TAFJ-Mi c r o E E
String parameter.
Has to match an existing T24 OFS
source.
Page 26
TAFJ-Mi c r o E E
Page 27
TAFJ-Mi c r o E E
2PC.
Page 28
TAFJ-Mi c r o E E
(OFS.BULK.MANAGER
requestCommitted attribute not
equal to 1) will mark the request to
be rollback at MDB level for re-
delivery. In JTA mode OBM
requestCommitted flag could be
valid but the JTA commit can fail
and trigger the rollback.
Page 29
TAFJ-Mi c r o E E
Page 30
TAFJ-Mi c r o E E
'A.JBC.ROUTINE’ or
‘OTHER.JBC.ROUTINE’:
((?!\A.JBC.ROUTINE\b)
(?!\OTHER.JBC.ROUTIN
E\b).)*
Page 31
TAFJ-Mi c r o E E
idleOnLineSessionThr Integer parameter used for both 3600 – Min value 600
eshold periodic cleaner scheduling and
session idle detection threshold. A session is shutdown as
soon as the idle threshold
Unit is seconds. is reached and the
Minimal value is 10min non periodic cleaner execution
modifiable. A too short idle is triggered. It means a
detection should be avoided since session could be living idle
the cost of initializing a session is for almost two periodic
high and will impact the cleaner execution cycle in
worse case.
application response time.
Page 32
TAFJ-Mi c r o E E
Page 33
TAFJ-Mi c r o E E
Since initialization is
triggered concurrently for
all EJBs,
warmupTimeout should
be higher than the longest
initialization duration
which is 12s in this
particular case.
Page 34
TAFJ-Mi c r o E E
startup thread.
Page 35
TAFJ-Mi c r o E E
Page 36