0% found this document useful (0 votes)
179 views86 pages

Stack1 AWS Red Hat JBoss Runbook Multitier R18

helo cosovo

Uploaded by

tienmh
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)
179 views86 pages

Stack1 AWS Red Hat JBoss Runbook Multitier R18

helo cosovo

Uploaded by

tienmh
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/ 86

Stack 1 AWS Reference

Architecture for R18


Red Hat – JBoss May 2018
Customer Runbook 1.1

All post R17 AMR releases up to and including R18 AMR (201705 - 201804)
Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

Contents
1 About this Runbook ............................................................................................................ 4
1.1 Stacks table ............................................................................................................................................................... 4
1.2 Audience .................................................................................................................................................................... 5
1.3 Skills and knowledge ................................................................................................................................................ 5
1.4 Legal ........................................................................................................................................................................... 5
1.5 History ........................................................................................................................................................................ 5

2 Introduction ..................................................................................................................... 7

3 Prerequisites .................................................................................................................... 8
3.1 Checking operating system version ....................................................................................................................... 8
3.2 Time synchronization on all servers ...................................................................................................................... 8
3.3 Setting time zone on all servers ............................................................................................................................. 8
3.4 Preparing operating system user and folders ...................................................................................................... 8
3.5 Installing the latest JDK 8 on all servers ................................................................................................................ 9
3.6 Third-party software ................................................................................................................................................ 9

4 Configuring the Application tier ................................................................................... 11


4.1 Prerequisites ........................................................................................................................................................... 11
4.2 Configuring domain master server ...................................................................................................................... 11
4.2.1 Setting up environment variables................................................................................................................ 11
4.2.2 Configuring domain.xml.............................................................................................................................. 11
4.2.2.1 Domain controller background................................................................................................................ 11
4.2.2.2 Domain profiles.......................................................................................................................................... 12
4.2.2.3 Domain socket binding groups ................................................................................................................ 12
4.2.2.4 Domain server groups .............................................................................................................................. 13
4.2.2.5 TAFJ cluster configuration: automated versus manual......................................................................... 14
4.2.2.6 Configuring an automated TAFJ cluster .................................................................................................. 14
4.2.2.7 Manually configuring TAFJ cluster after auto configuration ................................................................ 16
4.3 Configuring a domain slave server ...................................................................................................................... 29
4.3.1 Creating TAFJ and T24 folders ...................................................................................................................... 29
4.3.2 Preparing the environments ........................................................................................................................ 29
4.3.3 Installing TAFJ.................................................................................................................................................. 30
4.3.4 Installing T24 ................................................................................................................................................... 36
4.3.5 Configuring a standalone T24 instance ...................................................................................................... 37
4.3.5.1 Configuring tafj.properties .............................................................................................................. 37
4.3.5.2 T24 libraries ................................................................................................................................................ 37
4.3.5.3 UD directory ............................................................................................................................................... 37
4.3.5.4 Database connection settings .................................................................................................................. 38
4.3.5.5 TAFJ locking mode ...................................................................................................................................... 39
4.3.5.6 Performance enhancement ..................................................................................................................... 39
4.3.5.7 Application server specific parameters .................................................................................................. 40
4.3.5.8 Application cluster specific parameters.................................................................................................. 41
Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

4.3.5.9 Other parameters ...................................................................................................................................... 41


4.3.5.10 Fixing the database connection reset error ....................................................................................... 41
4.3.5.11 Preparing JDBC drivers ......................................................................................................................... 42
4.3.5.12 Running a T24 sanity test ..................................................................................................................... 42
4.3.6 Configuring JBoss T24 on the Application layer ......................................................................................... 44
4.3.6.1 Deploying a JBoss database driver module ........................................................................................... 44
4.3.6.2 Deploying a JBoss T24 module ................................................................................................................. 45
4.3.6.3 Deploying a JBoss TAFJ module ................................................................................................................ 47
4.3.6.4 Configuring host-slave.xml ....................................................................................................................... 49
4.4 Verifying JBoss Domain cluster ............................................................................................................................. 50
4.5 Deploying an ActiveMQ resource adapter .......................................................................................................... 51
4.5.1 Copying the resource adapter file ............................................................................................................... 51
4.5.2 Deploying resource adapter ......................................................................................................................... 51
4.6 Deploying TAFJJEE application to JBoss ............................................................................................................... 55

5 Web Tier configuration .................................................................................................. 58


5.1 Prerequisites ........................................................................................................................................................... 58
5.2 Domain Master Server configuration .................................................................................................................. 58
5.2.1 Setting up environment variables................................................................................................................ 58
5.2.2 Configuring domain.xml.............................................................................................................................. 58
5.2.2.1 Domain Controller background ............................................................................................................... 58
5.2.2.2 Domain Profiles.......................................................................................................................................... 59
5.2.2.3 Domain socket binding groups ................................................................................................................ 59
5.2.2.4 Domain server groups .............................................................................................................................. 60
5.2.2.5 Configuring system-properties ................................................................................................................ 61
5.2.2.6 Configuring transactions .......................................................................................................................... 62
5.2.2.7 Configuring MDB default resource adapter ........................................................................................... 62
5.2.2.8 Disabling default Connection Factory ..................................................................................................... 63
5.2.2.9 Configuring distributed queues ............................................................................................................... 64
5.3 Configuring a domain slave server ...................................................................................................................... 66
5.3.1 Configuring host-slave.xml .................................................................................................................... 66
5.4 Verifying JBoss domain cluster on the Web layer .............................................................................................. 67
5.5 Deploying ActiveMQ resource adapter ............................................................................................................... 68
5.5.1 Copying the resource adapter file ............................................................................................................... 68
5.5.2 Deploying resource adapter ......................................................................................................................... 68
5.6 Deploying BrowserWeb application to JBoss ..................................................................................................... 71

6 Appendix ......................................................................................................................... 75
6.1 TAFJJEE_EAR.ear for Active MQ ............................................................................................................................. 75
Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

1 About this Runbook


Red Hat and Temenos have defined a recommended deployment architecture that provides scalability,
high availability and disaster recovery (HADR) for Temenos Core Banking running on the Red Hat
Platform.

Stack 1 Reference Architecture Runbook describes how to configure TAFJ-T24 on the recommended
architecture. This runbook is relevant to all post R17 AMR releases up to and including R18 AMR (i.e.
201705 - 201804).

1.1 Stacks table


Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

1.2 Audience

This runbook is designed for developers and technical consultants who want to deploy TAFJ-T24 on
distributed multi-tiered JBoss EAP clusters and access it through T24 Browser.

1.3 Skills and knowledge

To use this runbook, you need a basic understanding of both TAFJ-T24 and JBoss application servers.

1.4 Legal
© Copyright 2018 Temenos Headquarters SA. All rights reserved.

The information in this guide relates to TEMENOSTM information, products and services. It also includes
information, data and keys developed by other parties.

While all reasonable attempts have been made to ensure accuracy, currency and reliability of the content
in this guide, all information is provided "as is".

There is no guarantee as to the completeness, accuracy, timeliness or the results obtained from the use of
this information. No warranty of any kind is given, expressed or implied, including, but not limited to
warranties of performance, merchantability and fitness for a particular purpose.

In no event will TEMENOS be liable to you or anyone else for any decision made or action taken in
reliance on the information in this document or for any consequential, special or similar damages, even if
advised of the possibility of such damages.

TEMENOS does not accept any responsibility for any errors or omissions, or for the results obtained from
the use of this information. Information obtained from this guide should not be used as a substitute for
consultation with TEMENOS.

References and links to external sites and documentation are provided as a service. TEMENOS is not
endorsing any provider of products or services by facilitating access to these sites or documentation from
this guide.

The content of this guide is protected by copyright and trademark law. Apart from fair dealing for the
purposes of private study, research, criticism or review, as permitted under copyright law, no part may be
reproduced or reused for any commercial purposes whatsoever without the prior written permission of
the copyright owner. All trademarks, logos and other marks shown in this guide are the property of their
respective owners.

1.5 History
Version Date Description Author

1.0 24th April Initial release of this runbook. Yanxin Zhao


Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

Version Date Description Author

1.1 11 May Technical author edits Dominik Wietrzak


Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

2 Introduction
Stack 1 Reference Architecture Runbook describes how to install and configure TAFJ-T24 on the Red Hat
platform. The stack comprises 5 tiers:

Tier 1: AWS Load balancer Service

Online requests first hit a load balancer, the load


balancer distributes incoming traffic across the
application servers. It is recommended to use a
highly available hardware load balancer.

In this exercise, AWS Load Balancer Service was


used.

Tier 2: Web
This tier contains the application servers with
presentation channels. It communicates with
Broker tier to send data to the Application tier.
In this exercise, a 2-node JBoss EAP (version
7.1.0) cluster was used.
Tier 3: Message Broker
This layer contains JMS messaging servers. JMS
queue provides messaging platform to facilitate
reliable communication between Web tier and
T24 application tier.
In this exercise, a 2-node HA cluster JBoss Active
MQ (version 6.3.0.redhat-187)
Tier 4: Application
This tier contains the application servers with
TAFJ/T24.
In this exercise, a 2-node JBoss EAP (version
7.1.0) cluster was used.
Tier 5: Database
This tier contains the database which stores T24
data. In this exercise, AWS RDS Oracle
12.1.0.2.v10 across 2 availability zones was used.
Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

3 Prerequisites
The following prerequisites are required on all servers in all layers of the architecture.

3.1 Checking operating system version

Ensure that the operating system is Red Hat Enterprise Linux 7.

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4 (Maipo)

$ uname -r
3.10.0-693.11.6.el7.x86_64

3.2 Time synchronization on all servers

This is very important for log, statistics, status and timestamp generation to have all servers synchronized
about date and time. Normally an NTP (Network Time Protocol) server is required. In this exercise AWS
Time Sync Service was used.

3.3 Setting time zone on all servers


For more information, see the relevant vendor’s documentation.

3.4 Preparing operating system user and folders


Procedure

1. Create a Linux user for software installation.


Create the t24user operating system user and group. Temenos software and 3rd party software will
be installed by t24user.

Note: t24user is not mandatory but is recommended for consistency.

2. Create the installation root folder on all the servers in the application layer and Web layer.

 /u01 will be used as the root folder for the software installations.

 /u01/Temenos is TEMENOS_HOME.

 /u01/Temenos/Install stores temporary installation packages.

 /u01/Temenos/3rdParty stores 3rd party software like Java, JBoss, Weblogic etc.
All non-Temenos software will be installed in this folder.
Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

$ mkdir /u01/Temenos
$ chown -R t24user:t24user /u01/Temenos
$ chmod -R 755 /u01/Temenos
$ mkdir /u01/Temenos/Install
$ mkdir /u01/Temenos/3rdParty

a. Add the TEMENOS_HOME environment variable.

[t24user@stak1ap1 ~]$ whoami


t24user
[t24user@stak1ap1 ~]$ cd
[t24user@stak1ap1 ~]$ vi .bash_profile

b. Add the $TEMENOS_HOME environment variable to .bash_profile.

##############################################
# Temenos Home
#
export TEMENOS_HOME=/u01/Temenos
echo "TEMENOS_HOME="$TEMENOS_HOME
##############################################

3.5 Installing the latest JDK 8 on all servers

JDK version 1.8.0_162 was used in this exercise.

For database servers, JDK is installed by the database installation process itself.

3.6 Third-party software


You need to verify that you have installed all third-party software.

Number Tier Number Software


of servers

1 Load Balancer 1 AWS Load Balancer Service

2 Web Tier 2 JBoss EAP domain cluster, version 7.1.0

3 Message Broker 2 JBoss Active MQ HA cluster, version 6.3.0.redhat-262


