Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

The Java Message Service (JMS) is a messaging standard that allows application components based on the Java Platform Enterprise Edition (Java EE) to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous. 

As per FIXEdge Java, JMS endpoints allow you to establish a connection with JMS - message providers and receive/send data from/to them. JMS endpoints can work with queues and topics. Each endpoint has a unique name. A Each JMS endpoint is routing routes messages only in one way: it can be configured either producer a Producer or consumera Consumer. 

During FIXEdge Java server start-up, it initiates endpoints that are defined in the jms-adaptor.properties configuration file. 

The list of active endpoints is defined by the jms.adaptor.ClientNames ClientNames property.  If If the jms.adaptor.ClientNames property is specified with an empty value, then none of the clients are active.

To add a new JMS endpoint to , the following steps should be taken:

  1. In the jms-adaptor.properties

...

  1. Define the JMS connection configuration. JMS connection properties have the  configuration define the JMS endpoint configuration and specify its name in the jms.adaptor.Connection.ClientNames property.
  2. In the jms-adaptor.properties configuration file define the JMS connection configuration. JMS connection properties have the jms.adaptor.Connection.[ConnectionName] prefix, where where the [ConnectionName] is a unique identifier/name of this connection and it is used to link it with JMS endpoint configuration. The . Each JMS connection has a set of predefined properties (specified in the table below) but available configuration properties but it can be extended with custom ones (see the samples below).
  3. Define the JMS endpoint configuration and add its name to the jms.adaptor.ClientNames list.

Configuration properties

...

  1. .

Configuration properties 
Anchor
Configuration properties
Configuration properties

Info

It is possible to use environment variables in configuration.

For example, jms.adaptor.Connection.[ConnectionName].Password = ${CONNECTION_PASSWORD}, where CONNECTION_PASSWORD is the name of the environment variable.

The JMS adaptor should be configured using the following properties:

Property Name

Description

RequiredDefault Value
Common adapter

Adapter parameters

jms.adaptor.ClientNames

A

This property defines the comma-delimited list of JMS endpoints.

A separate configuration section for each

Each listed client should be

specified

configured in a separate section.

Y-

jms.adaptor.ConnectionNames

A

This property defines the comma-delimited list of JMS TA connections.

A separate configuration section for each

Each listed connection should be

specified

configured in a separate section.

Y
Connections
-

Connection parameters

jms.adaptor.Connection.[ConnectionName].

InitialContextFactory

JNDI option. The fully qualified class name of the factory class that will create the initial context. An initial context is the starting point for naming operations.

C, required if JNDI mechanism is used

jms.adaptor.Connection.[ConnectionName].ProviderURI

JMS provider URI that defines where the created connection is to connect to as well as the protocol that should be used, for example, TCP/IP. Additionally,

ProviderURI

This property defines the URI of the JMS provider to connect to and the protocol to use, e.g. TCP/IP.

Also, the configuration information can be encoded in the URI.

Y-

jms.adaptor.Connection.[ConnectionName].User

User name

This property defines the name of the user.

Y-

jms.adaptor.Connection.[ConnectionName].Password

User passwordY

jms.adaptor.Connection.[ConnectionName].ConnectionFactory

JNDI option. The connection factory object name in the JNDI objects store.C, required if JNDI mechanism is used
This property defines the passport of the user.Y-

jms.adaptor.Connection.[ConnectionName].Reconnect

Enables or

This property enables/disables the

reconnect

reconnection procedure for

connection restore.This parameter is used for

JMS brokers that don't support the failover mechanism.

Valid values: true | false

N

false

jms.adaptor.Connection.[ConnectionName].ReconnectTries

Number

This property defines the number of reconnect tries

or

.

Valid values: int | -1

for an

for an infinite number of attempts

N3

jms.adaptor.Connection.[ConnectionName].ReconnectInterval

Fixed

This property defines the fixed interval in milliseconds between reconnection attempts.

Valid values: int

N2000
Clients parameters

jms.adaptor.

Client

Connection.[

ClientName

ConnectionName].

ConnectionNameName of the primary connection used by the client. The connection should be registered in the ConnectionNames enumeration and has all required parameters.Y

jms.adaptor.Client.[ClientName].StorageDir

Directory where the persistence file is stored in case of any communication problem.Y, if the persistent mode is enabled

InitialContextFactory

This property is used for JNDI and defines the fully qualified class name of the factory that will create the initial context.

An initial context is the starting point for naming operations.

Y

(if the JNDI mechanism is used)

-

jms.adaptor.Connection.[ConnectionName].ConnectionFactory

This property defines the connection factory object name in the JNDI objects store.

Y

(if the JNDI mechanism is used)

-

Client parameters

jms.adaptor.Client.[ClientName].

SessionType

Session type:

  • Producer - the session is a message producer
  • Consumer - the session is a message consumer
