From: Chris K. <ch...@ai...> - 2002-03-23 02:35:31
|
Howdy, > -----Original Message----- > From: fir...@li... > [mailto:fir...@li...]On Behalf Of Mike > Nordell > Sent: Monday, 18 March 2002 20:57 > To: fir...@li... > Subject: Re: [Firebird-devel] How do I do this under Windows? > > [snip] > > I assume you are aware that the Microsoft licensing costs to > be able to do this, and the machine needed for several hundred of > quite heavy processes, would probably sum up to some pretty large > number. > That's OK. I don't have to pay for the licenses or the hardware - I just need to provide a reference platform for acceptance. The client would prefer to run the system on Windows and not FreeBSD. I'd like to try to use the existing infrastructure I've already developed under FreeBSD if possible. > But, are you asking about running several hundred CS processes on > Win32? SS processes would probably be quite easy to fix, but CS is > AFAIK not something to use on Win32, especially since it's (again > AFAIK) not supported and Win32 doesn't come with an inetd. > SS is fine. I only built CS on FreeBSD due to threading issues a while back and haven't managed to allocate the time to revisit this and build a SS version for FreeBSD. > > Is it possible to have multiple Firebird installs, each listening > > to their own IP and authenticating against their own isc4.gdb? > > Currently, and in order, no, no and yes. > OK, how do I do the last bit? This is probably the key bit - I need the ability for the server to have multiple isc4.gdbs, with each isc4.gdb having one or more databases associated with it. But not vice versa - a database can't be accessed by two different isc4.gdbs. > > If not, which bits of code do I need to modify to make it do so? > > It depends on how you want to be able to start the processes. > If you want to start them as services I think you are in for a bumpy > ride. If you however accept to start them as console processes it's > doable. > Sounds good so far. > A non-complete list would be something like: > The registry-handling (you can not use the ini-file-from-hell). The > easiest way to do this is by starting the processes as console > processes, setting the environment variable(s) needed to point to > different DB locations for each process. Search for ISC_ENV inside > jrd/gds.c(pp). Maybe this means you really don't need to change that > part of the code. > Still OK. > You need some kind of major-multi-IP-address-able-per-NIC TCP > stack. I don't know if the MS stack handles hundreds of > virtual/additional IP's, and even if it does I wouldn't have too > high hopes about its performance. Anyway, you would need to make the My understanding is that W2K handles multiple IPs per interface better than NT4. There's a 15 IP address limit prior to SP2 due to AD problems and a possible 51 IP address limit if the W2K box is also a DC. > engine bind() to specified interfaces, changing sin_addr.s_addr from > INADDR_ANY to a specific IP to be gotten from ini-file, command line, > environment variable or some other means you can give different > processes different input. You therefore need to add parsing for > this and change the code inside (at least) inet.c(pp) to bind() to > the right IP. Another way of doing it could be to put another machine > (with a _real_ OS :-) ) in front of the window box, and then forward > its incoming connections on different IPs to the same IP but > different ports on the Win32 box, since the port Firebird listens to > can be configured. > That would be OK. It's a Web app, so I could simply add a Port column to the database used to keep track of who's database is where. > [really useful stuff snipped] > > > I'm not interested in replies containing the word VMware either. > > How about Bochs? ;-) > The problem with these is they're too full on. The jail approach under FreeBSD is good as the isolation level is just enough for an effective VM without taking all the associated performance hits of a full VM. Thanks very much for the detailed reply. If a Firebird install can use multiple isc4.gdb databases, then all the other suggestions should result in a working system without too much change to my current infrastructure and hopefully little or no changes to the Firebird code. Regards, Chris Knight Systems Administrator AIMS Independent Computer Professionals Tel: +61 3 6334 6664 Fax: +61 3 6331 7032 Mob: +61 419 528 795 Web: http://www.aims.com.au |