question

Upvotes
Accepted
154 18 24 35

What does an update directory message containing an empty map entry mean?

In RFAJ_RDMUsageGuide.pdf, “If the client specifies a service name in a directory request, it receives the directory response for just the requested service. If the requested service name is not available to RFA, RFA responds with a refresh message that contains an empty map entry in the payload.” If the application receives an update directory message containing an empty map entry in the payload what does this mean?

treprfarfa-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

This is a seed question from a real case.

Upvotes
Accepted
9.6k 10 7 7

The update message means there is change on a service which the application does not request for; RFA has removed the changed info of non-requested service from the map so the map is empty. Hence, the application can ignore this update message.

Please see details below:

Even you application sets the service name e.g. SERVICE_A into a directory request:

Msg Type: MsgType.REQUEST   
Msg Model Type: DIRECTORY   
Indication Flags: REFRESH   
Hint Flags: HAS_ATTRIB_INFO   
AttribInfo     
     ServiceName: SERVICE_A     
     Filter: 3 (INFO | STATE)   
Payload: None

RFA still requests directory for all services. This is current expected behavior of RFA:

Msg Type: MsgType.REQUEST
Msg Model Type: DIRECTORY
Indication Flags: REFRESH
Hint Flags: HAS_ATTRIB_INFO
AttribInfo   
     Filter: 63 (INFO | STATE | GROUP | LOAD | DATA | LINK)
Payload: None

Hence, RFA receives response messages (refresh and update) including all services info e.g. info of SERVICE_A and SERVICE_B:

Since the application requests only a specific service (SERVICE_A), RFA removes non-requested service info(SERVICE_B) from the message and pass the message to the application. So the application receives only info from the service that it has requested:


refreshtoapp.png (18.5 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
9.6k 10 7 7

When there is update on SERVICE_B e.g. SERVICE_B goes down, RFA receives an update message with 1 entry map; SERVICE_B(service id 4844) map entry containing down state:

The application does not request SERVICE_B directory; it requests SERVICE_A directory so RFA removes SERVICE_B map entry. The only 1 map entry has been removed; the update message contains an empty map entry. Then, RFA pass the message to the application:

That’s why the application receives an update message containing an empty map entry in the payload.


updatetoapp.png (6.4 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.