Y

ConnectionName

This property defines the name of the primary connection used by the client.

The specified connection must be registered in the jms.adaptor.ConnectionNames property and all its required parameters must be specified.

Y-

jms.adaptor.Client.[ClientName].

MessagingMode

Session messaging mode:

Queue - Point-To-Point. Each message is addressed to a specific queue, and receiving clients extract messages from the queue(s) established to hold their messages. Queues retain all messages sent to them until the messages are consumed or until the messages expire.

Topic - Publish/Subscribe. In a pub/sub product or application, clients address messages to a topic. Publishers and subscribers are generally anonymous and may dynamically publish or subscribe to the content hierarchy. The system takes care of the distributing messages arriving from a topic’s multiple publishers to its multiple subscribers. Topics retain messages only as long as it takes to distribute them to current subscribers.Yjms.

StorageDir

This property defines the path to the directory where the persistence file is stored in case of connection problems.

Y

(if the Persist delivery mode is selected)

-

jms.adaptor.Client.[ClientName].

DestinationURIURI of session destination (queue/topic name)

SessionType

This property defines the session role.

Valid values: Producer | Consumer

Y-

jms.adaptor.Client.[ClientName].

DeliveryMode

Specifies whether the sent messages are lost if the JMS provider fails.

Persist - instructs the JMS provider to take extra care to ensure that a message is not lost in transit in case of JMS provider failure. A message sent with this delivery mode is logged to a stable storage when it is sent.

NoPersist - does not require the JMS provider to store the message or otherwise guarantee that it is not lost if the provider fails.

NOTE: used only for Producer sessions.

Yjms.adaptor.JMSTA

MessagingMode

This property defines the session messaging mode.

Valid values: Queue | Topic

When the 'Queue' value is specified then each message is addressed/sent to a specific queue, and consuming clients extract them from the queue(s). Queues retain messages until they are consumed or expired.

When the 'Topic' value is specified then each message is addressed/sent to a topic. Publishers and subscribers are generally anonymous and can dynamically publish or subscribe to the content hierarchy. The system distributes messages arriving from a topic to its subscribers. Topics retain messages until they are distributed to current subscribers.

Y-

jms.adaptor.Client.[ClientName].

TimeToLiveThis value defines a message expiration time (in milliseconds) that is the sum of the message's time-to-live and the GMT when it is sent (for transacted sends, this is the time at which the client sends the message, not the time the transaction is committed). Setting the parameter value to "0" will lead to infinite TTL.Y3000jms.adaptor.JMSTA

DestinationURI

This property specifies the URI of the session destination - the name of the queue or topic.

Valid values: string

Y-

jms.adaptor.Client.[ClientName].DeliveryMode

Anchor
jms.adaptor.Client.[ClientName].DeliveryMode
jms.adaptor.Client.[ClientName].

SessionAckMode

Defines a mode in which the JMS session will acknowledge the messages that it receives and dispatches.

Auto - With this acknowledgment mode, the session automatically acknowledges a client's receipt of a message either when the session has successfully returned from a call to receive or when the message listener the session has called to process the message successfully returns.

Client - With this acknowledgment mode, the client acknowledges a consumed message by calling the message's acknowledge method. Acknowledging a consumed message acknowledges all messages that the session has consumed. When the client acknowledgment mode is used, a client may build up a large number of unacknowledged messages while attempting to process them.

DupsOk - This acknowledgment mode instructs the session to lazily acknowledge the delivery of messages. This is likely to result in the delivery of some duplicate messages if the JMS provider fails, so it should only be used by consumers that can tolerate duplicate messages. The use of this mode can reduce session overhead by minimizing the work the session does to prevent duplicates.

Yjms.

DeliveryMode


This property defines whether sent messages will be lost in case of JMS provider failure. Used for Producers only.

Valid values: Persist | NoPersist

When the 'Persist' value is specified each sent message is logged to a safe and stable storage to recover in case of JMS provider failure.

When the 'NoPersist' value is specified each sent message is not logged so it may be lost in case of JMS provider failure.

Y-

jms.adaptor.JMSTA.Client.[ClientName].

MessageType

JMS Message type used for the session.

Bytes - A stream of interpreted bytes. This message type is for literally encoding a body to match the existing message format.

Text - Data is stored as a string. This message type is useful for exchanging simple text messages and for more complex character data, such as XML documents.

Custom - The ability to use your own message type. This message type is useful for adaptation to already existing systems. For this message type, the jms.adaptor.Client.[ClientName].CustomMessageType property is required.

Yjms.adaptor

TimeToLive

This property defines message expiration time in milliseconds.

The time of message expiration is defined by the sum of the jms.adaptor.JMSTA.Client.[ClientName].TimeToLive property value and the GMT timestamp of message sending.

Valid values: int | 0 for an infinite TTL

Y3000

