tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Samad - Yieldbroker <>
Subject RE: IIS 7.0 Worker process crashes on App Pool recycling since ISAPI redirector 1.2.33
Date Tue, 20 Mar 2012 05:55:22 GMT

> -----Original Message-----
> From: Mladen Turk []
> Sent: Tuesday, 20 March 2012 4:09 PM
> To:
> Subject: Re: IIS 7.0 Worker process crashes on App Pool recycling since ISAPI
> redirector 1.2.33
> On 03/20/2012 02:01 AM, Alex Samad - Yieldbroker wrote:
> > This has me thinking and think I have found another bug. :)
> >
> > Our setup is IIS 7.5  setup as a Reverse proxy.  We run PRD, UAT
> > through here. Trying to treat this an infrastructure box. We have 2 in
> > a NLB setup
> >
> > For each environment I have a separate web server and directory setup
> > so
> >
> > C:\ABC\
> > 	Prod\
> > 		Ajpconfig\
> > 	UAT\
> > 		Ajpconfig\
> >
> > In each environment I have a ajpconfig directory where I put my dll and I keep
> all my config files for just that environment.
> >
> > The idea was that I could have different version of the tomcat connector thus
> test stuff out in UAT and then move on to PRD.
> >
> > BUT  there is no way to set the name space used in the tomcat connector in
> relation to the Shared Memory or to semaphore.
> >
> > So Global\\JK_ISAPI_REDIRECT_MUTEX is used by all tomcat connectors
> > (the ones in prod and the ones in UAT)
> >
> Yes, but thats used only inside jk_init and locks for 1ms during new worker
> process creation while the isapi_redirect gets loaded to memory.
> Like explained in BZ52659 you have things conceptually wrong.
> isapi_redirect is proxy, it does its own connection pool management, recycling,
> virtual host mapping handling etc.

I'm a linux guy stuck in a MS world :)

> You should
> 1. Create a separate 'Unmanaged' application pool for isapi_redirect 2. Disable
> recycling for that pool 3. Have multiple vhost mapping inside
> instead
>     having multiple configuration files and instances for each vhost.
> 4. Use a single process for that pool.

Okay I can see that
Our original thinking was if we separate prd and uat, they could not affect each other.

Say for example right now where I want to test the new connector
I have tested on dev, but the spec of the machine is not the same as the prod/uat setup

I can't have separating logging all the prd/uat/sim will go into 1 set of files

Apart for the separation of prod and testing Minor.

> You can eventually have two separate pools (one for testing and other for
> production)
> > And I would presume the Shared Memory would also be shared between the 2
> ?
> >
> > Quote from the doco !
> > " The ISAPI redirector can read it's configuration from a properties file instead
> of the registry. This has the advantage that you can use multiple ISAPI
> redirectors with independent configurations on the same server. The redirector
> will check for the properties file during initialisation, and use it in preference to
> the registry if present."
> >
> If something is possible it doesn't mean you should use it in production and in all
> cases.

:) true, but I don't believe the above is true on IIS/Windows.  
The think I am unsure on is how the connector uses the shared memory
If its index (?) by the name of the worker thread or loadbalancer name then there will be
a problem.

I have the same config in UAT and PRD.. and thus the same worker names and load balancer names

If its worker name and dest server ip  (this I believe to be more likely) then it should be

> > You can't do this with the IIS connector and with multiple processes (web
> gardens)!
> >
> Again, you should think 'differently'
> Entire IIS worker process recycling is meant for handling crappy .NET
> applications with memory and resource leaks.
> isapi_redirect is proxy, nothing else, nothing more.

Yep understand, it was out tool for invoking this bug, as it also happened upon reboot of
the server or restart of IIS

> Regards
> --
> ^TM
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

View raw message