A
Abhishek Srivastava
Hello All,
In IIS 6.0 We have a concept of worker processes and application pools.
As I understand it, we can have multiple worker process per appliction
pool. Each worker process is dedicated to a pool. If I assign only one
application to a applicaton pool and have multiple worker processes
assigned to that pool. Will my application be processed by many worker
processes?
Why I am asking this question is because there are certain resources
which are in-memory and are shared at an application level. For example
the database connection pool, or some XML files initialized via a static
contructor.
Now if multiple process are executing my requests, then how do they
share data (if they do at all). Or each process replicates its own
resources.
This is important to me, because lets say I am connection to a
datasource for which I have a 20 concurrent user license. So I create a
pool of 20 connections and manage it. This pool is in-memory initialized
via a static constructor. Now if each worker process tries to load its
own in-memory pool, then only one process would function because rest
will be denied the connection. I also have no way of knowing how many
worker process will run at any moment because they are run based on
demand by the IIS so I cannot split the load amongst multiple processes
at an application level.
To me it appears that different worker processes cannot be used to
execute the requests for one application ... but then MS documentation
talks about Web Garden where different worker processes execute requests
for an application domain.
I will be very gratefull if you could share some knowledge on this
matter. Thanks for your help in advance.
regards,
Abhishek.
In IIS 6.0 We have a concept of worker processes and application pools.
As I understand it, we can have multiple worker process per appliction
pool. Each worker process is dedicated to a pool. If I assign only one
application to a applicaton pool and have multiple worker processes
assigned to that pool. Will my application be processed by many worker
processes?
Why I am asking this question is because there are certain resources
which are in-memory and are shared at an application level. For example
the database connection pool, or some XML files initialized via a static
contructor.
Now if multiple process are executing my requests, then how do they
share data (if they do at all). Or each process replicates its own
resources.
This is important to me, because lets say I am connection to a
datasource for which I have a 20 concurrent user license. So I create a
pool of 20 connections and manage it. This pool is in-memory initialized
via a static constructor. Now if each worker process tries to load its
own in-memory pool, then only one process would function because rest
will be denied the connection. I also have no way of knowing how many
worker process will run at any moment because they are run based on
demand by the IIS so I cannot split the load amongst multiple processes
at an application level.
To me it appears that different worker processes cannot be used to
execute the requests for one application ... but then MS documentation
talks about Web Garden where different worker processes execute requests
for an application domain.
I will be very gratefull if you could share some knowledge on this
matter. Thanks for your help in advance.
regards,
Abhishek.