<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>AXL vs. Serviceability XML functionality</title>
  <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_thread?p_l_id=&amp;threadId=12888195" />
  <subtitle>AXL vs. Serviceability XML functionality</subtitle>
  <id>http://developer.cisco.com/c/message_boards/find_thread?p_l_id=&amp;threadId=12888195</id>
  <updated>2013-05-25T01:40:01Z</updated>
  <dc:date>2013-05-25T01:40:01Z</dc:date>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12994177" />
    <author>
      <name>Dean Schulze</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12994177</id>
    <updated>2013-03-13T21:29:29Z</updated>
    <published>2013-03-13T21:29:29Z</published>
    <summary type="html">Thanks very much for providing the link to the data dictionary.
 
[quote=David Staudt]AXL provides some sanity checking, rate/data-size throttling, and transaction protection around SQL requests, intended to prevent at least some potential mis-use, even though direct SQL access is still relatively risky.   -Direct SQL access, e.g. JDBC, is not possible.  Also note the important caveats around AXL SQL usage, including: performance impact on UCM callprocessing is not guaranteed and testing by the developer is critical; UCM SQL database schema has no backward compatibility guarantees, and could possibly change in any UCM release, including point or patch releases (almost always this is just additions of fields/tables, but FYI.)

UCM Informix database table/field/relationship info is available in the corresponding Data Dictionary documentation: http://developer.cisco.com/web/axl-developer/latest-version
 [/quote]</summary>
    <dc:creator>Dean Schulze</dc:creator>
    <dc:date>2013-03-13T21:29:29Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12988095" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12988095</id>
    <updated>2013-03-13T18:30:06Z</updated>
    <published>2013-03-13T18:30:06Z</published>
    <summary type="html">AXL provides some sanity checking, rate/data-size throttling, and transaction protection around SQL requests, intended to prevent at least some potential mis-use, even though direct SQL access is still relatively risky.   -Direct SQL access, e.g. JDBC, is not possible.  Also note the important caveats around AXL SQL usage, including: performance impact on UCM callprocessing is not guaranteed and testing by the developer is critical; UCM SQL database schema has no backward compatibility guarantees, and could possibly change in any UCM release, including point or patch releases (almost always this is just additions of fields/tables, but FYI.)

UCM Informix database table/field/relationship info is available in the corresponding Data Dictionary documentation: http://developer.cisco.com/web/axl-developer/latest-version
 </summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-03-13T18:30:06Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12986327" />
    <author>
      <name>Dennis Heim</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12986327</id>
    <updated>2013-03-13T18:15:11Z</updated>
    <published>2013-03-13T18:15:11Z</published>
    <summary type="html">AXL is the only way. You will need to look at the database dictionary. If you name tables you can always do a  select tabname from systables.

Dennis Heim | Sr. Unified Collaboration Team Lead
World Wide Technology | 314.212.1814 | dennis.heim@wwt.com&lt;mailto:dennis.heim@wwt.com&gt;
“Creating Impact, Ignition &amp; Scalability”

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Wednesday, March 13, 2013 2:07 PM
To: cdicuser@developer.cisco.com
Subject: New Message from Dean Schulze in AXL Developer - Administration XML Questions: RE: New Message from Dean Schulze in AXL Developer - Administration XML Que

Dean Schulze has created a new message in the forum "Administration XML Questions": -------------------------------------------------------------- Thanks for the explanation and example.
That's a convoluted way to do queries.  If the intention is to support arbitray user queries I would think they would create a read-only user for Informix and open the appropriate port for JDBC / ODBC connections.  Is this supported or is AXL the only way to do queries?
Either way you have to know the Informix schema (table names, etc).  Is this documented anywhere?
Thanks again.

David Staudt:
There is a WSDL for the AXL interface, it is available for download from the administrative web pages/UI of the UCM server itself - under Applications/Plugins, as AXL SQL Toolkit.  The Toolkit includes a small Java sample with actually performs an executeSqlRequest.
A limitation of the WSDL concept itself however is that requests/responses are supposed to be fully defined.  In the case of an AXL request that submits custom SQL statements, the data returned - while tabular - can have any number of fields in the result, and so cannot be parsed by code created by WSDL consumer/compilers.  For executeSqlQuery requests, it's generally just easier to set up an HTTP POST with some string/concatenated XML (only the SQL text needs to change between requests), and then use an XML parser to access the results.
Example of full request/response:
POST https://10.88.131.141:844...

--
To respond to this post, please click the following link: http://developer.cisco.com/web/axl-developer/forums/-/message_boards/view_message/12983484 or simply reply to this email.</summary>
    <dc:creator>Dennis Heim</dc:creator>
    <dc:date>2013-03-13T18:15:11Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12983484" />
    <author>
      <name>Dean Schulze</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12983484</id>
    <updated>2013-03-13T18:06:21Z</updated>
    <published>2013-03-13T18:06:21Z</published>
    <summary type="html">Thanks for the explanation and example.
