OMM Consumer Source Directory State FilterEntry

I'm writing on OMM Consumer application and require some information regarding the elements of a Source Directory

State Filter Entry. Two of the elements provided are ServiceState and AcceptingRequests.

If ServiceState is 1 and AcceptingRequests is 0, the documentation states that new requests are rejected but existing
streams remain unaffected.

In this case will the existing streams that have already received an initial refresh still receive updates?
For streams that have not received an initial refresh yet, will they get one or not until AcceptingRequests is 1
again?

Under what circumstances would a service enter this state?

Best Answer

  • I'm writing on OMM Consumer application and require some information regarding the elements of a Source Directory
    State Filter Entry. Two of the elements provided are ServiceState and AcceptingRequests.
    If ServiceState is 1 and AcceptingRequests is 0, the documentation states that new requests are rejected but existing
    streams remain unaffected.
    In this case will the exitsing streams that have already received an initial refesh still receive updates?
    Yes, they will.
    For streams that have not received an initial refresh yet, will they get one or not until AcceptingRequests is 1
    again?

    When a service sets AcceptingRequests=0 then infrastructure (TREP-RT) will no longer forward new requests to it. So the publishing application will never see such requests (that is if there's a a TREP-RT between the consumer and the publisher). There's of course a theoretical possibility that the two messages cross each other on the wire, i.e. the consumer makes a request at the same time as the service declares AcceptingRequests=0 so the request will actually arrive to the publishing application. The publishing application must reject such request.

    Under what circumstances would a service enter this state?

    It is used to signal that a publishing application is fully loaded and cannot cope with more work .. but it can handle the existing work it already got. It can also be used by a service which has been purposely limited to a maximum number of concurrent subscriptions, perhaps for commercial reasons.