logo
Apache Lounge
Webmasters

 

About Forum Index Downloads Search Register Log in RSS X


Keep Server Online

If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.

or

Bitcoin

A donation makes a contribution towards the costs, the time and effort that's going in this site and building.

Thank You! Steffen

Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
Post new topic   Forum Index -> Apache View previous topic :: View next topic
Reply to topic   Topic: Apache on Windows: How to configure 1 process per client?
Author
mluethi



Joined: 18 Sep 2014
Posts: 2
Location: Switzerland, Berne

PostPosted: Fri 19 Sep '14 8:24    Post subject: Apache on Windows: How to configure 1 process per client? Reply with quote

I've got a quite difficult problem which I don't know hoe to solve. We use a self created ISAPI module which is a "business server" running behind an Apache.

From time to time a client app crashes the server (the circumstances are not quite clear) - and because there is only one server process, all other clients crash as well. Here is an exemplary log of a crash:

Code:
Faulting application name: httpd.exe, version: 2.2.22.0, time stamp: 0x4f242d7a
Faulting module name: ABCServer.dll, version: 1.0.0.1, time stamp: 0x53cfffa5
Exception code: 0xc00000fd
Fault offset: 0x00004cf6
Faulting process id: 0x94c
Faulting application start time: 0x01cfc5cc18c67d57
Faulting application path: C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\httpd.exe
Faulting module path: C:\data\www\abcremote\ABCServer.dll
Report Id: d27d5891-31da-11e4-93ff-0003ff4356f9
Faulting package full name:
Faulting package-relative application ID:


Exception code: 0xc00000fd means stack overflow as I learnt. Therefore we configured mpm_winnt_module to use a 8M ThreadStackSize but this didn't help.

A solution might be that Apache starts for every client its own server process with the module ABCServer.dll. Because it is quite small and there are not thousands of customers this sounds like the perfect solution. No other clients/customers would be affected by a crash.

Unfortunately mpm_winnt_module supports only 1 process AFAIK. Worker and Prefork MPM are not available in Apache's Windows version what I read.

How can we configure Apache to start a new module process per client?

Your help is very much appreciated.

Thank you.

Environment:
httpd.exe, version: 2.2.22.0
Windows Server 2012 R2
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7371
Location: Germany, Next to Hamburg

PostPosted: Fri 19 Sep '14 15:27    Post subject: Reply with quote

On windows apache works with threads. You can't change that. Make you dll threadsafe.
Or use fcgid instread of the sapi if you can
Back to top
mluethi



Joined: 18 Sep 2014
Posts: 2
Location: Switzerland, Berne

PostPosted: Tue 23 Sep '14 13:24    Post subject: Reply with quote

Hi James

Thank you for your reply.
Can't change the way the DLL works.

But maybe I could configure another Apache to load balance between the different server processes, having per client (via its IP address) an Apache instance with the server module.

I can not figure how to dynamically start these Apache/server processes, so I would have to have a number of those always running on the server.

Any hints how to configure this load balancer based on the client's IP address?
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7371
Location: Germany, Next to Hamburg

PostPosted: Tue 23 Sep '14 22:19    Post subject: Reply with quote

You only have to configure sticky sessions
Back to top


Reply to topic   Topic: Apache on Windows: How to configure 1 process per client? View previous topic :: View next topic
Post new topic   Forum Index -> Apache