Multiple Installations of IDS on the Same Windows machine
When the IDS installer switched to using Installshield as its framework in version 11.10 this implementation caused a slight problem. Only one copy of each major version of IDS could be installed, so you couldn't for example have a separate development and production installation of 11.10 on your machine. At least you could still create multiple instances via the Instance Manager.
In IDS 11.50.xC1 support for multiple installations was reintroduced via an undocumented "-multiple" command line argument to the setup.exe program. Every time you ran "setup.exe -multiple" a new installation would be created in the path of your choice.
In IDS 11.50.xC2 the multiple installation support is once again the default behavior. Any time you run setup.exe, if there is an existing installation of IDS on the machine, you will be prompted to create a new instance. If you want to run setup.exe to maintain an existing installation, you can use the new -path or -instnum arguments to identify a specific installation.
Note for backward compatibility the "-multiple" argument is still supported, though no longer required.
The ISM GUI Program is back
If you're very old you might remember earlier versions of IDS 7.x included a graphical interface for the Informix Storage Manager called ISM.exe that allowed you to create and view storage devices, monitor storage manager operations and other tasks. In some ways it provided equivalent functionality to the UNIX ism_watch program. For obscure reasons, shrouded in mystery, the ISM GUI was dropped from the distribution some time in 7.3x and never seen again. Until 11.50.xC2 when it has been resurrected and rebuilt by popular demand.
The Configuration Wizard is improved
The configuration wizard was a new install feature introduced in IDS 11.50.xC1 thanks in part to input we received from usability sessions. For the first time you could have the install program detect your hardware configuration (CPU settings, disk size and speed), ask you some questions about the expected number of decision support and OLTP users and create an optimized onconfig file for you. Internal TPCC benchmarks showed that performance from a Config Wizard versus a manually tuned configuration file was very close and significantly better than the default configuration based on onconfig.std (incidently onconfig.std was also improved in 11.50 - with better inline documentation for parameters and more realistic values).
One usability issue with the Config Wizard on Windows in xC1 was that the onconfig file it would generate would have some UNIX specific values for parameters such as for Java stored procedures (JVPJAVAVM etc) which would mean extra work configuring those features on Windows. In xC2 the config wizard was redesigned to layer its onconfig enhancements on top of the onconfig.std file for each platform, resulting in an optimized onconfig file tailored to the platform it was installed on.
Banishing DLL Hell with SHMNOACCESS
Anyone who likes to use large shared memory configurations on 32-bit Windows has to think about where DLL's are loaded in memory by processes such as oninit.exe, onmode.exe, onstat.exe and onbar.exe. Any process that attaches to a shared memory segment needs a matching contiguous range of address space, and any DLL loaded by that process potentially fragments the address space. I have ranted about the DLL hell issue on previous occasions (part 1, part 2, part 3, part 4).
Even with all Microsoft and IBM fixes, it was still possible to get into a situation where the oninit process creates a shared memory segment that overlaps with where another process that needs to attach to that segment has loaded a DLL, resulting in a "Unable to attach to shared memory" error. Enter the SHMNOACCESS onconfig parameter. You can use this to exclude any regions of address space where you do not want oninit to create a shared memory segment. As of 11.50.xC2 it works on all types of segment (resident, virtual etc). This was the final tool needed to avoid 32-bit DLL problems in large memory configurations. As an anonymous tech support engineer (Tim Steele) said, "the Windows witch is dead!".
Debug libraries are included on Windows
This is one of those features most customers do not need to care about, but makes tech support and development engineers who need to debug optimized code very happy. The .PDB debug libraries for the IDS executable processes are now included in the install media (but not installed). Using these it is possible to see a valid stack if you attach a debugger to an oninit process or analyze a crash dump. This can dramatically reduce the time to find the root cause of a problem.
Better Windows Server 2008 Support
In most cases IDS 11.50 works fine on Windows Server 2008, but in FC1 (64-bit) there was one class of Intel CPU (Intel64) that the installer wouldn't recognize. This and a few other Win2K8 issues have been fixed in xC2. One fix is still to come - getting the finderr utility working again without needing to download Winhelp. There are plans in place to fix this soon.
Why IDS on Windows anyway?
I talk about IDS on Windows a lot. Being the Windows architect might be a factor, but there are reasons why the Windows port of IDS is important. Windows is one of our top 5 production platforms along with Linux, Solaris, HP and AIX (in no particular order). Windows is also often the platform people see IDS on for the first time, simply because the Developer Edition is freely downloadable on the web and a lot of people are using Windows when they download it. We also provide it on the IDS Discovery DVD we give away at conferences. That's why I'm very happy to see a release of IDS that has significant improvements for Windows.
If you deploy IDS on non-Windows platforms, there's a reasonable chance you have a laptop running Windows. IDS has a small footprint so you can have the Developer Edition running for free on your laptop without much overhead. There it's good for learning/training, development and demonstrations. As well as IDS on my XP OS, I also have it running via VMWare on Ubuntu, SLES, XP (again) and Windows Server 2003 all on the same machine. Running multiple instances of IDS on multiple operating systems at the same time does not put much strain on the machine.
Mac OS X Installer improvements
11.50.FC1 saw our first Mac OS X port, and with FC2 the installer has been improved. Now it can automatically make any required adjustments to kernel parameters, and it creates a terminal icon for easier access to the demo instance. A lot of development work is going into to making further installer improvements for Mac OS.
Update 9/9/08: Check this developerWorks article: Demystifying the Informix Database bundle (IDS and CSDK) installation on Mac OS X for more detail.
IDS Developer Edition is now upgraded every fixpack
For IDS 11.10 there was only one version of the free Developer Edition provided, 11.10.xC1. I had issues with this, because any defects found in xC1 were not going to get fixed for people developing with and evaluating IDS for the first time. Now with IDS 11.50 the Developer Edition is upgraded every fixpack so you get the latest and greatest. Get your free 11.50.xC2 IDS Developer Edition for the platform of your choice here.
Enterprise Replication Hardening (all platforms)
One other area I'll talk about is ER. There has been a big focus on improving the resilience of ER, making it more efficient with memory and better able to handle low memory situations, and generally work better in an embedded environment. Among improvements in xC2 are:
- Limiting memory use during synchronization with the -memadjust parameter
- New syscdr tables for obtaining ER status information via SQL:
syscdr_state Contains information on whether Enterprise Replication, data capture, data apply, and the network between servers is active. syscdr_ddr Contains information about the status of log capture and the proximity or status of transaction blocking (DDRBLOCK) or transaction spooling. syscdr_nif Contains information about network connections and the flow of data between Enterprise Replication servers. syscdr_rcv Contains information about transactions being applied on target servers and acknowledgements being sent from target servers. syscdr_atsdir Contains information about the contents of the ATS directory. syscdr_risdir Contains information about the contents of the RIS directory. syscdr_ats Contains the first ten lines of the header of each ATS file. syscdr_ris Contains the first ten lines of the header of each RIS file. syscdr_rqmstamp Contains information about which transaction is being added into each queue. syscdr_rqmhandle Contains information about which transaction is being processed in each queue.
There are various other new features, such as improvements to OAT and SQL enhancements, as well as numerous defect fixes. 11.50.xC2 is one of those releases where you really want to take a look at the release notes to see what you are getting and what you can make use of.