{"id":12477,"date":"2024-05-13T05:53:26","date_gmt":"2024-05-13T12:53:26","guid":{"rendered":"https:\/\/www.coretechnologies.com\/blog\/?p=12477"},"modified":"2024-05-13T05:53:26","modified_gmt":"2024-05-13T12:53:26","slug":"version-10-released","status":"publish","type":"post","link":"https:\/\/www.coretechnologies.com\/blog\/service-protector\/version-10-released\/","title":{"rendered":"Service Protector 10: Advanced Sanity Checks for 100% Uptime"},"content":{"rendered":"<div align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"no-lazy-load\" style=\"margin-bottom:20px;\" src=\"\/blog\/images\/software-update-500x135.webp\" title=\"Service Protector 10: Advanced Sanity Checks for 100% Uptime\" alt=\"Service Protector 10: Advanced Sanity Checks for 100% Uptime\" border=\"0\" width=\"500\" height=\"135\"><\/div>\n<p>After months of coding and testing, we released <a href=\"\/products\/ServiceProtector\/\">Service Protector<\/a> 10.0 on May 10. Here&#8217;s a quick rundown of what&#8217;s new in this release:<\/p>\n<h2 class=\"blog-caption\">Restart your Windows Service if a specific drive letter isn&#8217;t available<\/h2>\n<p>Does your Windows Service use files or folders on a mapped drive?<\/p>\n<p>Or is your service responsible for mapping a drive letter?<\/p>\n<p>If so, you should use Service Protector&#8217;s newest sanity check to detect when the drive mapping fails and promptly restart your service.<\/p>\n<p>With Service Protector watching the drive, you won&#8217;t need to rely on calls from your customers to alert you of a problem. And you won&#8217;t have to dial in at all hours to fix your failing software.<\/p>\n<h3>How to monitor a drive mapping<\/h3>\n<p>The &#8220;check drive mapping&#8221; sanity check is very easy to use. For example, here&#8217;s how to verify that the P drive is always available:<\/p>\n<ol>\n<li>\n<p>Edit your service in Service Protector (or add a new one if you like).<\/p>\n<\/li>\n<li>\n<p>Switch to the <b>Monitor<\/b> tab.<\/p>\n<\/li>\n<li>\n<p>Check the <b>Whenever it fails a periodic sanity check<\/b> box and click the <b>Set<\/b> button to the right:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-set-sanity-check.png\" class=\"zoomPopup\" title=\"Setup a sanity check to monitor your Windows Service\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-set-sanity-check.png\" title=\"Setup a sanity check to monitor your Windows Service (click to enlarge)\" alt=\"Setup a sanity check to monitor your Windows Service\" border=\"0\" \/><\/a><\/div>\n<\/li>\n<li>\n<p>In the window that comes up, select the <b>Check that a drive is mapped<\/b> entry and click <b>Next<\/b> to proceed:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-select-drive-mapped-sanity-check.png\" class=\"zoomPopup\" title=\"Choose the drive mapped sanity check\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-select-drive-mapped-sanity-check.png\" title=\"Choose the drive mapped sanity check (click to enlarge)\" alt=\"Choose the drive mapped sanity check\" border=\"0\" \/><\/a><\/div>\n<\/li>\n<li>\n<p>Select the &#8220;P&#8221; drive:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-select-p-drive.png\" class=\"zoomPopup\" title=\"Select the P drive\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-select-p-drive.png\" title=\"Select the P drive (click to enlarge)\" alt=\"Select the P drive\" border=\"0\" \/><\/a><\/div>\n<\/li>\n<li>\n<p>After clicking the <b>Next<\/b> button, specify how often Service Protector should check that the P drive is available. Every 5 minutes is probably good enough:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-check-drive-every-5-minutes.png\" class=\"zoomPopup\" title=\"Configure how often to check the drive mapping\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-check-drive-every-5-minutes.png\" title=\"Configure how often to check the drive mapping (click to enlarge)\" alt=\"Configure how often to check the drive mapping\" border=\"0\" \/><\/a><\/div>\n<\/li>\n<p>Click <b>Next<\/b> to continue.<\/p>\n<li>\n<p>Finally, confirm that the sanity check is configured as you expect. Click <b>Add<\/b> if you&#8217;re satisfied:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-confirm-check-drive-summary.png\" class=\"zoomPopup\" title=\"Confirm the sanity check\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-confirm-check-drive-summary.png\" title=\"Confirm the sanity check (click to enlarge)\" alt=\"Confirm the sanity check\" border=\"0\" \/><\/a><\/div>\n<\/li>\n<li>\n<p>Save your changes in Service Protector.<\/p>\n<\/li>\n<\/ol>\n<p>And that&#8217;s it. With the sanity check keeping watch, Service Protector will automatically recycle your service if your drive mapping fails.<\/p>\n<h2 class=\"blog-caption\">Set a timeout when checking that a HTTP\/HTTPS web server is responding<\/h2>\n<p>The web server sanity check now accepts a timeout parameter, to indicate how long to wait for a response from the server before failing the request.<\/p>\n<h3>Why the change?<\/h3>\n<p>Previous versions of Service Protector waited indefinitely for the web server to answer. However, that caused a problem for a customer monitoring <a href=\"\/products\/ServiceProtector\/Services\/KeepIISWindowsServiceRunning24x7.html\">Microsoft&#8217;s IIS service<\/a>.<\/p>\n<p>For some unknown reason, his IIS would occasionally stop serving pages. When that happened, his users accessing the site from a browser would see an error indicating that the site was inaccessible. He configured Service Protector to check his site every couple of minutes and restart IIS if the URL stopped responding.<\/p>\n<p>But it didn&#8217;t work! Service Protector reported that the service was functioning fine &mdash; even when the browser said otherwise.<\/p>\n<p>After investigating, we figured out what was going wrong. IIS wasn&#8217;t refusing to serve web pages. It was returning the data just fine &mdash; but it was taking over 5 minutes to do so!<\/p>\n<p>When IIS takes so long to respond, the browser gives up waiting and displays an error. That&#8217;s what the users were seeing.<\/p>\n<p>But Service Protector would wait patiently for IIS to respond and declare the lengthy process a success. That&#8217;s why it wasn&#8217;t restarting IIS.<\/p>\n<p>We introduced the new timeout option to fix the mismatch. You set the value (in seconds) right below the URL:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-web-server-sanity-check-timeout.png\" class=\"zoomPopup\" title=\"Set a timeout for the web server sanity check\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-web-server-sanity-check-timeout.png\" title=\"Set a timeout for the web server sanity check (click to enlarge)\" alt=\"Set a timeout for the web server sanity check\" border=\"0\" \/><\/a><\/div>\n<p>Once the customer configured a 30-second timeout, Service Protector was able to detect the sluggishness and promptly restarted IIS. Problem solved!<\/p>\n<h2 class=\"blog-caption\">Easily test if your Windows Service has open TCP\/IP network connections<\/h2>\n<p>You couldn&#8217;t easily test the TCP\/IP network connections sanity check in previous version of Service Protector. Because of that, the <b>Check now<\/b> button was disabled.<\/p>\n<p>Service Protector 10 activates the feature, allowing you to verify the selected service on demand:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-check-network-connections-check-now.png\" class=\"zoomPopup\" title=\"Check network connections for your Windows Service\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-check-network-connections-check-now.png\" title=\"Check network connections for your Windows Service (click to enlarge)\" alt=\"Check network connections for your Windows Service\" border=\"0\" \/><\/a><\/div>\n<p>You may find that helpful as you decide how to deploy the sanity check in your environment.<\/p>\n<p>For example, here are the results of checking the Print Spooler Windows Service on our machine:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-check-network-connections-check-now-results.png\" class=\"zoomPopup\" title=\"Print Spooler service network connections\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-check-network-connections-check-now-results.png\" title=\"Print Spooler service network connections (click to enlarge)\" alt=\"Print Spooler service network connections\" border=\"0\" \/><\/a><\/div>\n<p>You can see that the Spooler service has an open listening TCP\/IP connection, as expected.<\/p>\n<h2 class=\"blog-caption\">Other fixes &amp; improvements<\/b><\/h2>\n<ul>\n<li>\n<p>To help with troubleshooting, Service Protector now shows the <b>HTTP response and\/or headers<\/b> when manually running the web server sanity check. That way you&#8217;ll know exactly what is coming back from your web server, and you can configure the sanity check accordingly.<\/p>\n<p>For example, here&#8217;s what Service Protector returned when checking our company website:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-website-sanity-check-results.png\" class=\"zoomPopup\" title=\"Service Protector shows the HTTP response\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-website-sanity-check-results.png\" title=\"Service Protector shows the HTTP response (click to enlarge)\" alt=\"Service Protector shows the HTTP response\" border=\"0\" \/><\/a><\/div>\n<p>You can copy the text to the clipboard and make sure that the response is exactly as you expect.\n<\/li>\n<li>\n<p>Based on feedback from our customers, the web server sanity check now treats <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_HTTP_status_codes\" target=\"_blank\" rel=\"noopener\">HTTP status codes 1XX and 3XX<\/a> as success. <b>Only status codes 4XX and 5XX are treated as errors<\/b> that will restart your service.<\/p>\n<\/li>\n<li>\n<p>We enlarged the text and icons on the taskbar tray menu, to <b>improve readability<\/b>:<\/p>\n<div align=\"center\"><a href=\"\/blog\/images\/service-protector-larger-tray-menu-items.png\" class=\"zoomPopup\" title=\"The taskbar menu entries are easier to read\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"image-padding\" src=\"\/blog\/images\/service-protector-larger-tray-menu-items.png\" title=\"The taskbar menu entries are easier to read (click to enlarge)\" alt=\"The taskbar menu entries are easier to read\" border=\"0\" \/><\/a><\/div>\n<\/li>\n<\/ul>\n<p style=\"padding-top:10px\">\nAs usual, please review the <a href=\"\/products\/ServiceProtector\/VersionHistory.html\">release notes<\/a> for the full list of features, fixes and improvements included in Service Protector version 10.0.<\/p>\n<h2 class=\"blog-caption\">Upgrading to Service Protector 10<\/h2>\n<p>If you purchased Service Protector <b>version 9 (after April 2023), you can upgrade to version 10 for free<\/b>. Simply download and install over your existing installation to preserve your existing services and all settings. That way, your registration code will continue to work.<\/p>\n<p>If you bought Service Protector <b>8 or earlier (before April 2023), you will need to upgrade to use version 10<\/b>.<\/p>\n<p>Please <a href=\"\/products\/ServiceProtector\/#buy-upgrade\">buy upgrades here &mdash; at a 50% discount<\/a>.<\/p>\n<p>See the complete <a href=\"\/products\/ServiceProtector\/FAQ.html#Upgrade\">upgrade policy<\/a> for more details.<\/p>\n<p style=\"padding-top:10px\">Enjoy!<\/a><\/p>\n<div align=\"center\">\n<div class=\"cta-button-1\">\n<table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"left\">\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"\/blog\/tag\/service-protector-tag\/\" title=\"More articles about Service Protector\"><span><nobr>Read more about Service Protector&#8230;<\/nobr><\/span><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<!-- relpost-thumb-wrapper --><div class=\"relpost-thumb-wrapper\"><!-- filter-class --><div class=\"relpost-thumb-container\"><style>.relpost-block-single-image, .relpost-post-image { margin-bottom: 10px; }<\/style><h3>You may also like...<\/h3><div style=\"clear: both\"><\/div><div style=\"clear: both\"><\/div><!-- relpost-block-container --><div class=\"relpost-block-container relpost-block-column-layout\" style=\"--relposth-columns: 3;--relposth-columns_t: 2; --relposth-columns_m: 2\"><a href=\"https:\/\/www.coretechnologies.com\/blog\/alwaysup\/version-10-5\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"New Version\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/new-version-150x150.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">AlwaysUp 10.5: Restricted Rights, Smoother Shutdowns, and more<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/service-uptime\/benefits-of-auto-restarting-your-apps\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"4 Amazing Benefits of Monitoring &amp; Auto-Restarting your Mission-Critical Applications\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/bar-graph-150x150-1.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">4 Amazing Benefits of Monitoring &amp; Auto-Restarting your Mission-Critical Applications<\/h2><\/div><\/div><\/a><a href=\"https:\/\/www.coretechnologies.com\/blog\/company\/secure-software-practices\/\"class=\"relpost-block-single\" ><div class=\"relpost-custom-block-single\"><img decoding=\"async\" loading=\"lazy\" class=\"relpost-block-single-image\" alt=\"Q&amp;A: How Do You Make Sure Your Software Is Secure?\"  src=\"https:\/\/www.coretechnologies.com\/blog\/wp-content\/uploads\/security-practices-150x150-1.png\" style=\"aspect-ratio:1\/1\" style=\"aspect-ratio:1\/1\"><\/img><div class=\"relpost-block-single-text\"  style=\"height: 75px;font-family: Arial;  font-size: 12px;  color: #333333;\"><h2 class=\"relpost_card_title\">Q&amp;A: How Do You Make Sure Your Software Is Secure?<\/h2><\/div><\/div><\/a><\/div><!-- close relpost-block-container --><div style=\"clear: both\"><\/div><\/div><!-- close filter class --><\/div><!-- close relpost-thumb-wrapper -->","protected":false},"excerpt":{"rendered":"<p>After months of coding and testing, we released Service Protector 10.0 on May 10. Here&#8217;s a quick rundown of what&#8217;s new in this release: Restart your Windows Service if a specific drive letter isn&#8217;t available Does your Windows Service use &hellip; <a href=\"https:\/\/www.coretechnologies.com\/blog\/service-protector\/version-10-released\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":12480,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[348,349,54,109,138,147],"class_list":["post-12477","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-service-protector","tag-check-drive-sanity-check","tag-check-network-sanity-check","tag-check-website-sanity-check","tag-new-release","tag-sanity-check","tag-service-protector-tag"],"_links":{"self":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/12477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=12477"}],"version-history":[{"count":9,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/12477\/revisions"}],"predecessor-version":[{"id":13168,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/12477\/revisions\/13168"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media\/12480"}],"wp:attachment":[{"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=12477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=12477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coretechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=12477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}