One thing I like about Ubuntu is that everything is easy to install. Installing software, in the vast majority of cases, should be as simple as running a single command.
I am very happy to see free Informix Developer Edition software now available as Debian packages for Ubuntu. Packages are available for IDS, CSDK, OAT, and an IDS Demo instance. It makes Ubuntu the easiest platform to install IDS, just run a single command.
These packages have been developed for the Ubuntu 8.04 LTS (Long Term Support) release, but can be installed on the latest 9.10 as well (see below). How to add the Ubuntu partner repository as a source (Ubuntu 8.04)
I typically just vi /etc/apt/sources.list and uncomment the line for the partner repository. Then run "apt-get update" to retrieve the new packages lists. A more graphical way is to run the Ubuntu Package Manager and add a repository (click on these images to view larger versions)..
Once the partner repository is enabled you can see the Informix packages in the GUI Ubuntu Package Manager and install them directly:
Alternatively just use the commnand line. E.g. "sudo apt-get install informix-ids":
How to install on Ubuntu 9.10
Being lazy I am copying Alexander Koerner's 9.10 instructions from his Facebook entry (thanks Alex)..
In order to install IDS in Karmic Koala (9.10) you need to a) manually download and install the libstdc++5 from here http://packages.ubuntu.com/jaunty/i386/libstdc++5/download and b) add the Ubuntu 8.04 partner repository (deb http://archive.canonical.com/ubuntu hardy partner) to your preferred Ubuntu installer (e.g. Synaptic). Then select e.g. informix-ids-demo, start the installation and relax... ;-)
I've converted a laptop to Ubuntu 9.10 and like how easy installation and set-up was. I don't miss the early days of Linux when you needed to know about device drivers (ok I do a bit).
See also Alexander's tutorial in German on the Ubuntu users' wiki: http://wiki.ubuntuusers.de/Baustelle/Informix, and a brief install guide on Eric's Blog on Informix-Zone.
This got me thinking about what my hottest feature in IDS 11.5 is. I'd probably pick something obscure like XSLT transform support or oninit -w on Windows. I think this is referring to redirected-writes, which is indeed a not bad 11.5 feature..
Informix Chat with the Lab - Wednesday, Sept 16, 8:30 AM Pacific, 10:30 AM Central, 11:30 AM Eastern, 4:30 PM London, 5:30 PM Paris
Update Anywhere Clusters: IDS 11.5 Hottest Feature!
This month's Informix Chat with the Lab will on the 11.50 Hottest Feature, Update Anywhere Clusters. .
The active-active HDR cluster is one of the most exciting features in Informix IDS 11.5. This session will explore the
capabilities of an HDR Active-Active cluster. We'll first examine how to set up the cluster. Next we'll look at how to
connect and use the databases. Of course when discussing High Availability we'll have to look at breaking things and
see what happens in the take-over scenarios.
Don't worry, no cheetahs were harmed in the preparation of this presentation.
Jerry Keesee, Director of the Informix Lab will introduce the call and Martin Lurie, Technical Specialist will be our technical speaker.
Participant access information:
Conference number: 8697440
To register for this event:
1. Go to the URL listed above and choose Web RSVP under Join Events.
2. Enter the conference number and passcode.
3. Provide your information for the event leader and then click submit.
So I've been working with some embed ability features, and was reminded of a feature that I think is very cool, but so far not used very much. It's called solara, and Guy talked about it some when he had this blog. Since it's been a few years, I thought it might be a worthwhile to dust off one of his old articles, and remind everyone about the ability to embed a webserver inside of Informix.
The article even includes source code for those who want to try this out.
So now that the announcements are over it's time to do a little evaluation. So to that end I am going to download and install Informix Ultimate-C edition for Mac. If I get enough requests I will run through this same exercise with windows, but at the moment I will presume that to be the same as the Mac edition, but more "window-like".
So onto the first part. Downloading a copy. The good news is it is very easy to find. If you merely go to the Informix website
, you can click on the Ultimate-C edition for Mac, and there is a download link. The bad news is that you have to go through the same old routine you always go through when downloading a product or demo from IBM, fill in tons of radio buttons and other assorted things for IBM sales follow up. While I understand the rationale behind doing it, that doesn't mean I don't sympathize with everyone who doesn't want to create an IBM idea, and click what seems like 100 radio buttons just to download a "no charge" product.
So we are now past the hoops necessary to download the product and we are downloading the product. It's not lightweight, but still a smaller footprint that a lot of other things. Total space required for download? Well according to finderr, it's 99.44 GB
-rw-r--r--@ 1 majp51 staff 145059237 May 24 15:14 iif.11.50.FC7CE.macosx64.dmg
So that is the actual number of bytes.
As soon as the download completes successfully finderr will open up the mounted .dmg file like so:
As you can see this is the standard .dmg file and by default we have the the .pkg file standard.
I would suggest that before going any further though that you create an informix userid, and an informix group. The first reason is that you know what those id's are, but there is a second issue that can show up, especially when upgrading your Mac OS. The second reason to create your own informix ID and group is because , while the The install script creates them for you, they do it at the command line and "silently", for lack of a better term. While there is nothing wrong, per se, with the way the installer creates user id's and passwords, it creates an interesting visual problem. For anyone who uses a Mac, you manage users through System Preferences -> Accounts, unfortunately the "silent" user creation means that the informix user and group will not show up there.
Alright then so now it is time to go to the install itself. It has the really nice install package wrapper for most mac apps. Looks like the below.
For anyone used to Mac installs, this is the standard "pretty" installer. Looks good and very mac-centric. And even seems very fast until you run into a slight problem. This installers calls another installer to do the actual install.
That actual installer looks like :
So just like this part of the page, the install feels a little cluttered. As we install each piece be aware that you will eventually need to go back to the package installer to close the window, I only mention this because when you are installing the product, it may not be the only thing you are doing which means that package installer made be hidden behind a bunch of other windows. Note, that at one point or another you will be asked if the installer wants to update the kernel. If you have installed Informix before you can say "no", otherwise say "yes".
OK so following those steps (mostly just clicking) it took a little less than 5 Minutes to install everything on my Macbook Pro. So all and all a relatively simple, painless process. But also a standard informix install too.
I expect to be blogging some more about this issue including what the "limitations" for this edition will likely mean to a developer.
The IBM Development and test cloud
is currently in Beta, which means you can sign up and try out its services for free. A pre-configured SLES based Informix appliance image which contains similar components to the VMware based Informix virtual appliances is available for use in the Developer in the cloud .
The video demonstrates the basics of how to use OpenAdmin Tool to configure Informix v11.50 instances running in the Cloud including setting up a high availability cluster.
Do you ever read technical documentation and wish you could make a comment? For example you try something and feel it would help other readers if you point out some gotchas, or you wish some extra information was there.. Now you can make comments directly on the IDS documentation, give it a try..
The IDS 11.50 Information Center is now a Collaboration Center! You can now rate IDS documentation topics, start discussion threads, comment on content, share examples, watch topics/threads, and more! To try out the new collaboration methods, go to the 11.50 info center: http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp.
To add comments or reply, log in using your ibm.com ID. If you don't have an ibm.com ID, it takes only seconds to create!
There's a Cloud Computing for Developers virtual workshop taking place on October 1. Hosted by technical evangelists at Amazon Web Services and IBM it will cover topics such what you need to know start writing cloud applications and some of the benefits, as well as the IBM solutions available.
Check here for more details and to sign up: http://www-304.ibm.com/jct01005c/isv/iic/events/description.jsp?event=4337D2D62C6B27C78625761F0054D275
A nice thing about this workshop is that as well as being free to attend, you get a free coupon for using Amazon Web Services. So if you've been planning to play around with an Informix Amazon Machine Image but don't enjoy parting with money this is a good opportunity to give it a try.
I was chatting about DBA skills recently (with a DBA no less) and the discussion drifted to the skills required by technical support engineers. Having spent the last 18 years in and around database and operating system technical support, here's my monologue on the subject. Many of these could be regarded as common sense and applied to other professions. Note I don't claim to possess any of these skills. There's a lot to be said for making something up and hoping for the best.Top 10 Tech Support Skills10. Subject and specialist skills.
Expertise on the supported product is a given, but as often as nota problem occurs at the interface of a supported product and another component. Hence aknowledge of all operating systems your product supports, all programming languages that clients can be written in, the networking layer used by your product, the assemblerlanguage it compiles to, are indispensable.
In a tech support team if each person can specialize in one subset of the knowledge, that's a lot of specialist knowledge. This is good foreach engineer, though at an organizational enough shared knowledge needs to exist to survive any individual moving on in their career.
Subject matter skills naturally extend to bug fixing and product development skills as you gain experience in a product. 9. The appearance of memory.
Learning something, only to forget it when you need it 6 months later is a waste of time. Write down everything you learn and dump it ina Wiki or some other knowledge base for easy access.8. Search engine skills.
Often the truth is out there and a tech support engineer just needs to be better at finding it. A knack for using the right search criteria can be all it takes.7. Generic problem solving skills.
A good tech support engineer should be able to apply generic problem solving skills to troubleshoot any kind of problem, including for products they know nothing about. 6. Debugging skills.
The ability to debug any code on any platform.5. Communication skills.
A tech support engineer should be adept at sharing information with other engineers and customers, and building a network of technical contacts across departments, teams and other companies in order to get things done even when proceduresget in the way. 4. Diplomatic skills.
A support engineer needs to know how to diffuse high pressure situations by effective communication with all levels of management. What do you do ifsomeone is criticising your product and company, and you know they are right? (Of course thiswould never happen with Informix.) A diplomatic tech support engineer knows how to listen well, and move the focus of the discussion to what can be done to improve thesituation - which ultimately is what everyone wants, even if they need to let off some steam first.3. DBA skills.
This one sometimes gets overlooked. Many database tech support engineers go theirwhole careers without really understanding what DBAs do. If you want to help a DBA solve a problem you need to understand why the problem exists in the first place. 2. Fanatical devotion to problem resolution.
Problem resolution does not mean getting acustomer to agree to close a case, it means doing whatever it takes to understand and solve the problem. In some cases if there is a fundamental disconnect between what the product is designed to do and what someone wants it to do it can mean enhancing the product, or understanding the customer needs in a wider context and looking for other ways to solve the problem.1. Commitment to destroying your job.
As with any service industry a good tech support engineer knows that their ultimate goal is to make their job unnecessary - for example push for code development methodology that reduces bugs, work with QA to improve testing, work to improve documentation and customer access to knowledge bases, to the point where the need for a tech support engineer is obviated. This is of course an ideal, with the positive benefits of striving toward such a goal realized along the way.
What did I miss? Comments welcome...[Read More
Ever wondered how DB2
and Informix Dynamic Server
architectures compare? Which major features they have in common and what separates them? What are the major editions and platform support between the two? These questions and more are answered in a new developerWorks article by Suma C Shastry
, Mohan Kumar
, Prasad Srinivasachar
entitled How to go hand-in-hand with DB2 and Informix
It looks like this article has been well-researched. Particularly interesting to me are the architecture diagrams, which include Architecture overview
, Process Model
, Memory model
, Instance Architecture
, Backup mechanisms
, Security architecture
, administration tools
So I ran into an interesting issue last week. A customer couldn't alter a table. Non-Exclusive access. Sounds pretty normal right? I mean after all it's not like a DBA doesn't see this fairly often.
The Normal routine is for a DBA to run the following:
- Figure out the partnum for the table being altered, best way is to run the following SQL from the DB the table is in:
select hex(partnum) from systables where tabname="<tabname>"
Where <tabname> is whatever the table name is you are altering.
- using onstat -k |grep <partnum you got above> , find out who is holding the locks.
- contact user about locks, or if you are under a rush, just kill the offending user/session
However what happens when you still get non-exclusive access after doing the above?
You need to have two considerations then. #1, check for referential integrity issues, and #2 look for open cursors?
RI can be checked using dbaccess, or dbschema, but how do you check open cursors?
The easiest way is with
onstat -g opn
In the situation I wan into, we had several open cursors with transactions running against the child table holding RI.
This allowed us to identify where applications were forgetting to close the cursors. As soon as those cursors were closed, the alter table was successful.
From a development standpoint, this brings up a salient point to always remember, close your cursors.
Hi all, another PSA today.
Still this one is pretty cool, because the lab will be talking about application development with Data Studio and Informix. Even if you don't use Data Studio, and even if you don't plan to, I highly recommend attending. The more interest a call like this generates, the more calls like this (i.e. Application Development) will occur.
You have been invited to attend the following event:
Informix Chat with the Lab - Improve Databse Development Productivity & Save Tooling cost by using IBM Data Studio
10:30 AM - 12:00 PM (Central Time)
Jerry Keesee - Director, IBM Informix Database Development (IBM), Lakshman R. Sakaray - Software Engineer (IBM)
This session will take on a customer use case and go through each step of the development cycle demonstrating how using IBM Data Studio will help to improve the productivity of Informix users. IBM Data Studio has something to offer for each type of user, a demo for Java developers, the rich Eclipse development integrated development environment and utilities to support Java application development. SQL developers and Administrators will learn how the IBM Data Studio helps to improve productivity by using various features like object management explorer. This powerful stored procedure debugger and deployment manager allows you to deploy multiple scripts on test and production all at once.
Register for the Event
Register for this event at:
If clicking a link above does not work, please copy the entire link and paste it into your Web browser.
For technical questions, contact support at firstname.lastname@example.org.
For questions about this event, contact the host at: email@example.com.
Powered by IBM SmartCloud for Social Business
©Copyright 2000, 2012 IBM Corporation. All Rights Reserved.
So the new version of Informix is fast approaching, and IBM has a webcast on that very topic. Below you will find a summary, and the link to sign up.
The New IBM Informix: It's Simply Powerful
Date: Tuesday, March 5, 2013
Time: 10:00 AM PST
IBM Informix is exceptional database software that is well known for its superior performance, high availability and efficiency, minimal complexity and lower computing costs to power online transaction processing (OLTP) and decision support applications for businesses of all sizes. Informix incorporates design concepts that are significantly different from traditional relational platforms, resulting in extremely high levels of performance and availability, distinctive capabilities in data replication and scalability, and minimal administrative overhead.
The newest release offers clients and partners the ability to take their business into the future, right now! Whether you are looking for help maximizing your daily business activities through more efficient operational analytics; deploying applications to the private cloud; working with sensor or meter data; or just looking to increase your productivity and usability, the new release brings you a cost-effective, simply powerful solution that addresses all your data management requirements.
Register here : http://event.on24.com/r.htm?e=571631&s=1&k=6740A7076E0FE9C59EBFDC80C8487D34&partnerref=IBM01
So I was workiing with a customer today and got an interesting question. The question was how did
sqlca.sqerrd work with cursors, specifically would it track all the inserts in a the entirely of the cursor.
The answer turns out to be yes, but with a a couple of caveats. The first is you need to check the value sqlerrd before you close the cursor.
Of course your next question may be , "FetArrSize? What is that?"
It's a new, circa ESQL/C 3.10, global variable. FetArrSize, indicates the number of rows to be returned per FETCH statement. This variable is defined as a C language short integer data type. It has a default value of zero, which disables the fetch array feature. You can set FetArrSize to any integer value in the following range:
More info can be found at
So I've been working on a Proof of Concept with the new Informix Warehouse Accelerator. Part of that is getting data from source systems , and often those source systems are on another Database system. When doing work with that you inevitably use an ETL tool of some sort, and the customer I'm working with uses IBM Datatastage.
I'm using an older version of Datastage, and the ODBC driver is slow. SO I was looking for a quicker way to load, while at the same time not taking up any space, except inside the database. So I wanted to share the method used:
- on your Datastage server, create a pipe
- Write your datastage job to write the output of the job to the pipe.
- On your informix server, create a pipe
- Get your pipe2 to write to pipe2
ssh informix@dsserver 'cat /tmp/pipe1' > pipe2
- Create your external table with the pipe
create external table et_<table_name> sameas <table_name>
- Kick off your datastage job
- Load the external table
insert into <table_name> select * from et_<table_name>
Now one thing to keep in mind is that if trusting is not enabled then the window doing the cat and redirect for the pipes may need a password entered. So far this has been at least 8x faster than ODBC, and note the other peice. I only used 1 pipe, Obviously you can use as many pipes as Datastage will allow. I also didn't use PDQ which would have increased performance for my fragmented table too.
So I got back from this years IIUG. It was a blast, as usual. The IIUG is making efforts to increase the number of presentations that are applicable to developers. This year it included presentations on Database programming with PHP, a section on open source coding with informix, programming with drupal, and then I did a best practices presentation for application developers.
I don't know when the IIUG will make the presentations available, but you do need to be a member to get them, and the process is simple, and free. Just go over to
And sign up.