Sample Asynchronous Data Load Message

The following sample asynchronous data load message is based on this scenario:

  • Use one (1) control message to represent loading three (3) EagleML file types.
  • Three file types are split as follows:
    • CodeCategory: 2 parts
    • CodeValue: 2 parts
    • IssuePrice: 3 parts.
  • Control Message has the taskParameter set to TotalDataParts.

Refer to the following sample control message.

<?xml version="1.0" encoding="UTF-8"?>
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" eaglemlVersion="2-0" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" eaglemlType="RunTaskRequest">
    <header>
        <messageId messageIdScheme="messageIdScheme">LD1LOADCODES0001</messageId>
        <sentBy>jms://www.client.com</sentBy>
        <sendTo>jms://www.eagleinvsys.com/eagleml-2-0_control_messages</sendTo>
        <creationTimestamp>2012-08-02T22:13:32.272-05:00</creationTimestamp>
    </header>
    <taskIdentifier>
        <correlationId correlationIdScheme="correlationIdScheme">LDCDPC1FRTYCM0001</correlationId>
        <businessTaskId correlationIdScheme="businessTaskIdScheme">ACQUIRE_cD_PRICE_0001_LOAD</businessTaskId>
    </taskIdentifier>
    <taskTypeEnum>NEW</taskTypeEnum>
    <taskParameters>
        <taskParameter>
            <name>ActionType</name>
            <dataType>S</dataType>
            <value>ACQUIRE</value>
        </taskParameter>
        <taskParameter>
            <name>DeliveryMethod</name>
            <dataType>S</dataType>
            <value>FILE</value>
        </taskParameter>
        <taskParameter>
            <name>TotalDataParts</name>
            <dataType>I</dataType>
            <value>7</value>
         </taskParameter>
        <taskParameter>
             <name>REFERENCE</name>
             <dataType>S</dataType>
             <value>CodeCategory</value>
         </taskParameter>
        <taskParameter>
             <name>REFERENCE</name>
            <dataType>S</dataType>
            <value>CodeValue</value>
        </taskParameter>
        <taskParameter>
            <name>REFERENCE</name>
            <dataType>S</dataType>
            <value>IssuePrice</value>
        </taskParameter>
    </taskParameters>
</EagleML>

The data part files carry taskIdentifier node which links them to specific Control Message and also have sequence pattern in them that reflects sequenceNumber and totalCount elements.

Refer to the following control message.

<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage">
       <header>
              <messageId messageIdScheme="http://www.eagleinvsys.com/coding-scheme/message-id-2-0">1634B431F2296D98</messageId>
              <sentBy>www.client.com</sentBy>
              <creationTimestamp>2012-11-14T14:54:27-05:00</creationTimestamp>
       </header>
       <taskIdentifier>
              <!-- <processingSequenceNumber>0</processingSequenceNumber> -->
        <correlationId correlationIdScheme="correlationIdScheme">LDCDPC1FRTYCM0001</correlationId>
        <businessTaskId correlationIdScheme="businessTaskIdScheme">ACQUIRE_cD_PRICE_0001_LOAD</businessTaskId>
              <sequenceNumber>1</sequenceNumber>
              <totalCount>2</totalCount>
       </taskIdentifier>
       <referenceTransaction>
              <header>
                     <transactionDate>2012-11-14</transactionDate>
                     <action>ADD</action>
                     <objectType>CodeCategory</objectType>
              </header>
              <codeCategory>
                     <sourceName>EAGLE PACE</sourceName>
                     <updateSource>MCADMIN</updateSource>
                     <effectiveDate>2012-11-14</effectiveDate>
                     <codeCategoryName>CC_TEST1</codeCategoryName>
                     <codeCategoryDescription>Test Category 1</codeCategoryDescription>
              </codeCategory>
       </referenceTransaction>
</EagleML>

The Message Center expects that any of the data parts including the control message itself can arrive at any point in time and creates a staging area to aggregate all the pieces. Once all of them are gathered, the control message is re-assembled that has pointers to every data part and sends it EJM for typical execution.

Â