AKZA#35664 Exchange performance verbetering door alleen te syncen als nodig

svn path=/Website/branches/v2016.1/; revision=29362
This commit is contained in:
Jos Groot Lipman
2016-05-11 11:04:26 +00:00
parent 380090005e
commit 443688dc1e
2 changed files with 15 additions and 4 deletions

View File

@@ -4,5 +4,6 @@
password : 'pass@word1', // Let op: dat werkt alleen als ServerXMLHTTP denkt op intranet te zitten password : 'pass@word1', // Let op: dat werkt alleen als ServerXMLHTTP denkt op intranet te zitten
maxchange : 25, // Maximaal 25 wijzigingen tegelijk. De rest komt de volgende keer wel maxchange : 25, // Maximaal 25 wijzigingen tegelijk. De rest komt de volgende keer wel
maxrecurring: 100, // Maximaal 1e 100 occurences van een recurring afspraak maxrecurring: 100, // Maximaal 1e 100 occurences van een recurring afspraak
xmlfolder : "./xml/" // Hier komen alle opgehaalde XML's geplaatst. Moet bestaan xmlfolder : "./xml/", // Hier komen alle opgehaalde XML's geplaatst. Moet bestaan
loglevel : 0
} }

View File

@@ -17,6 +17,7 @@ var inifile = ".\\exchange.config.js";
var f = fso.OpenTextFile(inifile, 1); // ForReading var f = fso.OpenTextFile(inifile, 1); // ForReading
var config = eval('(' + f.ReadAll() + ')') var config = eval('(' + f.ReadAll() + ')')
f.Close(); f.Close();
config.loglevel = config.loglevel || 0;
WScript.Echo("Connecting to " + config.endpointurl) WScript.Echo("Connecting to " + config.endpointurl)
// --- // ---
@@ -54,7 +55,7 @@ var soapRequest = '<m:SyncFolderItems'
+ '</m:SyncFolderItems>'; + '</m:SyncFolderItems>';
var room_id = safefilename(zaalemail); var room_id = safefilename(zaalemail);
var exch = doExchange(config.endpointurl, soapRequest, "Sync_" + room_id + ".xml"); var exch = doExchange(config.endpointurl, soapRequest, null);
if (!exch) if (!exch)
WScript.Quit(1); WScript.Quit(1);
@@ -70,6 +71,12 @@ var sha = oCrypto.hex_sha1(newsyncstate.text); // Gemakkelijker verschillen te z
WScript.Echo("New syncstate: " + newsyncstate.text + "\nHash: " + sha + "\nlength: " + newsyncstate.text.length); WScript.Echo("New syncstate: " + newsyncstate.text + "\nHash: " + sha + "\nlength: " + newsyncstate.text.length);
var calItems = xmlDoc.selectNodes("//t:CalendarItem"); var calItems = xmlDoc.selectNodes("//t:CalendarItem");
if (calItems.length == 0)
{
WScript.Echo("No calitems, no need to update syncstate");
WScript.Quit(0);
}
__Log2File("Sync_" + room_id + ".xml", xmlDoc.xml); // moet straks gesynced
WScript.Echo("Fetching " + calItems.length + " calendar items"); WScript.Echo("Fetching " + calItems.length + " calendar items");
for (var i = 0; i < calItems.length; i++) for (var i = 0; i < calItems.length; i++)
{ {
@@ -172,7 +179,8 @@ function doSOAP(url, body, fname)
var res = doHTTP("POST", url, envsoap); var res = doHTTP("POST", url, envsoap);
if (!res) if (!res)
return null; return null;
__Log2File(fname, res.responseText); if (fname)
__Log2File(fname, res.responseText);
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.6.0"); var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlDoc.loadXML(res.responseText); xmlDoc.loadXML(res.responseText);
xmlDoc.setProperty("SelectionLanguage", "XPath"); xmlDoc.setProperty("SelectionLanguage", "XPath");
@@ -194,13 +202,15 @@ function doHTTP(method, url, body)
objXMLHTTP.setOption(SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS); objXMLHTTP.setOption(SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS, SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS);
__Log2File("request.xml", body); if (config.loglevel > 0)
__Log2File("request.xml", body);
objXMLHTTP.send(body); objXMLHTTP.send(body);
if (objXMLHTTP.status >= 200 && objXMLHTTP.status <= 299) if (objXMLHTTP.status >= 200 && objXMLHTTP.status <= 299)
{ {
return objXMLHTTP; return objXMLHTTP;
} }
// else: er is iets fout
__Log2File("response.xml", objXMLHTTP.responseText); __Log2File("response.xml", objXMLHTTP.responseText);
WScript.Echo(objXMLHTTP.status); WScript.Echo(objXMLHTTP.status);
WScript.Echo(objXMLHTTP.statusText); WScript.Echo(objXMLHTTP.statusText);