Connection Manager Session Health Check - Diagnostics and troubleshooting guide

Rate this Article
Average: 1 (2 votes)

Summary

To receive a detailed connection manager diagnostic report, create a CM support/log file bundle and then submit this bundle to the PCoIP health check  tool.  Once the files are submitted, it will take 5-10 minutes to produce a detailed report.  The report will be sent to your registered e-mail address.  

Table of Contents

Diagnostic or Test Remedy if failure or error detected 
Step 1 to 3 - Initialize/Authenticate/Get list of hosts
Start session Corrective Action: Fix IP or Domain Name issues
Authenticate client Corrective Action: Fix authentication issues
Get a list of hosts Corrective Action: Fix host entitlement issue
Step 4 - Allocate resources and Connect to Hosts
Select a host  Corrective Action: Fix host entitlement issue
Contact host Corrective Action: Fix host IP or Domain Name issues
Authenticate on host Corrective Action: Fix host authentication issues
Get host ready Corrective Action: Host is not ready
Host setup completed Corrective Action: Host is not ready
Host allocation completed Corrective Action: Fix host allocation issues
Session setup completed   

 

Connection Manager Session Health Check

Initiate session ("Hello" and  "Hello-resp")

A connection manager will receive a hello message from the client and it will send a hello message to the broker.  

Expected Results

Diagnostic   Results   Timestamp   SessionID   Data
Initiate Session  Pass | Fail   <Timestamp> 

 <SessionID>

Requests a brokered PCoIP Session |
Connection Abort.

 

 

Corrective Action: Fix IP or Domain Name issues

  • Make sure the client is able to communicate with the connection manager.  If unreachable, check your ports settings (TCP port 443 may be blocked by your firewall) or your DNS/AD setting to ensure that the hostname is converted to the expected IP address and that the AD provides the expected fully qualified domain name (FQDN) 
  • Ensure that TCP port 636 is not blocked on the Domain Controller/ Broker


Example Logs

Example Hello Message

Received request from client (hello):
<hello>
<client-info>
<product-name>Teradici PCoIP Desktop Client</product-name>
<product-version>20.10.2</product-version>
<platform>Windows Server 2016 (10.0) winnt 10.0.14393 x86_64</platform>
<hostname>my-client.teradici.local</hostname>
<locale>en_US</locale><serial-number>0a:dc:e5:92:ac:86</serial-number>
<device-name>some-name</device-name>
<pcoip-unique-id>0a:dc:e5:92:ac:86</pcoip-unique-id>
</client-info>
<caps>
<cap>CAP_DISCLAIMER_AUTHENTICATION</cap>
<cap>CAP_NO_AUTHENTICATION</cap>
<cap>CAP_DIALOG_AUTHENTICATION</cap>
<cap>CAP_ALTERNATE_PROVISIONING</cap>
</caps>
</server-address>
</hello>

 

Example Hello Message

Sending request to PCoIP broker (hello):        
<hello>
<client-info>
<product-name>Teradici CAC Health Check</product-name> <product-version>CACv2</product-version>
<platform>Docker</platform>
<hostname>healthCheck</hostname>
<device-name>healthCheck</device-name>
<serial-number>healthCheck</serial-number>
<locale>en_US</locale>
</client-info>
<pcm-info><product-name>PCoIP Connection Manager</product-name>
<product-version>UNKNOWN</product-version>
<hostname>cm1.example</hostname></pcm-info>
<caps><cap>CAP_HEALTH_CHECK</cap><cap>CAP_ALTERNATE_CREDENTIALS</cap></caps>
</hello>

Example Hello Response

Received response from PCoIP broker (hello-resp): 
<hello-resp>
<brokers-info>
<broker-info>
<product-name>"PCoIP Broker"</product-name>
<product-version>v29.843.0.3.1199c7fffc</product-version>
<platform>"Ubuntu 18.04 LTS"</platform>
<locale>en_US</locale>
<ip-address>CHANGE_ME</ip-address>
<hostname>"broker.example"</hostname>
</broker-info></brokers-info>
<next-authentication> 
<authentication-methods>
 <method>AUTHENTICATE_VIA_PASSWORD</method> 
