Sure enough! Now I can write a web app to dump and compare parameters. Thank you very much.<div><br></div><div>Dare I ask why some of it is in "scratch" while some is in processconfigdefaults?<br><div><br></div>
<div><span style="font-family:'courier new',monospace"><font color="#333333">admin:run sql select content from scratch where name like '%TimerT302_msec%'</font></span></div><div><div><font face="'courier new', monospace" color="#333333">content </font></div>
<div><font face="'courier new', monospace" color="#333333">======================================================================</font></div><div><font face="'courier new', monospace" color="#333333"><?xml version="1.0" encoding="UTF-8" ?></font></div>
<div><font face="'courier new', monospace" color="#333333"><rule></font></div><div><font face="'courier new', monospace" color="#333333"> <name>xmlrule://<a href="http://cisco.com/ServiceParameter/CCM/TimerT302_msec">cisco.com/ServiceParameter/CCM/TimerT302_msec</a></name></font></div>
<div><font face="'courier new', monospace" color="#333333"> <author>Cisco Systems, Inc.</author></font></div><div><font face="'courier new', monospace" color="#333333"> <integer></font></div>
<div><font face="'courier new', monospace" color="#333333"> <default>15000</default></font></div><div><font face="'courier new', monospace" color="#333333"> <min>3000</min></font></div>
<div><font face="'courier new', monospace" color="#333333"> <max>75000</max></font></div><div><font face="'courier new', monospace" color="#333333"> </integer></font></div><div><font face="'courier new', monospace" color="#333333"></rule></font></div>
<div><font face="'courier new', monospace" color="#333333">admin:</font></div><br><div class="gmail_quote">On Fri, Apr 20, 2012 at 11:25 AM, Wes Sisk <span dir="ltr"><<a href="mailto:wsisk@cisco.com">wsisk@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">strap in for a few minutes...<div><br></div><div>turn ccmadmin traces up to debug, make an update and review the logs:</div>
<div>tomcat/logs/ccmadmin/log4j/ccmadmin00004.log</div><div><br></div><div>2012-04-20 12:03:36,240 DEBUG [http-8443-Processor21] actions.ServiceParamEditAction - Current value string<AAREnable>F</AAREnable> (...)</div>
<div><br>2012-04-20 12:03:36,242 DEBUG [http-8443-Processor21] xmlhandler.XMLDbAccess - Executing this query from XMLDbAccess:(SELECT <a href="http://S.name" target="_blank">S.name</a> as name, S.content as content FROM Scratch S INNER JOIN XMLDisplayInstanceRuleMap X ON X.fkScratch_Rule = S.pkid WHERE (X.fkScratch_DisplayInstance = (SELECT pkid FROM Scratch WHERE name = 'xmldi://<a href="http://cisco.com/serviceParameters/0')" target="_blank">cisco.com/serviceParameters/0')</a>)) UNION ALL (SELECT name, content FROM scratch WHERE name ='xmldi://<a href="http://cisco.com/serviceParameters/0" target="_blank">cisco.com/serviceParameters/0</a>') ORDER BY name<br>
<br>so that is the SQL query. special chars prevent running this inside the 'run sql ...' cli:<br><br>(SELECT <a href="http://S.name" target="_blank">S.name</a> as name, S.content as content FROM Scratch S INNER JOIN XMLDisplayInstanceRuleMap X ON X.fkScratch_Rule = S.pkid WHERE (X.fkScratch_DisplayInstance = (SELECT pkid FROM Scratch WHERE name = 'xmldi://<a href="http://cisco.com/serviceParameters/0')" target="_blank">cisco.com/serviceParameters/0')</a>)) UNION ALL (SELECT name, content FROM scratch WHERE name ='xmldi://<a href="http://cisco.com/serviceParameters/0" target="_blank">cisco.com/serviceParameters/0</a>') ORDER BY name<br>
<br><br><a>xmlrule://cisco.com/ServiceParameter/CCM/TimerT302_msec</a><br>content <?xml version="1.0" encoding="UTF-8" ?>^M<br><rule><br> <name>xmlrule://cisc<br> <a href="http://o.com/ServiceParameter/CCM/TimerT302_msec" target="_blank">o.com/ServiceParameter/CCM/TimerT302_msec</a></name><br>
<author>Cisco Syste<br> ms, Inc.</author><br> <integer><br> <default>15000</default><br> <min>3000<br>
</min><br> <max>75000</max><br> </integer><br> </rule><br><br></div><div><br></div><div>Looks like you can get this from cli with simply 'admin:run sql SELECT name, content FROM scratch'</div>
<div><br></div><div>Regards,</div><div>Wes</div><div><div class="h5"><div><br></div><div><br><div><div>On Apr 20, 2012, at 10:42 AM, Anthony Holloway wrote:</div><br>Wes,<div><br></div><div>Is there a way to programmatically detect a change in the T302 timer from the default setting? I would think that if there were, then we could have a true report of which parameters have been modified, and which have not.</div>
<div><br></div><div>As you can see here, unlike the CDR Enabled flag, when I set the T302 timer to the default value, it remains in the processconfig table:</div><div><br></div><div><b>Non Default Setting</b></div><div><div>
<font face="'courier new', monospace">admin:run sql select fkprocessnode, paramname, paramvalue from processconfig where paramname = 'TimerT302_msec'</font></div><div><font face="'courier new', monospace">fkprocessnode paramname paramvalue</font></div>
<div><font face="'courier new', monospace">==================================== ============== ==========</font></div><div><font face="'courier new', monospace">00000000-1111-0000-0000-000000000000 TimerT302_msec 8000</font></div>
<div><br></div><div><b>Default Setting</b></div><div><font face="'courier new', monospace">admin:run sql select fkprocessnode, paramname, paramvalue from processconfig where paramname = 'TimerT302_msec'</font></div>
<div><font face="'courier new', monospace">fkprocessnode paramname paramvalue</font></div><div><font face="'courier new', monospace">==================================== ============== ==========</font></div>
<div><font face="'courier new', monospace">00000000-1111-0000-0000-000000000000 TimerT302_msec 15000</font></div><div><font face="'courier new', monospace">admin:</font></div></div><div><br></div><div>When you look at the defaults in processconfigdefaults, one will notice that these are only non-enterprise wide parameters.</div>
<div><br></div><div>However, while looking at the web interface, we can clearly see that CUCM knows what the default value is for all parameters as indicated in the "Suggested Value" column.</div><div><br></div>
<div>-Anthony</div><div><br><div class="gmail_quote">On Fri, Apr 20, 2012 at 7:39 AM, Wes Sisk <span dir="ltr"><<a href="mailto:wsisk@cisco.com" target="_blank">wsisk@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">the design was for defaults to be in defaults and non-default to be in config. however, that has not been strictly honored. you have to check both.<div><div><div><br><div><div>
On Apr 19, 2012, at 4:10 PM, Anthony Holloway wrote:</div><br>There are two problems with this approach, and hopefully we can work through them together.<div><br></div><div><b>1) The table processconfigdefaults does not contain 100% of the variables found in processconfig.</b><div>
<br>
</div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>I'll explain with an example of the T302 timer which has a default value of 15000 msec, and in my case I have changed it to 8000 msec.</div>
</div><div><div><br></div></div><div><div><font face="'courier new', monospace" color="#333333">admin:run sql select paramname, paramvalue from processconfig where paramname = 'TimerT302_msec'</font></div>
</div><div><div><div><font face="'courier new', monospace" color="#333333">paramname paramvalue</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">============== ==========</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">TimerT302_msec 8000</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">admin:</font></div>
</div></div><div><div><br></div></div><div><div><div><font color="#333333" face="'courier new', monospace">admin:run sql select paramname, paramvalue from processconfigdefaults where paramname = 'TimerT302_msec'</font></div>
</div></div><div><div><div><font color="#333333" face="'courier new', monospace">paramname paramvalue</font></div></div></div><div><div><div><font color="#333333" face="'courier new', monospace">========= ==========</font></div>
</div></div><div><div><div><font color="#333333" face="'courier new', monospace">admin:</font></div></div></div></blockquote><div><div><br></div><div><b>2) The records contained within the processconfig table are dynamic based on whether or not they are set to defaults.</b></div>
<div><br></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>Here I have the current settings for my CDR Enabled flag, and as you can see it's set to non-default of On (or True) on three servers in my cluster:</div>
</div><div><div><br></div></div><div><div><div><font face="'courier new', monospace" color="#333333">admin:run sql select fkprocessnode, paramname, paramvalue from processconfig where paramname = 'CdrEnabled'</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">fkprocessnode paramname paramvalue</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">==================================== ========== ==========</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">01670a90-9e3c-487a-a267-330f41e2ae0e CdrEnabled T</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">2e09aed9-1280-8bf5-a089-cedf97219a87 CdrEnabled T</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">bf92c29d-3f94-759e-6623-40368135a0a1 CdrEnabled T</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">admin:</font></div>
</div></div><div><div><br></div></div><div><div>I will now turn the CDR Enable flag to the default of Off (or False) for the first node above (01670a90-9e3c-487a-a267-330f41e2ae0e) via the web administration page, and then run the SQL command again:</div>
</div><div><div><br></div></div><div><div><div><font face="'courier new', monospace" color="#333333">admin:run sql select fkprocessnode, paramname, paramvalue from processconfig where paramname = 'CdrEnabled'</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">fkprocessnode paramname paramvalue</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">==================================== ========== ==========</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">2e09aed9-1280-8bf5-a089-cedf97219a87 CdrEnabled T</font></div></div></div><div><div><div><font face="'courier new', monospace" color="#333333">bf92c29d-3f94-759e-6623-40368135a0a1 CdrEnabled T</font></div>
</div></div><div><div><div><font face="'courier new', monospace" color="#333333">admin:</font></div></div></div><div><div><br></div></div><div><div>Note that its record has now been removed from the table automatically.</div>
</div></blockquote><div><div><br></div><div>I haven't looked that hard for it, but is there a table which truly holds all of the defaults? E.g., T302 timer</div><div><br></div><div>-Anthony</div><div><br><div class="gmail_quote">
On Wed, Apr 11, 2012 at 9:18 AM, Peter Slow <span dir="ltr"><<a href="mailto:peter.slow@gmail.com" target="_blank">peter.slow@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think Kenneth will get mad at me for not making this public sooner, but I was searching through my archives to find some other script that I'd shared (at some earlier point) and came across THIS request, for which I happen to already have some awesomeness whipped up.<br>
<br>enjoy,<br><br>###show me all the service parameter crap that isnt set to the default<br><br>run sql \<br>SELECT <a href="http://PN.name/" target="_blank">PN.name</a> AS CM_Name, <a href="http://TS.name/" target="_blank">TS.name</a> AS Service_Name, PC.paramname AS Parameter, PC.paramvalue AS Cur_Value, PCD.paramvalue AS Default_Value from processconfig PC \<br>
JOIN processconfigdefaults PCD ON PCD.paramname LIKE PC.paramname \<br>JOIN processnode PN ON PN.pkid = PC.fkprocessnode \<br>JOIN typeservice TS ON TS.enum = PC.tkservice \<br>WHERE PCD.paramvalue != PC.paramvalue \<br>
ORDER BY <a href="http://PN.name/" target="_blank">PN.name</a>, PC.paramname<br>
<br>add in an "AND TS.enum = whatever" if you only want to see the changed parameters <br><br><br>example:<br><br><br>admin:run sql \<br>SELECT <a href="http://PN.name/" target="_blank">PN.name</a> AS CM_Name, <a href="http://TS.name/" target="_blank">TS.name</a> AS Service_Name, PC.paramname AS Parameter, PC.paramvalue AS Cur_Value, PCD.paramvalue AS Default_Value from processconfig PC \<br>
JOIN processconfigdefaults PCD ON PCD.paramname LIKE PC.paramname \<br>JOIN processnode PN ON PN.pkid = PC.fkprocessnode \<br>JOIN typeservice TS ON TS.enum = PC.tkservice \<br>WHERE PCD.paramvalue != PC.paramvalue \<br>
ORDER BY <a href="http://PN.name/" target="_blank">PN.name</a>, PC.paramname<br>
cm_name service_name parameter cur_value default_value <br>============== ================= =============================== ========= ============= <br>192.168.1.10 Cisco CallManager CdrEnabled T F <br>
192.168.1.10 Cisco CallManager CdrLogCallsWithZeroDurationFlag T F <br>192.168.1.10 Cisco CTIManager SdlTraceTotalNumFiles 250 375 <br>192.168.1.100 Cisco CallManager CdrEnabled T F <br>
192.168.1.100 Cisco CallManager SdlTraceTotalNumFiles 375 250 <br>192.168.1.100 Cisco CTIManager SdlTraceTotalNumFiles 250 375 <br>192.168.1.11 Cisco CallManager CdrEnabled T F <br>
192.168.1.11 Cisco CallManager CdrLogCallsWithZeroDurationFlag T F <br>192.168.1.11 Cisco CallManager SdlTraceTotalNumFiles 375 250 <br>192.168.1.11 Cisco CTIManager SdlTraceTotalNumFiles 250 375 <br>
<br><br><br>enjoy,<br> Peter Slow =)<div><div><br><br><br><br><br><br><div class="gmail_quote">On Thu, Feb 16, 2012 at 3:37 PM, Lelio Fulgenzi <span dir="ltr"><<a href="mailto:lelio@uoguelph.ca" target="_blank">lelio@uoguelph.ca</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:Verdana">Thanks Wes!<div><span><br><br><span name="x"></span>---<br>
Lelio Fulgenzi, B.A.<br>Senior Analyst (CCS) * University of Guelph * Guelph, Ontario N1G 2W1<br>(519) 824-4120 x56354 (519) 767-1060 FAX (ANNU)<br>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br>
Cooking with unix is easy. You just sed it and forget it. <br> - LFJ (with apologies to Mr. Popeil)<br><span name="x"></span><br></span><br><hr></div><b>From: </b>"Wes Sisk" <<a href="mailto:wsisk@cisco.com" target="_blank">wsisk@cisco.com</a>><br>
<b>To: </b>"Lelio Fulgenzi" <<a href="mailto:lelio@uoguelph.ca" target="_blank">lelio@uoguelph.ca</a>><br><b>Cc: </b>"cisco-voip voyp list" <<a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a>><br>
<b>Sent: </b>Thursday, February 16, 2012 2:34:17 PM<br><b>Subject: </b>Re: [cisco-voip] SQL query to dump enterprise/system parameters<div><div><br><br>run sql select * from processconfig<div>run sql select * from processconfigdefaults</div>
<div><br></div><div>/wes</div><div><br><div><div>On Feb 16, 2012, at 11:07 AM, Lelio Fulgenzi wrote:</div><br><span style="border-collapse:separate;font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"><div>
<div style="font-size:10pt;font-family:Verdana"><br>Is there an SQL query that I can run on the CLI to give me a fairly easily readable output of what the current enterprise and/or system parameters are?<span> </span><br>
<br>I still haven't figured out a way to print or take a visual snapshot to compare after work.<br><br>Lelio<br><br><span><br><span></span>---<br>Lelio Fulgenzi, B.A.<br>Senior Analyst (CCS) * University of Guelph * Guelph, Ontario N1G 2W1<br>
(519) 824-4120 x56354 (519) 767-1060 FAX (ANNU)<br>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br>Cooking with unix is easy. You just sed it and forget it.<span> </span><br> - LFJ (with apologies to Mr. Popeil)<br>
<span></span><br></span><br></div>_______________________________________________<br>cisco-voip mailing list<br><a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br><a href="https://puck.nether.net/mailman/listinfo/cisco-voip" target="_blank">https://puck.nether.net/mailman/listinfo/cisco-voip</a><br>
</div></span></div><br></div></div></div></div></div><br>_______________________________________________<br>
cisco-voip mailing list<br>
<a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br>
<a href="https://puck.nether.net/mailman/listinfo/cisco-voip" target="_blank">https://puck.nether.net/mailman/listinfo/cisco-voip</a><br>
<br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
cisco-voip mailing list<br>
<a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br>
<a href="https://puck.nether.net/mailman/listinfo/cisco-voip" target="_blank">https://puck.nether.net/mailman/listinfo/cisco-voip</a><br>
<br></blockquote></div><br></div></div>
_______________________________________________<br>cisco-voip mailing list<br><a href="mailto:cisco-voip@puck.nether.net" target="_blank">cisco-voip@puck.nether.net</a><br><a href="https://puck.nether.net/mailman/listinfo/cisco-voip" target="_blank">https://puck.nether.net/mailman/listinfo/cisco-voip</a><br>
</div><br></div></div></div></div></blockquote></div><br></div>
</div><br></div></div></div></div></blockquote></div><br></div></div>