We are working on an application that serves request 24 * 7 and none of the request should be missed. This application is hosted on IIS in load balanced environment. Primary server group P1 and C1, while the back up servers to primary servers are P2 and C2. So, requests are sent in load balanced manner to P1 and C1. If both P1 and C1 go down, the P2 and C2 are up. We are trying to work on a strategy so none of our requests are missed. Plan is to bring primary servers P1 and C1 down so requests are forwarded to back up. Then bring the primary servers up and work on back up servers. My question around it is how to ensure that worker process serves the last request it receives before we bring the application down for primary servers. As mentioned earlier, the intention is to ensure none of the requests are missed
1
There are 1 best solutions below
Related Questions in IIS-7
- Create an IIS web request activity light
- SSL certificate error 403.13 in IIS 7.5
- IIS 7 ERR_CONNECTION_TIMED_OUT only with public IP
- ASP.Net 1.1 app on IIS 7 waiting threads
- Node.js with Socket.io - Long Polling fails and throws "code":1,"message":"Session ID unknown" response
- Publishing a website under IIS 7 and getting ��Y�o�8�}���x��� (odd characters)
- ASP ProcessModel and WCF
- IIS Rewrite Rule for path
- What are the PHPMailer requirement for sending mail and receiving mail in IIS 7
- HTTP Error 405.0 - Method not allowed error in asp.net mvc 4 post method
- Deploying a classic ASP site from IIS 6 (2003 WS) to IIS 7 (WS 2008). Tried Manual deploy and msdeploy
- Unauthorized Access Exception on IIS7 virtual directory with proper permissions
- IIS 7 no images when friendly url is on
- Zend Application Redirection Not Working After Migrated on Windows with IIS
- Can I find out which user php is running under from php_info()
Related Questions in W3WP
- Should ELMAH catch Microsoft .NET Framework exceptions?
- w3wp.exe memory usage remains high after making web service calls
- Deadlocked in w3wp for a WCF website. Unable to find source of Issue
- ASP.Net - w3wp consuming memory on basic web application
- Why isn't IIS cleaning up the old worker processes (w3wp.exe) on pool recycle leading to website out of memory exception?
- App pool recycle
- Will increasing my RAM reduce the size of my w3wp.exe in memory
- Sharing assemblies between w3wp processes for reduce memory usage
- When encountering an access violation, w3wp.exe crashes and restarts repeatedly until the application pool is stopped
- Task.Factory.StartNew with uncaught Exceptions kills w3wp?
- saving word document as pdf using Interop results in COMException: command failed
- Error "Faulting application w3wp.exe..." found in event viewer if printing crystal reports in a loop
- Service Unavailable (w3wp.exe crash) in IIS
- No System Diagnostic Debug output for W3WP Process
- What is w3wp.exe?
Related Questions in WORKER-PROCESS
- App pool recycle
- How Should I Manage Heroku Workers For Infrequent Jobs
- send email in background process in php
- Rapid-Fail Worker Processes
- Cannot See Worker Processes Icon in IIS
- IIS Worker process hangs forever on first request
- How to control number of running worker processes for MongoDB?
- IIS Server and Azure Server hang due to SQL CPU and memory high utilization and not able to process the request further
- Specific application in IIS taking is slow after worker process stops after ideal timeout. long time to serve
- IIS Worker Process and Worker Threads
- IIS, multiple CPU cores, application pools and worker processes - best configuration for a single site?
- Building a worker thread pool for a non-thread-safe code
- .NET Tear Down a Windows Service
- .Net Framework 1.1 on IIS 7.5 (Windows 7-64 bit)
- How to run rake task as a worker process on Heroku?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
If you want to ensure that none of the requests are missed, you may be waiting a good long while--any requests in progress at the time the recycle occurs are serviced by the original AppPool. Depending on your site, some of those requests could be large files with very slow connections, which could take literally hours to finish. At some point you may just want to whack the connections and move on, knowing that the caller will refresh their page, reconnect, or whatever to get back to where they were.
In any case, you don't need multiple servers for this. IIS automatically (by default at least), drains requests from the old application instance while starting up the new one and sending new requests to that (during application updates). (Note however, that any requests to the new pool will likely stall for several seconds because the application is loading and initializing everything for the first time--this is normal and very difficult to avoid).
If you really do have multiple servers and want to switch request handling from one server to the other, you must have some kind of load balancing system in place, either a software load balancer such as Microsoft Network Load Balancing, or a hardware load balancer such as F5 Big-IP. In both of these situations, you have to somehow tell the load balancer to drain connections on the old application (or server) and route them to the new server. This may be done manually through their GUIs, or for an automated deployment system, will require integration with those systems.