The following symptoms occur on Provisioning Services (PVS) Servers when there are multiple streaming NICs assigned to the PVS Server.
Example
An environment having five streaming NICs had the following symptoms:
When Show Connected Devices was clicked in the PVS console, the following symptoms might be experienced:Server timeout error 4002
Unusual delay of 3 to 4 minutes to list the connected devices
PVS console stops responding
Caution! Refer to the Disclaimer at the end of this article before using Registry Editor.
Complete the following to resolve the issue:On the PVS Server machine, under HKLM\software\citrix\provisioningServices\Manager key, create registry DWORD RelayedRequestReplyTimeoutMilliseconds, and set it to 50 ms.
Note: Ensure to choose decimal, not hexadecimal.
Create a DWORD RelayedRequestTryTimes and set it to 1.
Default is 2.
Open the PVS Server console and test by selecting the Show Connected Devices command.
When running the Show Connected Devices command from the PVS console, it sends the request to each interface that is bound to the stream service, to each Target Device, with a default timeout of 5000 milliseconds, twice for each NIC, resulting in a search time of 10 seconds per device, per NIC.
Example5 NICs, 1 Target Device currently connected would return the Show Connected Device in 50 seconds.
You can clearly see this behavior in the stream log that it is searching each IP address assigned to the streaming service:
2012-05-25 10:05:24,614 [0x00000fdc] DEBUG CManagerConfig::GetRelayedRequestTryTimes -- <RelayedRequestTryTimes> = 22012-05-25 10:05:24,614 [0x00000fdc] DEBUG CManagerConfig::GetRelayedRequestReplyTimeoutMilliseconds -- <RelayedRequestReplyTimeoutMilliseconds> = 50002012-05-31 14:47:46,470 [0x00000e7c] DEBUG CManagerConfig::GetServerIpGroupTryTimes -- <ServerIpGroupTryTimes> = 22012-05-31 14:47:46,470 [0x00000e7c] DEBUG CManagerConfig::GetServerReplyTimeoutMilliseconds -- <ServerReplyTimeoutMilliseconds> = 500002012-05-31 14:47:46,470 [0x00000e7c] DEBUG in CManagerReplyReceiver:SendMessageToServer, requestId = 0 2012-05-31 14:47:46,486 [0x00000e7c] DEBUG in CManagerReplyReceiver:TryEachIpAddressIteratively 2012-05-31 14:47:46,486 [0x00000e7c] DEBUG will try sending request to ip address = 2887140615, port = 6911 2012-05-31 14:47:46,486 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult 2012-05-31 14:47:46,501 [0x00000e7c] DEBUG added future for request id 0 2012-05-31 14:47:46,501 [0x00000e7c] DEBUG to <172.22.69.7:6911>, about to send 80 bytes 2012-05-31 14:47:46,501 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message 2012-05-31 14:47:56,516 [0x00000e7c] DEBUG futureResult.get failed with err = 121 2012-05-31 14:47:56,516 [0x00000e7c] ERROR remote request timed out 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting. 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG number of entries in the futureMap = 0 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG will try sending request to ip address = 2887140359, port = 6911 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG added future for request id 0 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG to <172.22.68.7:6911>, about to send 80 bytes 2012-05-31 14:47:56,532 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG futureResult.get failed with err = 121 2012-05-31 14:48:06,547 [0x00000e7c] ERROR remote request timed out 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting. 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG number of entries in the futureMap = 0 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG will try sending request to ip address = 2887140103, port = 6911 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG added future for request id 0 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG to <172.22.67.7:6911>, about to send 80 bytes 2012-05-31 14:48:06,547 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG futureResult.get failed with err = 121 2012-05-31 14:48:16,562 [0x00000e7c] ERROR remote request timed out 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting. 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG number of entries in the futureMap = 0 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG will try sending request to ip address = 2887139847, port = 6911 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG added future for request id 0 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG to <172.22.66.7:6911>, about to send 80 bytes 2012-05-31 14:48:16,562 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG futureResult.get failed with err = 121 2012-05-31 14:48:26,577 [0x00000e7c] ERROR remote request timed out 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting. 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG number of entries in the futureMap = 0 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG will try sending request to ip address = 2887139591, port = 6911 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG added future for request id 0 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG to <172.22.65.7:6911>, about to send 80 bytes 2012-05-31 14:48:26,577 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG futureResult.get failed with err = 121 2012-05-31 14:48:36,592 [0x00000e7c] ERROR remote request timed out 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG for requestId = 0, returning result = -32718 (RemoteRequestTimedOut). Done waiting. 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG number of entries in the futureMap = 0 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG will try sending request to ip address = 2887139335, port = 6911 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG in CManagerReplyReceiver:sendMessageAndWaitForResult 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG added future for request id 0 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG to <172.22.64.7:6911>, about to send 80 bytes 2012-05-31 14:48:36,592 [0x00000e7c] DEBUG sent 80 bytes of 80 byte message 2012-05-31 14:48:37,247 [0x000030fc] DEBUG in CManagerReplyReceiver::dispatchPacket 2012-05-31 14:48:37,247 [0x000030fc] DEBUG header opcode = -2147221501, request id = 0 2012-05-31 14:48:37,247 [0x000030fc] DEBUG handling a ManagedServer reply 2012-05-31 14:48:37,247 [0x000030fc] DEBUG in CRemoteManagedServer::handleReply 2012-05-31 14:48:37,247 [0x000030fc] DEBUG handling reply for request id = 0 2012-05-31 14:48:37,263 [0x000030fc] DEBUG found future for requestId 2012-05-31 14:48:37,263 [0x000030fc] DEBUG converting reply status for a rebalance reply, successful by default 2012-05-31 14:48:37,278 [0x000030fc] DEBUG in CRemoteManagedServer::harvestReplyDataFromMessage 2012-05-31 14:48:37,278 [0x000030fc] DEBUG reply is for a rebalance request, requestId = 0 2012-05-31 14:48:37,278 [0x000030fc] DEBUG value from reply is 21 2012-05-31 14:48:37,278 [0x000030fc] DEBUG entry added to data result map for requestId = 0 2012-05-31 14:48:37,294 [0x00000e7c] DEBUG futureResult.get succeeded for requestId = 0, actualResult = 0 (Success). Done waiting.