Tier
Stack 1 Reference Architecture . Red Hat - JBoss Customer Runbook

4 Application Tier 2 JBoss EAP domain cluster, version 7.1.10

5 Database Tier 2 AWS RDS Oracle 12.1.0.2.v10 across 2 availability


zones.

You can obtain TAFJ1 runtime, T242 libraries and BrowserWeb.war file from Temenos Distribution.

You need to import T24 data into database. T24 tables are preloaded to the Oracle 12c database - the .dmp
file has already been imported.

1Temenos Application Framework Java

2T24 is Temenos' core banking solution


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4 Configuring the Application tier

4.1 Prerequisites

This chapter assumes that the JBoss Domain cluster has already been installed on the Application layer
Ensure that you have installed all third-party software before you start to install and configure the stack.
For more information, see Third-party software.

4.2 Configuring domain master server

4.2.1 Setting up environment variables


You need to set the file.encoding environment variable.

As this document is for JBoss domain cluster T24 deployment, so you need to edit the
$JBOSS_HOME/bin/domain.conf file to set up environment variables (for standalone deployment, you
need to edit $JBOSS_HOME/bin/standalone.conf).

[t24user@stak1ap1 ~]$ vi $JBOSS_HOME/bin/domain.conf

Enter the following configuration:

else
echo "JAVA_OPTS already set in environment; overriding default settings with values:
$JAVA_OPTS"
fi

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

4.2.2 Configuring domain.xml

4.2.2.1 Domain controller background


A domain controller is the JBoss EAP server instance that acts as a central management point for a
domain.

The following are the primary responsibilities of the domain controller:

 Maintain the domain’s central management policy.

 Ensure all host controllers are aware of its current contents.

 Assist the host controllers in ensuring that all running JBoss EAP server instances are configured
in accordance with this policy.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

By default, the central management policy is stored in the


JBOSS_HOME/domain/configuration/domain.xml file.

4.2.2.2 Domain profiles


The domain.xml file contains profile configurations available for use by the servers in the domain.
A profile contains the detailed settings of the various subsystems available in that profile.

domain.xml file is a large xml file, which makes it hard to read. It contains four profiles:

 <profile name="default"> … </profile>

 <profile name="ha"> … </profile>

 <profile name="full">… </profile>

 <profile name="full-ha">… </profile>


We are using the full-ha profile only, so you can completely ignore the other 3 profiles. For simplicity
you can optionally remove the other 3 profiles if they are not used. You need to create a T24 App layer
full-ha profile. You can copy the full-ha XML block or rename it to full-ha-T24-APP.

vi $JBOSS_HOME/domain/configuration/domain.xml

The required profile which is based on “full-ha” profile:

<profiles>
<profile name="full-ha-T24-APP">
… …
</profile>
</profiles>

4.2.2.3 Domain socket binding groups


Socket bindings and socket binding groups allow you to define network ports and their relationship to the
networking interfaces.
The domain.xml file contains 4 socket-binding-groups:

 <socket-binding-group name="standard-sockets" default-interface="public"> …


</socket-binding-group>

 <socket-binding-group name="ha-sockets" default-interface="public"> … </socket-


binding-group>

 <socket-binding-group name="full-sockets" default-interface="public"> …


</socket-binding-group>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

 <socket-binding-group name="full-ha-sockets" default-interface="public"> …


</socket-binding-group>
We are using full-ha-sockets only, so you can completely ignore the other 3 socket groups. For
simplicity you can optionally remove the other 3 socket groups.

vi $JBOSS_HOME/domain/configuration/domain.xml

The following is the required profile which is based on the full-ha profile:
<socket-binding-groups>
<socket-binding-group name="full-ha-sockets" default-interface="public">
… …
</socket-binding-group>
</socket-binding-groups>

4.2.2.4 Domain server groups


A server group is a collection of server instances that are managed and configured as one. In a managed
domain, every application server instance belongs to a server group, even if it is the only member. The
server instances in a group share the same profile configuration and deployed content.
You are going to create a new server group t24-server-group-APP which uses the full-ha-T24-APP
profile. You need to remove the sample server groups in the default domain.xml file and replace them
with the new server group definition.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value (remove the xml block of the server group definition which is not used):

<server-groups>
<server-group name="main-server-group" profile="full">
<jvm name="default">
<heap size="1000m" max-size="1000m"/>
<permgen max-size="256m"/>
</jvm>
<socket-binding-group ref="full-sockets"/>
</server-group>
<server-group name="other-server-group" profile="full-ha">
<jvm name="default">
<heap size="1000m" max-size="1000m"/>
<permgen max-size="256m"/>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

</jvm>
<socket-binding-group ref="full-ha-sockets"/>
</server-group>
</server-groups>

The new value:

<server-groups>
<server-group name="t24-server-group-APP" profile="full-ha-T24-
APP">
<jvm name="t24-server-group-APP">
<heap size="8092m" max-size="8092m"/>
</jvm>
<socket-binding-group ref="full-ha-sockets"/>
</server-group>
</server-groups>

Note: You need to customize your JVM heap size according to your server capacity.

4.2.2.5 TAFJ cluster configuration: automated versus manual


There is an automation script that simplifies JBoss TAFJ/T24 deployment, however the script doesn’t work
for Stack 1 JBoss cluster with external AMQ broker.
The script produces up-to-date configuration, so it’s better to use the auto configuration as the base and
manually modify the script and the JBoss domain configuration after the auto configuration. You need to
fill in the following gaps:
1. Cluster deployment
2. AMQ broker configuration

4.2.2.6 Configuring an automated TAFJ cluster


Procedure

1. Go to TAFJ JBoss 7 script deployment folder $TAFJ_HOME/appserver/jboss/jboss7eap/jboss-


cli and view the tafj.properties file.

$ cd $TAFJ_HOME/appserver/jboss/jboss7eap/jboss-cli
$ cat tafj.properties

2. Edit the file and provide the following parameters values: DB_URL, DB_DRIVER, DB_USER and
DB_PWD. The following is an example configuration:
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

DB_URL=jdbc:oracle:thin:@//t24rds2.xxxxxx.eu-west-
1.rds.amazonaws.com:1521/T24DB
DB_DRIVER=ora12c
DB_USER=t24
DB_PWD=t24

3. Edit the T24Setup.cli file. Uncomment the chosen Oracle 12c driver.

$ vi $TAFJ_HOME/appserver/jboss/jboss7eap/jboss-cli/T24Setup.cli

#Drivers
#define the driver corresponding to your database - H2 driver is already
existing by default - uncomment one of the following to create the driver
corresponding to your database
#please note that you have to create the module for the driver first
/subsystem=datasources/jdbc-driver=ora12c:add(driver-name=ora12c,driver-
module-name=com.oracle.ora12c,driver-xa-datasource-class-
name=oracle.jdbc.OracleDriver)
#/subsystem=datasources/jdbc-driver=sqljdbc:add(driver-name=sqljdbc,driver-
module-name=com.microsoft.sqlserver.jdbc,driver-xa-datasource-class-
name=com.microsoft.sqlserver.jdbc.SQLServerXADataSource)
#/subsystem=datasources/jdbc-driver=db2jdbc:add(driver-name=db2jdbc,driver-
module-name=com.ibm.db2v11,driver-xa-datasource-class-
name=com.ibm.db2.jcc.DB2Driver)

4. In the same file, replace every occurrence of /subsystem= with /profile=full-ha-T24-


APP/subsystem=. You can use any text editor to achieve it. Here it is an example of using the sed
command:

$ sed -i -e 's/\/subsystem=/\/profile=full-ha-T24-APP\/subsystem=/g'
T24Setup.cli

5. Edit the jboss-cli.xml file and set the value of resolve-parameter-value to true.

$ $JBOSS_HOME/bin/jboss-cli.xml

<!-- whether to resolve system properties specified as command argument


or operation parameter values in the CLI VM before sending the operation
requests to the controller -->
<resolve-parameter-values>true</resolve-parameter-values>

6. In the same file, set the value of validate-operation-requests to true.

<validate-operation-requests>true</validate-operation-requests>

7. Back up your current domain.xml file. Start your JBoss domain controller.
8. Run the following JBoss-cli command. Note that you need to substitute the IP address of your
domain controller.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

$JBOSS_HOME/bin/jboss-cli.sh --connect --
controller=Domain_Controller_IP_Address:9999 --
file=$TAFJ_HOME/appserver/jboss/jboss7eap/jboss-cli/T24Setup.cli --
properties=$TAFJ_HOME/appserver/jboss/jboss7eap/jboss-cli/tafj.properties
The batch executed successfully

9. Open your JBoss domain.xml file and verify the changes after you have run the JBoss-cli
command. Compare the domain.xml file before and after the change. Ensure that the T24 data
source and T24 message queues are added to the domain.xml file.

$ vi $JBOSS_HOME/domain/configuration/domain.xml
$ grep -i t24 $JBOSS_HOME/domain/configuration/domain.xml

4.2.2.7 Manually configuring TAFJ cluster after auto configuration


After running the JBoss-cli script, you need to verify the changes and modify the messaging queue
configuration. Use a text editor, for example vi, to modify the domain.xml file.

Procedure

1. Open the domain.xml file in your editor, for example vi.

$ vi $JBOSS_HOME/domain/configuration/domain.xml
$ grep -i t24 $JBOSS_HOME/domain/configuration/domain.xml

2. Add the following properties: file.encoding, java.security.egd and


org.apache.tomcat.util.http.Parameters.MAX_COUNT.

You modify the value for java.security.egd to fix the java.sql.SQLRecoverableException:


I/O Exception: Connection reset error. This error occurs on some RedHat distributions.

The MAX_COUNT parameter defines the maximum number of parameters that can be parsed in a post
body. If exceeded, parsing fails using an IllegalStateException. The default value is 512
parameters.
The old value:

<system-properties>
<!-- IPv4 is not required, but setting this helps avoid unintended use of
IPv6 -->
<property name="java.net.preferIPv4Stack" value="true"/>
</system-properties>

The new value:


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<system-properties>
<property name="java.net.preferIPv4Stack" value="true"/>
<property name="file.encoding" value="UTF-8"/>
<property name="java.security.egd" value="file:/dev/../dev/urandom"/>
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT"
value="9999"/>
</system-properties>

3. Configure transactions: Under <profile name="full-ha-T24-APP">, search for


urn:jboss:domain:transactions and add the jboss.tx.node.id attribute for cluster
environment.
The old value:

<subsystem xmlns="urn:jboss:domain:transactions:4.0">
<core-environment>
<process-id>
<uuid/>
</process-id>
</core-environment>

The new value:

<subsystem xmlns="urn:jboss:domain:transactions:1.5">
<core-environment node-identifier="${jboss.tx.node.id}" >
<process-id>
<uuid/>
</process-id>
</core-environment>

4. Configure a data source:


a) Under <profile name="full-ha-T24-APP">, search for the
urn:jboss:domain:datasources string.
b) Replace the sample data source with the new data source configuration. You need to define
three T24 data sources in this section.
The following is a data source configuration example:

<subsystem xmlns="urn:jboss:domain:datasources:5.0">
<datasources>
<datasource jta="true" jndi-name="java:/jdbc/t24DS" pool-
name="t24DS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>
jdbc:oracle:thin:@your_DB_IP:1521/your_DB_service_name
</connection-url>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<connection-property name="defaultRowPrefetch">
100
</connection-property>
<driver>ora12c</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>220</max-pool-size>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>your_DB_user</user-name>
<password>your_DB_password</password>

</security>

<!-- Note: the following “<timeout>” and “<validation>”


