Administrating and Developing with Informix
Just as an FYI OAT 2.28 is now available check out the details at:
As a quick aside, OAT 2.28 is still not fully function on the Mac at this time. Hoping to see the Mac fix for the next release.
A couple of weeks ago I asked about the usefulness of a Memory Profiler for Database Sessions. While I want to have another blog post on that perhaps hashing out what application developers would really like I wanted to about what we have as an option right now if we are trying to profile memory. While it often seems like we have very little info, we really have quite a bit, just as the Feature Request suggest, not always useful.
So what tools do we have at our disposal today for memory profiling?
onstat -g ses <session id>
You could probably make arguments for other onstat's but these really is it for memory profiling.
So let's take a quick look at onstat -g ses
In this instance we are going to do the following:
select * from customer;
On my server this happened to be session # 36, so let's take a quick peak.
So here we have the output. Make sure you see tid on line two of our output, happens to be 350. Thread ID, or tid, can be used for quite a few onstat commands all of which are useful.
Now where this can be useful from a memory profile section is the "Memory pools" section, specifically the list of the components. For all intents and purposes this is the breakout of you sessions memory. The bad news is that the components were all done based on internal structures instead of things that would make a little more sense to someone without code.
Still this at least give you something to pass to IBM Technical Support, to help you identify how Informix might actually be using memory.
This is helpful, but it also indicates why I've gotten as much feedback on the need for a session memory profiler.
One of the things that Rob Thomas talked about at IIUG this year was how there would be increased content for Informix. Developerworks is one of those locations and we have a relative new tutorial out on cloud computing.
If you are interested in Cloud Computing this is well worth the read, from an Informix standpoint.
So one of the reason for the infrequent postings of late have been vacation related, but some have been helping a customer out with security related issues. I think that all to often we dba's forgot the impact, directly and indirectly, that these mandated changes have on application developers. One such impact is in Data Privacy Laws. Ultimately what this means is that you soon will not, from a legal liability aspect, be allowed to restore a production server instance into a test environment to try and reproduce a problem. The solution to this is using some sort of app that transforms your data so that it is still valid for testing but has no direct association (besides say data distribution) to the actual real production data.
IBM has a very nice product to help you with this, which is Optim Data Privacy, and here at developerworks we have had 2 recent articles on the very topic.
So two tutorials. Let me know what you think of the content. Is this something you would like to see more of in Developerworks, tutorials about how IBM products rok with other IBM products?
MarkJamison 100000ESF6 3,722 Views
How much are you or your organization are considering application development on the iPad or iPhone, especially given the new OS which will allow multithreading?
Would OAT, or something like it, be a tool that you as a developer, or even an administrator like to have available on an iPhone or iPad? If you would like something like OAT, would it be fine as a web based app which you could use through safari, or would you prefer something native, if possible?
For those not familiar with OAT check out
Back to updates and potentially useful information. Many of you may be now writing apps for informix that are running on Clients and Servers using some form of LDAP for user Authentication. If you happen to using Active Directory for you chosen form of authentication, please check the following:
Microsoft already has a fix for the problem, but in the meantime if you are getting inexplicable -951 errors when attempting to connect to an Informix instance using Active Directory, this may be your culprit.
MarkJamison 100000ESF6 3,367 Views
Blogs, by there very nature, are often very self serving. I mean the blogger almost always writes about something he wants to talk about. But in order to be a sustainable blog that stays on topic you need feedback on what your readers want to see discussed/blogged.
So is there anything from an Informix Application Development standpoint you would like to be discussed.
And yes I'm saving this blog entry to re-post peridocially. I'm not out of ideas, and hope I never will be, but I value your opinion.
As you work supporting a database product, in my case the informix product line, you often find yourself working on stuff that may or may not be useful to many others besides the customer you are currently working for. While I see Unicode issues crop up across more than the normal customer I work with, I still haven't seen that many overall, so I cannot help but wonder if this is because Informix globalization is so well understood by developers, or if it is actually on the horizon still.
So would a discussion about application development considerations for Unicode be worthwhile?
I might blog on it anyway, but the more feedback means home much I should concentrate on blogging about it.
Hope everyone has had a couple of good weeks, I've been on vacation for most of it. Family reunions can be a lot of work let me tell you.
So one of the customers I support made an interesting feature request lately and I was interested in your feedback. As an application developer this particular customer feels he doesn't have enough tools at his disposal to know what the session was doing with the memory it is consuming. So his feature request was asking for a Session Memory profiler. Basically so he could know how much of memory is being used for temporary tables, how much is save by cursors, etc.
So my question to you all, is how valuable would you find a tool like this?
Is it just a little valuable? Very valuable?
Hoping for some good feedback from you all.
Well a crazy workday kept me from blogging yesterday. I was , however, reminded of an important piece to trouble shooting applications, even database instances. What was that piece? Never get hung up on a single test box, or a single test instance. The reason why may be obvious, but the problem is that if you get hung up on a single instance or box , you can miss the actual problem.
Take yesterday, for example, I was helping a customer with a box that recently migrated to 11.50.FC5 , their app was crashing every time the engine came on-line, and in the process was crashing the Informix engine as well. Now as a support engineer you tend to focus on the assertion failure file and shared memory dump , just like an application developer would focus on debug logs and a core file. Well to make a long story short, after trying to identify the problem, I finally asked them to test on a separate box that had 11.50.FC5, if they had one. They did have another test box, and tested their application which did not crash and worked as expected. It turned out there was no problem with Informix, or the application, but the original test box had significant issues all its own, due to an unforseen accident that both the developers and myself were not originally aware of.
It's so easy these days, in this "whose to blame" society that we forget sometimes, that conditions exist where no one is to blame. Accidents happen, and it's what we do to idenify and correct the issue, accidental or not, that helps make our application, and ourselves , successful.
So as I'm messing around with the Informix Ultimate-C edition for Mac, I also am looking at CSDK 3.50 too. And while there is nothing wrong with the product, it does make me wonder what else a Developer might like to see with the product. In out (C)lient (S)oftware (D)evelopment (K)it we have the following:
If you happen to be on a platform other than Mac, you also get JDBC.
What else would you like to see in a CSDK bundle? Maybe I'm getting spoiled but looking at Microsoft and Apple, if you get an SDK you actually get a a real toolkit, something that also helps you build rapid prototypes, or even full fledged applications. I honestly think that IBM has a solution there already too. The free version is called Data Studio, and with just a little tweaking IMHO, could be the exact gui programming tool I see missing from the CSDK bundle. Even then though, I think all we would see on Unix platforms would be JCC, JDBC, ESQL/C and ODBC, and the question then is "is that enough, or do you want more?"
Would PHP, Ruby, and perl be enough? What else could/should a developer want for a CSDK bundle? I want to hear you thoughts on the matter.
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.
For those of you who made it to iiug, I'm sure you all remember Rob Thomas promising more to come on offering and other
changes. Well today is that day, and it is a great day for anyone who wants to do application development on Informix.
New offerings and prices.
So why do I think this is great for Developers? Well mainly for the Informix Ultimate-C edition for Mac and Windows.
Let me quote from the above:
Gives businesses, ISVs, and OEMs the ability to develop and deploy enterprise-class functionality for departmental
or small-to-medium sized business solutions, at no cost.
Look at that again.. Windows and Mac for the Ultimate-C Edition at no cost. So if you want to design, develop, and deploy
a Windows or Mac based solution that needs a robust full featured RDBMS, then Informix is now the clear best solution.
Happy Monday to most everyone. For those of you who made it to the IIUG conference in April,
you may have hear about the new open source intiative. The goal is to either maintain support
or add support for popular Open Source options. One of the first pieces that is being worked on is
enhanced Hibernate support. The Dialect for Informix on Hibernate has been update significantly,
so if you use Hibernate I highly suggest you download this patch.
So go take a look.
So can I get a show of hands that have used IBM Data Studio Developer? Anyone?
The product comes in two flavors, Data studio, the free version, and Optim Studio Developer,
which is the paid version.
If you do Java Coding, or currently use Eclipse, it's a very nice tool. If you use Eclipse you can
add it as a plugin to eclipse, or you can re-install the API.
Pamela Siebert and Venkatesh Gopal have done a Developerworks article that covers how to
get up and running with Data Studio.
Thanks for the introduction Guy.
A lot of you know me, but for those that don't, I've worked for 20 years in the RDBMS industry,
either as an application developer or a DBA. I've worked on every major RDBMS that runs on
WIndows or some flavor of Unix (Linux and OSX included) at various points in my career,
finally coming to work for Informix in 1995, then moving on to DBA work before coming back to
Informix, now IBM, in 1999. Been working for "the man" ever since. My main areas of focus have
been performance tuning, GLS, and Security. I've had the opportunity and pleasure of working
with some of Informix's great VARS and partners while supporting some of Informix's best and
most demanding customers.
Now with performance tuning, GLS, and Security you would naturally think "Database Engine Nerd,"
and you wouldn't be wrong. Be that as it may, I haven't forgotten my roots as an ESQL/C programmer,
and while I have to grab a manual to write java, I am definitely an advocate for the Developer.
After all the way I look at things is if you don't advocate for the developer, who is going to write
applications for this RDBMS called informix which you think is great.
So the next question you may be asking is "What's with the title of the post Mark?"
Glad you asked. I'm an Apple nerd. I prefer a Mac to a PC, an iPhone to any other phone, and
Love the iPad. Certain members of IIUG have referred to me as "Steve Jobs Jr." . I was also one
of the first to test Informix on the Mac, and continue to test and play with Informix versions as they
come out on the Mac. I'm a Mac advocate as well as an Application Developer advocate.
I plan to discuss things going forward in the App Dev side of the fence, and the Mac side of the fence.
And I looks forward to hear from people as well. Informix application development tools and process
cannot move forward and get better without input. While a blog may not get that much input, then
again it may too.
I look forward to adding content in the future. And hope to hear from readers soon and often.
Critics might argue that this blog has over the years become a little sparse on actual weighty topics related to application development, and somewhat abundant when it comes to reprinting random announcements and links to other posts. It could be further argued, by the most exacting of readers, that my average post takes about 25 seconds to type, and I don't even bother checking it for typos..
Therefore I am very pleased to welcome Mark Jamison, an enterprise support engineer, trenchant Informix developer advocate, and posessor of many other talents.. as a technical author for this blog. You'll be seeing posts from Mark over the coming months.
Informix User Group stalwart Norma Jean has started her own blog where she writes about Informix, the development tool GeneXus and IIUG related matters: check out Thoughts about Informix, GeneXus, & life in general. The photo makes me want to visit Wisconsin..
gbowerman 100000B5T0 3,929 Views
During a visit to London last November I met Clive Eisen at Hildebrand Consulting to learn about the solution they provided for the Digital Environment Home Energy Management System (DEHEMS) - a project to monitor home electricity consumption to a fine level of granularity, enabling people to make significant savings in energy costs. It was also an eye-opener to learn about some of the appliances that use the most electricity in a typical.
Hildebrand needed to create a solution capable of handling 50,000 new database entries per second with time-series data. Hildebrand selected the Informix TimeSeries DataBlade and Real-Time Loader as a technology to could handle this level of throughput with complex data.
You can learn more about the DEHEMS project and Hildebrand's Informix-based solution in this recently published following case study: Hildebrand solves a key problem in smart metering research With IBM Informix technologies for time-series data management.
gbowerman 100000B5T0 3,311 Views
The next Informix Chat with the Lab is just over two weeks away. This time Mark Ashworth covers an increasingly in demand Informix feature: the Spatial and Geodetic IDS extensions. Here are the details..