I saw an impressive demo of the IBM Database Add-ins for Visual Studio 2005 at the IOD conference two weeks ago. Around the same time a new article appeared on developerWorks: Work with Informix Dynamic Server V11.10 and IBM Database Add-ins for Visual Studio 2005 V9.5 by Vasantha Jayakumar.
Version 9.5 of the Add-ins adds support for IDS, letting programmers do things like build Windows applications for IDS using drag-and-drop, and create CRUD (Create Read Update Delete) type applications in a few mouse clicks for the first time. The article shows how to do this and more in a few simple steps, with screen shots.
Where is the best place for Informix users to download v9.5 of the Add-ins? The Informix Dynamic Server for .NET website points to the a forum post containing the links: http://www.ibm.com/developerworks/forums/dw_thread.jsp?forum=1137&thread=173080&cat=19 which leads you to the IBM Data Server Client among other things. The Visual Studio Add-ins are part of this package.
Update November 7 2007: A new version of IBM Data Server Client 1.1 has been posted here today.
Update November 13 2007: There is a known problem enumerating IDS database objects in the current version. See this forum article VS 2005 :Issue enumerating IDS 11.1 GA using DB2 9.5 GA -enumeration fails for a workaround.[Read More]
Administrating and Developing with Informix
From archive: October 2007 X
Disclaimer: Though I found this install problem to be curious. Actual curiosity levels may vary.
The following email appeared in my inbox the other day..
I'm installing the release code for IDS 11.10 on my Windows XP SP2 machine and it gives me grief in my native XP environment, but no problems within my Windows XP guest machine in VMWare.
followed by this:
I can't get a server instance created...
Since the first error tends to be the most salient, I suspected a likely cause of failing to create the Message service was a problem with user rights - perhaps the user didn't have permission to create or start a service. I asked the user (or should I say product manager) to run "whoami /all" from the Windows XP Service Pack 2 tools for Advanced Users package. This shows the user's advanced user rights, which would show if theuser was missing any required user rights like permission to start a service.
In this case all the required user rights appeared to be present. Another possibility was that maybe there was a partialinstallation left over from a previous attempt that had left some corrupted registry keys behind that were causing problemsfor subsequent installs. I connected to the machine via NetMeeting to look at the registry keys and services, and removed all traces of previous installs. Still the same problem occurred at install time.
Now this was starting to annoy me. Tracing the installation sequence it appeared the failure occured when the Instance Manager (instmgr.exe) utility was launched for the first time, which happens when the installer tries to create a demo instance. Running instmgr directlyresulted in the error: instmgr.exe is not a valid Win32 application. Now we were getting somewhere.
Fortunately Visual Studio was installed on the machine, so I ran "dumpbin /headers instmgr.exe" to see if the binary file had valid Win32 header information:
Microsoft (R) COFF/PE Dumper Version 8.00.50727.762Copyright (C) Microsoft Corporation. All rights reserved.
There was the problem. This was a Windows 64-bit version of IDS installing on 32-bit Windows.
The red herring was that it apparantly worked on a VMWARE image. The only explanation for this is that it was a different versionof IDS that was installed there (or a VMWARE image of 64-bit Windows).
The reason the installer appeared to run correctly until it tried to launch the IDS Instance Manager is that the installer is a 32-bit program even in the 64-bit install media, so the problem only showed up when the first 64-bit program was executed. It would have saved some time if the installer had identified the operating system incompatibility before proceeding. I'll be logging a defect for this..[Read More]
Thanks to a habit of arriving fanatically early to airports I can spend a few minutes sifting through the embers of the IOD 2007 Conference, from the perspective of someone who missed half the talks he wanted to attend due to clashes with important engagements such as lunch, refreshment breaks, and food left unattended in conference rooms. Here are some of my highlights:
Demo 'til you Drop
Demo 'til you drop is a brutal gong show styled event where participants demo their pants off until they make a mistake, pause, something fails to work, or they mention their product supports Oracle. Congratulations to Informix's Alexander Koerner who won the show with his notorious "Cluster in my trousers" (aka Cheetah to Go) demo of Informix Dynamic Server 11.10's replication features running on memory sticks.
Informix had several booths in the Expo hall, including demonstrations of Open Admin Tool (OAT), Replication (ER, HDR and Mach11), Label Based Access Control (LBAC), and IDS for the gaming industry. We were also handing out a DVD which included the free IDS 11.10 Developer Edition. Nearby another line of booths was reserved for Informix partners, such as Cobrasonic, AGS, and Kazer.
I'm not very good at gathering freebies at conferences, because I was brought up to feign interest in a product before collecting the loot and this can be time consuming. Fortunately many booths had interesting wares, such as the SUSE Linux Enterprise 10 SP1 Live DVD being given away at the Novell booth, which includes a very nice desktop interface and Lotus Notes 8.
There were many talks and Developer Den sessions centered around IBM Data Studio - the new Eclipse based development environment formerly known as Developer Workbench - and its various tools and features. It was good to see some demo's and tutorials showing how easy this is to use. Now I need to try some of them back at the office.
.Net application Development
Writing .Net programs for IDS is becoming much easier. Ajay Aggrwal's "Rapid Application Development on .Net for IDS" session lived up to expectations and demonstrated using the new IBM Database Add-ins for Visual Studio 2005 to create working Informix .Net applications in minutes.
Self-Contained Informix Applications
Alexander Koerner let us in on his Cheetah to Go secrets with a detailed session showing how to use Qemu to create a self-contained IDS demo application consisting of a fully functional IDS Mach 11 cluster with demo applications on 512 Mb USB drives.
IDS versus the Competition
Simon David, better known as Cosmo, shared some comparisons configuring and benchmarking IDS vs Oracle, and pointed out some inaccuracies and bias in a recent Forrester report.
Rise of the Robots
Friday morning sessions can be a little under-populated so I had visions of my Developer Den session about interfacing databases with chat bots going something like this:
Guy: Welcome to exciting world of chat bots.Chatbot1: Sensors indicate room is empty.Guy: Silence Chatbot1Chatbot2: Destroy all humans.Guy: No-one asked you.
Fortunately a few people wandered in by accident and the chat bots cooperated, which was good enough for me.
Overall there was a positive feeling at the conference amongst Informix attendees - the increased investment and focus on Informix by IBM is reaping results. It's good to be working on a product in ascendancy, and hear in person comments from DBA's who use IDS and like where it's going.
Not finding a lot of time to blog from this year's IOD conference in Las Vegas yet. This is of course due to high workload and not related to unlimited free drinks in the Expo Center and receptions. Here is a quick personal view of some of the announcements from the conference so far, will hope to post more later.
Informix Application Development Website
The IBM website has a new portal dedicated to application development with Informix: http://www-306.ibm.com/software/data/informix/ids/ad/. This is a good place to get started for information on using Informix Dynamic Server with .NET, PHP, Perl, Ruby on Rails, IBM Data Studio, Java, EGL, ESQL/C and 4GL.
IDS Developer Edition - Free
At last... a free edition of IDS 11.10 for non-commercial use with no time limits. The Developer Edition will be downloadable from developerWorks and the IIUG website. Check the Developer Edition website for updates around November 6. The Developer Edition limits concurrent sessions to 20, CPU VPs to 1, memory to 1GB, database size to 8GB. Beyond this all IDS Enterprise Edition features are available including the Mach 11 replication features, built-in blades, Server Studio, J/Foundation etc. People have been requesting a fully-featured free edition of IDS for years, and the debate has continued this year so it's great to see this change in policy. If you're at the conference stop by the IDS booths at the Expo Center for a free Developer Edition DVD. IDS DE will initially be available for:
The release notes can be found here.
IDS on Mac
A free version of IDS 11.10 for the Mac OS is under development and will be available for the Developer Edition. There was going to be a demo of this in the exhibition center today, though I'm not sure the machine arrived. Watch the DE website for announcements.[Read More]
For anyone going to the IOD conference next week, here's a preview of the Developer Den sessions. Now that IDS 11.10 supports the DRDA protocol more common API technology is becoming available that was once only for DB2. The Developer Den format is a 30 minute presentation and/or demo followed by an open discussion. I am mostly interested in learning more about the Data Server Workbench and related technologies. Some of the new talks I'm hoping to get to see are:
There also talks by old favorites like Paul Watson on Advanced SPL, and Martin Lurie on the Google Maps API. I have a session on using chat bots as a database interface, where I'll try and convince you chat bots are the next big thing. A full guide to the Developer Den sessions can be found at the Technical Skill Building - Developer Den website.[Read More]
Good news from the SAP on Informix website. IDS 11.10 is now officially certified for SAP..
Thanks to the SAP support team in Germany for working to make this happen.[Read More]
Back in September when I announced my move to Development to work on installation, Windows and common libraries, I glibly invited the massed ranks of blog readers (both of you) to send feedback:
I am interested in any feedback and suggestions you might have regarding the IDS installation process (on any platform) - does it meet your needs?
Gerardo Santana took me at my word and left some thought provoking comments:
About the installation process, last time I checked I had to unpack a tar file into $INFORMIXDIR before running the installer. I fail to see the reason for that requirement, and it bugs me because it makes me give /usr more space than it needs. I want to start the installation process from anywhere I want (my home for instance).
And why should it use Java anyways? It would be nicer that IBM could offer packages for the package managers of the platforms it supports (RPM is not enough). As if the Informix installation was so complicated anyways (a bunch of files dropped in a single directory). Or am I missing something?
I made a vague commitment to reply to these comments, and since then more than one person has asked me when I'm going to get around to it. Admittedly it has taken rather a long time to reply. In part because I usually tend to write blog posts in a hurry (can you tell?) and this was something that deserved a considered response. After all, Gerardo makes an excellent point - Install should be simple.
Firstly, there is more than copying a bunch of files to a directory, setting file permissions and linking libraries. For a UNIX DBA who knows the operating system and has everything set up, this might be sufficient, but there are various additional requirements that clients, partners, and other IBM teams ask for, including (in no particular order):
For these reasons it becomes more cost-effective and reliable to choose an install framework that has support for many of the above features built-in, can support multiple platforms, and is straightforward to extend and customize. Currently Installshield is the install framework used by IDS on Windows, and Installshield Multi-Platform (ISMP) is used on UNIX.
One price that comes with an Installshield framework is a Java Runtime dependency. A Java Runtime Environment is bundled in the install media so for most users this is transparent. Java makes a good choice to write a multi-platform install framework - it has been around for a while and many of the platform specific issues go away.
That is not to say there are not other choices, both Java and non-Java. We continue to evaluate install frameworks to identify which has the best combination of cost-effectiveness, usability, reliability and platform support. We are looking at both home-grown solutions and 3rd party install frameworks used by other IBM Software Group development teams. We are also actively looking into how we can provide simpler options for embedding IDS and deploying instances to multiple machines.
Regarding wanting to start the install process from anywhere. That sounds like a reasonable request and if the demand is there it aught to be fixable.
Thanks for the comments Gerardo, and please leave more. Thanks also PJ in the install team for providing insight into current ISMP functionality.
DeveloperWorks, currently celebrating its 8th birthday, has a new blog, and the Informix blogosphere has a new node, in the form of Informix replication architect Madison Pruet's Replication Roundtable. Anyone who has had the pleasure of being on a conference call with Madison will know he's not afraid to express himself. Madison opens his blog with an exposition on the MACH11 Cluster.
If you have any interest in the powerful replication features of IDS, this is one to watch.[Read More]
Part 1 of this article looked at a standard case of the popular Could not initialize security subsystem error which can occur when running command line IDS utilities on Windows.
Part 2 looks at a more obscure case of this error. Here's an email I received last week:
I installed a Cygwin environment and a telnet server on our Windows 64-bit machine.I can now access the machine and log-in as informix to a nice UNIX-like bash shell. However I would like to access the informix server from this shell. When I have defined INFORMIXDIR/INFORMIXSERVER etc. However I always end up with ERROR could not initialize security subsystem.Since this is usually a problem accessing the Informix part of the registry, my first thought was that this had something to do with Cygwin being 32-bit and not being able to access the 64-bit registry keys under HKEY_LOCAL_MACHINE\Software\Informix. With hindsight this couldn't be the problem, since it would be the 64-bit IDS utilities which access the registry keys, not Cygwin.
Strangely the problem only occurred when connecting via the telnet server. A Cygwin shell executed via Remote Desktop worked fine.
To investigate further, I used the Sysinternals utility Regmon to monitor which registry keys were accessed when the onstat utility was executed via a telnet session. This showed one problem - the Informix environment variables were being set in a "DOS format" environment shell, which added an extra linefeed character at the end of the INFORMIXSERVER environment value. This showed up as a mysterious block at the end of the Registry access string in Regmon.
Once the environment variables were fixed, onstat would still not run in the telnet session. It failed with:
GLS initialization failed, error -23101
Informix Dynamic Server revenue has not been mentioned in this blog for some time. Since IBM's financial reporting restrictions prevent me from being precise it takes some of the fun out of it and my enthusiasm had waned.
On receiving an email asking about this today (thanks Ravi), I made an exception to my apathy and checked with marketing. With the Q2 '07 results in, I can say: IDS revenue has increased by double digits for the last 6 consecutive quarters. Good to see the growth is consistent.[Read More]