Platform Framework
R24 AMR | Min(s) read

Java Enterprise Edition File

This section shows the configuration of the mandatory resources and properties (both mandatory and optional) for TAFJJEE_EJB.jar/META-INF/ejb-jar.xml.

The following code block presents the main configuration part for a given EJB called OFSProcessingBean, which is in the <enterprise-beans> section of the ejb-jar.xml. This EJB is associated to the OFSTransactedMDB discussed in the Java Enterprise Edition File section but could also be invoked by direct EJB invocation.

This code uses the mandatory resources and does not use the optional properties.

<session>
<!-- Bean for OFS request processing used by TransactedBean -->
<description>TAFJ OFS Bean</description>
<display-name>TAFJ OFS Bean</display-name>
<ejb-name>OFSProcessingBean</ejb-name>

<business-local>com.temenos.tafj.sb.OFSProcessingBeanLocal</business-local>
<business-remote>com.temenos.tafj.sb.OFSProcessingBeanRemote</business-remote>

<ejb-class>com.temenos.tafj.sb.OFSProcessingBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>

<!-- For tafj session -->
<env-entry>
        <description>OFS OFS Source</description>
        <env-entry-name>ofsSource</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>GCS</env-entry-value>
</env-entry>
<env-entry>
        <env-entry-name>ofsTimeout</env-entry-name>
        <env-entry-type>java.lang.Integer</env-entry-type>
        <env-entry-value>60</env-entry-value>
</env-entry>

<!-- TEC feature -->
<resource-ref>
        <description>Used to get connections to JMS for OFS queues</description>
        <res-ref-name>jms/TopicConnectionFactory</res-ref-name>
        <res-type>javax.jms.ConnectionFactory</res-type>
        <res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
        <description>topic queue</description>
        <res-ref-name>jms/tecEventsTopic</res-ref-name>
        <res-type>javax.jms.Topic</res-type>
        <res-auth>Container</res-auth>
</resource-ref>
<!-- for T24 purpose -->
<resource-ref>
        <description>Used to get connections from T24 jdbc pool</description>
        <res-ref-name>jdbc/t24DataSource</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
        <description>Used to get connections from jdbc locking pool</description>
        <res-ref-name>jdbc/t24LockingDataSource</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
        <description>Used to get connections from T24 jdbc RO pool</description>
        <res-ref-name>jdbc/t24RODataSource</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
</resource-ref>
</session>

The property values in the code block are explained in the following table. You can modify certain values in case of definition of a new channel or specific need.

Xml Path

Example Value

Comment

ejb-name

OFSProcessingBean

Indicates the EJB name. You can modify this value, if required.

business-local

com.temenos.tafj.sb.OFSProcessingBeanLocal

Indicates the EJB TAFJ local interface.

business-remote

com.temenos.tafj.sb.OFSProcessingBeanRemote

Indicates the EJB TAFJ remote interface.

ejb-class

com.temenos.tafj.sb.OFSProcessingBean

Indicates the EJB implementation class.

session-type

Stateless

Indicates the EJB property.

transaction-type

Bean

Indicates the transaction management mode. The bean handles the transaction.

Property Configuration

env-entry\env-entry-name

ofsSource

Indicates the property name, which is used to configure the OFS source.

env-entry\env-entry-value

GCS

Indicates the OFS Source value. You can modify this value, if required.

env-entry\env-entry-name

ofsTimeout

Indicates the property name, which configures the OFS timeout.

env-entry\env-entry-value

60

Indicates the OFS timeout in seconds. You can modify this value, if required.

Resources Reference Configuration

resource-ref\ res-ref-name

jdbc/t24DataSource

Configures the application server JDBC resource for Temenos Transact database. This property needs to be mapped in the application server configuration file.

resource-ref\ res-ref-name

jdbc/t24LockingDataSource

Configures the application server JDBC resource for Temenos Transact locking in database. This property needs to be mapped in the application server configuration file.

resource-ref\ res-ref-name

jdbc/t24RODataSource

Configures the application server JDBC resource for Temenos Transact read-only database. This property needs to be mapped in the application server configuration file.

resource-ref\ res-ref-name

jms/TopicConnectionFactory

Configures the JMS TOPIC factory for TEC events publishing. This property needs to be mapped in the application server configuration file.

resource-ref\ res-ref-name

jms/tecEventsTopic

Configures the JMS TOPIC for TEC events publishing. This property needs to be mapped in the application server configuration file.

Mandatory Properties

The following code block shows the two mandatory properties to be defined for each channel.