</authentication-methods>
<domains><domain>domain1.example</domain></domains> 
</next-authentication>
</hello-resp>

Example Hello Response

Sending response to client (hello-resp):
<hello-resp>
<brokers-info><broker-info>
<product-name>"PCoIP Broker"</product-name><product-version>v29.843.0.3.1199c7fffc</product-version>
<platform>"Ubuntu 18.04 LTS"</platform><locale>en_US</locale>
<ip-address>CHANGE_ME</ip-address>
<hostname>"broker.example"</hostname>
</broker-info></brokers-info>
<pcm-info>
<product-name>PCoIP Connection Manager</product-name>
<product-version>UNKNOWN</product-version><platform>GNU/Linux x86_64</platform>
<ip-address>10.101.0.12</ip-address>
<hostname>e29766ce435a</hostname>
</pcm-info>
<next-authentication>
<authentication-methods>
<method>AUTHENTICATE_VIA_PASSWORD</method>
</authentication-methods>
<domains>
<domain>domain-1</domain>
</domains>
</next-authentication>
</hello-resp>


Example Hello Error Response

Sending response to client (error-resp):
pcoip-client version="2.1">
<error-resp>
<result>
<result-id>ERR_BROKER_SYS_FAILED</result-id>
<result-str>Communication to the domain controller was not successful</result-str>
</result>
<detected-by>Broker</detected-by>
</error-resp>
</pcoip-client>

Session authentication ("authenticate" and "authenticate-resp")

The connection manager will authenticate the user using the user name and credentials provided in the "authenticate" message.  

Expected Results

 

Diagnostic   Results   Timestamp   SessionID   Data
Session Authentication  Pass | Fail   <Timestamp> 

 <SessionID>

User authenticated successfully |
Authentication failed

 

Corrective Action: Fix Authentication Issues

If the authenticate steps fails, then the authentication systems are not setup correctly, or the authentication check took to long to complete on either the connection manager or the remote host.

  1. Ensure the username, password and domain name is correct.
  2. If you are using Radius MFA, ensure TCP/UDP port 1812 is not blocked. Refer to the following article to read more about configuring MFA with PCoIP HP Anyware Manager, MFA with HP Anyware Connector

Example Logs 

Example Authenticate Message

Received request from client (authenticate): 
<authenticate method="password">
<username>****</username>
<password>****</password>
<domain>domain-1</domain>
</authenticate>

Example Authenticate Message

Sending request to PCoIP broker (authenticate): 
<authenticate method="password">
<username>****A</username>
<password>****</password>
<domain>domain-1</domain>
</authenticate>

Example Authenticate Response Message

Received response from PCoIP broker (authenticate-resp):
<authenticate-resp method="password">
<result>
<result-id>AUTH_SUCCESSFUL_AND_COMPLETE</result-id>
<result-str>Password authentication was successful and user authentication has been completed</result-str>
</result>
</authenticate-resp>

Example Authenticate Response Message

Sending response to client (authenticate-resp): 
<authenticate-resp method="password">
<result>
<result-id>AUTH_SUCCESSFUL_AND_COMPLETE</result-id>
<result-str>Password authentication was successful and user authentication has been completed</result-str>
</result>
</authenticate-resp>

Example authenticate Error Response

Received response from PCoIP broker (authenticate-resp):
<authenticate-resp method="password">
<result>
<result-id>AUTH_FAILED_UNKNOWN_USERNAME_OR_PASSWORD</result-id>
<result-str>Authentication failed, please enter valid Username &amp; Password</result-str></result>
</authenticate-resp>