That's a convoluted way to do queries.  If the intention is to support arbitray user queries I would think they would create a read-only user for Informix and open the appropriate port for JDBC / ODBC connections.  Is this supported or is AXL the only way to do queries?
Either way you have to know the Informix schema (table names, etc).  Is this documented anywhere?
Thanks again.
 
[quote=David Staudt]There is a WSDL for the AXL interface, it is available for download from the administrative web pages/UI of the UCM server itself - under Applications/Plugins, as AXL SQL Toolkit.  The Toolkit includes a small Java sample with actually performs an executeSqlRequest.
A limitation of the WSDL concept itself however is that requests/responses are supposed to be fully defined.  In the case of an AXL request that submits custom SQL statements, the data returned - while tabular - can have any number of fields in the result, and so cannot be parsed by code created by WSDL consumer/compilers.  For executeSqlQuery requests, it's generally just easier to set up an HTTP POST with some string/concatenated XML (only the SQL text needs to change between requests), and then use an XML parser to access the results.
Example of full request/response:
POST https://10.88.131.141:844...[/quote]</summary>
    <dc:creator>Dean Schulze</dc:creator>
    <dc:date>2013-03-13T18:06:21Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12951450" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12951450</id>
    <updated>2013-03-13T06:15:45Z</updated>
    <published>2013-03-13T06:15:45Z</published>
    <summary type="html">There is a WSDL for the AXL interface, it is available for download from the administrative web pages/UI of the UCM server itself - under Applications/Plugins, as AXL SQL Toolkit.  The Toolkit includes a small Java sample with actually performs an executeSqlRequest.
A limitation of the WSDL concept itself however is that requests/responses are supposed to be fully defined.  In the case of an AXL request that submits custom SQL statements, the data returned - while tabular - can have any number of fields in the result, and so cannot be parsed by code created by WSDL consumer/compilers.  For executeSqlQuery requests, it's generally just easier to set up an HTTP POST with some string/concatenated XML (only the SQL text needs to change between requests), and then use an XML parser to access the results.
Example of full request/response:
POST https://10.88.131.141:8443/axl/ HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "CUCM:DB ver=8.5 executeSQLQuery" 
Authorization: Basic QWRtaW5pc3RyYXRvcjpjaXNjbyExMjM= 
Content-Length: 312 
Host: 10.88.131.141:8443 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 
 
&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/8.5"&gt;
   &lt;soapenv:Header/&gt;
   &lt;soapenv:Body&gt;
      &lt;ns:executeSQLQuery sequence="1"&gt;
         &lt;sql&gt;select * from processnode&lt;/sql&gt;
      &lt;/ns:executeSQLQuery&gt;
   &lt;/soapenv:Body&gt;
&lt;/soapenv:Envelope&gt;
----------------------------
HTTP/1.1 200 OK 
Set-Cookie: JSESSIONIDSSO=AD4AB341D0D439A467D55B328693C035; Path=/; Secure 
Set-Cookie: JSESSIONID=B96E4958B5D31504ED0F367A2CE935FE; Path=/axl; Secure 
Content-Type: text/xml;charset=UTF-8 
Content-Length: 957 
Date: Wed, 13 Mar 2013 06:13:26 GMT 
Server:  
 
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;
  &lt;soapenv:Body&gt;
    &lt;ns:executeSQLQueryResponse xmlns:ns="http://www.cisco.com/AXL/API/8.5"&gt;
      &lt;return&gt;
        &lt;row&gt;
          &lt;pkid&gt;00000000-1111-0000-0000-000000000000&lt;/pkid&gt;
          &lt;name&gt;EnterpriseWideData&lt;/name&gt;
          &lt;mac/&gt;
          &lt;systemnode&gt;t&lt;/systemnode&gt;
          &lt;description/&gt;
          &lt;isactive&gt;t&lt;/isactive&gt;
          &lt;nodeid&gt;1&lt;/nodeid&gt;
          &lt;tknodeusage&gt;1&lt;/tknodeusage&gt;
          &lt;ipv6name/&gt;
        &lt;/row&gt;
        &lt;row&gt;
          &lt;pkid&gt;854a8c28-dae6-42fd-93fb-46edc2b5f2aa&lt;/pkid&gt;
          &lt;name&gt;10.88.131.141&lt;/name&gt;
          &lt;mac/&gt;
          &lt;systemnode&gt;f&lt;/systemnode&gt;
          &lt;description/&gt;
          &lt;isactive&gt;t&lt;/isactive&gt;
          &lt;nodeid&gt;2&lt;/nodeid&gt;
          &lt;tknodeusage&gt;0&lt;/tknodeusage&gt;
          &lt;ipv6name/&gt;
        &lt;/row&gt;
        &lt;row&gt;
          &lt;pkid&gt;b534935e-d765-c25e-096c-509eb9b96b37&lt;/pkid&gt;
          &lt;name&gt;10.88.131.146&lt;/name&gt;
          &lt;mac&gt;000c292b3ba2&lt;/mac&gt;
          &lt;systemnode&gt;f&lt;/systemnode&gt;
          &lt;description&gt;UCM851sub&lt;/description&gt;
          &lt;isactive&gt;t&lt;/isactive&gt;
          &lt;nodeid&gt;3&lt;/nodeid&gt;
          &lt;tknodeusage&gt;1&lt;/tknodeusage&gt;
          &lt;ipv6name/&gt;
        &lt;/row&gt;
      &lt;/return&gt;
    &lt;/ns:executeSQLQueryResponse&gt;
  &lt;/soapenv:Body&gt;
