Paul Reeves
2007-05-24 10:42:37 UTC
Fb 2.1 will allow users to run multiple instances of Firebird as Windows
Services. This is a much needed improvement, but the feature needs some
more work. I'd like to get some feedback on what we need to do, and work
out when to implement it. (Because it may well be that we don't have
time to do it all for 2.1)
1/ 'instsvc install -name servicename' does not leave any trace of the
name used, other than in the registry for services. This means that
when we run 'instsvc query' it only returns the status of the default
instance.
If we know the service name we can query it. But we have no mechanism
to list the installed service names.
2/ Running a service under a user defined name more or less requires a
full installation of Firebird. We could probably specify a minimum
install, but instsvc takes its current directory as the instance
directory and the server looks for its config file in the root above.
I don't think we need to do anything about this for 2.1, but it would
be useful if we could configure multiple instances from a single
install. Each instance would require its own firebird root dir for
the conf files, message file, lock file and log file and any
required libraries.
3/ We have no mechanism to list all the installed instances. instreg is
not connected to instsvc. I'm not sure that it needs to be, but from
the POV of the installer it would be useful to get a list of
installed instances. Part of the problem here is that when multiple
services are configured they each run on a separate port. But we
don't know what those ports are, or which version are behind them.
Do we need to know? Can we complete 2.1 without knowing?
4/ The ControlPanel applet needs a major overhaul. Users need to see
- all installed instances
- configuration values such as port number
- ideally should allow adding/deleting installed service instances
The cpl applet should be using the instsvc/instreg api where
possible.
5/ If the %FIREBIRD% variable is set it confuses the non-default
installed services. Although I need to double-check whether placing
%FIREBIRD%\bin on the path is partly responsible. Either way, it
seems that multiple service instances don't appear to run reliably if
there is a FIREBIRD variable set.
I particularly noticed problems when mixing 32-bit and 64-bit
installs. The dll loading gets muddled.
I think a solution to this would be for the server to look for a
%FIREBIRD_servicename% variable, replacing servicename with the
parameter passed to the -s switch.
An alternative might be to _not_ look for a FIREBIRD variable if
the -s parameter is used.
Paul
Services. This is a much needed improvement, but the feature needs some
more work. I'd like to get some feedback on what we need to do, and work
out when to implement it. (Because it may well be that we don't have
time to do it all for 2.1)
1/ 'instsvc install -name servicename' does not leave any trace of the
name used, other than in the registry for services. This means that
when we run 'instsvc query' it only returns the status of the default
instance.
If we know the service name we can query it. But we have no mechanism
to list the installed service names.
2/ Running a service under a user defined name more or less requires a
full installation of Firebird. We could probably specify a minimum
install, but instsvc takes its current directory as the instance
directory and the server looks for its config file in the root above.
I don't think we need to do anything about this for 2.1, but it would
be useful if we could configure multiple instances from a single
install. Each instance would require its own firebird root dir for
the conf files, message file, lock file and log file and any
required libraries.
3/ We have no mechanism to list all the installed instances. instreg is
not connected to instsvc. I'm not sure that it needs to be, but from
the POV of the installer it would be useful to get a list of
installed instances. Part of the problem here is that when multiple
services are configured they each run on a separate port. But we
don't know what those ports are, or which version are behind them.
Do we need to know? Can we complete 2.1 without knowing?
4/ The ControlPanel applet needs a major overhaul. Users need to see
- all installed instances
- configuration values such as port number
- ideally should allow adding/deleting installed service instances
The cpl applet should be using the instsvc/instreg api where
possible.
5/ If the %FIREBIRD% variable is set it confuses the non-default
installed services. Although I need to double-check whether placing
%FIREBIRD%\bin on the path is partly responsible. Either way, it
seems that multiple service instances don't appear to run reliably if
there is a FIREBIRD variable set.
I particularly noticed problems when mixing 32-bit and 64-bit
installs. The dll loading gets muddled.
I think a solution to this would be for the server to look for a
%FIREBIRD_servicename% variable, replacing servicename with the
parameter passed to the -s switch.
An alternative might be to _not_ look for a FIREBIRD variable if
the -s parameter is used.
Paul
--
Paul Reeves
http://www.ibphoenix.com
Supporting users of Firebird and InterBase
Paul Reeves
http://www.ibphoenix.com
Supporting users of Firebird and InterBase