Can someone tell me what the proper behavior is for an interactive provider connected to TREP that looses its upstream communication. We are sending Closes for all its items if singleOpen is True and Close-Recover if singleOpen is set to False. The problem is that if singleOpen is True, the items are never recovered, and if False, the items are put on the recovery queue and not recovered for two minutes. The preferred behavior is to have the items recovered immediately. Is this the correct behavior or should they be doing something different? Where can I find documentation about the correct behavior in this situation.
SingleOpen = true means the provider drives the recovery, which means the provider detects upstream status and provides feedback to the consumer. The provider should update the service directory to set ServiceState to "down", and optionally AcceptingRequests to "down".
If there are multiple providers as hinted then the provider can publish a "source directory link filter entry" to indicate the upstream status.
When SingleOpen = false the consumer is driving the recovery so it is completely beholden to the consumers implementation.
Generally one should be using the directory state filter if the entire service is down so that TREP may redirect all requests to an active provider.