jms.adaptor.JMSTA.Client.[ClientName].

CustomMessageType

Class of a custom message type implementation. This should be the implementation of one of the interfaces:
com.epam.fixengine.jms.client.consumer.IFromMessageConverter
com.epam.fixengine.jms.client.consumer.IToMessageConverter
- com.epam.fe.converter.SimpleTextMessageWithHeaderConverter

NOTE: used only for Custom message type

Y, if MessageType is Custom

jms.adaptor.Client.[ClientName].Transacted

Sending/consuming of messages in the session is transacted.

true - transacted.

false - not transacted. The value is used by default.

Nfalse

jms.adaptor.Client.[ClientName].TransactionBatchSize

Max number of messages for one transaction. Takes the available number of messages from the queue but not more than that specified in this property.

NOTE: used only if transacted is enabled.

N20

jms.adaptor.Client.[ClientName].QueueSize

Max number of messages in the outgoing endpoint queue. Messages are queued until successfully sent. Waits for space to become available if the queue is full.N100

jms.adaptor.Client.[ClientName].QueuePersistent

Store messages in the file until they are committed which allows restoring and sending messages after a sudden application shutdown.

true – to save messages in the file storage (persistent queue) with parallel saving in memory.

false – to save messages in the in-memory queue. This approach is faster but less safe since some messages may be lost after restart.

Info

'QueuePersistent = true' is used to keep queued messages only in file storage, without parallel storing in memory since the JMS TA 1.3.10 version. 

Ntrue

SessionAckMode

This property defines a mode in which the JMS session will acknowledge the receiving and sending messages.

Valid values: Auto | Client | DupsOk

When the 'Auto' value is specified the session automatically acknowledges the receipt of the message when the session has successfully returned from a call to receive or when the message listener's call to process the message successfully returns.

When the 'Client' value is specified the client acknowledges the receipt of the message by calling the message's acknowledge method. When the 'Client' acknowledgment mode is used the client may accumulate a large number of unacknowledged messages while attempting to process them.

When the 'DupsOk' value is specified the session 'lazily' acknowledges the receipt of the message which leads to duplicate delivery in case of JMS provider failure. This mode must be used only by Consumer sessions which can tolerate duplicated messages.

Y-

jms.adaptor.JMSTA.Client.[ClientName].MessageType

Anchor
#jms.adaptor.JMSTA.Client.[ClientName].MessageType
#jms.adaptor.JMSTA.Client.[ClientName].MessageType

This property defines the JMS message type for the session.

Valid values: Bytes | Text | Custom

When the 'Bytes' value is specified the session operates by the messages in the form of interpreted bytes. This message type is used for encoding the message body in order to match the existing format.

When the 'Text' value is specified the session operates by messages in a String. This message type is used for handling more complex character data, such as XML documents.

When the 'Custom' value is specified the session operates by messages with the custom message type. Custom message types may be used to adapt to already existing systems. If the custom message type is used the jms.adaptor.Client.[ClientName]

.QueueNormalFileSize

After reaching this size, the endpoint waits when the queue will be empty to truncate the file. File size in Mbytes.

NOTE: used only for the persistent queue.

N10

.CustomMessageType property is required.

Y-

jms.adaptor.Client.[ClientName].CustomMessageType

Anchor
jms.adaptor.Client.[ClientName].

QueueMaxFileSize

After reaching this size, the endpoint truncates the file and overwrites the messages that are queued. File size in Mbytes.

NOTE: used only for the persistent queue.

N50

CustomMessageType
jms.adaptor.Client.[ClientName].

DurableSubscription

Durable topic subscriptions allow receiving messages published while the subscriber is not active. Durable subscriptions offer the reliability of queues to the publish/subscribe message domain.

See more here.

true - Subscription is durable.

false - Subscription is not durable.

NOTE:

  • used only for Consumer sessions.
  • checks that Producer sends messages using the Persistent delivery mode.
Nfalse

CustomMessageType


This property defines the class of a custom message type implementation.

Implementation of one of the following interfaces is valid:

  • com.epam.fixengine.jms.client.consumer.IFromMessageConverter
  • com.epam.fixengine.jms.client.consumer.IToMessageConverter
  • com.epam.fe.converter.SimpleTextMessageWithHeaderConverter

Y

(if message type is Custom)

-

jms.adaptor.Client.[ClientName].

DurableSubscriptionNameDurable subscription name.Y, required if DurableSubscription set to true.

Transacted

Anchor
jms.adaptor.Client.[ClientName].Transacted
jms.adaptor.Client.[ClientName].

ConnectionsCount

A number of JMS connections.

The endpoint will open a given amount of connections to the JMS server for the given session to send simultaneously.

NOTE: If a number of connections is greater than 1, there is no guarantee that messages will be placed into JMS in the same order they were received by the endpoint.

N1

Transacted

