How Citrix XML Monitor works on NetScaler

How Citrix XML Monitor works on NetScaler

book

Article ID: CTX206063

calendar_today

Updated On:

Description

Question: How the Netscaler monitors the XML service when Citrix-XML-Monitor is used on Netscaler ?

Answer: When Citrix-XML monitor is bound to to the service on Netscaler. Netscaler send the below POST request:

POST /scripts/wpnbr.dll HTTP/1.1
Host: 54.97.64.99
Content-Length: 239
Content-Type: text/xml
Connection: Close

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE NFuseProtocol SYSTEM "NFuse.dtd">
<NFuseProtocol version="4.1">
<RequestAddress>
<Flags>no-load-bias</Flags><Name>
<AppName>NOTEPAD</AppName>            <<------  This is the Appname being monitored.
</Name>
</RequestAddress>
</NFuseProtocol>
HTTP/1.1 100 Continue
Server: Citrix Web PN Server
Date: Fri, 08 Jan 2016 15:38:43 GMT

Backend sends below response if everything is correct and NetScaler will mark the service UP with Success: Ticket Tag found in the Response:

HTTP/1.1 200 OK
Server: Citrix Web PN Server
Date: Fri, 08 Jan 2016 15:38:44 GMT
Content-type: text/xml
Content-length: 442

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE NFuseProtocol SYSTEM "NFuse.dtd">
<NFuseProtocol version="5.0">
<ResponseAddress>
<ServerAddress addresstype="dot">5.214.54.50</ServerAddress>
<ServerType>win32</ServerType>
<ConnectionType>tcp</ConnectionType>
<ClientType>ica30</ClientType>
<TicketTag>IMAHostId:20826</TicketTag>                 <<<---------This is the ticket tag netscaler look for in the response.
<FarmLoadHint>0</FarmLoadHint>
</ResponseAddress>
</NFuseProtocol>

================
In case if there is any issue in 200 OK response, we will see some errors like below and Netscaler will mark the service as DOWN with Failure: Ticket Tag not found in Response.

First example below:
===

HTTP/1.1 200 OK
Server: Citrix Web PN Server
Date: Tue, 26 Jan 2016 14:26:04 GMT
Content-type: text/xml
Content-length: 308

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE NFuseProtocol SYSTEM "NFuse.dtd">
<NFuseProtocol version="5.0">
<ResponseAddress>
<ErrorId>unspecified</ErrorId>
<MPSError type="IMA">0x8000000D</MPSError>
   <<--- We are not getting TicketTag from backend server and getting Error
<BrowserError>0x00000024</BrowserError>
</ResponseAddress>
</NFuseProtocol>

Second example below:
===================

HTTP/1.1 200 OK
Server: Citrix Web PN Server
Date: Tue, 26 Jan 2016 14:26:04 GMT
Content-type: text/xml
Content-length: 316

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE NFuseProtocol SYSTEM "NFuse.dtd">
<NFuseProtocol version="5.0">
    <ResponseAddress>
      <ErrorId>service-unavailable</ErrorId>
      <MPSError type="IMA">0x8000000B</MPSError>
      <<<-------- This is the error we get in case of any issues with backend  
      <BrowserError>0x00000024</BrowserError>
    </ResponseAddress>
</NFuseProtocol>
 

 

Additional Information