You are on page 1of 8

TAFJ-CALLJE E

R22
TAFJ-CALLJE E

Amendment History:

Revisio
Date Amended Name Description
n

28th December TAFJ Development


1 Initial version
2018 Team

TAFJ Development
2 4th January 2018 Incorporated initial comments
Team

3 22nd March 2019 M. Siranjeevi R19 AMR review

12th November
4 Dhanya J Changes to suppress message number
2019

5 24th March 2020 JN. Charpin R20 AMR review

6 12th April 2021 H. Aubert R21 AMR review

29th November Changes to set timeToLive parameter to


7 Dhanya J
2021 messages

8 25th March 2021 Riswana R22 AMR Review

Page 2
TAFJ-CALLJE E

Copyri g h t
Copyright © Temenos Headquarters SA 2009-2022
All rights reserved.
This document contains proprietary information that is protected by copyright. No part of this document may
be reproduced, transmitted, or made available directly or indirectly to a third party without the express
written agreement of TEMENOS UK Limited. Receipt of this material directly TEMENOS UK Limited
constitutes its express permission to copy. Permission to use or copy this document expressly excludes
modifying it for any purpose, or using it to create a derivative therefrom.

Errat a and Com m e n t s


If you have any comments regarding this manual or wish to report any errors in the
documentation, please document them and send them to the address below:
Technology Department

Temenos Headquarters SA
2 Rue de l’Ecole-de-Chimie,
CH - 1205 Geneva,
Switzerland

Tel SB: +41 (0) 22 708 1150


Fax: +41 (0) 22 708 1160

Please include your name, company, address, and telephone and fax numbers, and email
address if applicable. TAFJdev@temenos.com

Page 3
TAFJ-CALLJE E

Table of Contents
Copyright................................................................................................................................................ 3
Errata and Comments............................................................................................................................ 3
CALLJEE................................................................................................................................................ 5
Function parameters............................................................................................................ 5
jmsDestination................................................................................................................. 5
Message.......................................................................................................................... 5
CALLJEE –Suppress message number in TAFJ....................................................................................8
CALLJEE –timeToLive for JMS messages............................................................................................. 8

Page 4
TAFJ-CALLJE E

CALLJEE
CALLJEE function is used to send message(s) to JMS queue and eventually receive a response
depending on the message type and the options provided to the function.

Syntax:

RET.VAL = CALLJEE (jmsDestination, Message)

Limitation:

CALLJEE is not supported in a standalone context since it relies on application server


resources to create the JMS connection and to send / receive message(s) to / from the
targeted queue(s).

Fun c t i o n para m e t e r s

jms D e s t i n a t i o n
The jmsDestination is a multi-valued field (@VM separated) which could define up to 3
parameters:

 Destination queue – Mandatory parameter defining the queue name to send the
message to.

 Connection Factory – Optional parameter, defining the connection factory name to


use to connect to the JMS broker. Defaulted to TAFJQueueConnectionFactory when
undefined.

 Reply queue – Optional parameter, defining the queue name to receive messages
from. Required when “SYNC” mode is enabled, refer to message section.

From a JEE naming perspective, JMS resources names could be JNDI names (physical
name) or EJB resource mapped name (logical name).

Me s s a g e
There are 2 message types,

 Simple message: Simple text message, sent as is to the destination queue.

 Complex message: Multi-value field message with more than 10 fields (@FM
separated), defines the CALLJEE options and the message(s) to send or receive. A
single CALLJEE call could send multiple messages at a time.

Page 5
TAFJ-CALLJE E

<1> JMS type

 The message type, used as a JMS message type on the queue. This gives the
consumer the opportunity to decide whether it wants to consume this type of
message or not. The consumer receiving a message can use the getJMSType()
method (see class javax.jms.Message) to retrieve the message type.

<2> Correlation ID prefix

 The function uses this prefix to set the JMS Correlation ID with the following
syntax:
<Correlation ID prefix>_<message number>

Defaulted to “CALLJEE” when undefined.

The example below sets the following correlation IDs:

1st message (attribute 11)  MSG_ID_PREFIX_1

2nd message (attribute 12)  MSG_ID_PREFIX_2

<3> Processing type

 The following values are supported:

 SYNC: the function send messages to destination and waits for a reply on the
response queue. See timeout attribute 4. Not suitable in a global transaction
context.

 ASYNC: the function send messages to destination, no response expected.

 RECEIVE: no messages sent, the function listen to incoming messages on


the destination, based on the correlation IDs provided in fields <10+n,2>
Message fields at position <10+n,1> are ignored in this mode.
The timeout in <4> is considered in the same way than in SYNC mode.

<4> Timeout

 A total value in milliseconds specifying how long the function waits for all
messages to be processed.

<5> JMS header properties, with pattern: <property.name>=<value>,<property.name>=value

Each property is added as message string property and can be extracted at receiver
level or act as a message filter criteria.

 “timeToLive” – when the property timeToLive=1000 (can be different for


each message posted) is set part of this position then this is applied as the
amount of time in milliseconds the message is expected to live in the
queue before being expired.

Page 6
TAFJ-CALLJE E

<6> Guard queue parameter, with pattern: guardQueueName<VM>timeToLive

 “guardQueueName” is the name of the guard queue.

 “timeToLive” is the amount of time in milliseconds the message is


expected to live in the queue before being expired.
The “guard queue” is used to act as a guard for already delivered messages. Before
a message is effectively sent to the destination, the guard queue is browsed to check
whether the message correlation id is present on the queue. If it is present, the
message is not sent. If not present, the message is sent.
With guard queue enabled, the correlation id prefix in attribute <2> is not required and
any value supplied is ignored. The correlation ID is provided part of the field
message<10+n,2>.
<7> RESERVED

<8> RESERVED

<9> RESERVED

<10> RESERVED

<11> Message 1

<12> Message 2

<10+n>Message ‘n’

In case of guard queue or RECEIVE mode, the messages attributes <10+n> can be multivalued
attributes, following pattern:

<message>@VM<correlation.id>

Or

@VM<correlation.id>

Examples:
DESTINATION= "queue/t24OFSQueue@VMConnectionFactory"
DESTINATION1 = "queue/t24OFSQueue"

MESSAGE=
”TEXTMESSAGE@FM@FM@FM@FM@FMqueue/t24OFSQueueGuarded@VM20000@F
M@FM@FM@FM@FMENQUIRY.SELECT,,INPUTT/123456,%CURRENCY@VMtestCALLJ
EE_GUARDED_1@FMENQUIRY.SELECT,,INPUTT/654321,%CURRENCY@VMtestCALLJ
EE_GUARDED_2”

Page 7
TAFJ-CALLJE E

CALLJEE –Sup pr e s s m e s s a g e nu m b e r in
TAFJ
In case of jms connectors in Mule ESB, there is a limitation that the incoming message must
have the default correlation ID. The system does not recognise if the correlation ID is altered.

In TAFJ CALLJEE, the correlation IDs are generated with a unique message number suffixed
in case of complex messages. This is in case multiple messages are sent.

To overcome the limitation in Mule ESB where only a single message is sent in the 11th
position of the CALLJEE string, the below property is introduced which when set to true
would suppress the message number and send the correlation ID unaltered.

temn.tafj.runtime.suppress.correlation.message.number=false

CALLJEE –tim e T oLiv e for JMS m e s s a g e s


Different TTL timeToLive value can be set for each CALLJEE message posted on a queue,
CALLJEE message position number 5 can now accept timeToLive=<value in ms>.

Page 8

You might also like