This property enables/disables sending or receiving session messages in transacted mode.

Valid values: true | false

Nfalse

jms.adaptor.Client.[ClientName].

ThreadsPerConnectionA

TransactionBatchSize

This property defines the maximum number of

threads

messages per

one JMS connection. The endpoint will open a given amount of JMS sessions for each JMS connection to send simultaneously.

NOTE: If the number of threads per connection is greater than 1, there is no guaranty that messages will be placed into JMS in the same order they were received by the adapter.

N1

transaction. An available number of messages less than the TransactionBatchSize valuewill be sent/received from the incoming/outgoing queue.

Used only when Transacted mode is enabled.

Valid values: int

N20

jms.adaptor.Client.[ClientName].

maskPasswordsInStoragesEnable/disable passwords obfuscating.
When enabled, the Password (tag 554) value in the Logon(35=A) message will be substituted with a mask "*****".Ntrue

QueueSize

This property defines the maximum number of messages in the outgoing queue. Used for Producers only.

Valid values: int

N100

jms.adaptor.Client.[ClientName].

startOnloadWhether a JMS endpoint should be started during FIXEdge Java server initialization.Ntruejms

QueuePersistent

Anchor
#jms.adaptor.Client.[ClientName].

startTimeA cron expression that defines a JMS endpoint start time.Njms

QueuePersistent
#jms.adaptor.Client.[ClientName].

stopTimeA cron expression that defines a JMS endpoint stop time.N

jms.adaptor.Client.[ClientName].scheduleTimeZone

A time zone for the start and stop timesN

NOTE: All changes in the properties file are applied only after FixEdge Java server restart.

NOTE: All defined JMS endpoints are started automatically during the FIXEdge Java server initialization by default if there is a defined schedule for them (starting from FEJ 1.8.0). Schedule may be defined by startTime/stopTime properties or within a separate schedule configuration (Refer to the Scheduler section for more details).

NOTE: It is possible to use environment variables in configuration. Example: jms.adaptor.Connection.[ConnectionName].Password = ${CONNECTION_PASSWORD}, where CONNECTION_PASSWORD is the name of the environment variable.

Sample Configuration

Sample configuration for ActiveMQ vendor

Make sure that activemq-client.jar is present in the /lib directory.

Typical JMS endpoint parameters in jms-adaptor.properties:

...

QueuePersistent

This property defines whether messages will be stored in the file until they are committed. This approach allows restoring and sending messages after an unexpected application shutdown.

Valid values: true | false

When the 'true' value is specified messages will be saved in the file storage (persistent queue) with parallel saving in memory.

When the 'false' value is specified messages will be saved in the in-memory queue. This approach is faster but less safe since some messages may be lost after restart.

Info

'QueuePersistent = true' is used to save queued messages only in file storage, without parallel storing in memory since the JMS TA 1.3.10 version. 

Ntrue

jms.adaptor.Client.[ClientName].QueueNormalFileSize

This property defines the normal persistent file size in MBytes. After reaching the specified queue size, the endpoint waits until the queue is empty to truncate the file.

Used only when Persistent queue is enabled.

Valid values: int

N10

jms.adaptor.Client.[ClientName].QueueMaxFileSize

Anchor
jms.adaptor.Client.[ClientName].QueueMaxFileSize
jms.adaptor.Client.[ClientName].QueueMaxFileSize


This property defines the maximum persistent file size in MBytes. After reaching the specified queue size, the endpoint truncates the file and overwrites the messages that are queued.

Used only when Persistent queue is enabled.

Valid values: int

N50

jms.adaptor.Client.[ClientName].StorageFlushMode

This property defines whether the forced flush must be performed after each write operation. Used for Producers only.

Valid values: Force | Auto

NAuto

jms.adaptor.Client.[ClientName].PublishTimeout

This property defines a timeout interval in milliseconds to put the message in the outgoing queue if it is full. Used for Producers only.

If publishing to the queue fails after PublishTimeout milliseconds (the queue is still full) the exception will be thrown and the message won't be added to the queue.

Valid values: int | -1 for automated publishing

N2000

jms.adaptor.Client.[ClientName].DurableSubscription

Anchor
jms.adaptor.Client.[ClientName].DurableSubscription
jms.adaptor.Client.[ClientName].DurableSubscription

This property enables durable topic subscriptions which allow receiving messages published while the subscriber is not active. Used for Consumers only.

Durable subscriptions offer the reliability of queues to publish/subscribe to the message domain.

Valid values: true | false 

Nfalse

jms.adaptor.Client.[ClientName].DurableSubscriptionName

This property defines the name/identifier of the durable subscription.

Valid values: string

Y

(if durable subscription is enabled)

-

jms.adaptor.Client.[ClientName].ConnectionsCount

This property defines the number of connections to the JMS server that will be opened by JMS. The selected session will be able to send messages simultaneously.

