Recently I discovered a problem with Manifold WMS where if the page wasn’t accessed for a while it would cause the w3wp.exe IIS worker thread to loop. Until I find out the underlying cause I’ve written the map_keepalive.wsf script below to automatically retrieve a web page and scheduled it to run every 5 minutes. I assume something gets spun down and the concurrent WMS requests cause a problem, the map_test.asp page that this script retrieves is just a default IMS page generated from within Manifold.
<package> <job id="js"> <script language="JScript"> var finished = false; var timeout = 0; var timeoutSecs = 30; var forAppending = 8; var xmlhttp = WScript.CreateObject("MSXML2.XMLHTTP"); xmlhttp.open("GET", "http://www.satsleuth.com", false); xmlhttp.onreadystatechange = function() { if(xmlhttp.readyState == 4) finished = true; } try { xmlhttp.Send(""); } catch (e) { } while ((!finished) && (timeout < timeoutSecs)) { timeout++; WScript.Sleep(1000); } var msg = "" if (!finished) msg = "Timeout occurred"; else if (xmlhttp.status != 200) msg = "Error retrieving map_test.asp, error code: " + xmlhttp.status; if (msg != "") { var oFSO = WScript.CreateObject("Scripting.FileSystemObject"); var oFile = oFSO.OpenTextFile("map_keepalive.log", forAppending, true); var dt = new Date(); oFile.WriteLine(dt.toLocaleString() + ": " + msg); oFile.Close(); } </script> </job> </package>