tags are for High Availability.
The validation is used to detect staled connections.
It is useful when the database is in a RAC cluster.
-->
<timeout>
<idle-timeout-minutes>2</idle-timeout-minutes>
</timeout>
<validation>
<check-valid-connection-sql>
select 1 from dual

</check-valid-connection-sql>
<valid-connection-checker class-
name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker">
</valid-connection-checker>
<stale-connection-checker class-
name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker">
</stale-connection-checker>

<exception-sorter class-
name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter">

</exception-sorter>
<background-validation>true</background-validation>
<background-validation-millis>2000</background-
validation-millis>
</validation>

</datasource>

<datasource jta="false" jndi-name="java:/jdbc/t24LockingDS"


pool-name="t24LockingDS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>
jdbc:oracle:thin:@your_DB_IP:1521/your_DB_service_name
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

</connection-url>
<driver>ora12c</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>220</max-pool-size>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>your_DB_user</user-name>
<password>your_DB_password</password>
</security>
</datasource>

<datasource jta="false" jndi-name="java:/jdbc/t24RODS" pool-


name="t24RODS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>
jdbc:oracle:thin:@your_DB_IP:1521/your_DB_service_name
</connection-url>
<driver>ora12c</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>220</max-pool-size>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>your_DB_user</user-name>

<password>your_DB_password</password>
</security>
</datasource>

<drivers>
<driver name="ora12c" module="com.oracle.ora12c">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-
datasource-class>
</driver>

</drivers>
</datasources>
</subsystem>

5. Configure global modules: Under <profile name="full-ha-T24-APP">, search for


urn:jboss:domain:ee and add TAFJ and T24 libraries as global modules. Ensure that
com.temenos.tafj and com.temenos.t24 are configured under global-modules.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<subsystem xmlns="urn:jboss:domain:ee:4.0">
<global-modules>
<module name="com.temenos.tafj" slot="main"/>
<module name="com.temenos.t24" slot="main"/>
</global-modules>
<spec-descriptor-property-replacement>false</spec-descriptor-
property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-
property-replacement>
<annotation-property-replacement>false</annotation-property-
replacement>
</subsystem>

6. Configure EJB bean pools: Under <profile name="full-ha-T24-APP">, search for


urn:jboss:domain:ejb3. Verify the T24 EJB bean pools definition. Ensure that T24 MDB bean
pools such as ofs-mdb-strict-max-pool are configured.

<subsystem xmlns="urn:jboss:domain:ejb3:5.0">
… …
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" derive-
size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-
timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" derive-
size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-
timeout-unit="MINUTES"/>
<strict-max-pool name="ofs-mdb-strict-max-pool" max-pool-
size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-
unit="MINUTES"/>
<strict-max-pool name="browser-mdb-strict-max-pool" max-
pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-
unit="MINUTES"/>
<strict-max-pool name="arcmob-mdb-strict-max-pool" max-
pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-
unit="MINUTES"/>


<strict-max-pool name="seat-mdb-strict-max-pool" max-
pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-
unit="MINUTES"/>
<strict-max-pool name="phantom-mdb-strict-max-pool" max-
pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-
unit="MINUTES"/>
</bean-instance-pools>
</pools>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

7. Configure MDB default resource adapter: Under <profile name="full-ha-T24-APP">, search


for urn:jboss:domain:ejb3. Add T24 EJB bean pools definition.
The old value:

<subsystem xmlns=" urn:jboss:domain:ejb3:5.0">


… …
<mdb>
<resource-adapter-ref resource-adapter-name="${ejb.resource-
adapter-name:activemq-ra.rar}"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>

The new value:

<subsystem xmlns="urn:jboss:domain:ejb3:1.5">
… …
<mdb>
<resource-adapter-ref resource-adapter-name="${ejb.resource-
adapter-name:activemq-rar.rar}"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>

8. Configure message-driven beans. By default TAFJ JBoss script deploys Active MQs in memory.
You need to use the auto configured in-memory queues as reference, convert the in-memory AMQ
configuration into external AMQ broker configuration.
1) Configure local queues
2) Configure distributed queues

4.2.2.7.1 Configuring local queues

In T24 some message-driven beans are required to run locally instead of being distributed. In memory
Active MQ is the default messaging system in JBoss EAP 7, and Active MQ will be used here to manage
the local queues. t24EXECQueue and tecEventsTopic are the local queues.

Procedure

1. Under <profile name="full-ha-T24-APP">, search for urn:jboss:domain:messaging-


activemq.
2. Copy out (remove) all the t24 queues except t24EXECQueue and tecEventsTopic. Later on the
copied out queues will be configured as external distributed queues.
3. Remove the my-cluster cluster connection.
4. Rename the pooled connection factory entry java:/JmsXA to java:/JmsXA_notused.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<broadcast-group name="bg-group1" jgroups-channel="activemq-


cluster" connectors="http-connector"/>
<discovery-group name="dg-group1" jgroups-channel="activemq-
cluster"/>
<cluster-connection name="my-cluster" address="jms" connector-
name="http-connector" discovery-group="dg-group1"/>
<jms-queue name="ExpiryQueue"
entries="java:/jms/queue/ExpiryQueue"/>
<jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
<jms-queue name="t24OFSQueue" entries="queue/t24OFSQueue
java:jboss/exported/jms/queue/t24OFSQueue"/>
<jms-queue name="t24OFSReplyQueue"
entries="queue/t24OFSReplyQueue java:jboss/exported/jms/queue/t24OFSReplyQueue"/>
<jms-queue name="t24BROWSERQueue"
entries="queue/t24BROWSERQueue java:jboss/exported/jms/queue/t24BROWSERQueue"/>
<jms-queue name="t24BROWSERReplyQueue"
entries="queue/t24BROWSERReplyQueue
java:jboss/exported/jms/queue/t24BROWSERReplyQueue"/>
<jms-queue name="t24ARCMOBQueue" entries="queue/t24ARCMOBQueue
java:jboss/exported/jms/queue/t24ARCMOBQueue"/>
<jms-queue name="t24ARCMOBReplyQueue"
entries="queue/t24ARCMOBReplyQueue
java:jboss/exported/jms/queue/t24ARCMOBReplyQueue"/>
<jms-queue name="t24TWSQueue" entries="queue/t24TWSQueue
java:jboss/exported/jms/queue/t24TWSQueue"/>
<jms-queue name="t24TWSReplyQueue"
entries="queue/t24TWSReplyQueue java:jboss/exported/jms/queue/t24TWSReplyQueue"/>
<jms-queue name="t24TCIBQueue" entries="queue/t24TCIBQueue
java:jboss/exported/jms/queue/t24TCIBQueue"/>
<jms-queue name="t24TCIBReplyQueue"
entries="queue/t24TCIBReplyQueue
java:jboss/exported/jms/queue/t24TCIBReplyQueue"/>
<jms-queue name="t24TCIBCORPQueue"
entries="queue/t24TCIBCORPQueue java:jboss/exported/jms/queue/t24TCIBCORPQueue"/>
<jms-queue name="t24TCIBCORPReplyQueue"
entries="queue/t24TCIBCORPReplyQueue
java:jboss/exported/jms/queue/t24TCIBCORPReplyQueue"/>
<jms-queue name="t24TCIBWEALTHQueue"
entries="queue/t24TCIBWEALTHQueue
java:jboss/exported/jms/queue/t24TCIBWEALTHQueue"/>
<jms-queue name="t24TCIBWEALTHReplyQueue"
entries="queue/t24TCIBWEALTHReplyQueue
java:jboss/exported/jms/queue/t24TCIBWEALTHReplyQueue"/>
<jms-queue name="t24CALLATQueue" entries="queue/t24CALLATQueue
java:jboss/exported/jms/queue/t24CALLATQueue"/>
<jms-queue name="t24CALLATReplyQueue"
entries="queue/t24CALLATReplyQueue
java:jboss/exported/jms/queue/t24CALLATReplyQueue"/>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<jms-queue name="t24AMLQueue" entries="queue/t24AMLQueue


java:jboss/exported/jms/queue/t24AMLQueue"/>
<jms-queue name="t24AMLReplyQueue"
entries="queue/t24AMLReplyQueue java:jboss/exported/jms/queue/t24AMLReplyQueue"/>
<jms-queue name="t24TPSQueue" entries="queue/t24TPSQueue
java:jboss/exported/jms/queue/t24TPSQueue"/>
<jms-queue name="t24TPSReplyQueue"
entries="queue/t24TPSReplyQueue java:jboss/exported/jms/queue/t24TPSReplyQueue"/>
<jms-queue name="t24SEATQueue" entries="queue/t24SEATQueue
java:jboss/exported/jms/queue/t24SEATQueue"/>
<jms-queue name="t24SEATReplyQueue"
entries="queue/t24SEATReplyQueue
java:jboss/exported/jms/queue/t24SEATReplyQueue"/>
<jms-queue name="t24IFInboundQueue"
entries="queue/t24IFInboundQueue
java:jboss/exported/jms/queue/t24IFInboundQueue"/>
<jms-queue name="t24IFOutboundQueue"
entries="queue/t24IFOutboundQueue
java:jboss/exported/jms/queue/t24IFOutboundQueue"/>
<jms-queue name="t24EXECQueue" entries="queue/t24EXECQueue
java:jboss/exported/jms/queue/t24EXECQueue"/>
<jms-topic name="tecEventsTopic" entries="topic/tecEventsTopic
java:jboss/exported/jms/topic/tecEventsTopic"/>
<connection-factory name="InVmConnectionFactory"
entries="java:/ConnectionFactory" connectors="in-vm"/>
<connection-factory name="RemoteConnectionFactory"
entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-
connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/>
<pooled-connection-factory name="activemq-ra"
entries="java:/JmsXA_notused java:jboss/DefaultJMSConnectionFactory"
connectors="in-vm" transaction="xa"/>
</server>
</subsystem>

4.2.2.7.2 Configuring distributed queues

It is assumed that you have already configured a HA JBoss A-MQ cluster. T24 distributed queues are
configured to use Active MQ. The following information is needed for JBoss A-MQ connection:

 JBoss A-MQ administrative user name and password. In this example we use admin as user name
and admin as password.
 JBoss A-MQ master server host IP address. In this example, 10.42.17.20 is used.
 JBoss A-MQ slave host IP. In this example, 10.42.17.21 is used.
 ActiveMQ resource adapter is activemq-rar-5.11.0.redhat-630262.rar. By installing the
ActiveMQ resource adapter, you make it possible for message-driven beans and servlets to
communicate through an external JBoss A-MQ broker instance.

Procedure
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

1. Under <profile name="full-ha-T24-APP">, search for urn:jboss:domain:resource-


adapters.
2. Add T24 message-driven beans definition.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value: (replace the old value with the new value)

<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0"/>

The new value: (replace the highlighted user name, password, IP addresses with your Active MQ
connection values)
Note: The following content is correct at the time when the document is written, however there
might be some changes of the queues in a later version. You need to compare the number of queue
entries and names with the queues copied from the previous step. Ensure that the manually
configured queue numbers and name match the auto configured queues by TAFJ script.