If the number of connections is greater than 1, there is no guarantee that messages will be delivered to JMS in the same order as they were sent by the JMS adapter.

Valid values: int

N1

jms.adaptor.Client.[ClientName].ThreadsPerConnection

This property defines the number of threads per JMS connection. The endpoint will open a given amount of JMS sessions for each connection to send messages simultaneously.

If the number of threads per connection is greater than 1, there is no guarantee that messages will be delivered to JMS in the same order as they were sent by the JMS adapter.

Valid values: int

N1

jms.adaptor.Client.[ClientName].maskPasswordsInStorages

This property provides the ability to enable/disable user password obfuscating. 

When the 'true' value is specified the Password(554) value in the Logon(35=A) message will be masked with "*****".

Valid values: true | false

Ntrue

jms.adaptor.Client.[ClientName].AllowRejectMessages

This property defines whether unsent messages will be sent back to a user's application on the JMS Producer disconnect. Used for Producers only.

When the 'true' value is specified JMS rejects messages if unable to send to the MQ or an error occured.

Valid values: true | false

Nfalse

jms.adaptor.Client.[ClientName].AllowMeasureIncomingTimestamp

This property defines whether incoming timestamps will be recorded to calculate the processing latency of the JMS client displayed on FIXICC H2 WebUI. Used for Comsumers only.

Valid values: true | false

Ntrue

jms.adaptor.Client.[ClientName].startOnload

Info

Since FIXEdge Java 1.8.0 version all configured JMS endpoints will be started automatically during the FIXEdge Java server initialization if there is a defined schedule for them.

The schedule may be defined by the startTime and stopTime properties or within the Scheduler configuration.

This property defines whether the JMS endpoint will be started during FIXEdge Java server initialization.

Valid values: true | false

Ntrue

jms.adaptor.Client.[ClientName].startTime

This property defines the JMS endpoint start time.

Valid values: CRON expressions

NNULL

jms.adaptor.Client.[ClientName].stopTime

This property defines the JMS endpoint stop time.

Valid values: CRON expressions

NNULL

jms.adaptor.Client.[ClientName].scheduleTimeZone

This property defines the timezone for the startTime and stopTime.

