...
...
...
Anchor | ||||
---|---|---|---|---|
|
The JMS Connection is configured by adding a JMS Connection configuration JSON file in the estar/tpe/dynamic/mc2/eaglejms/connections folder. The samples below show how to configure the JMS connections to ActiveMQ and WebSphere MQ servers. For a more detailed description see #JMS Messaging.
To Configure an ActiveMQ Connection:
If there is no ActiveMQ connection already configured, add a new file estar/tpe/dynamic/mc2/eaglejms/connections/extract_jms_connection.json with the following content:
Sample ActiveMQ ConfigurationCode Block language js
...
...
{ "Region": "oraclesid", /*Database name (Oracle SID) on which the Extract Service is running */ "Connections": [ { "ConnectionName": "extract.jms.connection", "ComponentName": "amq", "Parameters": { "brokerURL": "tcp://activemqhostname:activemqport" } } ] }
Change the Region parameter to match the oracle SID the Eagle Extract Service is running with.
Change the brokerURL with the specific ActiveMQ instance parameters. The ActiveMQ hostname and port number should be provided by the ActiveMQ broker administrators.
Configure a WebSphere MQ Connection
To configure a websphere MQ Connection:
If there is no WebSphere MQ Connection already configured, add a new file estar/tpe/dynamic/mc2/eaglejms/connections/extract_jms_connection_wmq.json with the following content:
...
Sample WebSphere MQ Connection Configuration
Code Block
...
language
...
js { "Region": "oraclesid", /*Database name (Oracle SID) on which the Extract Service is running */ "Connections": [ { "ConnectionName": "extract.jms.connection", /* connection name */ "ComponentName": "wmq", /* name of component */ "Parameters": { "transportType": 1, /* sets the transport type */ "port": 1414, /* sets the port for a client connection */ "channel": "DEV.APP.SVRCONN", /* sets the name of the channel - applies to client transport mode only */ "queueManager": "QM1", /* sets the name of the queue manager */ "HostName": "WebSphere MQ host name" /* Sets the name of the host (or IP) */ , "CCSID": 1 /* optional: sets the character set to be used when connecting to the queue manager */ , "clientReconnectTimeout": 10 /* optional: set the amount of time, in seconds, that a client connection will attempt to reconnect */ }, "UseConnectionPool": true, /* optional */ "SessionCacheSize": 50 /* optional: size of connection pool */ } ] }
Change the following parameters:
Set Region to the Oracle SID running the Eagle Extract Service
...
.
Set port to the WebSphere MQ port number.
Set channel to the channel name on the WebSphere MQ.
Set queueManager to the name of the Queue Manager.
Set HostName to the host name or IP address of the Queue Manager.
Info |
---|
In order to use WebSphere MQ, install the WebSphere MQ Client with Java classes. |
Info |
---|
...
SSL ConnectionsTo configure a WebSphere MQ SSL Connection add the "SSLCipherSuite" parameter to the "Parameters" section in the connection definition: "SSLCipherSuite": "TLS_RSA_WITH_AES_128_CBC_SHA256" The private keys and public keys should be places in the eagle/estar/tpe/dynamic/mc2/ Eagle will |
...
add out of the box support for easier configuration of truststore and keystores for JMS connections. |
Anchor | ||||
---|---|---|---|---|
|
Open Message Center Console and create a MC2JMS stream with the following parameters:
...
Set the following parameters:
Instance - set to the MC2 instance with AppID 10000.
Connection Name - the name of the connection as defined in the JSON connection definition file ConnectionName parameter. Use extract.jms.connection if you used the sample JSON Connection files above.
Destination Type - select QUEUE or TOPIC.
Destination Name - the queue or topic name.
JMS Connection User and JMS Connection Password - the credentials used to connect to ActiveMQ.
Anchor | ||||
---|---|---|---|---|
|
Add to eagle/estar/tpe/dynamic/msgcenter/eagle_ml-2-0_custom_cm//w_config_custom.inc a W_JMS_EXTRACT_STREAMvariable with the name of the stream created above (mc2_extract_jms_publish):
...
...
w_config_custom.inc configuration
Code Block |
---|
...
|
...
| |
<CODE>
:W_JMS_EXTRACT_STREAM: := 'mc2_extract_jms_publish';
:W_JMS_EXTRACT_RETRIES: := 5;
:W_JMS_EXTRACT_RETRYINTERVAL: := 30;
</CODE>
|
You can use the W_JMS_EXTRACT_RETRIES and W_JMS_EXTRACT_RETRYINTERVAL to redefine the number of delivery retries in case of an error and the interval in seconds between retries.
Specify the Outbound MC2JMS stream name (W_JMS_EXTRACT_STREAM) in the RTR as the JMSExtractStream task parameter.
Anchor | ||||
---|---|---|---|---|
|
Send the REST Extract Results to a JMS Destination
To send the extract to the JMS destination defined above, add a ExtractDeliveryMethod=JMS to the REST request as in this example:
Code Block | ||
---|---|---|
| ||
http://eagle.webserver.com/eagle/v2/entities?maxrows=10&OutputFormat=json&ExtractDeliveryMethod=JMS |
Send the SOAP Extract Results to a JMS Destination
To send the extract results to the JMS destination add a ExtractDeliveryMethod task parameter with value JMS to the RunTaskRequest:
...
Sample RunTaskRequest with JMS Delivery
...
Code Block | |
---|---|
|
...
| |
<soc:Envelope xmlns:soc="http://schemas.xmlsoap.org/soap/envelope/">
<soc:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<runTaskRequest xmlns="http://www.eagleinvsys.com/2011/wsdl/EagleML-2-0">
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequestSync" eaglemlType="RunTaskRequest" eaglemlVersion="2.0">
<header>
<messageId>CC59ADD40E1E069</messageId>
<sentBy>http://www.client.com</sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_out_extract_service</sendTo>
<replyTo>http://www.client.com/Eagle Control Messages</replyTo>
</header>
<taskIdentifier>
<correlationId>ENTITY_JMS_1</correlationId>
<businessTaskId>ENTITY_JMS_1</businessTaskId>
</taskIdentifier>
<taskTypeEnum>LOAD</taskTypeEnum>
<taskParameters>
<taskParameter>
<name>ActionType</name>
<dataType>S</dataType>
<value>EXTRACT</value>
</taskParameter>
<taskParameter>
<name>StreamName</name>
<dataType>S</dataType>
<value>eagle_ml-2-0_default_out_extract_service</value>
</taskParameter>
<taskParameter>
<name>FeedType</name>
<dataType>S</dataType>
<value>ENTITYEXTRACT</value>
</taskParameter>
<taskParameter>
<name>maxrows</name>
<dataType>I</dataType>
<value>10</value>
</taskParameter>
<taskParameter>
<name>outputformat</name>
<dataType>S</dataType>
<value>JSON</value>
</taskParameter>
<taskParameter>
<name>ExtractDeliveryMethod</name>
<dataType>S</dataType>
<value>JMS</value>
</taskParameter>
</taskParameters>
</EagleML>
</runTaskRequest>
</soc:Body>
</soc:Envelope>
|
To split the extract in smaller messages and send to JMS, add the RecordCountPerNugget and DirectTransform=N parameters.
...
...
RunTaskRequest - Nuggets - Send to JMS
Code Block |
---|
...
|
...
| |
<soc:Envelope xmlns:soc="http://schemas.xmlsoap.org/soap/envelope/">
<soc:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<runTaskRequest xmlns="http://www.eagleinvsys.com/2011/wsdl/EagleML-2-0">
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequestSync" eaglemlType="RunTaskRequest" eaglemlVersion="2.0">
<header>
<messageId>CC59ADD40E1E069</messageId>
<sentBy>http://www.client.com</sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_out_extract_service</sendTo>
<replyTo>http://www.client.com/Eagle Control Messages</replyTo>
</header>
<taskIdentifier>
<correlationId>ENTITY_NUGGET_JMS1</correlationId>
<businessTaskId>ENTITY_NUGGET_JMS1</businessTaskId>
</taskIdentifier>
<taskTypeEnum>LOAD</taskTypeEnum>
<synchronousExecution>no</synchronousExecution>
<taskParameters>
<taskParameter>
<name>ActionType</name>
<dataType>S</dataType>
<value>EXTRACT</value>
</taskParameter>
<taskParameter>
<name>StreamName</name>
<dataType>S</dataType>
<value>eagle_ml-2-0_default_out_extract_service</value>
</taskParameter>
<taskParameter>
<name>FeedType</name>
<dataType>S</dataType>
<value>ENTITYEXTRACT</value>
</taskParameter>
<taskParameter>
<name>maxrows</name>
<dataType>I</dataType>
<value>50</value>
</taskParameter>
<taskParameter>
<name>outputformat</name>
<dataType>S</dataType>
<value>JSON</value>
</taskParameter>
<taskParameter>
<name>RecordCountPerNugget</name>
<dataType>S</dataType>
<value>5</value>
</taskParameter>
<taskParameter>
<name>DirectTransform</name>
<dataType>S</dataType>
<value>N</value>
</taskParameter>
<taskParameter>
<name>ExtractDeliveryMethod</name>
<dataType>S</dataType>
<value>JMS</value>
</taskParameter>
</taskParameters>
</EagleML>
</runTaskRequest>
</soc:Body>
</soc:Envelope>
|
Send the TSR and ACK to a JMS Destination
To send the TSR to a JMS Destination, use the ReplyDeliverMethod=JMS and JMSReplyDeliveryStream=stream name parameters.
To send the ACK to a JMS Desitnation, use the ACKDeliveryMethod=JMS and JMSACKDeliveryStream=stream name parameters.