>Assuming "single use servers" to mean that any invokation of that server will cause *another* copy of the program (EXE) to be loaded and executed, and that "multiple use server" means that a single copy of a program (EXE) can and will be used by any number of Clients, then. . .
>
>how can a single use server be more efficient even though it'll use more memory??????
Single use EXE servers consume more memory because each instance is a full
instance of VFP. Multi-use servers only load a single instance and simply
pass a new reference (plus some overhead for global memory space) back
to the client.
The reason single use EXE are more efficient is that you can run multiples
at the same time - you can't do this with either DLL or multi-use EXE
servers. VFP is single threaded and only a single instance can process
requests at any time. If you're running multiple EXE instances though
they are like totally separate apps that *can* process at the same time.
The pool managers in Web Connection and FoxISAPI take advantage of that
fact and allow you to run multiple sessions at the same time which can
provide better response to the user, but doesn't necessarily mean better
overall throughput. The CPU(s) can only handle so much load and running
3 or 4 simultaneous hits on multiple servers is likely to be slower
than simply running queued requests on a single server - however response
to the users might be better. Rather than waiting for 4 requests to
complete for the last user in line, every user now waits slightly longer
but not so long that they might time out.
>Curious, because I find precious LITTLE actual documentation on OLE Application Servers and efficiency and performance, etc. I find I have to rely on hearsay or exchanges like this to learn ANYTHING!
Take a look at the VB documentation - it's probably the best documentation
on the subject.
+++ Rick ---