Expand
titleValid values:
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Timbuktu
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Anguilla
America/Antigua
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/Salta
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Aruba
America/Asuncion
America/Atikokan
America/Atka
America/Bahia
America/Bahia_Banderas
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Buenos_Aires
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Catamarca
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Coral_Harbour
America/Cordoba
America/Costa_Rica
America/Creston
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Dominica
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Ensenada
America/Fort_Wayne
America/Fortaleza
America/Glace_Bay
America/Godthab
America/Goose_Bay
America/Grand_Turk
America/Grenada
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Tell_City
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indianapolis
America/Inuvik
America/Iqaluit
America/Jamaica
America/Jujuy
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Knox_IN
America/Kralendijk
America/La_Paz
America/Lima
America/Los_Angeles
America/Louisville
America/Lower_Princes
America/Maceio
America/Managua
America/Manaus
America/Marigot
America/Martinique
America/Matamoros
America/Mazatlan
America/Mendoza
America/Menominee
America/Merida
America/Metlakatla
America/Mexico_City
America/Miquelon
America/Moncton
America/Monterrey
America/Montevideo
America/Montreal
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
America/North_Dakota/Beulah
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Ojinaga
America/Panama
America/Pangnirtung
America/Paramaribo
America/Phoenix
America/Port-au-Prince
America/Port_of_Spain
America/Porto_Acre
America/Porto_Velho
America/Puerto_Rico
America/Rainy_River
America/Rankin_Inlet
America/Recife
America/Regina
America/Resolute
America/Rio_Branco
America/Rosario
America/Santa_Isabel
America/Santarem
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Scoresbysund
America/Shiprock
America/Sitka
America/St_Barthelemy
America/St_Johns
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Swift_Current
America/Tegucigalpa
America/Thule
America/Thunder_Bay
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Virgin
America/Whitehorse
America/Winnipeg
America/Yakutat
America/Yellowknife
Antarctica/Casey
Antarctica/Davis
Antarctica/DumontDUrville
Antarctica/Macquarie
Antarctica/Mawson
Antarctica/McMurdo
Antarctica/Palmer
Antarctica/Rothera
Antarctica/South_Pole
Antarctica/Syowa
Antarctica/Troll
Antarctica/Vostok
Arctic/Longyearbyen
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Ashkhabad
Asia/Baghdad
Asia/Bahrain
Asia/Baku
Asia/Bangkok
Asia/Beirut
Asia/Bishkek
Asia/Brunei
Asia/Calcutta
Asia/Chita
Asia/Choibalsan
Asia/Chongqing
Asia/Chungking
Asia/Colombo
Asia/Dacca
Asia/Damascus
Asia/Dhaka
Asia/Dili
Asia/Dubai
Asia/Dushanbe
Asia/Gaza
Asia/Harbin
Asia/Hebron
Asia/Ho_Chi_Minh
Asia/Hong_Kong
Asia/Hovd
Asia/Irkutsk
Asia/Istanbul
Asia/Jakarta
Asia/Jayapura
Asia/Jerusalem
Asia/Kabul
Asia/Kamchatka
Asia/Karachi
Asia/Kashgar
Asia/Kathmandu
Asia/Katmandu
Asia/Khandyga
Asia/Kolkata
Asia/Krasnoyarsk
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Kuwait
Asia/Macao
Asia/Macau
Asia/Magadan
Asia/Makassar
Asia/Manila
Asia/Muscat
Asia/Nicosia
Asia/Novokuznetsk
Asia/Novosibirsk
Asia/Omsk
Asia/Oral
Asia/Phnom_Penh
Asia/Pontianak
Asia/Pyongyang
Asia/Qatar
Asia/Qyzylorda
Asia/Rangoon
Asia/Riyadh
Asia/Saigon
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tel_Aviv
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo
Asia/Ujung_Pandang
Asia/Ulaanbaatar
Asia/Ulan_Bator
Asia/Urumqi
Asia/Ust-Nera
Asia/Vientiane
Asia/Vladivostok
Asia/Yakutsk
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Canary
Atlantic/Cape_Verde
Atlantic/Faeroe
Atlantic/Faroe
Atlantic/Jan_Mayen
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/South_Georgia
Atlantic/St_Helena
Atlantic/Stanley
Australia/ACT
Australia/Adelaide
Australia/Brisbane
Australia/Broken_Hill
Australia/Canberra
Australia/Currie
Australia/Darwin
Australia/Eucla
Australia/Hobart
Australia/LHI
Australia/Lindeman
Australia/Lord_Howe
Australia/Melbourne
Australia/NSW
Australia/North
Australia/Perth
Australia/Queensland
Australia/South
Australia/Sydney
Australia/Tasmania
Australia/Victoria
Australia/West
Australia/Yancowinna
Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
CET
CST6CDT
Canada/Atlantic
Canada/Central
Canada/East-Saskatchewan
Canada/Eastern
Canada/Mountain
Canada/Newfoundland
Canada/Pacific
Canada/Saskatchewan
Canada/Yukon
Chile/Continental
Chile/EasterIsland
Cuba
EET
EST5EDT
Egypt
Eire
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
Etc/GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6
Etc/GMT-7
Etc/GMT-8
Etc/GMT-9
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/UTC
Etc/Universal
Etc/Zulu
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belfast
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Europe/Brussels
Europe/Bucharest
Europe/Budapest
Europe/Busingen
Europe/Chisinau
Europe/Copenhagen
Europe/Dublin
Europe/Gibraltar
Europe/Guernsey
Europe/Helsinki
Europe/Isle_of_Man
Europe/Istanbul
Europe/Jersey
Europe/Kaliningrad
Europe/Kiev
Europe/Lisbon
Europe/Ljubljana
Europe/London
Europe/Luxembourg
Europe/Madrid
Europe/Malta
Europe/Mariehamn
Europe/Minsk
Europe/Monaco
Europe/Moscow
Europe/Nicosia
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/San_Marino
Europe/Sarajevo
Europe/Simferopol
Europe/Skopje
Europe/Sofia
Europe/Stockholm
Europe/Tallinn
Europe/Tirane
Europe/Tiraspol
Europe/Uzhgorod
Europe/Vaduz
Europe/Vatican
Europe/Vienna
Europe/Vilnius
Europe/Volgograd
Europe/Warsaw
Europe/Zagreb
Europe/Zaporozhye
Europe/Zurich
GB
GB-Eire
GMT
GMT0
Greenwich
Hongkong
Iceland
Indian/Antananarivo
Indian/Chagos
Indian/Christmas
Indian/Cocos
Indian/Comoro
Indian/Kerguelen
Indian/Mahe
Indian/Maldives
Indian/Mauritius
Indian/Mayotte
Indian/Reunion
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
MET
MST7MDT
Mexico/BajaNorte
Mexico/BajaSur
Mexico/General
NZ
NZ-CHAT
Navajo
PRC
PST8PDT
Pacific/Apia
Pacific/Auckland
Pacific/Bougainville
Pacific/Chatham
Pacific/Chuuk
Pacific/Easter
Pacific/Efate
Pacific/Enderbury
Pacific/Fakaofo
Pacific/Fiji
Pacific/Funafuti
Pacific/Galapagos
Pacific/Gambier
Pacific/Guadalcanal
Pacific/Guam
Pacific/Honolulu
Pacific/Johnston
Pacific/Kiritimati
Pacific/Kosrae
Pacific/Kwajalein
Pacific/Majuro
Pacific/Marquesas
Pacific/Midway
Pacific/Nauru
Pacific/Niue
Pacific/Norfolk
Pacific/Noumea
Pacific/Pago_Pago
Pacific/Palau
Pacific/Pitcairn
Pacific/Pohnpei
Pacific/Ponape
Pacific/Port_Moresby
Pacific/Rarotonga
Pacific/Saipan
Pacific/Samoa
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Truk
Pacific/Wake
Pacific/Wallis
Pacific/Yap
Poland
Portugal
ROK
Singapore
SystemV/AST4
SystemV/AST4ADT
SystemV/CST6
SystemV/CST6CDT
SystemV/EST5
SystemV/EST5EDT
SystemV/HST10
SystemV/MST7
SystemV/MST7MDT
SystemV/PST8
SystemV/PST8PDT
SystemV/YST9
SystemV/YST9YDT
Turkey
UCT
US/Alaska
US/Aleutian
US/Arizona
US/Central
US/East-Indiana
US/Eastern
US/Hawaii
US/Indiana-Starke
US/Michigan
US/Mountain
US/Pacific
US/Pacific-New
US/Samoa
UTC
Universal
W-SU
WET
Zulu
EST
HST
MST
ACT
AET
AGT
ART
AST
BET
BST
CAT
CNT
CST
CTT
EAT
ECT
IET
IST
JST
MIT
NET
NST
PLT
PNT
PRT
PST
SST
VST
NNULL
Info

