Simple way to run Informix 14 and 15 in parallel
Posted in 2024
Sebastien FLAESCH asked how to run Informix 14.10 and 15 in parallel on one Debian machine. Art Kagel said only SERVERNUM, DBSERVERNAME, aliases and ports or IPs in sqlhosts must differ, plus LD_LIBRARY_PATH for CSDK. Davorin Kremenjas listed also changing ROOTPATH, MSGPATH, CONSOLE and BAR/PSM paths, leaving SHMBASE alone. On Windows, Art said installation order did not matter if folders were separate.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Installation, Setup & Upgrades, Server Administration, Networking & sqlhosts Configuration, Platform-Specific Issues
Hello, For development I have both IDS 14.10 and Informix 15 installed on my Linux Debian 12. So far, I have to switch between both versions to do tests. I know it's possible to have more than one instance running on the same computer. I would appreciate if someone points me to the onconfig settings to be changed, so I can run both servers in parallel. Is it sufficient to use different SHMBASE values? How? I am already using different TCP ports, SERVERNUM and DBSERVERNAME. Seb ------------------------------ Sebastien FLAESCH ------------------------------
Sebastien: All you need is different SERVERNUM, DBSERVERNAME, DBSERVERALIASES in the ONCONFIG and different ports and/or IP addresses in the SQLHOSTS file. You can even have both listed in the same SQLHOSTS file so you just have to change INFORMIXSERVER. The only other thing is if compiled with CSDK 4.xx it needs LD_LIBRARY_PATH pointing at those libraries and if CSDK 15 at those libraries unless it was linked STATIC. Art ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------
Sebastian,
no need to change SHMBASE, in fact there's a warning in onconfig.std not to change it.
In addition to the changes you mentioned you should also change in new instance onconfig:
ROOTPATH
MSGPATH
CONSOLE
DBSERVERALIASES # if usedIn case you're using onbar/PSM you may also want to have a look at:
BAR_ACT_LOG
BAR_DEBUG_LOG
BAR_IXBAR_PATH
PSM_CATALOG_PATH
PSM_ACT_LOG
PSM_DEBUG_LOGUpdate sqlhosts accordingly in case you share them between instances or specify a separate one in INFORMIXSQLHOSTS env. var.
Update /etc/services in case you're using service names instead of port numbers.
Regards
------------------------------
Davorin Kremenjas
------------------------------
Hi Sebastien,
You can have more than one instance on your server; whether you have instances using version 11, 12, 14 or 15.
Just make sure that
SERVERNUMis unique and of course DBSERVERNAME or DBSERVERALIASES also uniques on a single server (machine physical or virtual) .The
SERVERNUMhas to be
unique
because otherwise you will try to allocate the same shared memory segment and the system will not allow you even to do that even if you are on the same Informix version.
Each segment id is calculated on the the following base key value:
0x52564801
To obtain the key value for shared memory, you need to multiply the value for the SERVERNUM by 0x10000 and then add it to the base key value as follows:
0x52564801 + (SERVERNUM * 0x10000) = 0x52584801
For example, if the SERVERNUM=2, your shared memory segment will the following key:
0x52564801 + (2 * 0x10000) = 0x52584801. The second segment in the instance will have the value 0x52584802 and so on; the last byte is FF (255). If SERVERNUM=6, the the base key value is 0x525c4801.
Since the shared memory key has to be unique, each instance has to have a unique SERVERNUM. That is why the most important parameter between instance is SERVERNUM
ipcs
at the unix level will show you the shared memory segments used. If a shared memory is there and the instance is down for some reason, you have to remove the shared memry segment prior relaunching the engine (instance) via oninit. Otherwise the engine will not start again. You can also just change the SERVERNUM to another unique number between 1 and 255 (in this case you will be wasting shared memory for nothing).
Note: the first 3 bytes of the base key value are 0x515648 or RVH in hex (the initials of
Roy V Harrington
the first architect of the Informix engine named Informix Turbo in 1987)
Hope that this helps.
-- Cordialement, Regards, Khaled Bentebal Directeur Général - ConsultiX Tél: 33 (0) 1 39 12 18 00 Mobile: 33 (0) 6 07 78 41 97 Email:
khaled.bentebal@consult-ix.fr
Site Web:
www.consult-ix.fr
Hello! I have another question related to this thread: For testing purpose, we have set up a Windows Server 2025 machine, with Informix 15 installed. We realized that we also need to test Informix IDS 14. I know that both instances can run in parallel on this OS, but is it safe to install Informix IDS 14 after Informix 15? I guess that Informix installers check for existing installations, and maybe in this case the IDS 14 installer may not detect the V15 installation? Should we de-install Informix 15, then install 14 and then re-install 15? It's just a testing platform, we not in production. Seb ------------------------------ Sebastien FLAESCH ------------------------------
Sebastien: I am certainly no Windows SME, however, AFAIK the Informix install doesn't do anything that is system-wide so I do not think that it makes any difference in which order you install v14.10 and v15.0. The only thing that matters is that they are installed in separate folders optionally sharing only an sqlhosts file if they need to be able to see each other. Art ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------