UPA - loading field dictionary & enumtypes

Using the Java UPA API, both the field dictionary and enumtypes files load via a file but fail when making a request using the code from the Consumer.java application (DictionaryHandler.sendRequest method). The example code uses the following string values and stream id's:

FIELD_DICTIONARY_DOWNLOAD_NAME = RWFFld
FIELD_DICTIONARY_STREAM_ID = 3
ENUM_TYPE_DICTIONARY_DOWNLOAD_NAME = RWFEnum
ENUM_TYPE_DICTIONARY_STREAM_ID = 4

The assumption is that the download names are incorrect? Do these mnemonics map to a logical name associated with the underlying table?

Best Answer

  • Jirapongse
    Answer ✓

    The reasons that I can think of are:

    1. The subscribed service (with -s option) may be down or unavailable
    2. If the consumer directly connects to the provider, the provider may not be able to provide the data dictionary via network
    3. The server is unable to send the dictionary via network due to the buffer overflow condition

    Please run Consumer example with -x option to enable tracing.

Answers

  • The field and enum type dictionary download names should correspond to those specified in the "DictionariesProvided" entry of the source directory refresh message. I believe the correct name for field dictionary is usually "RWFFld". Try that instead of "RFFld" and see if it works.

  • Thanks - I actually keyed it into the post incorrectly but it is correct in the code (unchanged) and confirmed that this is coming back on the directory refresh message:

    DirectoryRefresh:
    streamId: 2
    State: Open/Ok/None - text: "null"
    clearCache: true
    solicited: true
    filter: INFO | GROUP | STATE
    Service:
    serviceId: 271
    InfoFilter:
    serviceName: CONTEX
    vendor: null
    isSource: 0
    supportsQosRange: 0
    supportsOutOfBandSnapshots: 1
    acceptingConsumerStatus: 1
    capabilities: [5, 6, 10]
    dictionariesProvided: [RWFFld, RWFEnum]
    dictionariesUsed: [RWFFld, RWFEnum]
    qos: [Qos: Realtime/TickByTick/Static - timeInfo: 0 - rateInfo: 0]

    I must have another issue...

  • Please post the STATUS message from the provider, how are you determining that the request has failed?