All changes in the jms-adaptor.properties configuration file will be applied only after the FIXEdge Java server restart.

Sample Configuration

ActiveMQ Connection

Info

The particular activemq-client.jar file must be present in the /lib directory.

General JMS Consumer endpoint parameters in the jms-adaptor.properties configuration file:

Code Block
languageperl
themeConfluence
titlejms-adaptor.properties
jms.adaptor.ConnectionNames =LocalActiveMQConnection
jms.adaptor.ClientNames = ActiveMQProducer, ActiveMQConsumer
 

# ActiveMQ Connection definition
jms.adaptor.Connection.LocalActiveMQConnection.InitialContextFactory = org.apache.activemq.jndi.ActiveMQInitialContextFactory
jms.adaptor.Connection.LocalActiveMQConnection.ProviderURI = tcp://localhost:61616
jms.adaptor.Connection.LocalActiveMQConnection.User = 
jms.adaptor.Connection.LocalActiveMQConnection.Password = 
jms.adaptor.Connection.LocalActiveMQConnection.ConnectionFactory = queueConnectionFactory
jms.adaptor.Connection.LocalActiveMQConnection.Reconnect = true
jms.adaptor.Connection.LocalActiveMQConnection.ReconnectTries = 3
jms.adaptor.Connection.LocalActiveMQConnection.ReconnectInterval = 500
 

# ActiveMQ Producer definition
jms.adaptor.Client.ActiveMQProducer.ConnectionName = LocalActiveMQConnection
jms.adaptor.Client.ActiveMQProducer.StorageDir = ./logs
jms.adaptor.Client.ActiveMQProducer.SessionType = Producer
jms.adaptor.Client.ActiveMQProducer.MessagingMode = Queue
jms.adaptor.Client.ActiveMQProducer.DestinationURI = MyQueue
jms.adaptor.Client.ActiveMQProducer.DeliveryMode = NoPersist
jms.adaptor.Client.ActiveMQProducer.TimeToLive = 100000
jms.adaptor.Client.ActiveMQProducer.SessionAckMode = Auto
jms.adaptor.Client.ActiveMQProducer.MessageType = Text
jms.adaptor.Client.ActiveMQProducer.Transacted = true
jms.adaptor.Client.ActiveMQProducer.DurableSubscription = false
jms.adaptor.Client.ActiveMQProducer.DurableSubscriptionName = DurableTest
  

# ActiveMQ Consumer definition
jms.adaptor.Client.ActiveMQConsumer.ConnectionName = LocalActiveMQConnection
jms.adaptor.Client.ActiveMQConsumer.StorageDir = ./logs
jms.adaptor.Client.ActiveMQConsumer.SessionType = Consumer
jms.adaptor.Client.ActiveMQConsumer.MessagingMode = Queue
jms.adaptor.Client.ActiveMQConsumer.DestinationURI = MyQueue
jms.adaptor.Client.ActiveMQConsumer.DeliveryMode = NoPersist
jms.adaptor.Client.ActiveMQConsumer.TimeToLive = 100000
jms.adaptor.Client.ActiveMQConsumer.SessionAckMode = Auto
jms.adaptor.Client.ActiveMQConsumer.MessageType = Text
jms.adaptor.Client.ActiveMQConsumer.Transacted = false
jms.adaptor.Client.ActiveMQConsumer.DurableSubscription = false
jms.adaptor.Client.ActiveMQConsumer.DurableSubscriptionName = DurableTest

