I have a problem with source update messages sent to the ADH from a UPA Java application.
Source refresh messages work fine. If my app publishes a refresh with an "up" status everything is
OK.
However, sometimes my app publishes a refresh with a "down" status, followed by an update. (This is
caused by the feed that my app is publishing to TREP.)
Here is the refresh:
<!-- rwfMajorVer="14" rwfMinorVer="0" -->
<refreshMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x68
(RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE)" groupId="0"
dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="Source Directory
Refresh Completed" dataSize="218">
<key flags="0x8 (RSSL_MKF_HAS_FILTER)" filter="3"/>
<dataBody>
<map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_UINT"
containerType="RSSL_DT_FILTER_LIST" >
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="257" >
<filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0">
<filterEntry id="1" action="RSSL_FTEA_SET_ENTRY" flags="0x0"
containerType="RSSL_DT_ELEMENT_LIST">
<elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
<elementEntry name="Name" dataType="RSSL_DT_ASCII_STRING"
data="AUTEX_AT"/>
<elementEntry name="Capabilities" dataType="RSSL_DT_ARRAY">
<array itemLength="0" primitiveType="RSSL_DT_UINT">
<arrayEntry data="5"/>
<arrayEntry data="4"/>
<arrayEntry data="1"/>
</array>
</elementEntry>
<elementEntry name="DictionariesProvided" dataType="RSSL_DT_ARRAY">
<array itemLength="0" primitiveType="RSSL_DT_ASCII_STRING">
<arrayEntry data="FIXFld"/>
<arrayEntry data="FIXEnum"/>
</array>
</elementEntry>
<elementEntry name="DictionariesUsed" dataType="RSSL_DT_ARRAY">
<array itemLength="0" primitiveType="RSSL_DT_ASCII_STRING">
<arrayEntry data="FIXFld"/>
<arrayEntry data="FIXEnum"/>
</array>
</elementEntry>
</elementList>
</filterEntry>
<filterEntry id="2" action="RSSL_FTEA_SET_ENTRY" flags="0x0"
containerType="RSSL_DT_ELEMENT_LIST">
<elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
<elementEntry name="ServiceState" dataType="RSSL_DT_UINT" data="0"/>
<elementEntry name="AcceptingRequests" dataType="RSSL_DT_UINT"
data="0"/>
<elementEntry name="Status" dataType="RSSL_DT_STATE"
dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_CLOSED" code="RSSL_SC_NONE" text="Service
Down" />
</elementList>
</filterEntry>
</filterList>
</mapEntry>
</map>
</dataBody>
</refreshMsg
Here is the update:
<!-- rwfMajorVer="14" rwfMinorVer="0" -->
<updateMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x80
(RSSL_UPMF_DO_NOT_CONFLATE)" updateType="0" dataSize="74">
<dataBody>
<map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_UINT"
containerType="RSSL_DT_FILTER_LIST" >
<mapEntry flags="0x0" action="RSSL_MPEA_UPDATE_ENTRY" key="257" >
<filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0">
<filterEntry id="2" action="RSSL_FTEA_SET_ENTRY" flags="0x0"
containerType="RSSL_DT_ELEMENT_LIST">
<elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">
<elementEntry name="ServiceState" dataType="RSSL_DT_UINT" data="1"/>
<elementEntry name="AcceptingRequests" dataType="RSSL_DT_UINT"
data="1"/>
<elementEntry name="Status" dataType="RSSL_DT_STATE"
dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="OK" />
</elementList>
</filterEntry>
</filterList>
</mapEntry>
</map>
</dataBody>
</updateMsg>
Any ideas?