<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
<resource-adapters>
<resource-adapter id="activemq-rar.rar">
<archive>
activemq-rar-5.11.0.redhat-630262.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="ServerUrl">
failover:(tcp://10.42.17.20:61616?soLinger=0,tcp://10.42.17.21:61616?soLinger=0)
</config-property>
<config-property name="UserName">
admin
</config-property>
<config-property name="Password">
admin
</config-property>
<connection-definitions>
<connection-definition class-
name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-
name="java:/JmsXA" enabled="true" pool-name="JmsXA">
<xa-pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>false</prefill>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<is-same-rm-override>false</is-same-rm-
override>
</xa-pool>
<recovery>
<recover-credential>
<user-name>admin</user-name>
<password>admin</password>
</recover-credential>
</recovery>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TCIBCORPReplyQueue" use-java-context="true" pool-
name="t24TCIBCORPReplyQueue">
<config-property name="PhysicalName">
t24TCIBCORPReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TCIBReplyQueue" use-java-context="true" pool-
name="t24TCIBReplyQueue">
<config-property name="PhysicalName">
t24TCIBReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24BROWSERQueue" use-java-context="true" pool-
name="t24BROWSERQueue">
<config-property name="PhysicalName">
t24BROWSERQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24CALLATReplyQueue" use-java-context="true" pool-
name="t24CALLATReplyQueue">
<config-property name="PhysicalName">
t24CALLATReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

name="java:/queue/t24CALLATQueue" use-java-context="true" pool-


name="t24CALLATQueue">
<config-property name="PhysicalName">
t24CALLATQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TCIBWEALTHReplyQueue" use-java-context="true" pool-
name="t24TCIBWEALTHReplyQueue">
<config-property name="PhysicalName">
t24TCIBWEALTHReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TCIBWEALTHQueue" use-java-context="true" pool-
name="t24TCIBWEALTHQueue">
<config-property name="PhysicalName">
t24TCIBWEALTHQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24AMLQueue" use-java-context="true" pool-name="t24AMLQueue">
<config-property name="PhysicalName">
t24AMLQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TPSReplyQueue" use-java-context="true" pool-
name="t24TPSReplyQueue">
<config-property name="PhysicalName">
t24TPSReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24ARCMOBQueue" use-java-context="true" pool-
name="t24ARCMOBQueue">
<config-property name="PhysicalName">
t24ARCMOBQueue
</config-property>
</admin-object>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TPSQueue" use-java-context="true" pool-name="t24TPSQueue">
<config-property name="PhysicalName">
t24TPSQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24OFSReplyQueue" use-java-context="true" pool-
name="t24OFSReplyQueue">
<config-property name="PhysicalName">
t24OFSReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24OFSQueue" use-java-context="true" pool-name="t24OFSQueue">
<config-property name="PhysicalName">
t24OFSQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24SEATReplyQueue" use-java-context="true" pool-
name="t24SEATReplyQueue">
<config-property name="PhysicalName">
t24SEATReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TWSReplyQueue" use-java-context="true" pool-
name="t24TWSReplyQueue">
<config-property name="PhysicalName">
t24TWSReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24AMLReplyQueue" use-java-context="true" pool-
name="t24AMLReplyQueue">
<config-property name="PhysicalName">
t24AMLReplyQueue
</config-property>
</admin-object>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24SEATQueue" use-java-context="true" pool-name="t24SEATQueue">
<config-property name="PhysicalName">
t24SEATQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TWSQueue" use-java-context="true" pool-name="t24TWSQueue">
<config-property name="PhysicalName">
t24TWSQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24ARCMOBReplyQueue" use-java-context="true" pool-
name="t24ARCMOBReplyQueue">
<config-property name="PhysicalName">
t24ARCMOBReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TCIBQueue" use-java-context="true" pool-name="t24TCIBQueue">
<config-property name="PhysicalName">
t24TCIBQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24IFInboundQueue" use-java-context="true" pool-
name="t24IFInboundQueue">
<config-property name="PhysicalName">
t24IFInboundQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24TCIBCORPQueue" use-java-context="true" pool-
name="t24TCIBCORPQueue">
<config-property name="PhysicalName">
t24TCIBCORPQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

name="java:/queue/t24BROWSERReplyQueue" use-java-context="true" pool-


name="t24BROWSERReplyQueue">
<config-property name="PhysicalName">
t24BROWSERReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24IFOutboundQueue" use-java-context="true" pool-
name="t24IFOutboundQueue">
<config-property name="PhysicalName">
t24IFOutboundQueue
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>

4.3 Configuring a domain slave server


You need to complete the following configuration steps on each server in the Application layer.

4.3.1 Creating TAFJ and T24 folders


You need to create the following two directories on your domain server.

[t24user@stak1ap1 ~]$ mkdir -p $TEMENOS_HOME/TAFJ


[t24user@stak1ap1 ~]$ mkdir -p $TEMENOS_HOME/T24

4.3.2 Preparing the environments


Procedure
1. Create the TAFJ and T24 directories.

[t24user@stak1ap1 ~]$ mkdir -p $TEMENOS_HOME/TAFJ


[t24user@stak1ap1 ~]$ mkdir -p $TEMENOS_HOME/T24

2. Set the TAFJ / T24 environment variables: add $TAFJ_HOME and $T24_HOME to the Application
server, log in as t24user and open the file .bash_profile in your text editor.

[t24user@stak1ap1 ~]$ whoami


t24user
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

[t24user@stak1ap1 ~]$ cd
[t24user@stak1ap1 ~]$ vi .bash_profile

3. Add environment variables $TAFJ_HOME and $T24_HOME to .bash_profile.

##############################################
# Temenos Home
#
export TEMENOS_HOME=/u01/Temenos
echo "TEMENOS_HOME="$TEMENOS_HOME
##############################################
# JAVA Home
export JAVA_HOME=$TEMENOS_HOME/3rdParty/Java/jdk1.8.0_162
echo "JAVA_HOME="$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
java -version
##############################################
# TAFJ Home
export TAFJ_HOME=$TEMENOS_HOME/TAFJ
echo "TAFJ_HOME="$TAFJ_HOME
export PATH=$TAFJ_HOME/bin:$PATH
##############################################
# T24 Home
export T24_HOME=$TEMENOS_HOME/T24
echo "T24_HOME="$T24_HOME
################################################

4. Close your session and log in again with the t24user. Verify the new environment variables.

[t24user@stak1ap1 ~]$ echo $TAFJ_HOME


/u01/Temenos/TAFJ
[t24user@stak1ap1 ~]$ echo $T24_HOME
/u01/Temenos/T24

4.3.3 Installing TAFJ

Before you begin, you need the following TAFJ installation package from Temenos:
TAFJ.R18.AMR.0.tar.gz.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

Procedure

1. Log in to the Application layer as t24user.


2. Upload the installation package TAFJ.R18.AMR.0.tar.gz to $TEMENOS_HOME/Install.

[t24user@stak1ap1 ~]$ ls $TEMENOS_HOME/Install/TAFJ.R18*


/u01/Temenos/Install/TAFJ.R18.AMR.0.tar.gz

3. In $TEMENOS_HOME/Install, create a folder called tafjinst:

[t24user@stak1ap1 ~]$ mkdir -p $TEMENOS_HOME/Install/tafjinst

4. Unzip the files:

[t24user@stak1ap1 ~]$ cd $TEMENOS_HOME/Install/tafjinst


[t24user@stak1ap1 tafjinst]$ tar -xzvf ../TAFJ.R18.AMR.0.tar.gz
./
./TAFJ.R18.AMR.0.jar
./Setup_TAFJ.R18.AMR.0.bat
./Setup_TAFJ.R18.AMR.0.sh
./Patch_TAFJ.R18.AMR.0.bat
./Patch_TAFJ.R18.AMR.0.sh

5. Install TAFJ. It will be located at $TEMENOS_HOME/TAFJ, which is $TAFJ_HOME.


a) During the installation, change the default installation directory to the full path of $TAFJ_HOME,
which is /u01/Temenos/TAFJ.
b) When a message prompts for directory doesn’t exist, create directory?, choose y.

[t24user@stak1ap1 tafjinst]$ chmod 755 *

[t24user@stak1ap1 tafjinst]$ ./Setup_TAFJ.R18.AMR.0.sh


-----------------
YAJI v R18
WARNING : JDK 1.8 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 .
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

. directory you will specify for the installation. .


. To fully uninstall it, just delete the directory. .
========================================================
Press ENTER to continue.
========================================================
Please enter the install Directory.
default : '/u01/Temenos/Install/tafjinst/TAFJ'
/u01/Temenos/TAFJ
========================================================
Please enter the eclipse home directory (Optional).
When provided, a tafj.link, used to resolve tafj eclipse
plugins will be created under ECLIPSE_HOME/dropins
If this file already exist it will be replaced
default : '/u01/Temenos/TAFJ/conf'
'/u01/Temenos/TAFJ/conf' doesn't exist. Create (y/n) ?
y
Extracting META-INF/META-INF/MANIFEST.MF3rdParty/ (dir)
3rdParty/jackson/ (dir)
3rdParty/logging/ (dir)
maven/tafj-updater/pom.xml (text)
samples/basic/HELLO.GR0 (text)
samples/basic/LOGGER.b (text)
Getting available devices .... [DONE]
Creating first project "tafj" ... [DONE]
...
...
...
Updating : '/u01/Temenos/TAFJ/conf/tafj.properties'.
Updating : '/u01/Temenos/TAFJ/conf/.properties'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaload'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaload.bat'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaunload'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaunload.bat'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaloadSingle'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaloadSingle.bat'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaunloadSingle'.
Updating : '/u01/Temenos/TAFJ/dbscripts/oracle/javaunloadSingle.bat'.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

ECLIPSE_HOME: /u01/Temenos/TAFJ/conf
tafj.link created: /u01/Temenos/TAFJ/conf
===========================================================
. Thank you for having installed TAFJ .
. *** IMPORTANT *** .
. Please make sure that you have the environment variable .
. JAVA_HOME set to a JDK 8 or above. .
===========================================================

Press ENTER to terminate.

[t24user@stak1ap1 tafjinst]$

7. Change the permissions on the $TAFJ_HOME\bin directory to execute:

