Skip to Content
Author's profile photo Former Member

Viewing Status of Your #SAP #HANA Server Without HANA Studio

Today I wondered how HANA Studio works. So I traced HANA Studio connections. And discovered that it communicate with HANA server using SOAP requests.

There are some methods. But in this blog I will mentiion only 2 of them.

Before starting writing about them SOAP url is: http://host:50<instance>13/SAPControl

  • The first one is about statuses of processes of HANA Server:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="urn:SAPControl">
     <SOAP-ENV:Header/>
          <SOAP-ENV:Body><q0:GetProcessList/></SOAP-ENV:Body>
</SOAP-ENV:Envelope>

This SOAP request returns:

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SAPControl="urn:SAPControl" xmlns:SAPCCMS="urn:SAPCCMS" xmlns:SAPHostControl="urn:SAPHostControl" xmlns:SAPOscol="urn:SAPOscol" xmlns:SAPDSR="urn:SAPDSR">
<SOAP-ENV:Body>
          <SAPControl:GetProcessListResponse>
                    <process>
                              <item>
                                        <name>hdbdaemon</name>
                                        <description>HDB Daemon</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:02</starttime>
                                        <elapsedtime>4:33:15</elapsedtime>
                                        <pid>5479</pid>
                              </item>
                              <item>
                                        <name>hdbnameserver</name>
                                        <description>HDB Nameserver</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:05</starttime>
                                        <elapsedtime>4:33:12</elapsedtime>
                                        <pid>5546</pid>
                              </item>
                              <item>
                                        <name>hdbpreprocessor</name>
                                        <description>HDB Preprocessor</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:21</starttime>
                                        <elapsedtime>4:32:56</elapsedtime>
                                        <pid>5631</pid>
                              </item>
                              <item>
                                        <name>hdbindexserver</name>
                                        <description>HDB Indexserver</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:24</starttime>
                                        <elapsedtime>4:32:53</elapsedtime>
                                        <pid>5648</pid>
                              </item>
                              <item>
                                        <name>hdbstatisticsserver</name>
                                        <description>HDB Statisticsserver</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:25</starttime>
                                        <elapsedtime>4:32:52</elapsedtime>
                                        <pid>5656</pid>
                              </item>
                              <item>
                                        <name>hdbxsengine</name>
                                        <description>HDB XSEngine</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:26</starttime>
                                        <elapsedtime>4:32:51</elapsedtime>
                                        <pid>5671</pid>
                              </item>
                              <item>
                                        <name>sapwebdisp_hdb</name>
                                        <description>SAP WebDispatcher</description>
                                        <dispstatus>SAPControl-GREEN</dispstatus>
                                        <textstatus>Running</textstatus>
                                        <starttime>2012 10 25 14:58:43</starttime>
                                        <elapsedtime>4:32:34</elapsedtime>
                                        <pid>6096</pid>
                              </item>
                    </process>
          </SAPControl:GetProcessListResponse>
</SOAP-ENV:Body></SOAP-ENV:Envelope>

As you see in response SOAP request returns every process of status.

  • The other SOAP request returns Web Methods. But they work with authentication as I can see.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="urn:SAPControl">
          <SOAP-ENV:Header/>
                    <SOAP-ENV:Body>
                              <q0:GetInstanceProperties/>
                    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

