The JMS Replier component is used to retrieve messages from a JMS Topic / Queue and send the response to a configured destination after the message is processed by the flow. Using the CPS, the topic or queue from where the message is to be retrieved can be specified. The message received from the destination should have a JMSReplyTo destination set in the JMS message header properties; else the message cannot be processed by JMS Replier. The JMS Replier component sends the JMS message received from a Topic / Queue to another component.
After the message is processed by the downstream components, the JMS message should return to the Input Port of the JMSReplier which sends the processed message to the JMSReplyTo destination set in the JMS message header properties. In case an error occurs while processing the message, the message is sent to the error destination. In case the error destination is not provided, then the message is send to the JMSReplyTo destination set in the JMS message header properties (which may be a temporary destination).
This component can be used to receive Text, Byte or Map messages.
Configuration and Testing
Configure Component
Figure 1: Separate process CPS of JMSReplier
General Configuration
JMS Implementation
The JMS providers supported are Fiorano MQ and JBoss.
For the proper working of the JBoss JMS provider, the following jars should be explicitly added as resources to the component:
JBoss:
- %JBOSS_HOME%\client\jnp-client.jar
- %JBOSS_HOME%\client\jboss-common-client.jar
- %JBOSS_HOME%\client\jbossmq-client.jar
- %JBOSS_HOME%\client\jboss-client.jar
JBOSS6.0.0:
Along with the JBoss jars mentioned above, add the below jars as well:
- hornetq-core-2.2.13.Final.jar
- hornetq-jms-2.2.13.Final.jar
- hornetq-ra-2.2.13.Final.jar
- jboss-as-build-config.jar
- jboss-ejb-api_3.1_spec.jar
- jboss-ejb-client.jar
- jboss-logging.jar
- jboss-marshalling.jar
- jboss-marshalling-river.jar
- jboss-remote-naming.jar
- jboss-remoting.jar
- jboss-sasl.jar
- jboss-transaction-api_1.1_spec.jar
- jgroups.jar
- netty.jar
- xnio-api.jar
- xnio-nio.jar
Connection Configuration
Please refer the respective section in JMSIn4.0 page.
Proxy Settings
Please refer the respective section in JMSIn4.0 page.
Context / JNDI
JNDI details
The initial context is typically used as a starting point.
Initial Context Properties can be used for creating an initial context. For instance, if JMSReplierService has to connect to FMQ Server using HTTP protocol instead of the default TCP protocol, we can set the property 'TronsportProtocol' with the value 'HTTP'.
In the simplest case, an initial context must be created using the specific implementation and extra parameters required by the implementation. The initial context will be used to look up a name. It is analogous to the root or top of a directory tree for a file system.
Please refer the JNDI Settings section in JMSIn4.0 page for the descriptions.
JMS Properties
ClientID
Client identifier for the connection.
Destination Configuration
Please refer the respective section in JMSIn4.0 page for the information.
Message Selector
The message selector for the messages to be received by consumer.
Name of the topic or queue to subscribe to.
IsDurableSubscriber
This property is used to create a durable subscription when the destination type is Topic.
Default JMSReplyTo Destination Type
- Topic
- Queue
Default JMSReplyTo Destination
If the message does not contain a JMSReply to destination then this will be used. It will not use AutoCreate Destination and other properties. It first does the lookup and if it fails then it creates the destination.
Delay
Time in milliseconds the component will wait before accepting the second request.
Retain Application Context
Specifies whether the application context has to be retained or not.
Session Configuration
Acknowledge Mode
Please refer the respective section in JMSIn4.0 page for the information.
- Auto Acknowledge
- Client Acknowledge
- Dups Ok Acknowledge
Message Ack Count
Number of successfully processed messages after which message is acknowledged in clientAckMode.
Message configuration
Input Message Configuration
For Input Message Configuration and Output Message Configuration, please refer the Message Type configuration section in JMSIn4.0 page.
Message Properties
Producer Configuration
Please refer the respective section in JMSIn4.0 page for the information.
Expert Properties
If Expert Properties are enabled (Show Expert Properties check box is selected), the below properties will be visible for configuration:
- SSL Security
- Elements to Decrypt
- Elements to Encrypt
Please refer the respective section in Common Configurations page for more information.
Secured Connections to Fiorano MQ (SSL)
If Fiorano MQ server uses SSL then, provide the following properties in Initial Context Properties:
- java.naming.security.protocol
Name of the security protocol used to create secure connections with the MQ server.
Valid value: The possible values that this variable can take are PHAOS_SSL and SUN_SSL.
SecurityManager(optional)
The Security Manager implementation used to create secure connections [HTTPS or SSL] with the MQ server. The manager class should be an implementation of the fiorano.jms.runtime.IFMQSecurityManager interface provided by FioranoMQ.
Valid value: Qualified class name of security Manager class.
Error Handling Configuration
Error Destination Type
To specify the destination; choose from the options Topic and Queue.
Error Destination
Destination to which response is send in case of error.
This is an optional configuration; in case a value is not specified, then error messages are send to JMSReplyTo destination set in the incoming Message Header properties.
Number of Retries
Number of retries in case of Connection Error.
Retry Interval
Time interval between tries (milli seconds) in case of Connection Error.
Functional Demonstration
Scenario
Sending a request from JMSRequestor to the JMSReplier in plain text format;if successful, the plain text message gets processed as output from JMSReplier back to JMSRequestor.
Configure both the components as described in the Configuration and Testing section above and use Feeder and Display components to send sample input and check the response respectively.
Figure 2: Event Process demonstrating JMSRequestor and JMSReplier functionalities
Sample Input
Below is the sample generated from the Feeder.
Output
After running the Event Process, output will be displayed in the Display component if the message is successfully sent.
Figure 3: Output as seen in the Display component window