DownstreamMessagePushDefinition for JMS

DownstreamMessagePushDefinition allows to define message delivery using JMS protocol. This system rule contains the destination addresses, events, and the protocols using which the messages to be delivered to downstream applications. The rule can be configured to construct the Message Header and define the Events to push downstream messages through JMS. The rule can be overridden at Primary Company level and Plan level.

Note: When Plan level and Primary Company level overrides are not available, Global override contains the required details to make service calls.

A user can construct message templates using custom configuration for these push notifications through JMS. PushNotifications ABR should be configured to create and deliver the messages to downstream applications.

The rule can be configured for different event environments such as Test, Prod and Dev. Different end points can be defined for each event environment for a given event. Event environment that needs to be used by the rule should be defined in PAS property downstream.service.event.mode such that all the events use the same environment across the system. Events can be called multiple times in the system rule if the event has different environments.

Note: jmx.notification.entities=cycle,login,activity,activityprofiling,outboundEventPush should be added in PAS properties along with downstream.service.event.mode

For example, if there are multiple events configured for Test and Prod environments, and if Test is set in PAS properties, then all the events will use the details provided for Test environment to push messages.

Note: Event environment is mandatory.

Message header for JMS DownstreamMessagePushDefinition includes the following security details:

<ProviderUrl> </ProviderUrl>
<ConnectionFactory> </ConnectionFactory>
<JMSdestination> </JMSdestination>
<JMSDeliveryMode> </JMSDeliveryMode>
<JMSPriorityLevel> </JMSPriorityLevel>
<JMSTimetoLive> </JMSTimeToLive>
<JMSAcknowledgement> </JMSAcknowledgement>
DownstreamMessagePush: Elements and Attributes
Element/Tag Parent Element Definition Attribute Element/Attribute Value and Description
<DownstreamMessagePushDefinition>
Opening and closing tag for DownstreamMessagePushDefinition rule.

 
<Event> <DownstreamMessagePushDefinition> Required and Repeatable element: Specifies required event details. Event is repeatable with different Event environments.
 

<Event> Name of the event EVENTNAME Required:

Note: If the EVENT value in PushNotifications does not match with any EVENT NAME value in DownstreamMessagePushDefinition, system displays an error message.


<Event>
EVENTMETHOD Required: EventMethod can be JMS

<Event>
ENV

Required:

ENV can be Test/Prod/Dev to support SDLC. For same event there can be multiple destination addresses to support different environments.

Note: If messages from multiple events in the PushNotifications fails due to ENV value mismatch between PAS properties and DownstreamMessagePushDefinition,multiple,errors one for each EVENT will get displayed.

<JmsConfiguration> <Event> Opening tag for Address details. Contains required details to make service calls.
 
<ProviderUrl> <JmsConfiguration> Required: This element identifies the provider Url with port number.

 
<ConnectionFactory> <JmsConfiguration> Required: Value of this element can be the connection factory name.

 
<DestinationName> <JmsConfiguration> Required: Queue or Topic name

 
<DeliveryMode> <JmsConfiguration> Optional: As per JMS standards

 
<PriorityLevel> <JmsConfiguration> Optional: As per JMS standards

 
<TimetoLive> <JmsConfiguration> Optional:As per JMS standards

 
<AcknowledgementMode> <JmsConfiguration> Optional:As per JMS standards

 
<MaxTimeOut> <JmsConfiguration>

Required: It is the time an activity waits before timeout.



Value entered should be in milliseconds.

Value: Recommended timeout period is 100ms.

<Security> <Event> Defines security details.

 

<Security> Name of the security type TYPE

Required

Values: HTTP,WSS

<UserName> <Security> Required: Includes user details for authentication
 
<Password> <Security> Required: Includes password details for authentication

XML Schema

<DownstreamMessagePushDefinition>
   <Event EVENTNAME=" " EVENTMETHOD="JMS" ENV=" ">
   <JmsConfiguration>
        <ProviderUrl> </ProviderUrl>
        <ConnectionFactory> </ConnectionFactory>
        <DestinationName> </DestinationName>
        <DeliveryMode> </DeliveryMode>
        <PriorityLevel> </PriorityLevel>
        <TimetoLive> </TimetoLive>
        <AcknowledgementMode> </AcknowledgementMode>
        <MaxTimeOut> </MaxTimeOut>
   </JmsConfiguration>
   <Security>
       <UserName> </UserName>
       <Password> </Password>
    </Security>
  </Event>
</DownstreamMessagePushDefinition>

XML Example

<DownstreamMessagePushDefinition>
    <Event EVENTNAME="Event two" EVENTMETHOD="JMS" ENV="Test">
        <JmsConfiguration>
             <ProviderUrl>http://192.168.4.11:8011 </ProviderUrl>
             <ConnectionFactory> </ConnectionFactory>
             <DestinationName> </DestinationName>
             <DeliveryMode> </DeliveryMode>
             <PriorityLevel> </PriorityLevel>
             <TimetoLive> </TimetoLive>
             <AcknowledgementMode> </AcknowledgementMode>
             <MaxTimeOut> </MaxTimeOut>
        </JmsConfiguration>
        <Security>
           <User> </User>
           <Password> </Password>
       </Security>
    </Event>
    <EVENT EventNAME="Event two" EVENTMETHOD="JMS" ENV="Prod">
          <JmsConfiguration>
                   <ConnectionFactory> </ConnectionFactory>
                   <DestinationName> </DestinationName>
                   <DeliveryMode> </DeliveryMode>
                   <PriorityLevel> </PriorityLevel>
                   <TimetoLive> </TimetoLive>
                   <AcknowledgementMode> </AcknowledgementMode>
                   <MaxTimeOut> </MaxTimeOut>
          </JmsConfiguration>
          <Security>
                   <User> </User>
                   <Password> </Password>
          </Security>
     </Event>
<DownstreamMessagePushDefinition>