Informix on Linux
Reviewer: Fred Butzen
On Thursday, July 23, 1998, Linux took a stride closer to the business mainstream. Informix, in response to a groundswell of demand among its users, released its port of Informix to Linux.
For me personally, this was an important development. I have worked with Informix for over 15 years, and first used it on an Altos 586 under Xenix. I like the product, and seeing it available for free on my favorite operating system was like having Christmas in July.
What follows are my first impressions of Informix on Linux.
The Informix release consists of the following:
The Informix Standard Engine is Informix's older technology, which uses the file system to manage data. The Standard Engine is adequate for development work and for managing small- to mid-sized databases. It does not require the resources or management that Informix Online does, but it is not robust enough for enterprise-level work.
Informix Connect is a set of libraries which manage connections to the database over a network.
Informix ESQL/C is a kit of libraries, header files, and utilities that let you write C programs that interact with the Informix engine.
To download the package, you must register with Informix first. Informix then e-mails you a serial number and key required for installing the package. The package is free; however, you must still pay for technical support and for runtime licenses to run the bits you develop on customers' machines.
Most significantly, the package does not include ODBC or JDBC drivers. However, Informix CLI includes a Visigenic ODBC driver as part of its development kit. To register to download this development kit, check out http://www.intraware.com/shop/product.html?PLNK=000111. No Linux version is available yet, but kits are now available for Win95, NT and various other flavors of UNIX.
Installation and configuration was straightforward, since I'm familiar with Informix. (See the sidebar “Informix Installation and Configuration” for details.)
Informix offers an SQL engine that is fully compliant with SQL-2 standards. It also offers a stored-procedure language (a rather poor one, in my opinion) and triggers.
I tested Informix on Red Hat 5.0, using the 2.0.29 kernel on a home-brew machine, running a 100 MHz 486 with a 2GB SCSI disk and 32MB of RAM.
A reliable source has tested Informix with Debian 2.0 and its libc5 development package, and reports that Informix works fine on the simple tests to which he subjected it.
To test Informix, I ran the programs with my baseball database that I prepared for the book The Linux Database. This set exercises common features of SQL, both in interpreted SQL and in SQL/C.
I found that Informix performs as one expects a major commercial package to perform—without error. I could not get it to crash, return erroneous data or otherwise mess up. On these fairly limited exercises, I found its speed to be more than acceptable.
One problem, however, is that as I exercised Informix, I found that the SQL daemon sqlexecd spawned dozens of zombie processes. Clearly, work remains to be done.
Informix on Linux offers a number of pluses to anyone who develops database applications under Linux:
The main plus, of course, is name recognition: It is well-known and has credibility among potential customers that other packages, such as Yard or mysql, do not. This may not be fair, but it is nonetheless true.
Informix is a full, robust implementation of SQL-2. Even the best freeware packages have limitations in their implementation of SQL that require workarounds.
However, Informix has some serious drawbacks as well:
The package offered is Informix's trailing-edge technology. It does not offer the Online engine, data blades or Informix's other enterprise-scale tools. Informix's standard-engine product is a good, solid package, but it is not where the action is.
The only interface language offered so far is C. If you wish to build web interfaces with Perl, this package will not help you (although there may be a third-party package available that includes a Perl interface to Informix).
Documentation is particularly helpful in getting Informix up and running. However, it is hard to come by—you must either purchase documentation, which is expensive, or download and print it, which is also expensive.
Your customers still have to purchase a runtime license for Informix, which can be quite expensive. When you add in the cost of connectivity tools (ODBC, et al.), a customer can easily spend thousands of dollars per installation.
I wish to thank Jeff Noxon, who shared his impressions of the Informix release with me and who pointed out the URL at which the Informix CLI kit is available.
Fred Butzen is a technical writer and programmer who lives in Chicago. He is the principal author of the manual for the Coherent operating system, and is co-author of The Linux Database (MIS:Press, 1997) and The Linux Network (MIS:Press, 1998). He can be contacted at firstname.lastname@example.org.