J
Joni Moilanen
Hi!
I'm designing an architecture that will be run on a 16-node Terminal
Services (Citrix) cluster. An Oracle 9i cluster contains the data and
ODP.NET will be the interface. Everything else is done on .NET 1.1. For this
particular apps there are about 20-100 simultaneous users, though design
will be stateless multi-tier, of course.
The problem is how to find the best trade-off between
performance/scalability. One important thing to consider is connection
pooling. I understand how it works in a "typical" multitier environment, but
this Terminal Services changes things a bit (or does it?).
Normally, no new pool is created if:
-Connection string is the same
-Process ID is the same (is it the same for multiple TS-clients on the same
physical server?)
-Application Domain is the same (see the question above)
-If there are no transactions outside database
If the application and all the dependent assemblies (client, BL and DAL) are
installed to the TS, will there be 16 connection pools (1 per TS-node) or
one pool/user thus no usable pooling?
If the pooling doesn't work in above situation, we may need to move the DAL
to a centralized server and use .NET Remoting. However, this I would like to
keep as the last resort.
That question about processes and application domains is the most important
ones at the moment, but all suggestions are welcome, too
Thanks,
I'm designing an architecture that will be run on a 16-node Terminal
Services (Citrix) cluster. An Oracle 9i cluster contains the data and
ODP.NET will be the interface. Everything else is done on .NET 1.1. For this
particular apps there are about 20-100 simultaneous users, though design
will be stateless multi-tier, of course.
The problem is how to find the best trade-off between
performance/scalability. One important thing to consider is connection
pooling. I understand how it works in a "typical" multitier environment, but
this Terminal Services changes things a bit (or does it?).
Normally, no new pool is created if:
-Connection string is the same
-Process ID is the same (is it the same for multiple TS-clients on the same
physical server?)
-Application Domain is the same (see the question above)
-If there are no transactions outside database
If the application and all the dependent assemblies (client, BL and DAL) are
installed to the TS, will there be 16 connection pools (1 per TS-node) or
one pool/user thus no usable pooling?
If the pooling doesn't work in above situation, we may need to move the DAL
to a centralized server and use .NET Remoting. However, this I would like to
keep as the last resort.
That question about processes and application domains is the most important
ones at the moment, but all suggestions are welcome, too
Thanks,