[t24user@stak1ap1 tafjinst]$ chmod 755 $TAFJ_HOME/bin/*

8. Check the TAFJ installation.


a) Close your session and log in again:

Last login: Wed Aug 16 09:52:16 UTC 2017 on pts/0


TEMENOS_HOME=/u01/Temenos
JAVA_HOME=/u01/Temenos/3rdParty/Java/jdk1.8.0_162
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
TAFJ_HOME=/u01/Temenos/TAFJ
T24_HOME=/u01/Temenos/T24

b) Run a diagnostic for TAFJ:

[t24user@stak1ap1 ~]$ tDiag


__________________________________________________________________

Home : '/u01/Temenos/TAFJ'
Conf directory : '/u01/Temenos/TAFJ/conf'
Log directory : '/u01/Temenos/TAFJ/log'
Log directory T24 : '/u01/Temenos/TAFJ/log_T24'
Logging implementation : LOG4J2
Version : R18_AMR
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

__________________________________________________________________

java.home : /u01/Temenos/3rdParty/Java/jdk1.8.0_162/jre
java.vendor : Oracle Corporation
java.version : 1.7.0_79
os.arch : amd64
os.name : Linux
HostName : xxxxx.xxxxxxx.com
IP Address : 10.42.X.X
Runtime : Double Byte SysSeparator
__________________________________________________________________

Default Project : 'tafj'


__________________________________________________________________
Common validation:
Common validation completed - All fine
__________________________________________________________________

- Project : 'tafj'
Java src dir : /u01/Temenos/TAFJ/data/tafj/java
Java classes dir : /u01/Temenos/TAFJ/data/tafj/classes
Update dir : /u01/Temenos/TAFJ/updates
---------------------------------------------------------------
---
Java default package : com.temenos.t24
---------------------------------------------------------------
---
DataBase URL :
DataBase user :
---------------------------------------------------------------
---
Locking mode : JDBC
Locking name :
---------------------------------------------------------------
---
Current dir : /u01/Temenos/TAFJ/UD
Como dir : /u01/Temenos/TAFJ/UD/&COMO&
Hold dir : /u01/Temenos/TAFJ/UD/&HOLD&
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

UD encoding : UTF-8
---------------------------------------------------------------
---
Timezone :
Local : en_US
Debug enabled : true
---------------------------------------------------------------
---
JMS logger enabled : false
Logger API enabled : true
TEC disabled : false
---------------------------------------------------------------
---
Session monitor enabled : true
Session monitor host : localhost
Session monitor port : 8377

__________________________________________________________________
Project validation:
TAFJ Java Functions Version in DB : NOT FOUND
TAFJ Java Functions Version in File : PB201704 03/21/2017
There is a mismatch between the java stored functions version
available in the runtime and the one loaded in the database, make sure
you are using the latest version.
To update the java stored functions, please follow "Load stored
functions instruction" in the TAFJ DB documentation related to your
database.
No duplicated classes found.
__________________________________________________________________

[t24user@stak1ap1 ~]$

c) Run the tVersion application. Ensure the version number is correct.

[t24user@stak1ap1 ~]$ tVersion


<ivy-module version="1.0">
<info organisation="Temenos" module="TAFJ" branch="R18_ALL"/>
<dependencies>
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJCache" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJClient" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJCommon" rev="0" />
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJCompiler" rev="0"


/>
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJCore" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJDBImport" rev="0"
/>
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJLocking" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJLogging" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJPackager" rev="0"
/>
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJTelnetD" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJVersion" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_TAFJBASIC" rev="0" />
<dependency org="Temenos" branch="R18_AMR" name="FJ_tComponentFramework"
rev="0" />
</dependencies>
</ivy-module>[t24user@stak1ap1 ~]$

TAFJ has now been installed.

4.3.4 Installing T24

Before you start, you'll need the MB.R18.ORACLE12c.UNIX.TAFJR18.20181231.bnk.tar.gz installation


package from Distribution.

Procedure

1. Upload the installation package MB.R16.000.ORACLE12c.UNIX.TAFJR16.20170930.bnk.tar.gz to


$TEMENOS_HOME/Install.

[t24user@stak1ap1 ~]$ ls
$TEMENOS_HOME/Install/MB.R18.ORACLE12c.UNIX.TAFJR18.20181231.bnk.tar.gz
/u01/Temenos/Install/MB.R18.ORACLE12c.UNIX.TAFJR18.20181231.bnk.tar.gz

2. Unzip the files:

[t24user@stak1ap1 ~]$ cd $T24_HOME


[t24user@stak1ap1 T24]$ pwd
/u01/Temenos/T24
[t24user@stak1ap1 T24]$ tar -xzvf
../Install/MB.R18.ORACLE12c.UNIX.TAFJR18.20181231.bnk.tar.gz

3. Check that the files were extracted to the bnk folder:

[t24user@stak1ap1 T24]$ ls bnk


Extensions t24lib UD
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

T24 has now been installed.

4.3.5 Configuring a standalone T24 instance

4.3.5.1 Configuring tafj.properties

You need to specify the values for the properties in the tafj.properties file, which is stored in
$TAFJ_HOME/conf.

[t24user@stak1ap1 ~]$ vi $TAFJ_HOME/conf/tafj.properties

4.3.5.2 T24 libraries

temn.tafj.directory.precompile Specify where you store all T24 libraries.

Example:

# Specify the Precompile classes directories


# You can specify multiple directory, separated by
# ':' or ';' (eg /home/t24/lib;/home/t24/FT)
#
temn.tafj.directory.precompile = /u01/Temenos/T24/bnk/t24lib

4.3.5.3 UD directory

temn.tafj.runtime.directory.current Specify what will be considered the “current”


directory.

Note: When T24 is deployed in a clustered


environment, the UD directory is required to be shared
across T24 application servers.

Example:

# Specify what will be considered as the "current" directory (eg in an OPEN "."
...)

temn.tajf.runtime.directory.current = /u01/Temenos/T24/bnk/UD
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4.3.5.4 Database connection settings

temn.tafj.jdbc.url Specify the URL to connect to your RDMS. You can ask your
database administrator for this URL.

temn.tafj.jdbc.driver Specify the driver to connect to your RDMS. You can ask your
database administrator about the driver to use.

temn.tafj.jdbc.username and Specify the user name and password to connect to the database.
temn.tafj.jdbc.password Ask your database administrator for them.

Example

#********************************************************************
#
# Database setup
#
#********************************************************************

# URL that describes database connection,


# ex. oracle: jdbc:oracle:thin:@<host_or_ip>:1521:<db_name>
# ex. db2: jdbc:db2://<host_or_ip>:50000/<db_name>
# ex. ms-sql:
jdbc:sqlserver://<host_or_ip>:1433;databaseName=<db_name>;integratedSecurity=true
# ex. H2: jdbc:h2:tcp://host_or_ip/db_name
# ex. H2(Embedded): jdbc:h2:path_to_my_db
#
temn.tafj.jdbc.url = jdbc:oracle:thin:@ip_address:1521/your_DB_service_name
# Class that describes the specific Driver for a database,
# ex. oracle: oracle.jdbc.driver.OracleDriver
# ex. db2: com.ibm.db2.jcc.DB2Driver
# ex. ms-sql: com.microsoft.sqlserver.jdbc.SQLServerDriver
# ex. H2: org.h2.Driver

#
temn.tafj.jdbc.driver = oracle.jdbc.driver.OracleDriver
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

temn.tafj.jdbc.username = your_DB_user_name
temn.tafj.jdbc.password = your_DB_password

4.3.5.5 TAFJ locking mode


Use ORCL locking mode for Oracle database.

#********************************************************************
#
# TAFJ Locking mechanism
#
#********************************************************************
# Tafj locking mode
# Could be : JDBC | ORCL | MSQL | PROC | PROCHASH | MEM | DATABASE | MEMORYGRID
# JDBC : locks managed in database uses LOCK_RECORDS table.
# ORCL : locks managed in database using DBMS_LOCK Oracle specific package.
Recommended solution for Oracle.
# MSQL : locks managed in database using DBMS_LOCK MS-SQL specific package.
Recommended solution for MS-SQL.
# PROC : TAFJ lock manager, external process, server accepting client connections
on a port.
# PROCHASH : TAFJ lock manager, external process, server accepting client
connections on a port (for performance).
# MEM : Memory mode version of the TAFJ lock manager to be used only in a single
application server.
# DATABASE : Use database locks of the underlying database in conjunction with
the secondary lock manager for non-existing records.
# MEMORYGRID : Memory locking across a datagrid using application server stack
caching mechanism. Currently only Coherence supported.

temn.tafj.locking.mode = ORCL

4.3.5.6 Performance enhancement

For performance reasons, change the value of the keys temn.tafj.jdbc.write.use.merge and
temn.tafj.jdbc.write.use.merge.no.xml to false.

#********************************************************************
#
# Database Specific setup
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

#
#********************************************************************

# Use the MERGE statement instead of UPDATE/INSERT for XML Schema


temn.tafj.jdbc.write.use.merge = false
# Use the MERGE statement instead of UPDATE/INSERT for NO XML Schema and NO XML
Schema work
temn.tafj.jdbc.write.use.merge.no.xml = false

4.3.5.7 Application server specific parameters


#********************************************************************
#
# Appserver
#
#********************************************************************
#
# Default appserver name
# When running in appserver mode the MBean server will be queried to get the
registered domain and
# setup the application server provider. It's used to do specific DB parsing (XML
- CLOB) depending on the provider.
# If the appserver could not be infered a log error will report it, in that case
only this property should be used
# to determine the appserver provider.
# Supported values are JBOSS - WEBLO - WAS
temn.tafj.default.appserver.name = JBOSS
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4.3.5.8 Application cluster specific parameters

The following conditions should be met when you


temn.tafj.runtime.port.range
consider setting the temn.tafj.runtime.port.range
parameter:

1. T24 is deployed in a clustered environment.


2. The value for the
temn.tafj.runtime.port.database parameter
is set to false.
3. TAFJ folder is not shared between cluster nodes.

Note: Each server node needs a completely different port


range.

# set the port range of the system or set to get it from the database
#
#ie : temn.tafj.runtime.port.range = 10-45,76,89,2,130-150
temn.tafj.runtime.port.range = 1001-2000

4.3.5.9 Other parameters


# Add the following parameter to deal with the error below
# JDBC Read: Failed to cast directly to XMLType.
# Using OPAQUE java.sql.SQLException: Attempt to read a SQLXML that is not
readable.

temn.tafj.jdbc.use.sqlxml.resultset = false

4.3.5.10 Fixing the database connection reset error


In some Linux distributions, there is a known issue about IO Error: Connection reset. You need to
perform the following steps to fix the database connection reset error.

Procedure

1. Open the tafj_conf.sh file in your text editor.

[t24user@stak1ap1 ~]$ vi $TAFJ_HOME/bin/tafj_conf.sh

2. Add the following line at the end of the file:


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

export "JAVA_OPTS=$JAVA_OPTS -Djava.security.egd=file:/dev/../dev/urandom"

4.3.5.11 Preparing JDBC drivers

You need to copy the correct JDBC driver to the $TAFJ_HOME/ext directory. This directory is
automatically added to the TAFJ classpath.

JDBC drivers are provided in the $TAFJ_HOME/dbdrivers directory. You can use the jar files that are
under the dbdrivers folder as reference. Ideally, the JDBC drivers should match the database version.

Procedure

1. Read the instructions for jdbc jars in the Readme file. Location of the Readme file:
$TAFJ_HOME/dbdrivers/oracle-12c/README.
2. Copy the oracle-12c folder from $TAFJ_HOME/dbdrivers to $TAFJ_HOME/ext.
3. Remove both the xdb.jar and the xmlparserv2.jar files from $TAFJ_HOME/ext/oracle-12c.
The .xdb.jar file is for an older version of Oracle. xdb6.jar should be used from Oracle
11.2.0.3 distribution onwards. For the xmlparserv2.jar, see the comments in the README
file.
4. Replace all the jars with the jars copied from the Oracle database server. You might need to obtain
the correct version of the jars from your database administrator, for example:

 ${ORACLE_HOME}/jdbc/lib/ojdbc8.jar
 ${ORACLE_HOME}/rdbms/jlib/xdb6.jar
 ${ORACLE_HOME}/lib/xmlparserv2_sans_jaxp_services.jar
 ${ORACLE_HOME}/jlib/oraclepki.jar
 ${ORACLE_HOME}/jlib/orai18n-collation.jar
 ${ORACLE_HOME}/jlib/orai18n.jar
 ${ORACLE_HOME}/jlib/orai18n-mapping.jar

4.3.5.12 Running a T24 sanity test

The following section describes how to check T24 after you've installed and configured it for standalone
mode.

Procedure

1. Check T24 in classic view:


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

a) Login as t24user.

b) Execute tRun EX.

c) Log in to the application using a valid T24 user name and password.

The home screen is displayed:

GLOBUS Rev. 201612 SIGN.ON Copyright (c) Temenos Systems Ltd 2017
------------------------------------------------------------------------------
$$$$$$$$$$ $ $ $ $$ $$$$$ $$$$$ $$$ $$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$ $$$ $$$ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$ $$ $$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ $$$$$$$$ $$$$ $ $$ $$$$$$$$$$$$$$$$$$$$$$ $$
$$$$$$$$$$$$$$$ $$ $$$$$$$$$$$$$$$$$$$$$$$$$$$ $
$$$$$$$$$$$$ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$ $$ $$$$ $$ $$$$$$$$$$$$$$$ $
$$$$$$$$$ $$$$ $$$$$$$$$$$$$$$$$ $ $
$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$ $$$$$$$$$$$$$ $$ $$$ $
$$$$$$ $$$$$$$$$$$$ $ $
$$$$$$$$$ $$$$$$ $ $$ $$$
$$$$$$$ $$$$$$ $ $$$$$
$$$$$ $$$$ $ $$$$$$$$
$$$ $$ $$ $$$ $
$$ $
------------------------------------------------------------------------------
21 MAR 2018 13:17:42 USER [14593,]
ACTION

Note: By now you should be able to connect to T24 from all the servers in the Application
layer.

2. Check DBTools:

a) To access DBTools, you need to create a user, using the tUserMgnt utility.

[t24user@stak1ap1 ~]$ cd $TAFJ_HOME/bin


[t24user@stak1ap1 bin]$ tUserMgnt --add -u t24user -p Temenos_1
USER CREATION SUCCESSFUL

b) Use the same user name and password to log in to DBTools.

[t24user@stak1ap1 ~]$ DBTools -u t24user -p Temenos_1


--------------------------------------------------------------------------------
DBTools HELP P1:3 C1:4
--------------------------------------------------------------------------------
NAVIGATION commands |Type f to go forward to next page
|Type b to go backward to previous page
|Type sr to scroll right to next column
|Type sl to scroll left to previous column
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

|Type cm to disable\enable column mode


|Type hc to disable\enable first fixed res
|Type hl to disable\enable first fix resul
|Type x to exit
|
Logging to file |type SPOOL to enable / disable logging. B
|enter the setup menu to provide a differe
|
SETUP commands |Type setup to change console and session
|
SQL commands are supported |type SQL to enter SQL mode, then type USA
JQL commands are supported |type JQL to enter JQL mode, then type USA
|
DBCHECK commands are supported |type DBCHECK to enter DBCHECK mode, then
JQL to SQL command is supported |type JQL2SQL <<JQL command>> to see relat
OFS command is supported |type OFS to enter OFS mode, then type <<R
----------------------------------------------------------------------------DOWN
t24@xxxx-scan:pdb_R18_amr_yz.temenosgroup.com>

4.3.6 Configuring JBoss T24 on the Application layer

The following sections describe how to configure T24 in the application tier of a JBoss domain cluster.
Let’s start with the slave server configuration.

4.3.6.1 Deploying a JBoss database driver module


Procedure

1. Create Oracle 12c module libraries in JBoss.

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules


[t24user@stak1ap1 modules]$ mkdir -p com/oracle/ora12c/main

2. Copy the file module.xml and the corresponding drivers to the main directory:

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules/com/oracle/ora12c/main


[t24user@stak1ap1 main]$ cp
$TAFJ_HOME/appserver/jboss/jboss6eap/modules/com/oracle/ora12c/module.xml .
[t24user@stak1ap1 main]$ cp $TAFJ_HOME/ext/oracle-12c/* .
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4.3.6.2 Deploying a JBoss T24 module


Procedure

1. Create a global module com/temenos/t24/main under JBOSS_HOME/modules.

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules


[t24user@stak1ap1 modules]$ mkdir -p com/temenos/t24/main

2. Create a symbolic link to $T24_HOME/Lib.

[t24user@stak1ap1 modules]$ cd $JBOSS_HOME/modules/com/temenos/t24/main


[t24user@stak1ap1 main]$ ln -s $T24_HOME/bnk/t24lib lib
[t24user@stak1ap1 main]$ ls -l lib
lrwxrwxrwx. 1 t24user t24user 29 Sep 7 20:37 lib ->
/u01/Temenos/T24/bnk/t24lib

3. Generate a module descriptor file

As the generation of module.xml in T24 can be very long, you can use a TAFJ tool to generate it m
ore quickly. To do that, run Module Generator from $TAFJ_HOME/bin.

Command syntax:
JBossTools module_name path_to_jars dest [root_prefix] [-tafjdep]

Options

module_name

Name of the JBoss module

path_to_jars

The list of directories that you want to parse (Use operating system path separator between dir
ectories)

dest

The directory (or path to the directory) where you want the file module.xml to be generated

root_prefix

Name of the link if module.xml is at the same level of the link

-tafjdep

Option to add TAFJ module dependencies in the dependencies section

a) Create a TAFJ module.xml file:


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

[t24user@stak1ap1 ~]$ $TAFJ_HOME/bin/JBossTools com.temenos.t24


$T24_HOME/bnk/t24lib $JBOSS_HOME/modules/com/temenos/t24/main lib -tafjdep
Searching directory ... /u01/Temenos/T24/bnk/t24lib

Found 1003 result!

Found : /lib/IA_Config.jar
Found : /lib/FA_Config.jar
Found : /lib/USRETL_CheckProduction.jar
... ...
Found : /lib/PP_BillingService.jar
Found : /lib/AZ_Schedules.jar
Found : /lib/ST_CompanyCreation.jar
Found : /lib/AM_Foundation.jar
Found : /lib/AL_ModelBank.jar
module.xml generated under: /u01/Temenos/3rdParty/As/JBoss/jboss-eap-
6.4/modules/com/temenos/t24/main
Don't forget to fill up the dependencies section if you need one

b) Open the module.xml file in your text editor and add TAFJ dependencies

[t24user@stak1ap1 main]$ vi
$JBOSS_HOME/modules/com/temenos/t24/main/module.xml

The old value:

</resources>
<dependencies>
<!--<module name="Add.your.modules.dependencies.here"/>-->
</dependencies>
</module>

The new value:

</resources>
<dependencies>
<!--<module name="Add.your.modules.dependencies.here"/>-->
<module name="com.temenos.tafj"/>
</dependencies>
</module>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4.3.6.3 Deploying a JBoss TAFJ module


Procedure

1. Create a global module /com/temenos/tafj/main under $JBOSS_HOME/modules.

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules


[t24user@stak1ap1 modules]$ mkdir -p com/temenos/tafj/main

2. Create a symbolic link to $TAFJ_HOME/lib:

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules/com/temenos/tafj/main


[t24user@stak1ap1 main]$ ln -s $TAFJ_HOME/lib lib
[t24user@stak1ap1 main]$ ls -l
total 0
lrwxrwxrwx. 1 t24user t24user 23 Sep 7 17:39 lib -> /u01/Temenos/TAFJ/lib

3. Create a symbolic link to $TAFJ_HOME/ext:

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules/com/temenos/tafj/main


[t24user@stak1ap1 main]$ ln -s $TAFJ_HOME/ext ext

4. Create a symbolic link to $TAFJ_HOME/RulesEngine:

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules/com/temenos/tafj/main


[t24user@stak1ap1 main]$ ln -s $TAFJ_HOME/RulesEngine RulesEngine
[t24user@stak1ap1 main]$ ls -l
total 4
lrwxrwxrwx. 1 t24user t24user 23 Sep 7 17:43 ext -> /u01/Temenos/TAFJ/ext
lrwxrwxrwx. 1 t24user t24user 23 Sep 7 17:39 lib -> /u01/Temenos/TAFJ/lib
lrwxrwxrwx. 1 t24user t24user 31 Sep 22 15:13 RulesEngine ->
/u01/Temenos/TAFJ/RulesEngine

5. Copy the file module.xml from TAFJ.

[t24user@stak1ap1 ~]$ cd $JBOSS_HOME/modules/com/temenos/tafj/main


[t24user@stak1ap1 main]$ cp
$TAFJ_HOME/appserver/jboss/jboss6eap/modules/com/temenos/tafj/module.xml
[t24user@stak1ap1 main]$ ls
ext lib module.xml RulesEngine

6. Edit the module.xml file to add the database dependency. You need to add
/RulesEngine/RulesEngine.jar to the <resources> section.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

vi $JBOSS_HOME/modules/com/temenos/tafj/main/module.xml

The old value:

<resource-root path="/ext/TAFJBASIC.jar"/>
<resource-root path="/ext/tComponentFramework.jar"/>
</resources>

The new value:

<resource-root path="/ext/TAFJBASIC.jar"/>
<resource-root path="/ext/tComponentFramework.jar"/>
<resource-root path="/RulesEngine/RulesEngine.jar"/>
</resources>

7. Edit the module.xml file and add the com.oracle.ora12c module as dependency.

vi $JBOSS_HOME/modules/com/temenos/tafj/main/module.xml

The old value:

<dependencies>
<module name="com.temenos.t24"/>
<!--
<module name="com.oracle.ora11g"/>
<module name="com.oracle.ora12c"/>
<module name="com.ibm.db2v10"/>
<module name="com.microsoft.sqlserver"/>
-->

The new value:

<dependencies>
<module name="com.temenos.t24"/>
<module name="com.oracle.ora12c"/>
<!--
<module name="com.oracle.ora11g"/>
<module name="com.oracle.ora12c"/>
<module name="com.ibm.db2v10"/>
<module name="com.microsoft.sqlserver"/>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

-->

4.3.6.4 Configuring host-slave.xml


Domain slave server doesn’t need domain.xml, and host-slave.xml needs to be configured.

In the previous “Domain server groups” topic, we have defined t24-server-group-APP in the
domain.xml file. We need to make the corresponding changes to host-slave.xml.

Procedure

Edit host-slave.xml and provide the new value.

vi $JBOSS_HOME/domain/configuration/host-slave.xml

The old value (remove the sample server definitions):

<servers>
<server name="server-one" group="main-server-group"/>
<server name="server-two" group="other-server-group">
<!-- server-two avoids port conflicts by incrementing the ports
in the default socket-group declared in the server-group -->
<socket-bindings port-offset="150"/>
</server>
</servers>

The new value:

Note: You need to customize your JVM heap size and permgen space according to your server capacity.

For slave server 1:

<servers>
<server name="t24-server-one-APP" group="t24-server-group-APP"
auto-start="true">
<jvm name="t24-server-one-APP" debug-enabled="false">
<heap size="8192m" max-size="8192m"/>
<jvm-options>
<option value="-Djboss.tx.node.id=t24-server-one-APP-
node"/>
</jvm-options>
</jvm>
</server>
</servers>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

For slave server 2:

<servers>
<server name="t24-server-two-APP" group="t24-server-group-APP"
auto-start="true">
<jvm name="t24-server-two-APP" debug-enabled="false">
<heap size="8192m" max-size="8192m"/>
<jvm-options>
<option value="-Djboss.tx.node.id=t24-server-two-APP-
node"/>
</jvm-options>
</jvm>
</server>
</servers>

4.4 Verifying JBoss Domain cluster


Procedure

1. Start JBoss Domain controller.


2. Start JBoss Slave servers.
3. Open the following URL in your web browser and log in with the administrative user and
password: http://domain_server_IP:9990/console

4. Click the Runtime tab. Server group “t24-server-group-APP”, server "t24-server-one-APP" on


Slave server 1 and sever "t24-server-two-APP" will appear on the page.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4.5 Deploying an ActiveMQ resource adapter


By installing the ActiveMQ resource adapter, you make it possible for message-driven beans and servlets
to communicate through an external JBoss A-MQ broker instance. The JBoss A-MQ broker can thus be
used as the underlying messaging system in the container.

4.5.1 Copying the resource adapter file


You can find the ActiveMQ resource adapter archive file in your JBoss A-MQ installation folder.

Procedure

1. Unzip apache-activemq-5.11.0.redhat-630262-bin.zip file.


2. Under the lib/optional directory, locate the activemq-rar-5.11.0.redhat-630262.rar file,
which is the resource adapter file.

[t24user@gvastak1mq1 JBoss]$ ls jboss-a-mq-6.3.0.redhat-262/extras


apache-activemq-5.11.0.redhat-630262-bin.zip
jasypt
[t24user@gvastak1mq1 JBoss]$ cp jboss-a-mq-6.3.0.redhat-262/extras/apache-
activemq-5.11.0.redhat-630262-bin.zip /tmp
[t24user@gvastak1mq1 JBoss]$ cd /tmp
[t24user@gvastak1mq1 tmp]$ unzip apache-activemq-5.11.0.redhat-630262-
bin.zip
[t24user@gvastak1mq1 tmp]$ cd apache-activemq-5.11.0.redhat-
630262/lib/optional
[t24user@gvastak1mq1 optional]$ ls activemq-rar-5.11.0.redhat-630262.rar
activemq-rar-5.11.0.redhat-630262.rar

4.5.2 Deploying resource adapter


Procedure

1. Open Domain console page: http://domain_server_IP:9990/console


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

2. Click the Deployments tab and then click Add.

3. Click Next.

A new panel opens.

4. Select the activemq-rar-5.11.0.redhat-630262.rar file and click Next.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

5. Click Finish.
ActiveMQ resource adapter has been added to the repository.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

6. Highlight the activemq-rar-5.11.0.redhat-630262.rar row and click Assign.

7. Select the t24-server-group-APP server group and click Save.

8. The server group t24-server-group-APP has got one deployment now.

The activemq-rar-5.11.0.redhat-630262.rar file has been deployed successfully.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

4.6 Deploying TAFJJEE application to JBoss


TAFJ Enterprise Archive (TAFJJEE_EAR.EAR) provides a set of components required to interact with T24 to
perform different operations. You need to modify the TAFJJEE_EAR.ear file to make it work with Active
MQ.

Procedure

1. Open the TAFJJEE_EAR.ear archive file and modify TAFJJEE_EAR.ear\TAFJJEE_MDB.jar\META-


INF\jboss-ejb3.xml to enable MDB to work with Active MQ. For more information on the
modified jboss-ejb3.xml content, see TAFJJEE_EAR.ear modification for Active MQ.
2. Open the Domain console page, which is available at http://domain_server_IP:9990/console.
3. Click the Deployments tab and then click Add.

4. Choose the TAFJJEE_EAR.ear file and click Next.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

5. Click Finish.

TAFJJEE_EAR.ear has been saved to the repository.

6. Select the TAFJJEE_EAR.ear row and then click Assign.

7. Select the t24-server-group-APP sever group and click Assign.

TAFJJEE_EAR.ear has been assigned to the t24-server-group-APP server group.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

8. Open the following URL: http://Slave_1_IP:8080/TAFJEE/. If the TAFJEE servlet is loaded,


TAFJJEE_EAR.ear has been deployed successfully.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

5 Web Tier configuration

5.1 Prerequisites

This chapter assumes that the JBoss Domain cluster has already been installed on the Web layer. For more
information on the prerequisite software, see Third-party software.

The following sections describe how to configure T24 in JBoss Domain cluster in Web Tier.

5.2 Domain Master Server configuration

5.2.1 Setting up environment variables


As this document is for JBoss domain cluster T24 deployment, so you need to edit the
$JBOSS_HOME/bin/domain.conf file to set up environment variables (for standalone deployment, you
need to edit $JBOSS_HOME/bin/standalone.conf).
Procedure
1. Open the domain.conf file in your text editor.

[t24user@gvastak1wb1 ~]$ vi $JBOSS_HOME/bin/domain.conf

2. Enter the following configuration:

else
echo "JAVA_OPTS already set in environment; overriding default settings
with values: $JAVA_OPTS"
fi

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

5.2.2 Configuring domain.xml

5.2.2.1 Domain Controller background


A domain controller is the JBoss EAP server instance that acts as a central management point for a
domain.

By default, the central management policy is stored in the


JBOSS_HOME/domain/configuration/domain.xml file.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

5.2.2.2 Domain Profiles


The domain.xml file contains profile configurations available for use by the servers in the domain. A
profile contains the detailed settings of the various subsystems available in that profile.

The domain.xml file is a large xml file, which makes it hard to read. It contains 4 profiles:

 <profile name="default"> … </profile>

 <profile name="ha"> … </profile>

 <profile name="full">… </profile>

 <profile name="full-ha">… </profile>


We are using the full-ha profile only, so you can completely ignore the other 3 profiles. For simplicity
you can optionally remove the other 3 profiles if they are not used. We need to create a T24 Web layer
full-ha profile. You can copy the full-ha XML block or rename it to full-ha-T24-WEB.

vi $JBOSS_HOME/domain/configuration/domain.xml

The following is the required profile, which is based on full-ha profile:

<profiles>
<profile name="full-ha-T24-WEB">
… …
</profile>
</profiles>

5.2.2.3 Domain socket binding groups


Socket bindings and socket binding groups allow you to define network ports and their relationship to the
networking interfaces.
The domain.xml file contains 4 socket-binding-groups:

 <socket-binding-group name="standard-sockets" default-interface="public"> …


</socket-binding-group>

 <socket-binding-group name="ha-sockets" default-interface="public"> … </socket-


binding-group>

 <socket-binding-group name="full-sockets" default-interface="public"> …


</socket-binding-group>

 <socket-binding-group name="full-ha-sockets" default-interface="public"> …


</socket-binding-group>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

We are using full-ha-sockets only, so you can completely ignore the other 3 socket groups. For
simplicity, you can optionally remove the other 3 socket groups.

vi $JBOSS_HOME/domain/configuration/domain.xml

The following is the required profile, which is based on full-ha profile:

<socket-binding-groups>
<socket-binding-group name="full-ha-sockets" default-
interface="public">
… …
</socket-binding-group>
</socket-binding-groups>

5.2.2.4 Domain server groups


A server group is a collection of server instances that are managed and configured as one. In a managed
domain, every application server instance belongs to a server group, even if it is the only member. The
server instances in a group share the same profile configuration and deployed content.
You need to create a new server group t24-server-group-WEB which uses full-ha-T24-WEB profile.

You need to remove the sample server groups in the default domain.xml file and replace them with the
new server group definition.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value (remove the xml block of the server group definition which is not used):

<server-groups>
<server-group name="main-server-group" profile="full">
<jvm name="default">
<heap size="1000m" max-size="1000m"/>
<permgen max-size="256m"/>
</jvm>
<socket-binding-group ref="full-sockets"/>
</server-group>
<server-group name="other-server-group" profile="full-ha">
<jvm name="default">
<heap size="1000m" max-size="1000m"/>
<permgen max-size="256m"/>
</jvm>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<socket-binding-group ref="full-ha-sockets"/>
</server-group>
</server-groups>

The new value:


Note: You need to customize your JVM heap size and permgen space according to your server capacity.

<server-groups>
<server-group name="t24-server-group-WEB" profile="full-ha-T24-
WEB">
<jvm name="t24-server-group-WEB ">
<heap size="8092m" max-size="8092m"/>
</jvm>
<socket-binding-group ref="full-ha-sockets"/>
</server-group>
</server-groups>

5.2.2.5 Configuring system-properties


You need to add the following properties:

 file.encoding

 java.security.egd

This is to fix the java.sql.SQLRecoverableException: I/O Exception: Connection reset


error. The error occurs on some RedHat distributions.

 org.apache.tomcat.util.http.Parameters.MAX_COUNT
The maximum number of parameters that can be parsed in a post body. If exceeded, parsing fails
using an IllegalStateException. The default value is 512 parameters.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value:

<system-properties>
<!-- IPv4 is not required, but setting this helps avoid unintended
use of IPv6 -->
<property name="java.net.preferIPv4Stack" value="true"/>
</system-properties>

The new value:


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<system-properties>
<property name="java.net.preferIPv4Stack" value="true"/>
<property name="file.encoding" value="UTF-8"/>
<property name="java.security.egd"
value="file:/dev/../dev/urandom"/>
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT"
value="9999"/>
</system-properties>

5.2.2.6 Configuring transactions


Procedure
1. Under <profile name="full-ha-T24-WEB">, search for urn:jboss:domain:transactions.
2. Add the jboss.tx.node.id attribute for cluster environment.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value:

<subsystem xmlns="urn:jboss:domain:transactions:1.5">
<core-environment>
<process-id>
<uuid/>
</process-id>
</core-environment>

The new value:

<subsystem xmlns="urn:jboss:domain:transactions:1.5">
<core-environment node-
identifier="${jboss.tx.node.id}" >
<process-id>
<uuid/>
</process-id>
</core-environment>

5.2.2.7 Configuring MDB default resource adapter


The default Message bean resource adapter is HornetQ adapter. It needs to be changed to JBoss A-MQ.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

Under <profile name="full-ha-T24-WEB">, search for urn:jboss:domain:ejb3. Add T24 EJB bean
pools definition.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value:

<subsystem xmlns=" urn:jboss:domain:ejb3:5.0">


… …
<mdb>
<resource-adapter-ref resource-adapter-name="${ejb.resource-
adapter-name:activemq-ra.rar}"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>

The new value:

<subsystem xmlns="urn:jboss:domain:ejb3:1.5">
… …
<mdb>
<resource-adapter-ref resource-adapter-name="${ejb.resource-
adapter-name:activemq-rar.rar}"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>

5.2.2.8 Disabling default Connection Factory


The default message bean resource adapter is HornetQ adapter. It needs to be changed to JBoss A-MQ.

Procedure

1. Under <profile name="full-ha-T24-WEB">, search for urn:jboss:domain:messaging-


activemq.
2. Rename the default Connection Factory name.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:2.0">
… …
<connection-factory name="InVmConnectionFactory"
entries="java:/ConnectionFactory" connectors="in-vm"/>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

The new value:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:2.0">
… …
<connection-factory name="InVmConnectionFactory"
entries="java:/ConnectionFactory_dummy" connectors="in-vm"/>

5.2.2.9 Configuring distributed queues


Assume you have already configured a HA JBoss A-MQ cluster. T24 distributed queues are configured to
use Active MQ. The following information is needed for JBoss A-MQ connection:

 JBoss A-MQ administrative user name and password. In this example, use admin as user name
and admin as password.
 JBoss A-MQ master server host IP address. In this example 10.42.17.22 is used.
 JBoss A-MQ slave host IP address. In this example 10.42.17.23 is used.
 ActiveMQ resource adapter is activemq-rar-5.11.0.redhat-630262.rar. By installing the
ActiveMQ resource adapter, you make it possible for message driven beans and servlets to
communicate through an external JBoss A-MQ broker instance.

Procedure

1. Under <profile name="full-ha-T24-WEB">, search for urn:jboss:domain:resource-


adapters.
2. Add T24 message driven beans definition.

vi $JBOSS_HOME/domain/configuration/domain.xml

The old value: (replace the old value with the new value)

<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0"/>

The new value: (replace the highlighted user name, password, IP addresses with your Active MQ
connection values)

<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
<resource-adapters>
<resource-adapter id="activemq-rar.rar">
<archive>
activemq-rar-5.11.0.redhat-630262.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="Password">
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

admin
</config-property>
<config-property name="UserName">
admin
</config-property>
<config-property name="ServerUrl">
failover:(tcp://10.42.17.20:61616?jms.rmIdFromConnectionId=true&amp;soLinger=0,t
cp://10.42.17.21:61616?jms.rmIdFromConnectionId=true&amp;soLinger=0)
</config-property>
<connection-definitions>
<connection-definition class-
name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-
name="java:/ConnectionFactory" enabled="true" pool-name="ConnectionFactory">
<xa-pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>false</prefill>
<is-same-rm-override>false</is-same-rm-
override>
</xa-pool>
<recovery>
<recover-credential>
<user-name>admin</user-name>
<password>admin</password>
</recover-credential>
</recovery>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24BROWSERQueue" use-java-context="true" pool-
name="t24BROWSERQueue">
<config-property name="PhysicalName">
t24BROWSERQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24OFSQueue" use-java-context="true" pool-name="t24OFSQueue">
<config-property name="PhysicalName">
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

t24OFSQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24OFSReplyQueue" use-java-context="true" pool-
name="t24OFSReplyQueue">
<config-property name="PhysicalName">
t24OFSReplyQueue
</config-property>
</admin-object>
<admin-object class-
name="org.apache.activemq.command.ActiveMQQueue" jndi-
name="java:/queue/t24BROWSERReplyQueue" use-java-context="true" pool-
name="t24BROWSERReplyQueue">
<config-property name="PhysicalName">
t24BROWSERReplyQueue
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>

5.3 Configuring a domain slave server


Domain slave server doesn’t need domain.xml. You need to configure the host-slave.xml file.

5.3.1 Configuring host-slave.xml


In the previous “Domain server groups” topic, we have defined t24-server-group-WEB in the
domain.xml file. We need to make the corresponding changes to host-slave.xml.

Edit host-slave.xml and provide the new value:

vi $JBOSS_HOME/domain/configuration/host-slave.xml

The old value: (remove the sample server definitions)

<servers>
<server name="server-one" group="main-server-group"/>
<server name="server-two" group="other-server-group">
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<!-- server-two avoids port conflicts by incrementing the ports


in
the default socket-group declared in the server-group -->
<socket-bindings port-offset="150"/>
</server>
</servers>

The new value:

Note: You need to customize your JVM heap size according to your server capacity.

For slave server 1:

<servers>
<server name="t24-server-one-WEB" group="t24-server-group-WEB"
auto-start="true">
<jvm name="t24-server-one-WEB" debug-enabled="false">
<heap size="8192m" max-size="8192m"/>
<jvm-options>
<option value="-Djboss.tx.node.id=t24-server-one-WEB"/>
</jvm-options>
</jvm>
</server>
</servers>

For slave server 2:

<servers>
<server name="t24-server-two-WEB" group="t24-server-group-WEB"
auto-start="true">
<jvm name="t24-server-two-WEB" debug-enabled="false">
<heap size="8192m" max-size="8192m"/>
<jvm-options>
<option value="-Djboss.tx.node.id=t24-server-two-WEB"/>
</jvm-options>
</jvm>
</server>
</servers>

5.4 Verifying JBoss domain cluster on the Web layer


Procedure
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

1. Start JBoss Domain controller.


2. Start JBoss Slave servers.
3. Open the following URL in your web browser. Log in with the administrative user and password.
http://domain_server_IP:9990/console

4. Click the Runtime tab and click the server group t24-server-group-WEB. Servers t24-server-
one-WEB on slave server 1 and sever t24-server-two-WEB appear on the page.

5.5 Deploying ActiveMQ resource adapter

5.5.1 Copying the resource adapter file


To find a copy of ActiveMQ resource adapter activemq-rar-5.11.0.redhat-630262.rar file, see
Copying the resource adapter file

5.5.2 Deploying resource adapter


Procedure

1. Open the domain console page that is available at http://domain_server_IP:9990/console.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

2. Click the Deployments tab and then click Add.

A wizard opens.

3. Click Next.

4. Select the activemq-rar-5.11.0.redhat-630262.rar file and click Next.

The file is displayed in the wizard.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

5. Click Finish.

ActiveMQ resource adapter has been added to the repository.

6. Highlight the activemq-rar-5.11.0.redhat-630262.rar row and then click Assign.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

7. Select server group t24-server-group-WEB and then click Assign.

8. Server group t24-server-group-WEB has got one deployment now.

The activemq-rar-5.11.0.redhat-630262.rar file has been deployed successfully.

5.6 Deploying BrowserWeb application to JBoss


Procedure

1. Open the Domain console page that is available at http://domain_server_IP:9990/console.


Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

2. Click the Deployments tab and then click Add.

3. Click Browse and choose the BrowserWeb.war file. Click Next.

4. Click Finish.
BrowserWeb.war has been saved to the repository.
5. Select the BrowserWeb.war row and click Assign.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

6. Select sever group t24-server-group-WEB and click Save.

The browser war file has been assigned to the t24-server-group-WEB group.

7. Open the following URL in your web browser: http://Slave1_IP_address:8080/BrowserWeb/

8. Once you are logged in, this means that the BrowserWeb.war file has been deployed successfully.
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

6 Appendix

6.1 TAFJJEE_EAR.ear for Active MQ


You need to modify the TAFJJEE_EAR.ear file to make it work with Active MQ.

Open the TAFJJEE_EAR.ear archive file and edit the TAFJJEE_EAR.ear\TAFJJEE_MDB.jar\META-


INF\jboss-ejb3.xml file to enable MDB to work with Active MQ.

The following is an example the jboss-ejb3.xml file after modification.

<?xml version="1.0"?>
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xmlns:p="urn:ejb-pool:1.0" xmlns:tx="urn:trans-timeout" xmlns:mdb="urn:resource-adapter-
binding"
xmlns:jee="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee
http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-
jar_3_1.xsd
urn:trans-timeout http://www.jboss.org/j2ee/schema/trans-timeout-1_0.xsd">
<enterprise-beans>

<message-driven>
<ejb-name>OFSTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>

<activation-config-property-name>destination</activation-config-
property-name>

<activation-config-property-value>t24OFSQueue</activation-config-
property-value>

</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24OFSReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>BROWSERTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24BROWSERQueue</activation-config-
property-value>

</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>

</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>

<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>

<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24BROWSERReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<message-driven>
<ejb-name>ARCMOBTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24ARCMOBQueue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>

</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>

<jndi-name>java:/queue/t24ARCMOBReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>TWSTransactedMDB</ejb-name>

<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<activation-config-property-value>t24TWSQueue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24TWSReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>TCIBTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>

<activation-config-property-name>destination</activation-config-
property-name>

<activation-config-property-value>t24TCIBQueue</activation-config-
property-value>

</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>

</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24TCIBReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>TCIBCORPTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>

<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24TCIBCORPQueue</activation-
config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>

<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>

<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>

<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24TCIBCORPReplyQueue</jndi-name>
</message-destination-ref>

</message-driven>
<message-driven>
<ejb-name>TCIBWEALTHTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24TCIBWEALTHQueue</activation-
config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24TCIBWEALTHReplyQueue</jndi-name>
</message-destination-ref>

</message-driven>

<message-driven>

<ejb-name>CallAtTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>

<activation-config-property-name>destinationType</activation-config-
property-name>

<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>

</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24CALLATQueue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24CALLATReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>AMLTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24AMLQueue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>

<activation-config-property-name>maxSession</activation-config-
property-name>

<activation-config-property-value>20</activation-config-property-
value>

</activation-config-property>
</activation-config>
<resource-ref>

<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>

</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24AMLReplyQueue</jndi-name>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>TPSTransactedMDB</ejb-name>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>

<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24AMLQueue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>

<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>

<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24TPSReplyQueue</jndi-name>

</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>SEATTransactedMDB</ejb-name>
<activation-config>

<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>t24SEATQueue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxSession</activation-config-
property-name>
<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
</activation-config>
<resource-ref>

<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/JmsXA</jndi-name>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>jms/ReplyQueue</message-destination-ref-name>
<jndi-name>java:/queue/t24SEATReplyQueue</jndi-name>
</message-destination-ref>
</message-driven>

<message-driven>
<ejb-name>TAFJPhantomListenerMDB</ejb-name>

<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>

<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-
value>java:/queue/t24EXECQueue</activation-config-property-value>
</activation-config-property>
<activation-config-property>

<activation-config-property-name>maxSession</activation-config-
property-name>

<activation-config-property-value>20</activation-config-property-
value>
</activation-config-property>
<!-- to be used when a remote jca adapter is defined to have local scope
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

for Phantom <activation-config-property> <activation-config-property-


name>connectorClassName</activation-config-property-name>
<activation-config-property-
value>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</activation-config-property-value>
</activation-config-property> -->
<activation-config-property>
<activation-config-property-name>connectorClassName</activation-config-property-name>
<activation-config-property-
value>org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory</activation-config-
property-value>
</activation-config-property>
</activation-config>
<resource-ref>
<res-ref-name>jms/TAFJQueueConnectionFactory</res-ref-name>

<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/ConnectionFactory</jndi-name>
</resource-ref>
<resource-ref>
<res-ref-name>jms/t24EXECQueue</res-ref-name>
<res-type>javax.jms.Queue</res-type>
<jndi-name>java:/queue/t24EXECQueue</jndi-name>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/t24DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/jdbc/t24DS</jndi-name>

</resource-ref>
<resource-ref>
<res-ref-name>jdbc/t24RODataSource</res-ref-name>

<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/jdbc/t24RODS</jndi-name>
</resource-ref>

<resource-ref>
<res-ref-name>jdbc/t24LockingDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>

<jndi-name>java:/jdbc/t24LockingDS</jndi-name>
</resource-ref>
<resource-ref>

<res-ref-name>jms/TopicConnectionFactory</res-ref-name>
<res-type>javax.jms.ConnectionFactory</res-type>
<jndi-name>java:/ConnectionFactory</jndi-name>
</resource-ref>
<resource-ref>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<res-ref-name>jms/tecEventsTopic</res-ref-name>
<res-type>javax.jms.Queue</res-type>
<jndi-name>java:/topic/tecEventsTopic</jndi-name>
</resource-ref>
</message-driven>
</enterprise-beans>

<assembly-descriptor>
<!-- Custom resource adapter example <mdb:resource-adapter-binding> <jee:ejb-
name>OFSTransactedMDB</jee:ejb-name>
<mdb:resource-adapter-name>hornetq-ra</mdb:resource-adapter-name> </mdb:resource-
adapter-binding> -->
<mdb:resource-adapter-binding>

<jee:ejb-name>TAFJPhantomListenerMDB</jee:ejb-name>
<mdb:resource-adapter-name>activemq-ra</mdb:resource-adapter-name>
</mdb:resource-adapter-binding>
<p:pool>
<ejb-name>OFSTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>ofs-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>
<p:pool>
<ejb-name>BROWSERTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>browser-mdb-strict-max-pool
</p:bean-instance-pool-ref>

</p:pool>
<p:pool>
<ejb-name>ARCMOBTransactedMDB</ejb-name>

<p:bean-instance-pool-ref>arcmob-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>

<p:pool>
<ejb-name>TWSTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>tws-mdb-strict-max-pool

</p:bean-instance-pool-ref>
</p:pool>
<p:pool>

<ejb-name>TCIBTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>tcib-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>
<p:pool>
Stack 1 Reference Architecture. Red Hat - JBoss Customer Runbook

<ejb-name>TCIBCORPTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>tcibcorp-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>
<p:pool>
<ejb-name>AMLTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>aml-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>
<p:pool>
<ejb-name>TPSTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>tps-mdb-strict-max-pool

</p:bean-instance-pool-ref>
</p:pool>
<p:pool>
<ejb-name>TCIBWEALTHTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>tcibwealth-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>
<p:pool>
<ejb-name>CallAtTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>callat-mdb-strict-max-pool
</p:bean-instance-pool-ref>
</p:pool>

<p:pool>
<ejb-name>SEATTransactedMDB</ejb-name>
<p:bean-instance-pool-ref>seat-mdb-strict-max-pool

</p:bean-instance-pool-ref>
</p:pool>
<p:pool>

<ejb-name>TAFJPhantomListenerMDB</ejb-name>
<p:bean-instance-pool-ref>phantom-mdb-strict-max-pool
</p:bean-instance-pool-ref>

</p:pool>
</assembly-descriptor>
</jboss:ejb-jar>

You might also like