Component Architecture
This section provides the component architecture of the Phantom channel in the TAFJ environment.
The PhantomListener is a dedicated bean managed MDB, which listens to a JMS queue called EXEC queue and invokes a Temenos Transact code directly through a tRun invocation based on the message received.
By default, only the START.TSM command is authorised. However, you can change this by setting the temn.tafj.appserver.execute.servlet.allowed.commands property as a coma separated list of authorised commands as shown below.
temn.tafj.appserver.execute.servlet.allowed.commands=START.TSM,START.CUSTOM.BATCH
This command runs Temenos Transact services and programs within the application server context thread pool.
To start TSM, you can send a START.TSM message to the EXEC Queue. A Phantom MDB thread consumes this message and executes the START.TSM program. If a COB record exists in TSA.SERVICE with field START set to true, TSM program automatically sends the tSA 1 command to the EXEC Queue (JBC command EXECUTE PHANTOM tSA1). Another Phantom MDB thread will then consume this message and process the COB.
In multi-server architecture, a tSM (running per server) and tSM managing tSAs run on the same Java Virtual Machine (JVM). Hence, the JMS resources associated to the PhantomListerner must either:
- Be local (Temenos Transact JMS Connection factory and Temenos Transact EXEC queue) and not part of a JMS cluster or
- Define a unique message selector per server instance when using a shared phantom queue.
The tSM needs to post message to the EXEC queue defined in the same server.
Please refer to the related application server documentation and scripts provided within TAFJ release to configure this channel.
Temenos Transact manages a JTA transaction through EB.TRANS invocation to commit or rollback database operations. In case of multiple JEE resources involved in a Temenos Transact transaction, for example Database writes and JMS invocation (JBC command CALLJEE), the related JEE resources need to support JTA or XA transaction. For example, an Integration Framework (IF) service (with the connection factory defined at IF application level) need to support XA to make JMS processing a part of the Temenos Transact transaction.
In this topic