Friday, March 13, 2015

SDL Tridion: How to resolve 'com.tridion.configuration.ConfigurationException: No RequestData for WebGUI' when enabling WebGUI monitoring in the cd_monitor_conf.xml?

While enabling the WebGUI monitoring in the cd_monitor_conf.xml of SDL Tridion 2011 SP1 HR2, I got the following error message:

 ERROR Agent - TMA-AG-30000 Failed to get Agent instance
com.tridion.configuration.ConfigurationException: No RequestData for WebGUI
    at com.tridion.monitor.polling.XMLHTTPHealthMonitor.configure(XMLHTTPHealthMonitor.java:149) ~[cd_monitor.jar:na]
    at com.tridion.monitor.Agent.configureHealthMonitors(Agent.java:271) [cd_monitor.jar:na]
    at com.tridion.monitor.Agent.configure(Agent.java:233) [cd_monitor.jar:na]
    at com.tridion.monitor.Agent.<init>(Agent.java:121) [cd_monitor.jar:na]
    at com.tridion.monitor.Agent.getInstance(Agent.java:132) [cd_monitor.jar:na]
    at com.tridion.monitor.Agent.main(Agent.java:358) [cd_monitor.jar:na]


At first I had this configuration:

<XmlHttpServiceHealthMonitor ServiceType="WebGUI" PollInterval="1m" TimeoutInterval="30s">
            <Request URL="http://servername:portnumber/WebUI/Models/TCM54/Services/General.svc/GetUserName"/>
             <Authentication Scheme="NTLM" Domain="domain" Username="username" Password="password"/>
            <!-- <Header Name="CustomHeader" Value="CustomValue"/> -->
            <!-- <Response SuccessPattern="/string[text()='domain\user']"/> -->
        </XmlHttpServiceHealthMonitor> 


And looking at the documentation, it mentioned that the RequestData element is optional, I thought it wouldn't be required. Moreover, I wasn't sure what exactly RequestData it expects.

I then found out with the help of a colleague that we indeed need to specify the RequestData element as follows:

         <XmlHttpServiceHealthMonitor ServiceType="WebGUI" PollInterval="1m" TimeoutInterval="30s">
            <Request URL="http://localhost:81/WebUI/Models/TCM54/Services/General.svc/GetUserName" RequestData="CoreServiceRequest.xml"/>
             <Authentication Scheme="NTLM" Domain="." Username="administrator" Password="tridion"/>
            <!-- <Header Name="CustomHeader" Value="CustomValue"/> -->
            <!-- <Response SuccessPattern="/string[text()='domain\user']"/> -->
        </XmlHttpServiceHealthMonitor> 


After applying this change, we need to create the CoreServiceRequest.xml (under Tridion_Home\bin) with this content:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetCurrentUser xmlns="http://www.sdltridion.com/ContentManager/CoreService/2011"/></s:Body></s:Envelope>

When restarting the Tridion Monitoring Service, it will now log:

HealthCheckStartEvent - TMA-PO-00000 Scheduled HealthCheckStartEvent for service WebGUI at


No comments: