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:
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:
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:
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:
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:
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:
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:
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 |
In this topic