<env-entry>
        <description>OFS OFS Source</description>
        <env-entry-name>ofsSource</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>GCS</env-entry-value>
</env-entry>

<env-entry>
        <env-entry-name>ofsTimeout</env-entry-name>
        <env-entry-type>java.lang.Integer</env-entry-type>
        <env-entry-value>60</env-entry-value>
</env-entry>

Optional Properties

The following code block shows the properties which can be added in the <session> section of ejb-jar to refine a specific EJB setup.

<env-entry>
        <description>service name for property injection set by default to EJB prefix to lower case</description>
        <env-entry-name>channelName</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>ofs</env-entry-value>
</env-entry>

<env-entry>
        <!--  Reset the session every x requests. Free up environment and speed up processing -->
        <env-entry-name>resetThreshold</env-entry-name>
        <env-entry-type>java.lang.Integer</env-entry-type>
        <env-entry-value>1</env-entry-value>
</env-entry>

<!-- disable idle session periodic cleaner for this channel when set to false   -->
<env-entry>
        <env-entry-name>idleDetection</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>false</env-entry-value>
</env-entry>

<!--  To be used in conjunction with MonitoringClassifierInterceptor to get a request classification per EJB -->
<env-entry>
        <description>Request type for monitoring classification</description>
        <env-entry-name>requestType</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>SOME-CLASSIFIER</env-entry-value>
</env-entry>
<env-entry>
        <description>Response to send to client in case of OFS timeout</description>
        <env-entry-name>ofsTimeoutMessage</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>OFSERROR_TIMEOUT</env-entry-value>
</env-entry>
<env-entry>
        <description>Response to send to client in case of OFS error</description>
        <env-entry-name>ofsErrorMessage</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>OFSERROR </env-entry-value>
</env-entry>
<env-entry>
        <description>Add -1/NO to the response in case of exception</description>
        <env-entry-name>overrideErrorMessage</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>true</env-entry-value>
</env-entry>
<env-entry>
        <env-entry-name>retryOnStop</env-entry-name>
        <env-entry-type>java.lang.Integer</env-entry-type>
        <env-entry-value>1</env-entry-value>
</env-entry>
<env-entry>
			<env-entry-name>retryOnTransientErrors</env-entry-name>
			<env-entry-type>java.lang.Integer</env-entry-type>
			<env-entry-value>1</env-entry-value>
</env-entry>				
<env-entry>
        <env-entry-name>rollbackContainerOnInitError</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>true</env-entry-value>
</env-entry>
<env-entry>
        <env-entry-name>disableTsr</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>true</env-entry-value>
</env-entry>
<env-entry>
        <env-entry-name>isJTA</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>false</env-entry-value>
</env-entry>
<env-entry>
        <env-entry-name>jtaEBManaged</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>false</env-entry-value>
</env-entry>
<env-entry>
        env-entry-name>rollbackRequestOnStop</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>false</env-entry-value>
</env-entry>
<env-entry>
        <env-entry-name>rollbackRequestOnCommitError</env-entry-name>
        <env-entry-type>java.lang.Boolean</env-entry-type>
        <env-entry-value>false</env-entry-value>
</env-entry>
						
			

The property values in the code block are explained in the following table.

Parameter

Description

Default value

ofsSource

Matches an existing Temenos Transact OFS source. It is a string parameter for request processing.

The default value is None, which indicates that the source needs to be setup.

ofsTimeout

Indicates the time in seconds before request expiration at Temenos Transact level. It is an integer parameter for request processing.

The default value is zero, which indicates no timeout.

channelName

Indicates the prefix to override ejb-jar.xml environment entry values with external configuration.

It is a configuration parameter.

For more details, see EJB-JAR Configuration Override.

Set the EJB prefix to lower case.

For example, ofs for OFSProcessingBean.

resetThreshold

Defines the number of requests after which the session can be reset. This value impacts the performance and is used only for TWS channel. Resetting is disabled if the value is lesser or equal to zero. The values indicate the number of requests after which session must be reset.

For example, the values:

  • 1 = Resets the session after each request TWS setup
  • 100 = Resets the session after every 100 request TWS setup

It is an integer parameter for request processing.

The default value is zero, which indicates no reset.

idleDetection

Indicates if the idle session detection is enabled or not. The values are:

  • true = Enables idle detection
  • false = Disables idle detection

If this property is set to false, the management bean periodic cleaner ignores the sessions associated to this channel. Such idle channels will be shut down.

It is a session management parameter.

true

requestType

Indicates the request type. This values is used as a classifier in TAFJEE monitoring tool. If this property is left blank, the OFS source is used.

It is a string parameter for request monitoring.

None

ofsTimeoutMessage

Displays the response message in case of ofs timeout. For example, OFSERROR_TIMEOUT.

It is a string parameter for error handling.

The default value is Null, which indicates that the TAFJ runtime message related to the ofs timeout exception is sent.

ofsErrorMessage

Displays the response message in case of ofs error. For example, OFSERROR.

It is a string parameter for error handling.

The default value is Null, which indicates that the TAFJ runtime message related to the generic ofs exception is sent.

overrideErrorMessage

Displays the override error message. When it is set to true, the response sent to the customer will be suffixed with -1 or NO in case of exception during the request processing and SEAT OFS source.

It is a Boolean parameter for error handling.

The default value is false, which indicates that the response is sent as is.

retryOnStop

Indicates the number of retries in case of STOP, which helps the system to recover from an error (lock, connection lost and so on). The time between each retry is nRetryCount * nRetryCount second, where nRetryCount is the current retry number.

It is an integer parameter for error handling.

3

retryOnTransientErrors

Indicates the number of retries in case of STOP. When the retries are more than 0, and when there are 'n' number of retries, the system needs to recover from an error (lock, connection lost and so on). The time between each retry is called nRetryCount, where nRetryCount is the current retry number.

It is an integer parameter for error handling.

3 (three retries in case of database related issues).

rollbackContainerOnInitError

Indicates if the container transaction is marked for rollback or not. The values are:

  • true = Container transaction is marked for rollback in case of a JF.INITIALISE.CONNECTION error.
  • false = EJB sends a response reporting initialisation error to the customer.

It is a Boolean parameter for error handling of CMT EJBs.

true

disableTsr

Indicates if a transaction synchronisation registry is enabled to register a callback to release locks on transaction completion. The values are:

  • true = Transaction synchronisation registry is disabled.
  • false = Transaction synchronisation registry is enabled.
The application server must support the TransactionSynchronizationRegistry lookup.

It is a Boolean parameter for request processing of CMT EJBs.

true

jTA

Enables a global transaction support at EJB level when there is a need for 2PC. The values are:

  • true = EB.TRANS local transaction management is disabled.
  • false = EB.TRANS local transaction management is enabled.

The OFS.BULK.MANAGER flag requestCommitted is considered to commit or rollback the transaction for OFS processing. A commit is issued for CallAT processing.

It is a Boolean processing parameter.

false

This value is used to make DB and CALLJEE part of same unit of work for CALLJEE usage in online processing.

jtaEBManaged

Indicates if the global transaction management is enabled from EB.TRANS. The values are:

  • true = Global transaction management is enabled from EB.TRANS.
  • false = JTA transaction is managed at EJB level.

The transaction boundary is delegated to EB.TRANS and not the default OFS.BULK.MANAGER flag requestCommitted for OFS processing or default commit for CallAT processing.

It is a Boolean processing parameter, which is used along with JTA mode to manage 2PC.

false

rollbackRequestOnStop

Indicates if a STOP indicates whether the request needs to be rollback at MDB level for re-delivery or not. The values are:

  • true = Request needs to be rollback at MDB level for re-delivery on STOP.
  • false = Request needs to be rollback at EJB level for re-delivery on STOP.

You need to configure the corresponding MDB to accept re-delivered messages for re-processing.

For more details, see ignoreRedeliveredMessage in Optional Properties in MDB Components Configuration.

It is recommended to do a duplicate check for safe re-processing.

If the error causing the STOP is not solved by the time the request is re-processed, the maximum delivery attempts could be reached at JMS broker level and message is directed to a dead letter queue (poison message).

It is a Boolean parameter for error handling.

false

rollbackRequestOnCommitError

Indicates if a commit error (OFS.BULK.MANAGER requestCommitted attribute not equal to 1) marks the request to be rollback at MDB level for re-delivery. The OBM requestCommitted flag could be valid in JTA mode but the JTA commit can fail and trigger the rollback.

You need to configure the corresponding MDB to accept re-delivered messages for re-processing.

For more details, see ignoreRedeliveredMessage in Optional Properties in MDB Components Configuration.

It is recommended to do a duplicate check for safe re-processing.

If the error causing the commit error is not solved by the time the request is re-processed, the maximum delivery attempts could be reached at JMS broker level and the message is directed to a dead letter queue (poison message).

It is a Boolean parameter for error handling.

false

Copyright © 2020- Temenos Headquarters SA

Published on :
Monday, May 27, 2024 5:10:07 PM IST