...

Info

...

The jms.adaptor.Connection.LocalActiveMQConnection.

...

ProviderURI property must be set to the 'tcp://localhost

...

:61616' whichis the host:port of Apache ActiveMQ Message Broker.

...

TIBCO EMS

...

Connection

Info

The particular tibjms.jarTIBCO JMS client library

...

must be copied from the TIBCO EMS installation /lib directory.

Typical General JMS consumer Consumer endpoint parameters in thejms-adaptor.properties configuration file:

Code Block
languageperl
themeConfluence
titlejms-adaptor.properties
jms.adaptor.ConnectionNames =TibcoJMSConnection
jms.adaptor.ClientNames = TibcoConsumer
 

# JMS Connection definition
jms.adaptor.Connection.TibcoJMSConnection.InitialContextFactory = com.tibco.tibjms.naming.TibjmsInitialContextFactory
jms.adaptor.Connection.TibcoJMSConnection.ProviderURI = tcp://localhost:7222
jms.adaptor.Connection.TibcoJMSConnection.User =dev
jms.adaptor.Connection.TibcoJMSConnection.Password =dev
jms.adaptor.Connection.TibcoJMSConnection.ConnectionFactory = TopicConnectionFactory
jms.adaptor.Connection.TibcoJMSConnection.ReconnectTries = 2000000
jms.adaptor.Connection.TibcoJMSConnection.ReconnectInterval = 2000
jms.adaptor.Connection.TibcoJMSConnection.Reconnect = true
 
# Topic Consumer client
jms.adaptor.Client.TibcoConsumer.ConnectionName = TibcoJMSConnection
jms.adaptor.Client.TibcoConsumer.SessionType = Consumer
jms.adaptor.Client.TibcoConsumer.MessagingMode = Topic
jms.adaptor.Client.TibcoConsumer.DestinationURI = fixedge.deals
jms.adaptor.Client.TibcoConsumer.DeliveryMode = NoPersist
jms.adaptor.Client.TibcoConsumer.TimeToLive = 100000
jms.adaptor.Client.TibcoConsumer.SessionAckMode = Auto
jms.adaptor.Client.TibcoConsumer.MessageType = Text
jms.adaptor.Client.TibcoConsumer.StorageDir = ./logs
jms.adaptor.Client.TibcoConsumer.DurableSubscription = true
jms.adaptor.Client.TibcoConsumer.DurableSubscriptionName = fixedge.deals

...

RedHat AMQ

...

Connection

Info

The particular RHEL JMS Client

...

library must be copied to the /lib directory

...

.

...

General JMS

...

Consumer endpoint parameters in thejms-adaptor.properties configuration file:

Code Block
languageperl
themeConfluence
titlejms-adaptor.properties
#JMS Connection definition
jms.adaptor.ConnectionNames = Connection1
 

jms.adaptor.Connection.Connection1.InitialContextFactory = org.apache.qpid.jms.jndi.JmsInitialContextFactory
jms.adaptor.Connection.Connection1.ConnectionFactory = myFactoryLookup
jms.adaptor.Connection.Connection1.ConnectionFactory.myFactoryLookup = amqp://localhost:5672
jms.adaptor.Connection.Connection1.User = centos
jms.adaptor.Connection.Connection1.Password = centos
 
jms.adaptor.ClientNames = ProducerSession, ConsumerSession
 
# Poducer client
jms.adaptor.Client.ProducerSession.ConnectionName = Connection1
jms.adaptor.Client.ProducerSession.StorageDir = ./logs
jms.adaptor.Client.ProducerSession.SessionType = Producer
jms.adaptor.Client.ProducerSession.MessagingMode = Queue
jms.adaptor.Client.ProducerSession.DestinationURI = queue1
jms.adaptor.Client.ProducerSession.DeliveryMode = NoPersist
jms.adaptor.Client.ProducerSession.TimeToLive = 100000
jms.adaptor.Client.ProducerSession.SessionAckMode = Auto
jms.adaptor.Client.ProducerSession.MessageType = Text
 
# Consumer client
jms.adaptor.Client.ConsumerSession.ConnectionName = Connection1
jms.adaptor.Client.ConsumerSession.StorageDir = ./logs
jms.adaptor.Client.ConsumerSession.SessionType = Consumer
jms.adaptor.Client.ConsumerSession.MessagingMode = Queue
jms.adaptor.Client.ConsumerSession.DestinationURI = queue2
jms.adaptor.Client.ConsumerSession.DeliveryMode = NoPersist
jms.adaptor.Client.ConsumerSession.TimeToLive = 100000
jms.adaptor.Client.ConsumerSession.SessionAckMode = Auto
jms.adaptor.Client.ConsumerSession.MessageType = Text