And this request returns:

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SAPControl="urn:SAPControl" xmlns:SAPCCMS="urn:SAPCCMS" xmlns:SAPHostControl="urn:SAPHostControl" xmlns:SAPOscol="urn:SAPOscol" xmlns:SAPDSR="urn:SAPDSR">
<SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Body>
          <SAPControl:GetInstancePropertiesResponse>
                    <properties>
                              <item>
                                        <property>Process List</property>
                                        <propertytype>NodeWebmethod</propertytype>
                                        <value>GetProcessList</value>
                              </item>
                              <item>
                                        <property>Access Points</property>
                                        <propertytype>NodeWebmethod</propertytype>
                                        <value>GetAccessPointList</value>
                              </item>
                              <item>
                                        <property>Protected Webmethods</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>ABAPAcknowledgeAlerts,ABAPGetWPTable,ABAPReadRawSyslog,ABAPReadSyslog,AnalyseLogFiles,Bootstrap,ConfigureLogFileList,CreateSnapshot,DeleteSnapshots,EnqGetLockTable,EnqGetStatistic,EnqRemoveLocks,GetAccessPointList,GetAlerts,GetAlertTree,GetEnvironment,GetLogFileList,GetProcessParameter,GetQueueStatistic,GetStartProfile,GetTraceFile,GetVersionInfo,ICMGetCacheEntries,ICMGetConnectionList,ICMGetProxyConnectionList,ICMGetThreadList,InstanceStart,InstanceStop,ListDeveloperTraces,ListLogFiles,ListSnapshots,OSExecute,ParameterValue,ReadDeveloperTrace,ReadLogFile,ReadSnapshot,RestartInstance,RestartService,RestartSystem,SendSignal,SetProcessParameter,SetProcessParameter2,ShmDetach,Shutdown,Start,StartSystem,Stop,StopService,StopSystem,UpdateSystem,WebDispGetServerList,GetAgentConfig,MtChangeStatus,MtCustomizeWrite,MtDbsetToWpsetByTid,MtDestroyMarkNTry,MtReset,PerfCustomizeWrite,ReadDirectory,ReadFile,ReadProfileParameters,Register,SnglmgsCustomizeWrite,SystemObjectSetValue,ToolSet,ToolSetRuntimeStatus,TriggerDataCollection,Unregister,UtilAlChangeStatus</value>
                              </item>
                              <item>
                                        <property>DBServices</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>YES</value>
                              </item>
                              <item>
                                        <property>StartPriority</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>0.3</value>
                              </item>
                              <item>
                                        <property>SAPSYSTEM</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>00</value>
                              </item>
                              <item>
                                        <property>SAPSYSTEMNAME</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>CC2</value>
                              </item>
                              <item>
                                        <property>SAPLOCALHOST</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>imdbhdbcc2</value>
                                        </item>
                              <item>
                                        <property>INSTANCE_NAME</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>HDB00</value>
                              </item>
                              <item>
                                        <property>Webmethods</property>
                                        <propertytype>Attribute</propertytype>
                                        <value>Start,InstanceStart,Bootstrap,Stop,InstanceStop,Shutdown,ParameterValue,GetProcessList,GetStartProfile,GetTraceFile,GetAlertTree,GetAlerts,RestartService,StopService,GetEnvironment,ListDeveloperTraces,ReadDeveloperTrace,RestartInstance,SendSignal,GetVersionInfo,GetQueueStatistic,GetInstanceProperties,OSExecute,ReadLogFile,AnalyseLogFiles,ListLogFiles,GetAccessPointList,GetSystemInstanceList,StartSystem,StopSystem,RestartSystem,UpdateSystem,AccessCheck,GetProcessParameter,SetProcessParameter,SetProcessParameter2,ShmDetach,GetNetworkId,GetSecNetworkId,RequestLogonFile,CreateSnapshot,ReadSnapshot,ListSnapshots,DeleteSnapshots,ABAPReadSyslog,ABAPReadRawSyslog,ABAPGetWPTable,ABAPAcknowledgeAlerts,ICMGetThreadList,ICMGetConnectionList,ICMGetCacheEntries,WebDispGetServerList,EnqGetLockTable,EnqRemoveLocks,EnqGetStatistic</value>
                              </item>
                    </properties>
          </SAPControl:GetInstancePropertiesResponse>
</SOAP-ENV:Body></SOAP-ENV:Envelope>

As you see above there are some web methods. You can test these by yourself.

You can test these methods with a simple HTML and Javascript code:

<html>
<head>
    <title>SOAP JavaScript Client Test</title>
    <script type="text/javascript">
        function test() {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open('POST', 'http://host:port/SAPControl', true);
            var sr =
                                        '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="urn:SAPControl"><SOAP-ENV:Header/><SOAP-ENV:Body><q0:GetInstanceProperties/></SOAP-ENV:Body></SOAP-ENV:Envelope>';
                              xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4) {
                    if (xmlhttp.status == 200) {
                        alert('done use firebug to see responce');
                    }
                }
            }
            xmlhttp.setRequestHeader('Content-Type', 'text/xml');
            xmlhttp.send(sr);
        }
    </script>
</head>
<body>
    <form name="Demo" action="" method="post">
        <div>
            <input type="button" value="Test!" onclick="test();" />
        </div>
    </form>
</body>
<html>

Assigned Tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Alvaro Tejada Galindo
      Alvaro Tejada Galindo

      Nice blog! 🙂 Will test as soon as I some free time...which is always dificult for me 🙁

      Keep on blogging! 😀

      Greetings,

      Blag.

      Author's profile photo Ivan Mirisola
      Ivan Mirisola

      Hi Erhan Keseli,

      Nice blog! Thanks for sharing.
      Just a small correction. According to documentation, the WSDL can be obtained either this way:

      http://<host>:5<instance_number>13/?wsdl

      or this way:

      https://<host>:5<instance_number>14/?wsdl

      It doesn’t matter if you enter the SAPControl or not on the URL. However, if you fail to pass “?wsdl” to the SAP Start Service, it will not “understand” the request and will issue either a “404” (in case you have missed the parameter) or a “SOAP Porttype not supported” message if you enter any additional “/” (slashes) – something like:

      http://localhost:50013/SAPControl/?wsdl   <—– this is wrong!!

      Regards,
      Ivan