Sending response to client (authenticate-resp): 
<authenticate-resp method="password">
<result>
<result-id>AUTH_FAILED_UNKNOWN_USERNAME_OR_PASSWORD</result-id>
<result-str>Authentication failed, please enter valid Username &amp; Password</result-str></result>
</authenticate-resp>

Get a List of Hosts ("get-resource-list" and "get-resource-resp")

The connection manager will ask the broker for the list of hosts that the authenticated client can connect to.  

Expected Results

 

Diagnostic   Results   Timestamp   SessionID   Data
Get a list of hosts  Pass | Fail   <Timestamp> 

 <SessionID>

Successfully retrieved the list of resources |
User has not been assigned any remote workstations.


Corrective Action: Fix entitlement issue

If the CM does not return the list of hosts, probably the hosts are not being added to workstations list or no user has been assigned to the workstation. Refer to the admin guide link for information on adding workstations, adding Remote Workstations

Example Logs

Example get-resource-list Message from Client to CM

Received request from client (get-resource-list): 
<get-resource-list>
<protocols><protocol>PCOIP</protocol></protocols>
<resource-types><resource-type>DESKTOP</resource-type></resource-types>
</get-resource-list>

Example get-resource-list Message

Received request from client (get-resource-list):
<get-resource-list>
<protocols><protocol>PCOIP</protocol></protocols>
<resource-types>
<resource-type>DESKTOP</resource-type>
</resource-types>
</get-resource-list>

Example get-resource-list Message

Sending request to PCoIP broker (get-resource-list): 
<get-resource-list>
<protocols><protocol>PCOIP</protocol></protocols>
<resource-types>
<resource-type>DESKTOP</resource-type>
</resource-types>
</get-resource-list></pcoip-broker>

Example get-resource-list-resp message

Received response from PCoIP broker (get-resource-list-resp):
<get-resource-list-resp>
<result><result-id>LIST_SUCCESSFUL</result-id>
<result-str>Successfully retrieved the list of resources</result-str></result>
<resource>
<resource-name>My-Desktop</resource-name>
<resource-id>600b5fb4bc906288e9b08f84</resource-id>
<resource-type session-type="VDI">DESKTOP</resource-type>
<resource-state>UNKNOWN</resource-state>
<protocols><protocol is-default="true">PCOIP</protocol></protocols>
</resource>
<resource>
<resource-name>My-Desktop2</resource-name>
<resource-id>6015b54657035ebc622426e9</resource-id>
<resource-type session-type="VDI">DESKTOP</resource-type>
<resource-state>UNKNOWN</resource-state>
<protocols><protocol is-default="true">PCOIP</protocol></protocols>
</resource>
</get-resource-list-resp>

Example get-resource-list-resp message to Client

Sending response to client (get-resource-list-resp): <?xml version="1.0" encoding="UTF-8"?><pcoip-client version="2.1">
<get-resource-list-resp>
<result><result-id>LIST_SUCCESSFUL</result-id>
<result-str>Successfully retrieved the list of resources</result-str>
</result>
<resource>
<resource-name>My-Desktop1</resource-name>
<resource-id>600b5fb4bc906288e9b08f84</resource-id>
<resource-type session-type="VDI">DESKTOP</resource-type>
<resource-state>UNKNOWN</resource-state>
<protocols>
<protocol is-default="true">PCOIP</protocol>
</protocols>
</resource>
<resource>
<resource-name>My-Desktop2</resource-name>
<resource-id>6015b54657035ebc622426e9</resource-id>
<resource-type session-type="VDI">DESKTOP</resource-type>
<resource-state>UNKNOWN</resource-state>
<protocols>
<protocol is-default="true">PCOIP</protocol>
</protocols>
</resource>
</get-resource-list-resp>

Example entitlement Error Response

Received response from PCoIP broker (get-resource-list-resp): 
<pcoip-broker version="2.1">
<get-resource-list-resp>
<result><result-id>LIST_FAILED_NO_ENTITLEMENT</result-id>
<result-str>User has not been assigned any remote workstations</result-str>
</result>
</get-resource-list-resp>
</pcoip-broker>

