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 configuration define the JMS connection configuration. JMS connection properties have the endpoint configuration and specify its name in the jms.adaptor.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 password
This property defines the passport of the user.Y

jms.adaptor.Connection.[ConnectionName].ConnectionFactory

JNDI option. The connection factory object name in the JNDI objects store.C, required if JNDI mechanism is used
-

jms.adaptor.Connection.[ConnectionName].Reconnect

Enables or

This property enables/disables the

reconnect procedure for connection restore.This parameter is used

reconnection procedure 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.Y

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].SessionType

This property defines the session role.

Valid values: Producer | Consumer

Y-

jms.adaptor.Client.[ClientName].

DestinationURIURI of session destination (queue/topic name)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].

TimeToLive

DestinationURI

This

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

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].

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.

Y

DeliveryMode
jms.adaptor.Client.[ClientName].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].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].

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.

Y

jms.adaptor.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

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].CustomMessageType property is required.

Y-

jms.adaptor.Client.[ClientName].

QueuePersistent

Store messages in the file until it is committed. It allows restoring and sending messages after a sudden cardiac application.

true – persistent queue.

false – in-memory queue. Faster but less safe; some messages may be lost after restart.Ntrue

CustomMessageType

Anchor
jms.adaptor.Client.[ClientName].CustomMessageType
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

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


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].

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.

    Transacted

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

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

    Valid values: true | false

    Nfalse

    jms.adaptor.Client.[ClientName].

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

    TransactionBatchSize

    This property defines the maximum number of messages per 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].

    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

    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].

    ThreadsPerConnection

    A number of threads 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.

    N1jms

    QueuePersistent

    Anchor
    #jms.adaptor.Client.[ClientName].QueuePersistent
    #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

    jms.adaptor.Client.[ClientName].startOnload

    Whether a JMS endpoint should be started during FIXEdge Java server initialization.Ntrue

    jms.adaptor.Client.[ClientName].startTime

    A cron expression that defines a JMS endpoint start time.N

    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].

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

    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].

    scheduleTimeZoneA 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:

    ...

    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