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?