Sending response to client (get-resource-list-resp): 
<pcoip-client version="2.1">
<get-resource-list-resp>
<result><result-id>LIST_FAILED_NO_ENTITLEMENT</result-id>
<result-str>User has not been assigned any remote workstations</result-str>
</result>
</get-resource-list-resp>
</pcoip-client>

Prepare Host ("allocate-resource" and "allocate-resource-resp")

The connection manager will ask the host to prepare the desktop for a PCoIP session.  

Expected Results

Diagnostic   Results   Timestamp   SessionID   Data
Allocate Resource  Pass | Fail   <Timestamp> 

 <SessionID>

Successfully allocated remote workstation |
Resource allocation failed

Corrective Action: Fix remote host not ready issues

If the allocate-resource-resp is not received or an error message is not ALLOC_SUCCESSFUL then the problem is likely due to an issue on the host. Either the host is not active, or TCP 60443 is not open on host machine. 

Example Logs

Example allocate-resource Message from Client to CM

Received request from client (allocate-resource):
<allocate-resource>
<resource-id>601c331ec3691f36182bfc48</resource-id>
<protocol>PCOIP</protocol>
<client-info>
<time-zone-windows>Pacific Standard Time</time-zone-windows>
<ip-address>xx.xx.xx.xx</ip-address>
<mac-address>0a:dc:e5:92:ac:86</mac-address>
</client-info>
</allocate-resource>

Example allocate-resource Message

Sending request to PCoIP broker (allocate-resource):
<allocate-resource>
<resource-id>601c331ec3691f36182bfc48</resource-id>
<protocol>PCOIP</protocol>
<client-info>
<time-zone-windows>Pacific Standard Time</time-zone-windows>
<ip-address>xx.xx.xx.xx</ip-address>
<mac-address>0a:dc:e5:92:ac:86</mac-address>
</client-info>
</allocate-resource>

Example allocate-resource-resp Message

Received response from PCoIP broker (allocate-resource-resp): 
<allocate-resource-resp>
<result>
<result-id>ALLOC_SUCCESSFUL</result-id>
<result-str>Successfully allocated remote workstation</result-str>
</result>
<target>
<ip-address>xx.xx.xxx.xx</ip-address>
<hostname>My-Desktop1</hostname>
</target>
<resource-id>601c331ec3691f36182bfc48</resource-id>
<protocol>PCOIP</protocol>
</allocate-resource-resp>

Example allocate-resource-resp Error Response

Received response from PCoIP broker (allocate-resource-resp):<pcoip-broker version="2.1">
<allocate-resource-resp>
<result><result-id>ALLOC_FAILED_INVALID_PARAMETER</result-id>
<result-str>Resource does not exist in CAM Service</result-str>
</result>
</allocate-resource-resp>
</pcoip-broker>

Example allocate-resource-resp Error Response

Received response from PCoIP broker (allocate-resource-resp):
<pcoip-broker version="2.1">
<allocate-resource-resp>
<result>
<result-id>ALLOC_PENDING_TRY_AGAIN</result-id>
<result-str>The PCoIP agent on 10.0.4.4 is unreachable. Please try to connect again.</result-str>
</result>
</allocate-resource-resp>
</pcoip-broker>

Initiate session on host ("Hello" and  "Hello-resp")

A "hello" is the message received by host and indicates the start of the connection negotiation with a particular host. The host will prepare and send the response message to the sender. 

Expected Results

Diagnostic   Results   Timestamp   SessionID   Data
Initiate Session  Pass | Fail   <Timestamp> 

 <SessionID>

Received hello command | 
Connection abort

 

Corrective Action: Fix remote host not ready issues

Make sure the host is able to communicate with the connection manager. If unreachable, check your ports settings (443 may be blocked by your firewall).