&lt;/soapenv:Envelope&gt;</summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-03-13T06:15:45Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12894388" />
    <author>
      <name>Dean Schulze</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12894388</id>
    <updated>2013-03-11T21:46:03Z</updated>
    <published>2013-03-11T21:46:03Z</published>
    <summary type="html">Ugh.  I was hoping to avoid all of that ugliness in the AXL documentation - creating HTTP Posts manually.
Does AXL expose any .wsdl interface on the CUCM server?  The documentation only shows the URLs for SXL.
 
[quote=David Staudt]If you're referring to executing SQL statements, the Serviceability API does have a request for that in the WSDL, but it is not actually supported - consider 'vestigial'.

You will want to use AXL for executeSqlQuery/executeSqlUpdate
 [/quote]</summary>
    <dc:creator>Dean Schulze</dc:creator>
    <dc:date>2013-03-11T21:46:03Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12892660" />
    <author>
      <name>David Staudt</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12892660</id>
    <updated>2013-03-11T20:43:14Z</updated>
    <published>2013-03-11T20:43:14Z</published>
    <summary type="html">If you're referring to executing SQL statements, the Serviceability API does have a request for that in the WSDL, but it is not actually supported - consider 'vestigial'.

You will want to use AXL for executeSqlQuery/executeSqlUpdate
 </summary>
    <dc:creator>David Staudt</dc:creator>
    <dc:date>2013-03-11T20:43:14Z</dc:date>
  </entry>
  <entry>
    <title>RE: New Message from Dean Schulze in AXL Developer - Administration XML Que</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12888331" />
    <author>
      <name>Dennis Heim</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12888331</id>
    <updated>2013-03-11T19:11:58Z</updated>
    <published>2013-03-11T19:11:58Z</published>
    <summary type="html">AXL is CUCM administration. Serviceability API lets you start/stop services, pull performance stats. They are both XML/SOAP based, but give you different information.

Dennis Heim | Sr. Unified Collaboration Team Lead
World Wide Technology | 314.212.1814 | dennis.heim@wwt.com&lt;mailto:dennis.heim@wwt.com&gt;
“Creating Impact, Ignition &amp; Scalability”

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Monday, March 11, 2013 3:05 PM
To: cdicuser@developer.cisco.com
Subject: New Message from Dean Schulze in AXL Developer - Administration XML Questions: AXL vs. Serviceability XML functionality

Dean Schulze has created a new message in the forum "Administration XML Questions": -------------------------------------------------------------- I've inherited a code base that uses AXL to query CUCM.  The serviceability XML SOAP interfaces look much cleaner.
What's the difference in functionality between AXL and the Serviceability XML interface?  Do I give up anything by using SXL instead of AXL?
(Sorry for the cross-post.)
--
To respond to this post, please click the following link: http://developer.cisco.com/web/axl-developer/forums/-/message_boards/view_message/12888194 or simply reply to this email.</summary>
    <dc:creator>Dennis Heim</dc:creator>
    <dc:date>2013-03-11T19:11:58Z</dc:date>
  </entry>
  <entry>
    <title>AXL vs. Serviceability XML functionality</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12888194" />
    <author>
      <name>Dean Schulze</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12888194</id>
    <updated>2013-03-11T19:04:32Z</updated>
    <published>2013-03-11T19:04:32Z</published>
    <summary type="html">I've inherited a code base that uses AXL to query CUCM.  The serviceability XML SOAP interfaces look much cleaner.
What's the difference in functionality between AXL and the Serviceability XML interface?  Do I give up anything by using SXL instead of AXL?
(Sorry for the cross-post.)</summary>
    <dc:creator>Dean Schulze</dc:creator>
    <dc:date>2013-03-11T19:04:32Z</dc:date>
  </entry>
</feed>

