Subject | Re: [IBO] Terminal server and the FAQ on www.ibobjects.com |
---|---|
Author | Geoff Worboys |
Post date | 2006-08-10T22:19:01Z |
> And I didn't find anything about terminal server. Can I justHelen has already answered appropriately... but here is a
> rest assured that IBO will work OK without modifications?
response from someone that has been doing it for several
years now.
In the sense of normal client/server the terminal server
sessions act just like normal remote clients. The fact that
you may have several terminal sessions running on the one
terminal server - all connecting to a Firebird server somewhere
on the network - has no impact on the client. I've never had
to make any changes to my client program to run under terminal
server.
The only adaptation I made for terminal servers is due to the
fact that my client "registers" itself with the database when
it logs on. It records the client name and time in a table and
since there may be multiple sessions running on the same
network name I also send a session identifier value.
The session id (an integer) can be read from the terminal
server API, or more simply a session identifier string can be
read an environment variable. Under NT4 this environment
variable is WINSTATIONNAME (showing terminal server's roots
from Citrix) but in later versions I believe it is just
SESSIONNAME. A value of "CONSOLE" indicates the client is
running on the server console, otherwise the names are strings
like "RDP#113" (protocol + session id).
You find that Windows XP Pro (and I assume Home) and Win2000
each come with the wtsapi32.dll (terminal server API) because
these all support terminal services to some extent (it is how
the remote desktop stuff works, and also fast user switching).
Under NT4 you have to check for terminal services if you want
to make special provision. There are version checks you can
make but I simply by try to load wtsapi32.dll.
It is possible to run a Firebird server as a service on a
terminal server and have terminal sessions on that same server
connect to the Firebird service - using tcpip connections. I
have never tried netbeui connections, never had the need, but
I imagine it would work. Windows local connection will not
function unless you are executing the client program from the
terminal server console session.
So it is possible... but its not recommended as you will have
both the FB service and the client application instances
competing for resources.
Terminal servers _definitely_ benefit from running on multi-
processor machines. It keeps them responsive to many user
sessions running at once.
HTH
--
Geoff Worboys
Telesis Computing