Example hello message

Sending request to PCoIP agent using PCoIP Broker Protocol (hello): 
<hello>
<client-info><product-name>Teradici PCoIP Desktop Client</product-name>
<product-version>20.10.2</product-version>
<platform>Windows Server 2016 (10.0) winnt 10.0.14393 x86_64</platform>
<locale>en_US</locale>
<serial-number>0a:dc:e5:92:ac:86</serial-number>
<pcoip-unique-id>0a:dc:e5:92:ac:86</pcoip-unique-id>
</client-info>
<pcm-info>
<product-name>PCoIP Connection Manager</product-name>
<product-version>UNKNOWN</product-version>
<platform>GNU/Linux x86_64</platform>
<ip-address>10.101.0.12</ip-address>
<hostname>e29766ce435a</hostname>
</pcm-info>
<caps><cap>CAP_DISCLAIMER_AUTHENTICATION</cap><cap>CAP_NO_AUTHENTICATION</cap><cap>CAP_DIALOG_AUTHENTICATION</cap><cap>CAP_ALTERNATE_PROVISIONING</cap><cap>CAP_ALTERNATE_CREDENTIALS</cap></caps>
</hello>

Example hello response

Received response from PCoIP agent using PCoIP Broker Protocol (hello-resp):
<hello-resp>
<brokers-info><broker-info>
<product-name>PCoIP Standard Agent for Windows Direct-Connect Broker</product-name>
<product-version>20.10.2</product-version>
<platform>Windows</platform>
<locale>en_US</locale>
<ip-address>10.0.4.5</ip-address>
<hostname>Win-std2</hostname>
</broker-info></brokers-info>
<next-authentication><authentication-methods><method>AUTHENTICATE_VIA_PASSWORD</method></authentication-methods>
<domains>
<domain>domain-1</domain>
</domains>
</next-authentication>
<broker-to-client-variables><variable><name>OID25071-support-url</name><value>techsupport.teradici.com</value></variable></broker-to-client-variables>
</hello-resp>

Session authentication on host ("authenticate" and "authenticate-resp")

The host will authenticate the user using  the user name and credentials provided in the "authenticate" message.  

Expected Results

Diagnostic   Results   Timestamp   SessionID   Data
Session authentication  Pass   <Timestamp> 

 <SessionID>

Received authenticate-password command|
User authentication failed

 

Corrective Action: Fix remote host not ready issues

Ensure that the AD domain is reachable from the host machine and the host is joined to the correct domain. 



Example Authenticate message

Sending request to PCoIP agent using PCoIP Broker Protocol (authenticate):
<authenticate method="password">
<username>****</username>
<password>****</password>
<domain>domain-1</domain>
</authenticate>

Example Authenticate Response

Received response from PCoIP agent using PCoIP Broker Protocol (authenticate-resp): 
<authenticate-resp method="password">
<result>
<result-id>AUTH_SUCCESSFUL_AND_COMPLETE</result-id>
<result-str>User authenticated successfully.</result-str>
</result>
</authenticate-resp>

 Example Authenticate Error Response

Sending request to PCoIP agent using PCoIP Broker Protocol (authenticate):
<pcoip-client version="2.1" encoding="UTF-8">
<authenticate method="password">
<username>cas_admin</username>
<password>****</password>
<domain>domain-1</domain>
</authenticate>
</pcoip-client>

Received response from PCoIP agent using PCoIP Broker Protocol (authenticate-resp):
<pcoip-client version="2.1">
<authenticate-resp method="password">
<result>
<result-id>AUTH_FAILED_UNKNOWN_USERNAME_OR_PASSWORD</result-id>
<result-str>User authentication failed. Please re-enter username, password, and/or domain.</result-str>
</result>
</authenticate-resp>
</pcoip-client>

ERROR PCoIPBrokerProtocolAgent           : PBP_R_ALLOC_FAILED_UNKNOWN_USERNAME_OR_PASSWORD (Failed to establish a remote session due to invalid username, password, and/or domain.) Detail: [PCoIPAgent] AUTH_FAILED_UNKNOWN_USERNAME_OR_PASSWORD: User authentication failed. Please re-enter username, password, and/or domain.

 

Prepare Host ("allocate-resource" and "allocate-resource-resp")

The host will prepare the desktop for a PCoIP session and will confirm that the host is healthy to the sender of the allocate-resource message.

Expected Results

Diagnostic   Results   Timestamp   SessionID   Data
Prepare Host?  Pass   <Timestamp> 

<SessionID>

Received allocate-resource command 

Example allocate resource message

Sending request to PCoIP agent using PCoIP Broker Protocol (allocate-resource): 
<allocate-resource>
<resource-id>1</resource-id>
<protocol>PCOIP</protocol>
<client-info>
<client-name>my-client</client-name>
<time-zone-windows>Pacific Standard Time</time-zone-windows>
<ip-address>10.12.34.151</ip-address>
<mac-address>0a:dc:e5:92:ac:86</mac-address>
</client-info>
<license-server />
</allocate-resource>

 

Example allocate-resource resp from host

Received response from PCoIP agent using PCoIP Broker Protocol (allocate-resource-resp): 
<allocate-resource-resp>
<result>
<result-id>ALLOC_SUCCESSFUL</result-id>
<result-str>Resource was allocated successfully.</result-str>
</result>
<target>
<ip-address>10.0.4.5</ip-address>
<hostname>My-Desktop1</hostname>
<sni>Win-std2</sni>
<port>4172</port>
<session-id>2305843009213693952
</session-id>
<connect-tag>SCS1****LknduKcwa9YA</connect-tag>
</target>
<resource-id>1</resource-id>
<protocol>PCOIP</protocol>
</allocate-resource-resp>

Example Bye message

Sending request to PCoIP agent using PCoIP Broker Protocol (bye):
<pcoip-client version="2.1" encoding="UTF-8">
<bye />
</pcoip-client>

Example Bye response

Received response from PCoIP agent using PCoIP Broker Protocol (bye-resp): 
<pcoip-client version="2.1">
<bye-resp />
</pcoip-client>

Example allocate-resource resp to client

Sending response to client (allocate-resource-resp): <?xml version="1.0" encoding="UTF-8"?><pcoip-client version="2.1"><allocate-resource-resp>
<result>
<result-id>ALLOC_SUCCESSFUL</result-id>
<result-str>Successfully allocated remote workstation</result-str>
</result>
<target>
<ip-address>10.0.4.5</ip-address>
<hostname>My-Desktop1</hostname>
<sni>Win-std2</sni>
<port>4172</port>
<session-id>2305843009213693952</session-id>
<connect-tag>SCS1****LknduKcwa9YA</connect-tag>
</target>
<resource-id>601c331ec3691f36182bfc48</resource-id>
<protocol>PCOIP</protocol>
</allocate-resource-resp>
</pcoip-client>

 

 

 

Setup Session complete ("bye" and "bye-resp")

Once the host of ready, the connection manager will inform the host that the local connection preparation is complete . 

Expected Results

 

Diagnostic   Results   Timestamp   SessionID   Data
Session Setup  Pass | Fail   <Timestamp> 

 <SessionID>

Session setup completed |
Session aborted

 

Example Logs

Example "bye" Message

Received request from client (bye):
<pcoip-client version="2.1">
<bye />
</pcoip-client>

 

Sending request to PCoIP broker (bye): 
<pcoip-broker version="2.1">
<bye />
</pcoip-broker>

Example "bye-resp" Message

Received response from PCoIP broker (bye-resp):
<pcoip-broker version="2.1">
<bye-resp />
</pcoip-broker>

 

Sending response to client (bye-resp):
<pcoip-client version="2.1">
<bye-resp />
</pcoip-client>