IBM Database Add-ins for Visual Studio 2005/2008 used to be available as part of the IBM Data Server Client package, which contains all the main IBM data server drivers and a fair amount of DB2 client programs. It was a big package to install for a developer who just wanted to do .NET programming in Visual Studio. Now you can download the stand alone VSAI package here.
When you get to the download screen you can choose to download the 33 Mb VSAI executable, or the release notes. I'll warn you now the release notes are disappointing and not worth the bother. The VSAI software though is great. Try the VSAI tag on this blog for a few pointers to articles.
The IBM Information Management and Visual Studio .NET is also a good starting point for .NET programming resources.[Read More]
Administrating and Developing with Informix
If you're wondering what's in the next release of Cheetah, wonder no more, IDS 11.50 has arrived - at least the Open Beta has. Yesterday in fact, but I was too busy eating the Open Beta launch ice-cream to write about it. OK the Mac OS version has been out for a few weeks but let's not worry about that.
I'm not allowed to talk specifically about the new features in Cheetah 2 yet, but to find out, sign up for the open beta and download IDS 11.5 “Cheetah 2" Open beta. Give it a try and remember to read the release notes.
Do let IBM know what you think about this release. Any problem you find helps to increase the quality of the GA version.[Read More]
gbowerman 100000B5T0 2,487 Views
Rumour has it that a new era is dawning over at DB2 Magazine. Due out in the next week or so, the next issue will be sporting a new name. Welcome the new, improved, and brand neutral IBM Database Magazine! Expect the same mix of well-written articles about IBM Data Server topcs.
This means of course I'll have to find another hobby horse to make snide and snarky comments about. Don't worry, it won't take long.[Read More]
A new Informix related blog has surfaced on blogspot: informix online - written by Alex, AKA Andron.
The latest post (at the time of writing) is a nice introduction to BTSCANNER, including a description of leaf scans, range scans and ALICE (Adaptive Linear Index Cleaning).
If your Russian is a bit rusty you might want to read theGoogle translated version.[Read More]
The latest issue of the innacurately named DB2 Magazine has a very helpful article on the IDS 11 certification test. As anyone who has taken it knows, the IDS 11 exam is challenging - it is heavily focussed on IDS 11 features, and passing it requires preparation.
The new article, written by Eric Herber, entitled Becoming a Certified Informix Professional deconstructs the exam format and the weighting of questions. Looking at the exam in this way allows you to focus your study time and prepare intelligently.
On a positive note, perhaps a certification should be tough. What use is an easy certification to a potential employer or client? Anyone with IBM Test 918 to their name deserves to be called an IDS Expert.
As well as providing a collection of study references, Eric also mentions how to take the test for free (attend the IIUG conference). I'll add one other way to take it for free.. attend the Beaverton Tech Fair next week.[Read More]
The Informix tech fair in Beaverton, Oregon is just under 2 weeks away. This free tech fair has been expanded to two days, and has new highlights such as free IDS Certification testing and demos of some of the newest IDS features. Expect to see some in depth technical presentations, maybe a few giveaways, and much more.
Here is the flyer, at least my HTML rendition of it:
Free Informix Tech Fair - February 20 & 21 2008
Talks include the following topics:
3 Informix IDS Architects, IBM Informix Engineers
IIUG President Stuart Litel and IIUG director Cindy Lichtenauer
Several DemosApplication Development, Administration, and Replication (MACH 11)
FREE IDS Certification TestingTest Review session followed by a free certification testing for 10 or 11. ** $150.00 value, limited availability, RSVP quickly.
Free ConsultingHaving a problem or question about Informix? Talk to an engineer and get free advice about your specific issue.
WHEN: February 20 & 21, 2008, 9:00 AM – 4:30 PM
WHERE: IBM Beaverton
15400 SW Koll Parkway
Beaverton, OR 97006
RSVP: miller3 _at_ us.ibm.com
When it comes to free Informix tech fairs in the Portland area, it doesn't get much better than this.[Read More]
In earlier versions of IDS on Windows, (10 and below), the installer would always create a demo instance during a new installation or when installing to a new folder. The user has the option to initialize the new instance or not via a checkbox.
In IDS 11.10, which was the first Windows IDS installer based on Installshield, this behaviour changed somewhat. A new instance was only created if the user selected the "Initialize instance" checkbox. If that checkbox was not checked, no instance would be created, so the Instance Manager utility (instmgr.exe) would need to be executed after installation to create an instance.
Some customers missed the old functionality, so to fix this in the short term an undocumented command line argument -reginstance was added to the 11.10 installer.
So if you want the old behaviour, where you are prompted for instance configuration information and an instance is created by default even if the "Initialize instance" checkbox is not selected, run
You may have seen announcements for the 2008 IIUG Informix Conference in Lenexa on April 27-30 this year. Ones like this for example..
But is it worth going to? why Lenexa? what can we expect this year?
I put these and some other tough (well slightly tough) questions to IIUG President Stuart Litel who kindly agreed to an exclusive interview with the Informix Application Development Blog..
A. It will be a very technical event with a concentration on purely Informix. All the sessions revolve around the entire Informix product line.
Q: Why did the IDUG and IIUG conferences go their separate ways?
A: A few reasons.
1) The IIUG Board believed that the users wanted a more affordable and Informix only event. We had experience at doing two day events before and we attracted many more people.
2) We wanted to do an event that was a break even event financially, not where costs were very high and the price had to be high and also not to make a big profit, but only to put a little seed money away to cover costs to do an event each year.
Q: Why would people want to take time out of their work schedule to attend the IIUG Conference?
A: I have personally been to each and every Informix conference since they started about 15 years ago. I personally believe it is not only what you learn but the people and relationships you make, such as meeting you the first time a few years ago and fellow Informix users around the world. If I have technical problems or questions I have the contacts throughout the world to talk to and help with my word situation.
You will be learning and meeting some of the best instructors, but at conferences you are meeting the best technical trainers from IBM, developers like yourself, Jonathan Leffler, John Miller, Madison Pruet, Kevin Brown, Scott Lashley as well as fellow users who you can share work experiences. I have often said give me two days at a conference with power users and developers vs ten weeks of Informix only classes and you will learn not only more but create the right contacts to assist you in your every day business life. And don't forget you can meet Carlton Doe and get a copy of his IDS 11 book autographed!
Q: Attending a conference is a big waste of money, discuss..
A: I definitely dont agree with that statement. See all my comments below. I mean for about $1500, three days, over sixty sessions on JUST INFORMIX and its related products, how can you beat that. I have heard well its not only the money but also the time away from the office. Please tell me what better deal there is in the IT / IBM / Informix world. The IIUG created this event to be just that an event that people will learn about and talk about later. I have heard people comment about coming to Kansas City, whats there to do. Trust me I just about the same thing, but it does not matter where we hold the event, we are there for the event and to learn and meet fellow users and this proved to be the perfect location.
As for the Conferences being a waste, hey I have been to every Informix Conference there ever was under Informix Corp. Every IBM event that had Informix content (the old Technical Conferences and now IOD) and IDUG / IIUG event and most of what I have learned and almost all the Informix contacts I have in the world were all made due to coming to these conferences. It is like anything else, it is what you make of it, and here you have the opportunity to make what ever you want with fellow users from around the world.
Q: What presentations are you planning to attend?
A: Me personally, to tell you the truth I have not looked at the sessions yet. But there is over 60 Informix technical sessions, the most number of Informix sessions than any IBM conference or other event anywhere in the world! and for the price, how can you beat this! The bad news I doubt I will get to any sessions, because I will be too busy with the event. Although I try not to miss sessions from what I call the "Gang of Five", the Five IBM Distinguished Engineers - they are always the best (of course Guy I will get to your sessions).
Q: Why Lenexa, I mean come on, why Lenexa?
A: If you take a right hand turn out of the hotel it is College Blvd. Drive five miles or so down the road and that is where most of the Informix developers and support team for IBM are actually located. Many of these people will be presenters at the conference in addition the Monday night party we intend to invite the entire Informix development and support staff to the party. One big family is what I am calling it!
Also Kansas City is centrally located in the middle of the United States so we are not at either coast. I remember the biggest Informix conference ever was held in Chicago with over 5,000 attendees and I believe one of the reasons was due to the location. What do they say in real estate... LOCATION, LOCATION, LOCATION. well Overland Park / Lenexa / Kansas City provided just this.
Q: Do you have any entertainment lined up for us?
A: Wait you said people were there for the technical sessions... OK I will give you an exclusive PEAK but will not spill all the details.
Sunday night will be a reception in the Exhibit Hall starting around 6PM
Monday night will be an event which I will call "Party with the Informix Family" with all the attendees, developers and support staff from the area invited and Tuesday night is an off site event which I will not give you any of the details. But here is something I will say to you... They put me in charge of the parties, so if you have met me before you will know the food and beverages will be good (and I love to eat and I hate drink coupons hint hint :) )
Over the years I tell lots of Informix stories and I will always remember a few years back at an Informix conference run by IBM I walked down a hallway and there was Jonathan Leffler sitting on the floor eating lunch with some users drawing all kinds of technical information. Give Informix users some good Informix content and pizza on a box and a corner to sit in on the floor and they are happy... We re there for the technical information, but the entertainment will be fun too!
Q: How are the registration numbers looking so far?
A: We are way ahead of schedule. As of the writing of this to you, we only have space for about 110 - 120 more people. The hotel can only hold about 340 people in the main conference room, so that is our limit. Also on the Hotel room block, we have blown over it twice! I had to call the hotel and get more rooms under the hotel room block. We are way ahead of projection. In fact we have more Informix people already registered than attended last years combined IDUG / IIUG event and we still have over 11weeks to go!
Also on the side of Sponsors / booths... We have more booths already signed up an paid for then the IBM IOD and IDUG 2007 events combined!
Q: Why Lenexa again?
A: Cause we want to be where the developers are! It gave us access to the core of the Informix team (of course besides you guys up in Portland, Oregon!)
We have three of the most important people in the IBM Informix world coming to speak. Arvind Krishna is the Vice President of Database Servers for IBM Information and he will be the keynote. If you have never heard Arvind speak, he is truly very informative and very entertaining. Also speaking will be Jerry Keesee and Bernie Spang together. Jerry is the Director of World Wide development for IBM Informix and this past year at IOD, Jerry's session was one of the few for any product that was standing room only. In fact they closed off the room due to fire regulations. Bernie Spang is the Director of WorldWide Marketing for IBM Information Management Databases. These two are great together, which is why I asked them to do it together. It will be fun to see who gets more time on stage!
And speaking of these three individuals, there will be some world class special announcements happening that I cant talk about a this time, but they will be press worthy announcements happening (opps that is all I can say). But there is some other special stuff happening that I have not even told the conference committee yet that I have planned up my sleeve.
Speaking of the Conference committee, these people are doing one heck of an amazing job. Lead by IIUG Board Member Cindy Lichtenauer, One of the IIUG Founders and first President Walt Hultgren and long time IIUG Board Member James Edmiston, they are joined by long time Informix users: Kernoal Stephens, Tammy Frankforter, David Link, Bruce Simms and Tom Beebe.
Also one last note. I got an email from someone in Croatia the other day who is coming. He figured out that he can fly to the USA, stay for the entire conference and pay for the conference registration for less than it costs just for the registration only to an IBM conference in Europe and this event is where the true Informix knowledge will be, so he is coming to the event and urging other users in Croatia to also come.
Personally I have estimated that the total cost of the event for someone in the USA including Airfare, hotel and conference registration is only about $1500 from most anywhere in the lower 48 states! Remember a week at an IBM class is I think about $2500 just for the tuition and IOD registration is about $1595 for the EARLY BIRD. Here you get much much more for about the less cost!!
Thanks Stuart! From what I've heard the list of sessions is being finalized about now. Here is where you can check the list of Confirmed Technical Sessions. Hope to see you there in April.
One theme of the Mac OS port of IDS media coverage I didn't pay much attention to before is the use of IDS in higher education.
Some articles such as this one from eWeek made it the main theme of the announcement:IBM Adds Mac Support to IDS for Higher Education.
The article mentions higher education companies such as Jenzabar:
I hadn't given much thought to the educational aspects of the decision, but a free download of the Developer Edition for MAC OS does make Informix significantly more accessible to universities and colleges, and to VARs that supply software to the education industry. It will be interesting to see whether this can lead to increased uptake of IDS within academia generally.[Read More]
Set your alarm clocks for the next Chat with the lab on Jan 30, 2008...
Jerry Keesee, Director of the Informix Lab, discusses the latest information about the Informix product family, and provides a roadmap for future initiatives and releases. Included in this discussion will be a new announcement for an additionally supported platform.
You may RSVP for this call at: https://ww4.premconf.com/webrsvp/register?conf_id=6702647
Comments, questions or to be removed from this distribution: lspina _at_ us.ibm.com
I wonder what the new platform announcement is going to be. Personally I hope it's ReactOS.[Read More]
Many years ago there was an active Northern California branch of the International Informix Users Group. Somewhere along the way participation dwindled and it fizzled out. Following some successful Informix tech fair and tech day events in the California Bay Area there has been renewed interest in this group, resulting in its recent reactivation.
The IBM contact for the group, Suma Vinod has sent me the following announcement:
Our website is http://www.iiug.org/iugnc/. Announcements about events and tech talks will be published on this site as they become available.
A good reason to attend these events if you're within reach of the Bay area is the large pool of Informix support engineers and developers based in the IBM Silicon Valley Lab available for talks. Thanks Suma and IIUG for setting this up, and welcome back IUGNC! I wish you every success.[Read More]
The IDS 11 web page carries a very significant announcement today (well, yesterday) to coincide with this week's MacWorld Expo...The Big Cats Unite! Announcing IDS "Cheetah 2" for the Mac OS X Leopard platform - the first available Cheetah 2 beta release is now available to download for Mac OS.
Here is some of the press coverage:IBM's IDS to Support Mac Platform - Internet News.
IBM Informix Dynamic Server to Deliver Support for Mac OS X - CNN Money
There has been some speculation on the newsgroups as to what IBM's motivation for this is. Bernie Spang is quoted in the announcement as saying:
Expect to see more announcements in the coming weeks concerning Cheetah 2 features, and open beta availability for other platforms. In the mean time, if you have Mac OS X 10.5, give the first Cheetah 2 Beta a test and enjoy IDS on a Mac. Oh, and let us know what breaks. Well it is a beta, what do you expect :-)
Update: 1/17/08 - I'm adding a comment made by Brad Patterson to the main post as it is worth knowing before you download:
The files are x86_64 (64-bit) only and will not run on "older" Intel Macs.
myMac:bin informix$ file oninit
oninit: Mach-O 64-bit executable x86_64
I'll have to wait until I upgrade my laptop to Core 2 Duo to run this -- hopefully by then we'll be on a GA release!
Thanks Brad for testing this and sharing your discovery.[Read More]
gbowerman 100000B5T0 2,489 Views
Remember the guy who was writing the six-part mega-demo themed around using IDS on Windows, featuring Visual Studio, Apache, PHP, OpenAdmin Tool? Well Akmal B. Chaudhri has now completed his opus, adding chapters on Eclipse, Squirrel SQL, and Ruby on Rails.
Here is the complete list:
gbowerman 100000B5T0 1,579 Views
Do you ever wonder what all the different IDS editions mean? Developer, Express, Workgroup, Enterprise? and how about those licensing models, VU, Authorized User, Concurrent Session? I don't have a clue, but Carlton Doe cuts a swathe through this complexity in his recently published developerWorks article Compare the Informix Dynamic Server Version 11 editions - Learn the differences in features, functions, and pricing models.
If you haven't figured out which edition and license model you need, Carlton's article, written with his usual passion for Informix, might be what you need.
Server Studio JE
Another developerWorks article that appeared this year (I should check that site more often), is Using Server Studio JE with Informix Dynamic Server by Dhanshri Kudgavkar and Prasanna Mathada, two engineers from the Interoperability Team in India. It's a getting started guide to the Java based Informix development and administration environment from AGS, which takes you through connecting, managing databases, routines, and other database objects. It goes through the major features and covers a few administration tasks, with screenshots.
gbowerman 100000B5T0 2,283 Views
LiveTime, a popular service management, helpdesk and support application has just added support for IDS 11.10 according to this recent press release:
"Significant improvements in response times of IDS 11 coupled with the performance optimizations in LiveTime 5 has produced an order of magnitude improvement in overall application performance", said Jason Andrews, Solutions Architect at LiveTime Software. "We were also very impressed with the overall footprint of IDS 11, making it an ideal candidate for installation on a virtual appliance."
LiveTime has a policy of vendor neutrality, offering support all the major browsers, operating systems and databases.One of the major customers of the LiveTime and IDS combination according to this press release is the Flemish Government.[Read More]
gbowerman 100000B5T0 2,647 Views
The inaccurately named DB2 Magazine finished the year with a list of theMost read 2007 articles: DB2 and Informix in its blog.
IDS articles by Lester Knutsen get a couple of places in the top 10, in ninth place: SQL Shortcuts - Use these tricks to generate IDS SQL scripts, and second place: Embedding SQL in Unix Scripts.
Maybe if it had a different name more Informix users would read it, who knows..
IIUG Developer's Desktop - Issue 2
The second edition of the IIUG Developer's Desktop is out, this month including articles on:
Happy New Year / Guten Rutsch
This is probably the last post of the year as next week I plan to be getting cold and covered in snow in Government Camp, so let me take this opportunity to wish you all a happy and successful 2008.[Read More]
A new DeveloperWorks article by Carla Wilcox and Nitin Jaitly from the IDS Query Optimizer team appeared earlier in December while I was over-preoccupied with trips to Lenexa and Atlanta, and preparing for a webcast that for some reason made my mind go blank every time I thought about it.
The article: Create and use functional indexes in Informix Dynamic Server - Improve the performance of your SELECT queries takes the mystery out of using and creating functional indexes, and is well worth a read by anyone who uses SQL functions in queries and wants to improve query performance.
As well as explaining the benefits, the article explains the limitations and costs involved, and includes some examples.. calculating the the areas of circles given the radii, and averaging RGB values of an image.[Read More]
The IIUG has a new publication out called the IIUG Developer's Desktop Newsletter. Published monthly, the newsletter is aimed at helping application developers who work with IDS do more with the product. Edited by Mark Jamison, the first edition has a Java theme, with the following technical articles:
There are plans for an "Ask the Developers" section where your questions are answered by Development. Questions, articles and comments can be sent to: devnews _at_ iiug.org.
Overall, great first newsletter Mark (and all contributors).[Read More]
I've seen a lot of demo's in my time, and some of them look very flashy but miss a few of the set-up details and leave me wondering how to get started.
How many slides does a demo need to cover everything you need to know about installing IDS on Windows, CSDK, Open Admin Tool, IBM Database Add-ins for Visual Studio 2005, creating applications and web services, without missing a single detail?
How about 579?
Yes, Akmal B. Chaudhri has done just that. In a six-part series he has put together the most relentless and painstakingly detailed set of IDS on Windows slides ever assembled. The 579 slides in fact only represent the first 4 parts, which have recently been posted to the IBM developerWorks On Demand Demo's site.
The first 4 parts are available to download as 15 to 17 MB PDF files:
What I like about this is that it doesn't leave anything to the imagination, if you follow this you won't have any questions. At all. It's all there. All of it.
I'm looking forward to parts 5 & 6. Here is what to expect (Update 1/15/08 these demos have now been added):
A new article appeared on developerWorks last week called Data Web Services: Build Web services the new way to access IBM database servers - Service-enabling your access to DB2 and Informix Dynamic Server.
The Data Web Services feature is integrated into Data Studio and provides a way of making database operations available as Web services. You can take SQL statements and stored procedure calls and generate Web services without writing any code.
Written by Vijay Bommireddipalli, the article starts with an introduction to Data Web Services, goes through the development process:
Here are some other links to DWS resources:
I took a quick look at the video and it turns out to be an edifying way to see DWS in action and how straightforward it is to use it to create web services.[Read More]
Coming up on Monday, December 17th 2007 is a Chat with the Labs about the IDS High-Performance Loader (HPL) - the tool for fast loading, unloading and filtering of data. Here is the invite:
RSVP at: https://ww4.premconf.com/webrsvp/register?conf_id=7437448
Times are: 8 AM PST, 10 AM CST, 11 AM EST, 4 PM GMT, 5 PM CET.
Comments, questions to: lspina _at_ us.ibm.com.
Webcast - Monitor and analyze recent SQL statements
Next Thursday, December 13th, Suma Vinod, a Resolution Team engineer from IDS Advanced Support will talk about how to configure and use SQL history and other features to monitor and analyze recent SQL statements.
Times are: 8 AM PST, 10 AM CST, 11 AM EST, 4 PM GMT, 5 PM CET. Check http://www.iiug.org/news/announcements/partner_training.php for more details.[Read More]
gbowerman 100000B5T0 3,964 Views
Mark your calenders for an Informix Application Development Webcast taking place on December 11: Fast Track for IDS Application Development. It starts at 7pm GMT, 11am Pacific, 2pm Eastern.
In this Webcast, speakers Grant Hutchison, IBM Senior Product Manager, Data Server Tools and Clients, and Guy Bowerman, IBM Informix Dynamic Server Architect, will talk about how todevelop applications the fast and easy way with IBM and deploy them worry-free with IBMInformix Dynamic Server (IDS). The new IBM Data Studio helps developers produce high qualitydata designs and allows them to easily view and modify existing Informix implementations. Newapplication development choices with IDS include Ruby on Rails and updated .NET, Java, andPHP drivers.
The plan is, I'll start with a brief introduction about application development friendly server-side features in IDS 11.10, and then hand over to Grant who will talk about client side features, including a live demo of using Data Studio with IDS.[Read More]
If you are considering migrating to IDS 11.10 from an earlier release, do you find it easy to gather the information you need, for example:
A recent Informix Technote attempts to consolidate some of this information: Knowledge Collection: IBM Informix Dynamic Server (IDS) version 11.10 Migration.
The article includes a presentation on Conversion/Reversion by Nelson Corcoran which provides a very useful summary of pre and post conversion steps and reversion caveats. It also goes into some of the internal details of how conversion works during an upgrade.
Note: this document is part of a wider set of documents on migration that starts here: http://www-1.ibm.com/support/docview.wss?uid=swg21259394.
What else should IBM provide to make migration to a later release of IDS more straightforward?
I'm going to try re-enabling comments on this blog for a while and see how the spam goes so if you have any suggestions please do leave a comment.
Disabling the Installation's Database Server Prerequisites Check
The IDS 11.10.xC2 Documentation Notes mention a new feature that allows you to disable the standard OS version and shared library checks made by the IDS installer. I am already finding this feature useful since I have a machine with an older version of Solaris (2.8) and -disable-checks saves me from having to hack the installer just to install IDS.
Here is an extract from the documentation:
A -disable-checks option has been added to the Dynamic Server installation command. This option lets the install application run without verifying that your computer has the prerequisites for a working instance. The database server prerequisites are listed in Platform.prq on an operating system basis. Use the -disable-checks option to bypass the shared-library prerequisites check.
To use a java command to start the Dynamic Server installation, disable the shared-libraries check by using the -W systemcheck.active=false option in your command.
Refer to the Machine Notes for comprehensive operating system information.
One word of warning - the prerequisite checks are there for a reason; the check is for the minimum OS and library versions that IDS underwent comprehensive testing for on that platform. Installing on an older OS is at your own risk, but can be useful in known situations to make the upgrade process smoother.[Read More]
Resources and publications relating to Data Studio are on the increase. Here is a quick round up of places to read about, download, post questions and follow tutorials pertaining to IBM Data Studio - the new Eclipse based data management and development environment..
There are two forums where you can post Data Studio questions and look for announcements, take your pick..
IBM Data Studio: Get started with Data Web Services
pureQuery: IBM's new paradigm for writing Java database applications.
Increase productivity in Java database development with new IBM pureQuery tools, Part 1: Overview of pureQuery tools
Common Development Tool
email for now. (Update: I since relented and switched comments back on.)[Read More]
As an addendum to the last post, the following Chat with the Labs will make a good starting point for anyone interested in learning more about IBM Data Studio:
DB2 and Informix Chat with the Lab - Thursday, November 29, 2007 8 AM PST, 10 AM Central, 11 AM Eastern, 4 PM London, 5 PM Paris
IBM Data Studio and pureQuery
IBM Data Studio is a comprehensive data management solution that empowers you to effectively design, develop, deploy and manage your data, databases and database applications throughout the entire application development life cycle using a consistent and integrated user interface. pureQuery is Data Studio tooling runtime that improves application performance, manageability, and problem determination across the life cycle. Our speaker is Dr. Stephen Brodsky, Information Management Architect and Senior Technical Staff Member. This Chat is for both Informix and DB2 customers.
You may RSVP for this call at: https://ww4.premconf.com/webrsvp/register?conf_id=7342813
Questions to lspina _at_ us.ibm.com[Read More]
gbowerman 100000B5T0 3,239 Views
Congratulations to NetworkIP for winning a 2007 IBM Information On Demand Innovation Award for its Integrated Connection Solution (ICS) platform.
The 2007 Information on Demand Innovation Award Winners, presented at the IOD Conference in Las Vegas, were announced in October. A press release today provides additional detail on the NetworkIP solution:
Source: NetworkIP Wins IBM Information On Demand Innovation Award (prweb.com)[Read More]
I finally made some time to play with the IBM Database Add-ins for Visual Studio 2005 V9.5 today. Simply dragging and dropping a data source onto a form resulted in a working BREAD (Browse, Read, Edit, Add, Delete) Windows application with no coding:
I used the recent developerWorks article by Vasantha Jayakumar as my guide. Below are some notes made while following it. They will make more sense if you read them after looking through the article.
If you want to use the Visual Studio Add-ins with IDS make sure you:
Finding the Server Explorer
Once I'd installed Data Server Client (including the Visual Studio Add-Ins) and launched Visual Studio 2005, my first challenge was to find the Visual Studio Server Explorer tool which was hidden under the View->Other Windows menu. Now with a glimmering of experience I use the "Ctrl-Alt-s" key combination to bring it up.
Adding a Connection
First I made sure my IDS data server was listening on a DRDA port. DRDA is the underlying communication protocol used by Data Server Client. IDS supports both the Informix-specific SQLI protocol and the IBM DRDA protocol in 11.10.
Setting up IDS 11.10 to communicate via DRDA is a simple 2 step process. Here's what I did for IDS on Windows:
If you have an older version of setnet32 you can add DRDA SQLHOSTS entries manually by editing HKEY_LOCAL_MACHINE\Software\Informix\SQLHOSTS and adding a key with a name matching the DBSERVERALIASES value, following the same format as pre-existing entries except with DRSOCTCP as the PROTOCOL.
When defining a new Data Connection in Server Explorer, use machine:port for the server name. Below is the Add Connection screen I used for a machine called swamp.
Once the connection was working it was easy to follow the steps in Vasantha's article. Tweaking the look and feel of a simple database application is a matter of editing the properties of the DataGridView in the Visual Studio editor. When editing a C# Windows application in Visual Studio there are two tabs, one showing a design view of the application, and one showing the C# supporting methods:
I'll confess to not being a C# programmer but the ease of creating a simple GUI C# application using these add-ins was encouraging. Now I'll start thinking of a practical application to tempt me to learn a little more.[Read More]
IDS Security engineers Manoj Mohan & Lynette D. Adayilamuriyil have written a new developerWorks article Column-level encryption in IDS - Protect your sensitive data by using the column-level encryption (CLE) feature of IBM Informix® Dynamic Server (IDS) 10 and later. It's an accessible introductory article which includes using Column Level Encryption from Dbaccess, via a simple ESQL/C program, examples of using password hints, and how to calculate storage requirements for encrypted data.
Keeping to the topic of security Fernando Nunes recently wrote a detailed article on how to setup an IDS instance to use an Active Directory or OpenLdap server as its authentication infra-structure on his Informix-Technology blog. It includes screen-shots of setting up a Windows Server 2003 as an Active Directory Server. Well worth checking out: Informix user authentication: PAM for the rescue (part 1)[Read More]
After its October vacation Informix Zone has been making up for lost time with a flurry of news items and announcements. It was good to finally meet the site's creator Eric Herber when he stopped in Las Vegas to attend IOD during his travels. His report from the conference is posted here.
The big Informix Zone announcement this week is the IDS Developer Edition Wiki - a place where application developers can learn about Developer edition and share information with others.
What I like about this idea is that it's the first time a dedicated Informix wiki has been created, open for anyone to create an account and contribute. If you've ever wished therewas more information available for Informix users and developers here's an opportunity to do something about it. It's also a useful place for new users who download the free Developer Edition to get started.
If you solve a problem, why not write it up and throw it on the wiki? If you find a good link, add it to the site. Your technical tip or how-to becomes available for the whole community, and if you need it again you know where to look.
If this sounds like something you might like to contribute to send a mail to eric AT informix-zone dot com asking for an account. Once you have an account, look at the existing pages and refer to the DokuWiki syntax to get started.
p.s. Congratulations Eric on becoming a Certified IDS 11.10 Administrator. If you're contemplating taking the test, read the article to see how he prepared.[Read More]
The IDS Developer Edition is now downloadable from the Informix Trials and Demos site. Click on Informix Dynamic Server Enterprise Edition Trials. It's a fully-featured free download of IDS 11.10.xC1D with no time-limit.
So far the following platforms are there:
Note the file sizes are currently listed in KB instead of MB.
Here is a reminder of the Developer Edition specific limits:
Pay particular attention to the session limit if you are developing applications which use a connection pool that tries to set a higher number of sessions.[Read More]
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]
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]
A common user error when running command line IDS utilities on Windows is the "Could not initialize security subsystem" error. Below is an example of the kind of email I receive fairly frequently..
c:\informix> set | find "INF"INFORMIXDIR=C:\informixINFORMIXSERVER=serv1_sec
c:\informix> onstat -ERROR: Could not initialize the security subsystem. Please ensure that this account has the necessary privileges and ensure INFORMIXSERVER value exists in the registry and environment.
How do I fix it ?
The "security subsystem" part of this message is misleading, in that it generally doesn't relate to anything about security from a user perspective. The key part of the message is nearly always "ensure INFORMIXSERVER value exists in the registry and environment".
The way to troubleshoot this error is:
Part 2 of this article is here.[Read More]
A set of instructions for installing OpenAdmin Tool for IDS in a Linux XAMPP environment written by Erika von Bargen was added to the IDS Experts blog over the weekend. Now anyone wishing to install OAT with XAMPP can refer to:Read More]
gbowerman 100000B5T0 4,545 Views
Look out for the upcoming Ziff Davis seminar on Wednesday September 26th, when Kevin Brown and Madison Pruet will talk about 99.999% - How Available is Your Business?
"Attendees will hear from IBM IDS technical leaders Kevin Brown and Madison Pruet who will discuss the importance of reaching 99.999% uptime, and why this level of business continuity can rarely be achieved with a "one-size-fits-all" solution. The availability capabilities of IDS 11 will be prominently featured."
Inside Informix V11
Eric Herber has written an article about IDS 11 in Database Trends magazine, which includes a nice Open Admin Tool screenshot of a MACH11 topology. For the impatient, go to http://es1.tecnavia.com/ee/databasetrends/# and skip to page 18.
September Chat with Labs - RFID and Web Services
This month's Chat with the Labs covers the new Web Feature Service - which can provide a useful service layer for any kind of data, including GeoSpatial. Here's the blurb.
Location Based Services and RFID using Web Feature Services
This feature implements an Open GeoSpatial Consortium(R) Web Feature Service (OGC WFS) in IDSto act as a presentation layer for the Spatial and Geodetic DataBlade modules. The OGC WFS interface allows requests for geographical features across the web using platform-independentcalls. The XML-based GML (Geography Markup Language) is used as the encoding for transportingthe geographic features. Our speakers for this Chat will be Jerry Keesee, Director of the Informix Lab and Alan Caldera, Senior IDS Development Engineer.
RSVP for this Chat at: ttps://ww4.premconf.com/webrsvp/register?conf_id=7267470
Comments, questions: lspina AT us.ibm.com
There are 3 IIUG Cheetah tech days on the US West coast in the next week:
Since the directions to the San Jose IBM facility on the website are allegedly unreliable, here are the directions in full:
Morgan Hill/GilroyTake highway 101 and head North. Take the 880 highway exit, right and head towards Oakland. Go 4.1 miles to 237 and go West onto 237. Go 2.4 miles to the North First Street exit, turn right. We are on the right side - 4400 North First St.
From San Jose Airport:Get onto North/West 87 (Guadalupe Parkway) and take ramp onto highway 101, towards San Francisco. Take the Great America Parkway/Bowers exit and head right. Keep straight onto Great America Parkway for 1.9 miles. Take 237, right, towards Milpitas for 1.0 miles and take the North First Street exit and head North.You.ll now be going over 237. We are on the right side . 4400 North First St.
From San Francisco Airport:Get onto highway 101 and head South towards San Jose. Go 26.7 miles to 237, towards Milpitas. Go 4.7 miles to the North First Streetexit and head North. You.ll now be going over 237. We are on the right side - 4400 North First St.
From Oakland Airport/ East BayExit airport onto highway 880 South, go 26.3 miles to 237 West. Go 2.4 miles to the North First Street exit, turn right. We are on the right side, 4400 North First St.
I asked Hrvoje Zokovic how the Cheetah Technical Workshop in Croatia went and here is his write-up..
Alfatec Group and IBM Croatia organized an IDS Cheetah Technical Workshop in Zagreb, September 5th-7th for IBM business partners and customers. The presenter was Scott Pickett and during three days of his addictive presentations attendees were informed about Cheetah new features. Besides the presentations, attendees got to grips with Cheetah during the labs – MACH11 with hdr, rss, clr and sds was configured by attendees in a matter of minutes. The new features enjoyed a rapturous reception, with attendees saying they are ready to start using Cheetah. Scott also announced more exciting features in future IDS releases.
Obligatory view out of the window.. I'm sure I've been lost in that part of Zagreb before
Scott sets his class an impossible exercise
For more pictures of the event check out Alfatec's photo album[Read More]
Did you know there are five developerWorks forums providing help for Informix Dynamic Server and Informix application development? I didn't until I counted today, and I may have miscounted as it's still early. The number has been growing over recent months as new development software such as the Common Client becomes available. Here is the current list:
IBM IDS Informix Dynamic Server Forum
This forum is a place to exchange ideas, ask questions and share solutions with your peers in the IBM Informix community about the Informix Dynamic Server (IDS) and tools. Active participation in the forum will allow all of the participants to get the maximum return. All information is for community discussion and should not be considered IBM support.
IDS Developer and User Forum
This forum provides a place for Informix Dynamic Server developers and users to share their questions, thoughts, and ideas with others.
Unleash the new Java, .NET, PHP and Ruby client and Developer solutions for IDS 11
IDS 11.10.xC1, Cheetah, supports an industry standard protocol (DRDA). New database providers that can connect to IDS (Cheetah), DB2 (Viper), or other IBM RDBMs are available. The focus of this forum is using these datasource providers with IDS.
The providers are as follows:Java: IBM® Data Server Driver for JDBC and SQLJ, Version 3.50.NET: IBM® Data Server Provider for .NET for Informix Dynamic Server, version 9.5PHP: PDO_IBM, Version 1.21Ruby: Version IBM_DB-0.8.
PHP Forum: Developing PHP applications with IBM Information Management products (DB2, IDS)
This forum is ideal for posting your questions about building better web applications with PHP and IBM Information Management products including: DB2, Informix Dynamic Server, and more. Suggested topic areas include: getting connected to IBM data servers from PHP using native extensions (ibm_db2) and PDO (PHP Data Objects). Other hot topics include using the PHP frameworks such as the Zend Framework and understanding the use of Zend Core for IBM and the new PHP Eclipse tools (PDE). Share your insights on how you use of XML capabilities (XML, XSLT, SQL/XML, XQuery) of IBM data servers from your PHP scripts.
Developer Solutions for IBM DB2 and Informix Dynamic Server (IDS)
This forum is ideal to engage in discussions related to the use of DB2 Developer Workbench 9.1 to simplify DB2 application development tasks. This forum has also been extended to provide assistance for IBM Data Server Developer Workbench 9.5 beta participants. IBM Data Server Developer Workbench 9.5 can be used with Informix Dynamic Server (IDS), DB2 for Linux, UNIX, Windows, DB2 for z/OS, and DB2 for i5/OS to save you time and energy to rapidly create database applications. Please indicate if you are using IBM Data Server Developer Workbench 9.5 beta or DB2 Developer Workbench 9.1 as you post your questions.
If you want to learn more about Developer Workbench don't miss Mark Jamison's IDS Experts blog series: New Common Development tool for IDS and DB2. He's begun an excellent tutorial/introduction which includes download and set-up instructions.[Read More]
The IIUG Calender of Events is rather full lately. Currently running is the IDS Cheetah Technical Workshop in Zagreb, Croatia. Next up is..
IDS Version 11.1 Executive and Technical Briefing - Bangalore
Date: September 11 2007
Ashish Jane writes about the upcoming Cheetah technical briefing in Bangalore with Kevin Foster..
On the 11th of September, at the IBM India Executive Briefing Centre,Bangalore, there is a comprehensive briefing on the release of IDS11.1 (codenamed "Cheetah"), the product roadmap and live presentationsof new product functionality. The keynote speaker is Mr. Kevin Foster who currently leads Informix ISV Development and Support.
Kevin is a heritage Informixer who was a Senior DevelopmentManager prior to the acquisition. He has a deep technical backgroundand is very well placed to discuss the product, it's features and it'sfuture.
Thanks & RegardsAshish
Cheetah Tech Days
9/12 Chicago, 9/19 San Jose, 9/20 Seattle, 9/26 Waltham, 9/26 Costa Mesa, 9/27 Salt Lake City, 10/30 Bethedsa, Maryland (DC User group).
These tech days have been taking place at various cities throughout Summer, and follow the same basic formula. Here is the announcement for the Seattle event, which like the last announcement I blatantly copied from comp.databases.informix:
We have scheduled a meeting for September 20th at the IBM Facility in Seattle Washingon.
Please join us!! Come and meet your local IBM Developers, Support Team andManagement to find out what is new and exciting at IBM! The most exciting thing happening thisyear is the latest release of Informix Dynamic Server, or CHEETAH! There will be a lot to discuss about Cheetah at this meeting.
** TOPICS ** "A Breath of Fresh Air"
What will Cheetah offer you?? A.I.R.
A - Agile (Scalability, Extensibility, Web Location Based Services)
I - Invisible (Embed-ability, small footprint, Admin Free)
R - Resilient (Global Availability, High Availability, Security)
8:30 - 9:00 Continental Breakfast and Registration
9:00 . 9:15 Welcome and Introductions (Darrel Riley - President SIUG)
9:15 - 10:15 Overview of IDS "Cheetah"
IBM will announce some exciting news about the next release of the Informix Dynamic Server (IDS) - code-named "Cheetah." We will highlight the new features, and cover results of therecent beta test run, along with a roadmap showing the direction of future IDS releases.
10:30 - 11:30 Agile - Performance enhancements in Cheetah, application development
If you thought IDS was fast now, just wait until you get your hands on the latest updates that deliver peak performance to your applications. Learn what has been added in IDS Cheetah(and what you've been missing if you are still on IDS 7.31). Find out the implementation details so you can take advantage of these for your solutions.
11:30 - 12:00 Agile - IDS an Agile Choice for Application Development
Do you Web 2.0? Find out more about how you can take advantage of a Services Oriented Architecture to easily deliver location based information to your applications. IDS extensibility and the new Web Feature Services in Cheetah make this possible. The new Basic Text Search that is included in IDS Cheetah will also be covered.
12:00 - 12:45 Lunch
12:45 - 1:45 Invisible - Enter the "Administration-Free Zone"
If you like the 'hands-free' reliability of IDS, you're gonna love the new tools that make administration even easier. The new OpenAdmin Tool for IDS provides a GUI based view of allof your data server activities - starting with a map of server locations that can drill down to the detail of an individual SQL statement. Other new features allow automatic scheduling to keep your weekends free.
2:00 . 3:00 Resilient - Availability Solutions in IDS "Cheetah"
IDS has long provided multiple robust solutions to support high availability of your data.IDS "Cheetah" builds on those strengths with new options to design the right availability solution to meet your needs. Learn how customers achieve 99.999% availability (less than 5 minutes downtime per year), and how these new choices can improve performance and provideworkload management for easy scalability.
3:00 - 3:30 Resilient and Secure - Protecting your Information Assets
Learn how the new security features in IDS, including Label Based Access Control (LBAC),can help you protect the information assets in your IDS databases. New levels of control will make it easier to isolate protected information to meet regulatory compliance requirements and gain competitive advantage.
3:30 - 5:00 View the Demos and Meet the Experts
You've seen the presentations, now take time to talk to the experts who created these newfeatures, and see demos that illustrate how you can use the new functionality in your applications.
TIME AND PLACE
- Date: Thursday, September 20, 2007- Time: 9:00 AM to 5:00 PM- Networking and refreshments: ** Doors open at 8:30 AM for continental breakfast ** ** Lunch will also be provided ** (There is NO charge to attend this meeting)- Place: IBM Facility: Room 9026. Seattle, WA
- RSVP info: register via email, contact Cindy Lichtenauer:cindy _AT_ iiug.org
A new LBAC tutorial was published on developerWorks last week... IDS Label-Based Access Control, a practical guide, Part 1: Understand the basics of LBAC in IDS. The IDS 11.10 Label Based Access Control (LBAC) feature has much in common with the corresponding DB2 feature, so two advanced support engineers Manjula Panthagani and Joe Baric converted a DB2 tutorial to Informix.
See also the 2-part overview of LBAC on IDS Experts, written by one of the developers of the feature, Jihong Ma.[Read More]
Friday was my last day in Tech Support and today I take up a new position in Development as IDS architect for install, common libraries and Windows. Having spent most of my career in tech support, there is plenty about the old job I'll miss. I'll subjectively state that Informix tech support is a great environment to work in. Unlike many tech support organizations Informix support engineers have equal status with their development counterparts, and have opportunities to work with source code, fix bugs and develop product features. The customer perspective that support engineers gain is valued by development and tech support sign-off is required during the review process for new features.
In the new role I am interested in any feedback and suggestions you might have regarding the IDS installation process (on any platform) - does it meet your needs? And if you use or plan to use IDS on Windows, anything you would like to see different or Windows features you would like to see better integration with? Let me know.[Read More]
Today IDS support for Debian and Ubuntu was announced by IDS QA manager Madhuri Ahuja.
Here is Madhuri's email in full, which contains some useful comments about pre-requisites:
Hello Informix Users, IDS team would like to share with you that Debian and Ubuntu are now supported with CheetahIDS 11.10XC1. Please refer following details to ensure you have right versions of compiler, Kernel and glibcinstalled on your machines: For IDS X86 (Linux 32) on Debian GNU/Linux 4.0:Compiler : 4.1.2glibc : 2.3.6Kernel :2.6.18-4-686Comments: Install the following: - libaio1 (required for KAIO) - pdksh (required by ISM) For IDS X86_64 (Linux 64) on Debian GNU/Linux 4.0:Compiler : 4.0.3glibc : 2.3.6Kernel : 2.6.15Comments: Install the following: - libaio1 (required for KAIO) - pdksh, Libc6-i386, libncurses 32bit (required by ISM) Note: - libncurses 32bit(required for ISM)needs to be copied from a x86 (32-bit) installation. - Copy /lib/libncurses.so.5 from x86 (32bit) installation to x86_64(64bit)32bit compat libs: /lib32/libncurses.so.5 For IDS X86 (Linux 32) on Ubuntu 22.214.171.124 LTS:Compiler : 4.0.3glibc : 2.3.6Kernel : 2.6.15Comments: Install the following: - libaio1 (required for KAIO) - pdksh (required by ISM) - bc utility (required by installserver) For IDS X86_64 (Linux 64) on Ubuntu 126.96.36.199 LTS:Compiler : 4.0.3glibc : 2.3.6Kernel : 2.6.15Comments: Install the following: - libaio1 (required for KAIO) - pdksh, Libc6-i386, libncurses 32bit (required by ISM) - bc utility (required by installserver)Note: - libncurses 32bit(required for ISM)needs to be copied from a x86 (32-bit) installation. - Copy /lib/libncurses.so.5 from x86 (32bit) installation to x86_64(64bit)32bit compat libs: /lib32/libncurses.so.5 Please let's know if you need more information to explore IDS on Ubuntu and Debian Linux versions. Regards,Madhuri
It's good to see this news, there are many Debian and Ubuntu users on c.d.i. I like to use a Debian filesystem with CoLinux on my laptop, and this makes Informix support smoother. I haven't used Ubuntu so much, but have some familiarity with the Edubuntu distribution. I'll be more tempted to replace Windows with Edubuntu on old PC's now. I did this on an old pc I donated to a kindergarten not long ago and by all accounts it's the most popular pc in the class.
IDS Resource Agent for Linux-HA Clustering
On the subject of Linux, Informix Zone had an article yesterday about the new IDS Resource Agent for Linux-HA Clustering developed by Lars Daniel Forseth for his diploma thesis. The article includes the 170 page thesis itself as well as the installation guide.[Read More]
A common gotcha for Informix users who are more familiar with IDS on UNIX than Windows is to try to start IDS by running the oninit command directly from a Windows command shell. If you try this oninit will appear to hang around in foreground because it is not designed to be executed directly. Instead the oninit.exe process is designed to be launched by the IDS Windows service when it is started. The historical reason for this is that processes on Windows do not support the UNIX style "fork and exit" architecture.
The supported way to start IDS on Windows is to start the IDS Windows service, which has the same name as your INFORMIXSERVER value. See an earlier blog post for various ways to do this: Ways to start IDS on Windows.
A batch file to emulate UNIX oninit
Here is a batch file that will start IDS and exit, acting just like the UNIX oninit. If you put this somewhere in your path before %INFORMIXDIR%/bin you can call it oninit.bat and you're done. If you can't guarantee it will be before oninit.exe in your path, you might have to settle for calling it something else, like onstart.bat..
@echo offrem Windows batch file to mimic UNIX oninit usage
Note: Just like oninit on UNIX, this script assumes your environment variables PATH and INFORMIXSERVER are set correctly. However, since all this is doing is starting the IDS service, the rest of the Informix environment variables will be read from the Registry.
Now suppose you want an oninit.bat file that you can put in %INFORMIXDIR%\bin and always work, regardless of the path? This is a little more complicated because an executable file of the same name as a batch in the same directory is executed by the operating system first. I do have this working, but it isn't pretty, and is certainly not supported. It involves renaming oninit.exe, and doing binary edits on onscpah.exe, oninit.exe, ontape.exe, onbar_d.exe, onmode.exe.
Suppose further that you wanted the executable oninit.exe to behave just like it does on UNIX - to start IDS and exit, and read its environment variables from your command shell environment rather than the Registry just like UNIX? This can be done, and is something we're thinking about implementing in a future version. From an engineering perspective it isn't too much work. If you use IDS on Windows or in a multi-platform environment and think this is a worthwhile feature please let me know.[Read More]
You've heard of IIUG TV, now there's IBM TV. IBM TV is a portal for IBM's video and multimedia. It has eight "anchor" episodes per year hosted by Joe Washington along with any other video IBM publishes. Informix has a good presence on the site, including Christian Holzer from IMPIRE talking about their use of Informix Dynamic Server to provide real time sports statistics Link to movie.
Here are some related links:
IBM TV Main Player
IBM TV Entitled Player (registration required)
IBM TV Embedded Player
Here is an attempt at embedding a movie from the site in a web page. Not as easy as it sounds, required a bit of Flex hacking from Ian in my team.. Thanks Ian.
Last week's IDS Experts blog post by John Miller: Terminate Idle Users with the Database Admin System - is a good example of something we'll see more of as IDS 11.10 becomes established.. recipes for powerful automated administration tasks made by integrating the IDS Admin API and other IDS features with the Scheduler.
The built-in monitoring tasks, here printed from the Open Admin Tool Health Center task list, are likely to be added to as well:
As people create new admin tasks I hope they'll be collected somewhere as a reference, perhaps a developerWorks IDS Wiki would be a good place.[Read More]
Today I was caught using the non-existent word "shutdowning", which reminded me that mental exercise is important for keeping ones brain young looking and stopping it from, er, shutdowning.
What better way to exercise the gray matter than by writing your own web quiz game?
20 Questions is a simple quiz game written in ZK and small enough to be embedded in a web frame. It is based on question-answer pairs such as world capitals, US state capitals, English county towns and chemical elements. The main point of the quiz is to improve working memory.
The question-answer pairs are loaded into a database, and randomly shuffled by the application before challenging the user, who can choose 5, 10, 15 or 20 question quizzes, depending on how much work they are avoiding. One user complained that the questions are not multiple choice... kids these days, the idea is to test memory rather than guessing ability.
For the database the questionable design decision of having a separate table for each quiz was made. It would have been neater and better normalized to have a single quiz table with an extra quiz id column which references a lookup table for quiz name. That would allow the application to be data independent and dynamically build a list of quizzes based on the rows in the lookup table.
The main reason a separate table for each quiz was chosen for this example is that for a small number of quizzes it makes for a smaller and simpler web application. Should I ever add a new quiz I will stop prevaricating and normalize the design moving forward.
With excuses out of the way, here is the schema for the quiz database with its four quiz tables. This article assumes Informix Dynamic Server as the data server of choice, naturally, though there is nothing data server specific about the schema.
create database quiz;create table elements ( idx serial not null , question varchar(30), answer varchar(30), primary key (idx) );
database quiz;load from 'count_towns.unl' insert into county_towns;load from 'elements.unl' insert into elements;load from 'state_capitals.unl' insert into state_capitals;load from 'world_capitals.unl' insert into world_capitals;update statistics;Presentation layer
To get started with ZK refer to the Quick Start guide on the documentation page. The visual part of the quiz, written to $TOMCAT_HOME/webapps/quiz/index.zul is as follows:
<window title="20 Questions" width="400px" border="normal" onOK="processAnswer(answer.value);"> <zscript src="quiz.jul"/> <vbox> <label id="selectLabel" value="Please select a game.."/> <hbox> <listbox id="gameList" rows="1" mold="select"> <listitem value="elements" label="Elements"/> <listitem value="county_towns" label="English County Towns"/> <listitem value="state_capitals" label="State Capitals" selected="true"/> <listitem value="world_capitals" label="World Capitals"/> </listbox> <listbox id="numq" rows="1" mold="select"> <listitem value="5" label="5"/> <listitem value="10" label="10"/> <listitem value="15" label="15"/> <listitem value="20" label="20" selected="true"/> </listbox> <button id="newGame" label="New Game" width="90px" height="24px" onClick= "newGame(gameList.selectedItem.value,numq.selectedItem.value);"/> </hbox> <hbox> <label id="question" value="" visible="false"/> <textbox id="answer" value="" visible="false"/> <button id="subButton" label="Submit" width="90px" height="24px" visible="false" onClick="processAnswer(answer.value);"/> </hbox> </vbox></window>Note that the main window has an onOK handler so the enter key can be pressed instead of selecting the Submit button with the mouse.
The presentation layer calls two functions, newGame() and processAnswer(). The Java code to implement those functions - what I'll call the service layer - is in a file called quiz.jul and is listed below.
Note that the JDBC database connection was implemented by adding a connection pool called jdbc/quiz to the Tomcat server.xml file. (For an example of setting up a connection pool in Tomcat see sections 4 and 7 of this post.)
// quiz.jul - service layer for quiz application
To obviate the need to use the mouse while playing, in addition to the onOK handler in the presentation layer, the focus shifts back to the answer text box after each question, and to the New Game button at the end of a game by calls to the focus() method.
Despite my reservations about the unedifying qualities of multiple choice it wouldn't be too much work to extend this program (and db schema) by adding support for radio button multiple choice answers. Suggestions for new quizzes (or mistakes in the existing ones) are always welcome.[Read More]
Interesting things are happening in the world of Informix and ruby...
Firstly Ruby/Informix 0.5.1, the open source Ruby driver for Informix was released on Friday. Read about and download it here: http://rubyforge.org/projects/ruby-informix/. The main change in the release was a DATETIME HOUR TO SECOND bug fix.
Secondly the IBM_DB Ruby adapter and driver gem/plugin now supports Informix data servers. Here are the release notes for IBM_DB-0.8.0
Which Ruby driver should I use?
The key difference between the two drivers, apart from one being an independent open source project and one being developed by IBM, is the connection protocol used to connect to the data server, which also explains why the IBM driver only works with IDS 11.10 and later (and DB2).
Prior to 11.10, the only supported way for a client to communicate with IDS was via the SQLI protocol - the underlying protocol supported by the Client Software Development Kit (CSDK). In IDS 11.10 support for the DRDA protocol was added, paving the way for common clients for both IDS and DB2. The IBM Ruby driver uses DRDA, the open source Ruby driver uses SQLI.
If your IDS 11.10 instance is set up to use DRDA you have the choice of using either driver. If you are using the default SQLI configuration or an earlier version of IDS only the open source driver will work.
Personally I hope both drivers continue to be developed, it benefits everyone if an open source independent Ruby driver is available, and the SQLI communication protocol is going to be around for a long time. A similar situation exists with JDBC, where there is an IBM SQLI driver for Informix (current version 3.10) and a new DRDA driver available as part of the IBM Data Server Client.
I have a session entitled What's new in Informix application development at IOD 2007 in October where I'll expand on the recent SQLI and DRDA options for application developers. There are also other presentations and Developer Den sessions planned on Ruby on Rails, PHP/Python and the common client.[Read More]
The Geospatial Technology journal Directions Magazine has just published a Q&A with IBM's Director of Data Servers Bernie Spang: Informix Spatial Data Technology: Update and Positioning. The article discusses the Web Feature Service Datablade module, the Spatial and Geodetic blades. Also mentioned is the R-Tree index design contrast between Oracle's and Informix's spatial offerings.
My favourite recent example of Informix datablade solutions (including spatial) at work is the Impire AG live action sports content.[Read More]
The July 2007 edition of the hopefully soon to be renamed DB2 Magazine has an article on XML Publishing entitled IDS 11 purifies XML - by debonair media mogul and IIUG director Jean-Georges Perrin.
The article manages to be both informative and easy to follow - starting with a very concise introduction to what XML is, and followed by some simple examples of IDS 11.10 XML queries and their results. Being readily distracted by shiny things I usually find it difficult to read more than a sentence about XML without my attention wandering.
What follows are some XML publishing notes which will make more sense after you've read the DB2 Mag article..
When an XML VP is required
The article mentions that the only setup step required is add a Virtual Processor of class idsxmlvp. Note that for most XML publishing functions even this step is unnecessary. The XML VP is only required if you plan to use one of the XPATH functions, namely: extract(), extracxmlclob(), extractvalue(), extractxmlclobvalue(), existsnode().
Reporting Connected Sessions to an XML file
How would you use the genxmlqueryhdr() function to query the connected users from the sysmaster and write the output as a valid XML file that can be used by an application?
The following query writes a valid XML file to /opt/docs/ses.xml - to be used by an application server:
If you ran this query in dbaccess you would need to remove a couple of blank lines from the beginning of the file for it to be usable. Executed from an application it would work as-is, and without a style sheet you'd see something like this in a browser:
Note that genxmlqueryhdr() puts an <xs:schema> tag at the beginning of the output but not a closing tag, which is why the above query concatenates the closing tag to the end of the output.
sysdual is a new system table in IDS 11.10 which contains exactly one row, created to improve compatibility with other data servers. In previous versions of IDS, to return one row DBA's would typically finish a select statement with something like "... from systables where tabid=1".
If you don't have IDS 11.10 but would like some XML functionality - you might find the AlphaWorks XSLT blade useful.
The Truth Mobile has been been investigating Informix.. here's what they found out..
See also a short (1'21") video from Arvind Krishna about IDS 11.10..
Cheetah training for Tech Support moves to Lenexa, Kansas this week. Lenexa is the largest Informix support hub, home of much of IDS product development, and venue for the 2008 IIUG Conference.
The training material for these classes was developed by support engineers, and each class has four teachers who share the delivery between them. The volume of new features in IDS 11.10 is such that a week just about suffices to go through the material if we don't do too many exercises. For tech support engineers it is often the case that some time will pass before they deal with a case for a specific new feature - in which case having the material, VMWARE instance and exercises for future reference will come in handy.
Cheetah TOI students vs Basic Text Search exercises
A new IDS roadmap page is available on the developerWorks website: Information Roadmap for Administrators.
This is a one-stop portal providing regularly updated links to Informix Dynamic Server resources divided into the following categories:
One for the bookmark list.
Informix Solution Portal
Another recent Informix developerWorks site is the Informix Solution Portal - this is a useful resource site to learn about solutions built using Informix technology, and how to create or validate your own powered-by-Informix solutions.
Thanks to the generality of global email aliases I am able to share vicariously in the Cheetah release celebrations that took place at the India Software Lab in Bangalore this week, which consisted of cake..
..followed by lunch at Sahib Sindh Sultan, a trip to the pub and movie - Partner (warning, the last link has sound). A well-earned celebration - the ISL engineers I've worked this year have been putting in long hours and a great deal of expertise into the Cheetah development effort. If anyone who attended reads this let me know how it went.
IDS Performance Webcast
IDS Performance Architect Scott Lashley will be discussing some of the important performance features in IDS 11.10 including non-blocking checkpoints, automatic checkpoints, auto-LRU tuning and Recovery Time Objective (RTO) in a webcast on Tuesday July 31 at 4pm London, 8am Pacific. You can sign up for the webcast here: https://ww4.premconf.com/webrsvp/register?conf_id=9484894. If you want to be prepared take a look at Scott's developerWorks article in advance.
There is a new Getting Started with ZK tutorial on the ZK website which takes the reader through the creation of a to-do list application which uses the HSQL Java database as a back-end, and could be easily adapted to other data servers. It's a little more fully-featured than the simple to-do list ZK app I went through earlier.
Obviously impressed with my scenic Heathrow airport view taken during the Cheetah TOI in London, John Miller has forwarded a hotel room window snap from the Sydney T3 TOI that was running concurrently...
Well.. not bad I suppose.. Hounslow (with a new 24-hour ASDA supermarket) or Sydney, tough choice.
OpenAdmin Tool for IDS
A new and greatly improved version of the administration utility formerly known as IDSAdmin is available for download at the IDS 11 Beta download site. See the IDS Experts blog for the details and release notes.[Read More]
To be in England in the Summer time. A kestrel hovers. A dragonfly skims over water meadows rich with clover. The liquid call of the nuthatch. The subtle beauty of the spotted orchid. These and other fond memories are evoked as I gaze through my hotel room window and contemplate the scenes of pastoral harmony before me..
This week's Cheetah training for Tech Support takes place in London and Sydney. In London we're starting with Continuous Availability presentations. Here's a photo Ed Raven took of Holger Kirstein enlightening us with the Mach 11 feature
Second time around Cheetah continuous availability features are becoming much clearer. Today I had fun setting up Shared Disk Secondaries on Windows. A fairly straightforward process using Instance Manager to create a new instance, setting ROOTSPACE to match the primary instance, and adding the SDS parameters to the primary and secondary onconfig files.[Read More]
We had a guest speaker at yesterday's Cheetah TOI (transfer of information) session in the form of Alexander Koerner who showed the IDS11 ToGo demo he's been delivering to appreciative audiences at the last 3 Infobahn events in Germany. The demo consists of 3 512Mb USB flash drives concealed in various trouser pockets, each containing an auto-booting Qemu based Linux virtual machine with IDS 11 installed.
The first drive contains one IDS 11 primary and two SDS nodes, the second has a pre-configured IDS 11 HDR node which automatically connects to the primary IDS instance on stick 1, and the third has a pre-configured RSS node which also automatically connects to the primary instance on stick 1.
Before the IDS11 ToGo moniker was chosen, other names under consideration were "Cheetah on a stick" and "Cluster in my trousers". They seem perfectly good choices to me.
Qemu allows the demo's to be independent of the host machine, communicating with each other over a private network, so no additional software needs to be installed on the host laptop. The demo has an integrated browser and applications to showcase various IDS features and blades. It's an impressive and concise way to see the strengths of the Cheetah release. Note that the IDS11 ToGo demo is not currently available outside IBM.
In the evening we were taken to a restaurant in Trudering where we had the opportunity to try some enjoyable Bavarian cuisine and the dunkel weiss bier that was allegedly the downfall of a certain UK tech support manager on his last visit.[Read More]
So far the Cheetah TOI in Munich has covered High Availability and most of System Administration. We'll probably need to step it up to get through the Performance, Security and Application Development modules by the end of the week.
The sun made an appearance this morning, so instead of the promised rain shot here's a snap of the Moosfeld IBM office..
Put Yourself on the Map Part II
Aron and Marty Lurie's Google Maps mashup tutorial has been revamped in a new developerWorks Article: Put yourself on the map with Google Maps API Version 2, DB2/Informix, PHP, and JMeter on Linux. The article is updated with new features, and uses version 2 of the Google Maps API. Examples are provided for both IDS and DB2.[Read More]
This week the blog comes from rainy München, or Moosfeld to be more accurate, where in-depth Cheetah training for tech support is taking place. The same training is being simultaneously delivered in Singapore; next week the show will move to London and Sydney, and on to Lenexa, Kansas two weeks later.
One nice feature of the training material is that everyone gets a VMWARE image with the software, IDS instances, scripts and exercises required for the training. This environment means attendees can use their own laptops, and have a reference implementation of IDS 11.10 set up, with instructions for all new features, which will serve as a ready-to-use environment both during the class and for later testing. I'm just wishing I'd bought a GB of extra memory for my laptop.
Later in the week I hope to update the blog with an inspiring photo of some rain.
Cheetah available for Electronic Delivery
Last week's news is that IDS 11.10.xC1 is now officially available for download. See Fernando's blog for the scoop.
Server Studio and Sentinel 6.1 Announced
Last week Server Studio 6.1 was announced. This is the Server Studio version designed for IDS 11.10. I was fortunate enough to get a preview of 6.1 from Anatole Vishon at the last IDUG conference, and was impressed with some of the new features, including version snapshots of schema and configuration changes. If you haven't looked at Server Studio in a while it's worth a test drive. The 6.0 release that supported IDS 10.0 had a huge list of enhancements, my favourite being the Entity Relationship diagram feature of the Schema Manager, which provides an intuitive graphical interface to even the most complicated schemas. Integrated with this is a redesigned Dependancy Analyzer. The enhancements in the last two releases are too many to list here. I can't find the release notes online but if you install a free test drive take a look at them to get an idea of how much development has gone into recent versions.
For the past 6 months I've been tinkering with a chatbot that provides an instant messaging interface to our product defect database via SameTime. Development consists of sporadically adding commands in my spare time to meet various user requirements like fuzzy search, subscribing to nightly bug reports, reporting defects by owner, submitter, severity, etc. One of these needs is to expand coverage to other databases used by tech support, for example those used to track customer calls and internal technical discussions.
Some of the databases are difficult for mere mortals to obtain direct access to, and can only be publicly accessed by logging on to the official internal web interface. These restrictions led me to experiment with Jakarta Commons HttpClient as a means to retrieve and process information from secure websites. HttpClient is straightforward to use and has all the functionality required for this purpose. Once the basic infrastructure was in place it was easy to add chatbot commands that retrieve information from any websites. One of my first experiments was to add a "whatis" command to the bot in order to provide an interface to Wikipedia.
The whatis program
The whatis program is a simple command line example to demonstrate using HttpClient to look up Wikipedia articles and return the information as text. It retrieves the raw HTML from the website and does a little processing to extract the main text of the article and filter out the HTML. To build and run it you need the following Jakarta Commons libraries in your CLASSPATH: HttpClient, logging, codec.
// wiki.java - a simple Apache Jakarta Commons HttpClient demo to// download articles from Wikipedia.org
This example calls getResponseBodyAsString to get the requested web page as a string. It would be more efficient and predictable to write your program around the getResponseBodyAsStream method, or to limit the downloaded size.[Read More]
This week saw an interesting pair of articles in Computer Business Review Online..
The first article on Monday, had the dramatic title: IBM has lost 80% of Informix users in six years by Jason Stamper. This must have sounded a little strange to anyone who has been paying attention to the rise of Informix in the last 18 months, and the fact that Informix revenue has been growing at a significantly faster rate than database market as a whole.
Sure enough, today the same journalist appears to have accepted the story is entirely false and issued a follow-up.. IBM corrects its own Informix customer figures. "Instead we are now told there are 20,000 in the International Informix User Group, over 100,000 Informix customers, and millions of users." - Good to see a journalist make a humble and gracious apology for releasing a bogus story without checking the facts. Many people in his position would be tempted to blame their sources.
Code line merger seems unlikely
A better-researched analysis of post-merger Informix is offered today by Philip Howard of Bloor Research in his Regdeveloper article: IBM and Informix tie down Cheetah - Code line merger seems unlikely. In it he discusses IBM's evolving strategy when it comes to Informix; contrasting the increasing scope of the last two major IDS releases, versions 10 and 11 and concluding favourably that any initial hints that the DB2 and IDS code lines might merge are off the table. Viewed from the inside, seeing the rate at which the IDS development team is growing, this assessment seems pretty accurate.[Read More]
I was CC'd on an interesting VP Private Memory Cache Q&A that helps explain this feature a little further. VP Private Memory Cache was a performance feature announced in IDS 10.00.xC6. There was a slight hiccup due to the default value being uninitialized in that version, which should not distract from the usefulness of this feature..
1. Where is private cache allocated from? in the resident or virtual segment?
2. How is the VP private cache used? From my understanding:
When a VP needs to read some data pages from disk, it will search the VP cache first to check whether there is enough space, if it cannot find the space, it malloc the memory from the buffers.
So I feel now Informix has two level's of cache, the first is vp private cache and the second is buffers. But when one vp needs to access a data page which lies in another vp's private cache, what does it do?
3. After the data page was read into the vp private cache, it maybe updated or deleted, when is the data page is being flushed to disk to mark it clean and accommodate the new data page? in checkpoint?
A.The vp private memory cache is not used for buffers in the buffer pool, or for any pages read from disk. I think that's where the confusion is starting. When a thread needs to allocate memory from its own session pool, for example, that's when this VP-private cache comes in. Think of all the memory that threads allocate from pools like the 'global' pool or the 'rsam' pool or their own session pool (e.g. pool name '125'). It's that memory that goes into the VP-private cache when it's freed.
Here's the big picture. Before we had this VP-private cache feature, every VP would fight every other VP for the same memory in a particular shared memory segment. The memory in that segment had to be protected by a latch. So when Thread 1 on VP 1 needed a block of memory from Segment 1, it first acquired the latch, then took the memory, then released the latch. Meanwhile if Thread 2 on VP 2 needed memory from the same segment it would have to wait for the latch to be released in order to get a block of memory from Segment 1. Typically these threads need these blocks of memory for their session-private pools. Again, this is not related to the buffer pool that contains pages from disk.
You can imagine that in a high-stress environment with a lot of VPs and a lot of threads the latch on Segment 1 would become a performance bottleneck.
The solution we chose was to allow each VP to build its own private cache of memory blocks as blocks were freed. In other words, the first time a memory block was allocated from a segment, it would be allocated the same way it always has been. But if that memory block was freed, where ordinarily it would go back to the segment, now it remains allocated but is tracked by the freeing VP as part of its private cache. The next time a thread on that same VP needs a memory block it does not need to acquire any latch to get it. It simply takes the block from that VP's private cache. We know that no other thread will try to allocate memory from that same cache simultaneously, because only one thread can run on a VP at a time.
The size of an individual VP private cache is limited by the VP_MEMORY_CACHE_KB configuration parameter. In other words if you set VP_MEMORY_CACHE_KB to 1000, no VP-private memory cache in the server can exceed 1000 KB (1 mb) in size. Calculating the maximum amount of memory that an instance can allocate toward all VP-private caches is a matter of multiplying the value of VP_MEMORY_CACHE_KB times the number of VPs.
If you set VP_MEMORY_CACHE_KB to 0, the feature is turned off.
The minimum non-zero value for VP_MEMORY_CACHE_KB is 800, I believe.
Thanks JC.[Read More]
gbowerman 100000B5T0 2,943 Views
The tadpole cam experiment reached its conclusion yesterday as the last tadpole completed its metamorphosis and entered the complex and daunting world of adult froghood. With a heavy heart I returned the young Pacific Tree frogs to their pond, a brutal realm of garter snakes, bullfrogs and cannibalism, though at least no conference calls. Here are some of the final pictures..
I had a mail from the CSDK team manager saying "I am looking for customer feedback/pain points or any other feature which they would like to see to be addressed in CSDK".
So.. what would you like to see in the Informix Client Software Development Kit? Feel free to leave comments or email me directly.
Off the top of my head I'd like to see:
gbowerman 100000B5T0 2,998 Views
Do you like nothing better than listening to Informix podcasts on your <insert fashionable portable audio device> while doing your <insert popular contemporary exercise activity such as kick-boxing, pole dancing or driving to work>? I just took a look at the Informix Podcasts site and noticed several new arrivals, the current list is:
Today sees the announcement of Cheetah. Informix Zone has done a nice job of collating the English and German press coverage; the leitmotif of which might be summarized as "global availability".
Yesterday there were meetings and breakfast/lunches to mark the announcement at the major IDS development sites, with an IDS all-hands call hosted in Lenexa by Jerry Keesee (Development) and Bernie Spang (Marketing).
Here in Beaverton the IDS development team met to discuss ways to improve communication between engineers working on IDS at the various sites (e.g. Lenexa, Menlo Park, Beaverton, India, Germany, and various smaller outposts). I was unfortunately unable to participate due to an urgent appointment with Cannon Beach which I'm pleased to report was pleasantly sunny, but it was interesting to look at the meeting minutes. An improved centralized website providing for the needs of IDS development engineers was high on the agenda - it's all too easy to end up with too many partial information solutions in a distributed development environment - a website here, a wiki there, a team room somewhere else. Once in a while someone needs to take a look at the current state of available information and develop a new root site or at least refurbish the old one; with central links to the most important knowledge sources, a decent search engine, and evaluate what information is not readily available. An example of information no longer readily available that was discussed is a centralized ftp server for all internal Informix downloads - something we once had but over the years has devolved into multiple ftp servers and NFS drives. It is good to have these discussions, some of the problems are readily solved with willingness and a few hundred GB of storage.[Read More]
gbowerman 100000B5T0 3,597 Views
Not that everyone wasn't happy with the previous system.. but there is a new Maintenance Delivery Vehicle (MDV) for Informix Products called Fix Central - I like the minimalist front page.
Here is the blurb for Informix users:
Beginning June 1, 2007, entitled customers of the most popular Informix products will have a new way of finding and downloading
fixes (fix packs, PIDs and patches (special builds)) via the Fix Central web site.
More information about Fix Central is available here: http://www-1.ibm.com/support/docview.wss?uid=swg21260952.[Read More]
When I tell people at work about my tadpole cam they usually start backing away and remember animportant conference call they have to attend. Thus the therapeutic value of a blog.
The tadpole cam follows the lives of 10 Pacific Tree Frog tadpoles (Pseudacris regilla) from my pond. Here are some snapshots...
Planaria, water fleas, snails, mosquito larvae and other creatures make their way past the lens, presumably having grown from unseen eggs or zooplankton. It's fun to watch the tadpoles grow, though it occurred to me it might be more fun to maintain a searchablearchive of their development - hence..
The Tadpole Cam Database App
The chief design motivation was laziness - this had to be something I could put together in a couple of hours, so the more pre-used code lying around that could be bolted together thebetter.
The application needs to upload a photo from the webcam into a database every five minutes during daylight hours, and provide a simple web-based review interface where the images can be deleted or annotated remotely from a browser.The web app needs to support text searching and date based reporting. In the screen shot above there are 10 unlabeled images awaiting review. This screen shot was taken before I'd added Next and Previous buttons. Imagine Next and Previous buttons.
The VX-3000 webcam was chosen mainly for price. I don't need its integrated Windows Messenger features and use the open source Dorgem software to drive it. This provides a basic webcam HTTP server with automated image capture support.The web application is written in ZK and is a cannibalization of an earlier project: ZK Image Database Application with a few search features added to take advantage of the IDS 11.10 Cheetah Basic Text Search (BTS) blade feature.
Set up Steps
1. Install and set up IDS 11.10.TC1 - Create 2GB smart blobspace for images
The following onconfig parameters were modified from the default 11.10 Windows values:
PHYSFILE 20000 # to enable non-blocking checkpoints..LOGFILES 3LOGSIZE 10000RESIDENT -1 # don't want memory to be swapped outSTACKSIZE 256 # to be more datablade friendlyBUFFERPOOL size=4K,buffers=20000,lrus=8,lru_min_dirty=50,lru_max_dirty=60 # a few apps are running on this machineVPCLASS bts,noyield,num=1 # required by the BTS blade
The webcam images are less than 32K.. storing them in an LVARCHAR column might have been a good choice for performance, but I chose to create a 2GB non-logged smart blob space...
2. Create database
The database consists of a simple table for the image, a time stamp and a VARCHAR column to store notes...
create database tadpole in void_1110create table webcam(id serial primary key, wImage clob, note varchar(255));
3. Add a Scheduled task to upload webcam images to the database
The Dorgem webcam software was configured to save an image to file every 5 minutes. Uploading this file to the database is just a case of creating a operating system scheduled task to execute the following batch file, which calls the FILETOCLOB() routine every five minutes...
set INFORMIXSERVER=void_1110set INFORMIXDIR=c:\inf1110set PATH=%INFORMIXDIR%\bin;%PATH%set ONCONFIG=onconfig.void_1110echo INSERT INTO webcam(id, wImage, wTime) VALUES(0, FILETOCLOB('c:\temp\tadpole\tad.jpg','server'), current) | dbaccess tadpole
An alternative to an operating system scheduled task or cron job would have been to add a DB Scheduler task to do the insert. The only reason I didn't do this is it would have requiredthe database to have logging switched on and I was happy with it being a non-logged db.
If this was a home security system rather than a tadpole cam I'd probably add a command to email the image off-site at the same time.
4. Setting up Tomcat
The following steps were necessary to set up Apache Tomcat 6.0 to work with JDBC and ZK.
- Copy ifxjdbc.jar, ifxjdbcx.jar to $TOMCAT_HOME\lib
- Copy the ZK jar and ext jar files to $TOMCAT_HOME\lib- Edit $TOMCAT_HOME\conf\server.xml to create a connection pool. My connection pool looks like this:
<Context path="/tadpole" docBase="tadpole" debug="0" reloadable="true" crossContext="true"> <Resource name="jdbc/tadpole" auth="Container" type="javax.sql.DataSource" maxActive="20" maxIdle="10" maxWait="1000" username="myuser" password="mypassword" driverClassName="com.informix.jdbc.IfxDriver" url="jdbc:informix-sqli://localhost:9088/tadpole:INFORMIXSERVER=void_1110;lobcache=-1"/></Context>Note that lobcache is set to a negative value to cache all images. Other environment variables worth setting might be OPTOFC and IFX_AUTOFREE.
5. Register the BTS blade to the database
IDS 11.10 comes bundled with BTS - the Basic Text Search blade based on cLucene, so I'll use it to add a powerful search on the note column of my table. See the IDS Experts blog for a handy 3-part introduction to BTS.
Since my desktop PC runs Windows XP, I need to use the GUI Blade Manager which comes with the Datablade Developer's Kit to Register the BTS blade to my database. So I installed the Informix Client SDK, installed DBDK, and ran BladeManager.
It works fine, but UNIX users get to run the command line blademgr utility that comes with IDS to register blades. I think I'll log a feature request to ask for that on Windows too...
6. Set up BTS and create an index for searching
The BTS blade uses an extspace to store index data. An extspace can be created using onspaces...
mkdir c:\ifmxdata\void_1110\bts_extspaceonspaces -c -x bts_extspace -l c:\ifmxdata\void_1110\bts_extspace
To create a BTS index for on the note column:
CREATE INDEX note_bts ON webcam(note bts_varchar_ops) USING bts (delete='immediate') IN bts_extspace;
Now the note column is set up for a wide range of fuzzy, proximity, wild card, range and other types of search. See the BTS documentation for more detail.
7. Create the Web Application
Since I had some of the code I needed in an earlier ZK project it made sense to use ZK as the AJAX development framework. I created a new directory under $TOMCAT_HOME/webapps called tadpole, and added a WEB-INF subdirectory with a web.xml set up to support ZK. See the ZK Quick Start Guide for more info on the web.xml settings. The web.xml file also needs a reference to the database connection pool. Something like:
<resource-ref> <description>tadpole Datasource</description> <res-ref-name>jdbc/tadpole</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth></resource-ref>This is the code for the presentation layer of the web application saved as index.zul:
<zk> <window title="Tadpole Cam Database" border="normal" width="980px"><zscript src="tad.jul"/>The Java based ZSCRIPT service layer code to support the buttons and other functions is written in a file arbitrarily named tad.jul:
// tadpole cam zscript codeimport org.zkoss.image.AImage; import java.sql.*;import javax.naming.*;import javax.sql.*;What's missing?
Those of you who don't find amphibians quite so interesting, but are still reading anyway, will hopefully see the potential for simple webcam database integration in other fields. As mentioned this application was put together in a bit of a hurry and a little late in the season. The program has a few rough edges. Next year I hope to be ready to document the entire egg to frog cycle, and fix some of the shortcomings. For example the date and text search should be integrated with a single button (a fairly easy fix). An iframe could be added to include a view of the webcam itself. A "Take snapshot" option would be useful. I would like to find a Java API for webcams to build direct webcam control into the application. Integration with the webcam movie mode might be interesting too..[Read More]
Update 6/12/07: The article has been updated and is back online!
Want a summary of IDS 11.10 features in a developerWorks article, with handy links to the documentation for each feature? IBM Software Engineers Inge Halilovic, Mohan Saraswatipura, Radhika Gadde and Priyambada Behera have published such an article: What's new in IDS Cheetah (IDS 11)? It makes for a good digest of the major Cheetah features - useful to scan through if you think you know all the major enhancements, or have missed the hype and want to know what Cheetah is all about.[Read More]
The mysterious Frenchman Jean-Georges Perrin has been quiet lately. Therefore he is up to something.
Last seen at IDUG sporting a camcorder and tripod, there was clearly some kind of grand multi-media scheme in progress. At last, secret sources (JGP's blog) reveal plans for IIUG TV.
The short teaser on the website promises IDS Street talk.. I do recognize several IIUG regulars on the video, including John Miller demoing IDSAdmin (soon to be called something else) in the IDUG Exhibit hall. That's not me in the background, and the bored, tipsy look on my face is actually rapt concentration.
Will iiug.tv be the Informix go-to site of the Summer? I await with baited anticipation.[Read More]
eWeek published a revealing article about IDS Cheetah today.. IBM Looks to 'Cheetah' to Speed Up Blade Servers
IBM officials hope a new feature aimed at increasing performance and availability of applications using Informix Dynamic Server "Cheetah" in a multi-node, blade server environment will separate the upcoming release from the pack.
"Users can deploy a greater number of nodes—beyond only a primary and single secondary," said Bernie Spang, director of IBM data servers. "Nodes can be brought online with a simple command without disrupting running applications. Also, nodes can be taken offline without disruption."
It's the first time I've seen the codename MACH 11 used in an external article - good to see some of the IDS 11.10 replication enhancements getting some publicity.
Yesterday CRN had an article about IBM's partner efforts for Cheetah: IBM Musters Partners For Cheetah Release - which included a rumoured release date of around June 12.
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 Skills
10. 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]
I don't see it on the Webcasts page yet but here is the invite to the next Chat with the Lab - Jonathan Leffler talking about LBAC...
Join Jerry Keesee and Jonathan Leffler to discuss LBAC and why you might want to use it. The topics covered will include how to set-up and use a simple policy, the role of DBSECADM and its ramifications, backup and restore and import and export.
You may RSVP for this call at: https://ww4.premconf.com/webrsvp/register?conf_id=7996493
Another useful reference if you're interested in IDS Label Based Access Control is the 2-part article by Jihong Ma in the IDS Experts blog.[Read More]
gbowerman 100000B5T0 3,858 Views
Back in the office and catching up I see two new IDS articles appeared on developerWorks last week...
IDS 11.10 Exam prep
A trio of IDS Advanced Support Engineers Manjula Panthagani, Rashmi Chawak and Siva K. Ane have collaborated to produce the first System Administration Certification exam 918 for IBM Informix Dynamic Server V11.10 prep guide (part 1). Study it well, the 11.10 exam is tougher than earlier versions.
Write better distributed queries
For performance junkies Evan C. Lee has written an article on how to Write better distributed queries for Informix data servers which covers how to optimize queries involving multiple IDS servers. This has some useful information that goes deep into query execution plans and using IDS 11.10 optimization features.[Read More]
The rest of IDUG rushed by in a blur, here are some notes..
In the morning I delivered my IDS for Windows internals talk. If anyone downloads the slides from the conference website or IIUG please note they claim the 64-bit Windows port of IDS will not support ISM. As development plans have progressed this has since turned out to be a cheap lie, ISM support is now planned. In my defense, I am a cheap liar.
Freed up to attend a few sessions I followed a meandering path of application development, security and Linux, beginning with Sergio Ferreira's JSTL SQL tags talk, which starting with the Java web stack explainedJSTL - the Java Standard Tag Library, EL - Expression Language, and how to use the various JSTL components such as SQL.
In the afternoon Alexey Sonkin provided some tips on Optimizing Linux for IDS - I was expecting this to get very technical and was not disappointed. Topics included performance comparisons for different Linux filesystems, partitioning optimization for drive geometry, picking the best I/O scheduler for database performance, optimizing the kernel memory swapping algorithm, the quadratic dependency between network connections and SOC VPkernel processing time, and FASTPOLL.
Here is a copy of the official conference agenda for Tuesday evening:
On Wednesday morning I met Anatole Vishon who demonstrated some of the new features in Server Studio 6.x currently in beta and due for releaseto coincide with IDS 11.10. There is a lot to cover in Server Studio and I'llsave this for a separate blog entry later this week.
In the afternoon I caught Jonathan Leffler's Encrypted Communications with IDS 10.0 presentation which took us from Kerckhoff's Principle, the Diffie-Hellman key exchange protocol and AES to setting up encrypted network communication in IDS using Encryption CSM.
Next was Paul Watson going through some Public and Free Datablades- a useful range of blades to extend SQL functionality that are freely available and easy to build and install. For some reason Paul thought I'd make a good sacrificial goat for various object relational questions that came up - maybe it was a punishment for arriving late, either way I'm going in disguise to his next talk.
Later that day coaches were laid on to give conference attendees a taste of BayArea traffic and transport them to a reception at IBM's plush Silicon Valley Lab (SVL). As the throng were shepherded to the reception area we were waved and cheered by resident developers - presumably the slow ones who were unable to get away when rounded up.
On Thursday the only session I managed to see was Gary Ben-Israel's Hitchhiker's Guide to J2EE - an illuminating guide to the framework universe, AJAX, EJB, and some of the serious problems to that need to be overcome when developing within a Java framework. As a result of this talk and some offline chats I've added Wicket to my "to learn about" list.
Throughout the conference the Exhibit Hall was busy. IDS had 4 pedestals, including an IDSAdmin demo showing new replication features and an interesting gaming development demo which I hope this blog or IDS Experts might cover in the near future.[Read More]
Downtown San Jose was bustling with Mexicans on horses, teenage girls and pasty engineers on Sunday as it hosted Cinco de Mayo celebrations, the NCVA Junior Girls Volleyball Power League Regionals and IDUG North America.
IDUG kicked off with a series of Sunday educational seminars. Of the 5 Informix ones I managed to catch Speed and Performance in IDS presented by John Miller and 20 year Informix veteran Scott Lashley who was grumbling about being offered a senior coffee in Macdonalds - I'm sure it was an innocent mistake. It was good to pick up some performance tips from the experts - must increase my physical log size to take advantage of non-blocking checkpoints - ok the online log has been telling me that for a while but it's good to get a reminder..
Fancy hoof-work on W San Carlos
Today saw the official start of IDUG. For the keynote two retired IBM fellows Pat Selinger and Don Haderle were reanimated to discuss the future of database technology. They have a cute comedy routine going with a dash of bawdiness, which makes a change to standard hype-laden conference keynotes.
Monday was the busiest day for me with my interminable JSP/Ajax and Krakatoa/Solano talks and booth duty but did get to attend one Special Interest Group meeting - Informix for Data Warehousing & Business Intelligence - where hardcore data warehousers shared their thoughts and questions with Kevin Fennimore, Ron Flannery and Martin Lurie. The consensus is these guys would like to see more XPS warehouse friendly features ported into IDS. Tomorrow I just have to inflict my soul-crushing IDS Internals for Windows presentation (it's soul-crushing in a good way, honest) and can then report on a few other sessions.[Read More]
There used to be a time when a new developerWorks article about an Informix product was a rare event. In the last few months there seems to be a new article coming out nearly every week. This week's article is by Vimal Pradeep and Malarvizhi Kaliyakrishnan from the India CSDK Team, and looks at some of the new Windows features in the 3.0 Client Software Development Kit: Rapid Windows application development with IBM Informix Dynamic Server and IBM Database Add-ins for Visual Studio 2005 - Expanded capabilities for Informix .NET programming.
The Visual Studio 2005 add-in supports Integrated installation, Server Explorer integration, and "code-free" Windows application development using the new Informix .NET provider for .NET framework 2.0.
CSDK 3.0 has another useful Windows enhancement not covered by the article.. support for ESQL/C static linking (which has been available on UNIX for a long time), meaning you can build and deploy ESQL/C applications without any need for for I-Connect to be installed. This opens up some new possibilities for embedding Informix applications and we have already started using this feature for some IDS utilities.[Read More]
Today's post contains an assortment of events, catching up from having been somewhat lacking in blog time last week..
A wet day in Waltham
The New England Informix User group met last Friday at the IBM Waltham facility. On the agenda were Marty Lurie and his son Aron cutting school to present their Google Maps/IDS mash-up. Carlton Doe went through some of the many IDS 11.10 feature highlights; and I subjected the attendees to my relentless IDS Internals for Windows and JSP/AJAX presentations. June Hunt who organized the meeting was giving out prizes, including two very cute cuddly cheetahs.
IDUG NA 2007 - San Jose May 6-10
IDUG NA starts in a few days in San Jose. Expect the usual plethora of seminars, presentations and events. I'll be mumbling my way through the aforementioned IDS Windows and JSP/AJAX talks, along with one on Krakatoa/Solano. The material will differ from the downloadable IDUG versions due to new slides on Windows 64, Windows Vista and other topics being added at the last minute.
Free Certification Testing
Note that both the IDUG and IOD conferences include free certification testing. For the first time the IDS v11 Certified System Administrator certification test will be available.
Hint: the new exam has a higher percentage of questions about new features than previous IDS certification exams. To prepare for this exam make sure you set aside enough time to thoroughly learn new v11 features.
IOD Conference - May 21-25 May 2007 - Düsseldorf
The IOD conference in Düsseldorf is also nearly upon us. Again there is a lot going on, check the Conference website for more details.
KCIUG Tech Day: 9am-4pm June 12 2007
The Kansas City Informix User Group is sponsoring a Tech Day on June 12th, 2007. The theme for the day is:
What will Cheetah offer you?? A.I.R.I'd have called it H.A.I.R (Highly), but that's just me. Details can be found in the latest IIUG Insider.
IOD Conference - Oct 14-19, 2007. Las Vegas, NV
The Information Management überconference Information on Demand 2007 takes place in October. This year's conference will be bigger than ever with the addition of the Filenet conference. Expect 500 technical sessions.[Read More]
The developerWorks team have begun testing a new concept called developerWorks community topic spaces - empowering people to create "micro-sites focused on a specific technical subject, software project, development activity, or user group community".
IDS Cheetah already has its own community space, see the preview here: http://www.ibm.com/developerworks/db2/ids.
Er, what is a space?
From the developerWorks Spaces Wiki FAQ:
A space is a Web micro-site with one or more owners who can manage the content, presentation, and distribution with an easy-to-use interface. Spaces usually combine multiple ways to create or collaborate on content such as blogs, forums, wikis, file-sharing, video sharing, and so on. They may also provide ways to distribute the content via Web feeds such as Atom, or RSS.
Much more than a home page, a space allows the owners to communicate and connect with others. Each space is a potential community of its own: a following around an expert, a community of interest around a topic, a software project community, a user group community, and so on, based upon the wishes of its members.
The way it works, as far as I can tell, is that as the creator or maintainer of one of these spaces you choose from a selection of portlets to add to your page, examples include: blogs, feature stories, lists, forums, lists, podcasts, RSS aggregators, custom feeds and more, thus creating your own portal/aggregation site. These portlets can be dragged around the page and various layouts and themes chosen to suit your aesthetic proclivities. You can add up to 10 co-editors.
It will be interesting to see how this idea grows. If you feel like starting your own space, apply here.[Read More]
Archecker is one of those utilities that can be very useful, though no-one would accuse the documentation of being over-exhaustive - at least it has its own chapter in the Informix Backup and Restore Guide. Last year's developerWorks article Perform point-in-time table-level restore in Informix Dynamic Server by Doug Kim helped, and now Volker Fraenkel has added to the canon with a recently published developerWorks article called Data archiving with Informix Dynamic Server table-level restore -A practical guide for independent data archiving.
Among other things the article talks about the advantages of Table Level Restore, creating archecker schema files, and how to unload tables in IDS 11.10 to XML/XSD using genxmlschema.[Read More]
Firstly, if you follow The Informix Zone you will already know there's a new Informix RedBook, 162 pages of high availability goodness entitled: Informix Dynamic Server V10: Superior Data Replication for Availability and Distribution. This compliments the RedBook published last December: Informix Dynamic Server V10 . . . Extended Functionality for Modern Business.
Secondly, IBM RedBooks are pioneering a new authoring process known as RedWiki. The old style RedBook authoring process took the form of a residency. Authors, typically IBM employees, would travel to a specific site and work there until the job was done. With the new process, anyone can apply to be an author, and the team collaborate on the book via a Wiki page from their regular locations working part-time. I like this concept, it can mean larger teams, and can draw on a greater pool of authoring talent. We use wiki pages extensively within Informix support and development both informally in small teams and in a larger more structured environment.
I turned down the last opportunity for a RedBook residency.. the flesh was willing but the time was lacking. With the Wiki-based authoring process I'd have probably applied. To see an example of the new style of RedWiki take a look at PHP Zend for i5/OS.
I hope this concept catches on and look forward to seeing some Informix RedBooks written this way. Judging by the expertise on display in the IIUG and comp.databases.informix newsgroups there would be no shortage of enthusiasm and talent for a distributed Informix RedBook.
Based on support calls there is a fairly high demand for Informix integration with Pluggable Authentication Modules (PAM). When it comes to worked examples there is somewhat of a dearth. It is therefore refreshing to see this new developerWorks article by Manoj Mohan, Ramesh Gopal Srinivasan, Thamizhchelvan A. Anbalagan: Enhance Informix Dynamic Server security using the Pluggable Authentication Module framework and JDBC - Increased authentication flexibility for IDS.
The article includes a working example PAM module written in C with Solaris 32 compilation instructions and configuration file. Next is a an example JAVA callback module using JDBC. The Informix JDBC driver has supported PAM since 2.21.JC5. (Incidentally the JDBC version coming out with Cheetah will be 3.10.)
At one point the article states:
Note that IDS also supports LDAP on Windows which is set up and configured just like PAM - look in %INFORMIXDIR%\demo\authentication for an example. The IDS documentation for LDAP on Windows is here: http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.admin.doc/admin219.htm.[Read More]
There is an interesting article in the latest edition of the German IT publication entwickler magazin entitled Comeback Der Kult-Datenbank.
In it Eric Herber discusses the Open Beta Program for IDS version 11.10, speculates on the choice of the codename Cheetah ("fast, silent and extremely efficient") and introduces some of the new features. The impressive sales growth of IDS in the last year is mentioned and how IBM has changed its database strategy, now giving DB2 and IDS equal status, positioning them for different target markets depending on their specific strengths.
The article concludes with the comment that in a highly competitive database market Informix is evolving as IBM's trump card due to its low administration costs, resource gentle, highly scalable multi-threading architecture and extensibility features.[Read More]
gbowerman 100000B5T0 3,126 Views
Does anyone remember the Informix for Innovation Software Grant Program? This ended around the turn of the millennium and a few fragments remain. According to these details at the Synergos Institute the average total yearly giving was $5 million.
The legacy of these grants lives on in the form of continuing projects which benefited, such as SETI@Home. Another example is Bugscope (1, 2) which is still actively engaged in education programs. Other beneficiaries include Large Scale Distributed Information Systems and the St. Petersburg State Polytechnic University. Some projects which came to an end like the Heron Middleware forImage Retrieval at the University of Augsburg spawned new research projects which are still ongoing.
Back in the present, IBM has the Shared University Research Program, the IBM Academic Initiative, IBM Research work with universities. They even have a Second Life training presence which "includes a giant labyrinth where software developers can build robots and race them against each other". What I don't know is whether Informix is involved in any of these current initiatives. If anyone happens to know I'd be interested to find out.[Read More]
A new developerWorks article was published last week by Abhishek Mathur called Using the new Deployment Wizard in IDS Cheetah - New control for the IDS install process.
The article highlights an important new feature in IDS 11.10 install - the ability to customize which components are installed.
Now instead of copying all the files during installation, just those for the chosen components are copied. For IDS 10.0 and below most of the files in the media were language files of which only a small subset were likely to be relevant to your locale. I am not sure I go along with this sentence though..
Have you seen how large some other Enterprise RDBMS installations are? However the point of this sentence is well-intentioned. Perhaps 270Mb should be viewed as considerable if we can reduce the footprint by only copying the required files.
This goes a step towards Componentization - where you can pick and choose which Software components you wish to install rather than legacy all-or-nothing software installations.[Read More]
gbowerman 100000B5T0 3,337 Views
I just read an interesting post from ZDNet blogger Paul Murphy entitled Sun’s training problem..
I know of a Sun V880 installed in January of 2002 with eight 750Mhz processors, 16GB, and four A1000 disk packs that ran Informix 10 with Sybase/IQ with exactly zero downtime for almost three years despite a half dozen or so disk replacements and a Sybase upgrade....Paul's main point is about Sun not evangelizing their SMP and in-memory data integration solutions, though the implication is also there that IBM has work to do to evangelize the modernity, relevance and reliability of Informix Dynamic Server.
Reading this led me to reminisce about my first Sun machine at Informix, an Ultra 2, running several IDS instances, it never stopped working.[Read More]
A closed beta for the Windows 64-bit port of IDS is scheduled to begin around mid-May. The 64-bit port has some performance advantages, including support for shared memory greater than 4GB. Here's an example onstat -g seg from a pre-beta test instance showing >5GB shared memory. Note that SHMBASE is now placed above 2GB (0x80000000).
D:\disks\ids\x64>onstat -g seg
Update 4/7/07: Note that this is a x86_64 (also known as AMD64) port. No IA64 version is currently planned.
If anyone is interested in participating in this beta please contact the project manager Anita McKeithen.[Read More]
Keen eyed readers of the developerWorks Information Management pages may have noticed a new cat:
Could this be the beginning of project Ocelot - a cuter and slightly slower version of Cheetah, with improved striping capabilities?
Update 4/2/07: it looks like developerWorks has updated their cat and is now back on-message..
The top story developerWorks article referenced is: Non-blocking checkpoints in Informix Dynamic Server by Scott Lashley - Tune Informix Dynamic Server to take advantage of non-blocking checkpoints and RTO_SERVER_RESTART in an online transaction processing environment - a detailed architectural explanation of the non-blocking checkpoints feature of IDS 11.10 that is well worth a read.[Read More]
The Unofficial Oninit blog has an article with an English introduction on how to make IDSAdmin work with non-English locales: IDSAdmin with non-English DB ?
It's good to see people customizing IDSAdmin. The PHP code is there for anyone to modify for their own purposes. The problem the blog mentions "The current open beta version of IDSAdmin does not use Locale variables when it establishes connection to the database server" has now been logged and will be fixed by GA.
New Informix PDO Driver Version
An Informix PDO Driver for windows compiled against the latest versions of the driver and also PHP (version 5.2 and 6) has been released and is downloadable at the PECL4WIN site here: http://pecl4win.php.net/ext.php/php_pdo_informix.dll.
This means you should now be able to use the latest versions of XAMPP. I have not tested this yet but my colleague tried copying the latest XAMPP over his existing installation, with the new PDO driver, and reports that it is working.[Read More]
In part 1 of this article I looked at how to use the ZK AJAX web framework to:
The application created in part 1 was a demo of implementing these two methods, but did not do anything usable. In Part 2 I will use these methods to create to create a working BREAD (browse, read, edit, add, delete) application for a database table containing an image file and informational columns.
Note: This example was tested using the Firefox browser.
Part 2 - a photo database application
To convert the simple demo of part 1 into a working application the following major features will be added:
This article builds on part 1, and assumes a working ZK environment with database connectivity via JDBC, and a new or existing ZK application.
2. The species database
For this example I am choosing to store the photo column in a separate blobspace. This is a design choice at the Informix data server level and makes no difference to how the application works (it just reduces I/O to the physical log). On my Windows laptop the commands I used to create a 100Mb blobspace called blobspace were:
copy NUL c:\ifmxdata\%INFORMIXSERVER%\blobspaceonspaces -c -b blobspace -g 4 -p c:\ifmxdata\%INFORMIXSERVER%\blobspace -o 0 -s 102400ontape -s -L 0onmode -l
The new database will store some basic information about animal species in table spc_list: name, genus, species, photo:
create database imgdb2;
3. Define the presentation layer
In previous ZK examples I have inter-mingled ZUML markup tags which define the presentation with the ZSCRIPT Java code which defines the service methods. This is ok for small examples but starts to look messy for larger applications. This time the ZSCRIPT code is stored in a separate file: part2.jul for clarity. Note the file can have any name and extension, I just made up ".jul" to remind me that this is Java code sourced from a ".zul" file.
The GUI part of this application consists of a listbox on the left side of the screen. On the right side of the screen is an image and detail grid, with a panel of buttons separated by a splitter. This is my index.zul file:
<zk> <window title="Pacific Northwest Fauna" border="normal" width="1000px">Note one deviation from the default display characteristics.. I redefined the listbox element slightly using a STYLE tag to make the border between rows stand out more.
Note also there is one line of embedded zscript code at the end, to call the method to retrieve the records at startup, and pass on the name parameter if it has been optionally included in the URL (e.g. http://localhost:8080/imgdb2/?name=Hairy%20Woodpecker).
4. Define the service methods
This is the Java code to populate the listbox and implement functionality behind the buttons. The listbox is dynamically generated by implementing the ListitemRenderer class. Note that the listbox is populated using the retrieveRecords() method and is set to use the SimpleListModel.
The displayRec() method is called when a row in the listbox is clicked on and uses the same approach as in part 1 to select the image object from the database and display. In part 1 if the image was too large it would overflow the window it was defined in. Here the image is set to a fixed width of 500 pixels and the height is dynamically set to maintain the aspect ratio; this way the application maintains its overall proportions and the images are displayed correctly.
The file upload is implemented in a separate method called doFileGet() called when the New photo button is pressed. A boolean variable newImage is set when an image has been uploaded.
This allows the addRec() method to support adding a record with or without an image, and query the user to make sure they wanted to add a record if no new image is present.
Similarly the modifyRec() method can modify fields in the table without changing the image if the user did not upload a new image before pressing the Modify button.
The part2.jul file contains the following:
// image database application zscript codeimport org.zkoss.image.AImage; import java.sql.*;import javax.naming.*;import javax.sql.*;Now the application is starting to become useful, particularly for a small database; but suppose there were thousands of records - dumping them into a simple listbox is not going to work so well, the application would need to display records pages at a time. The following features would also be nice to have:
In part 3, when I get around to writing it, I'll look at adding some of these features. If you have any suggestions for part 3, or ways to improve the existing code please let me know.[Read More]
gbowerman 100000B5T0 4,177 Views
The time has come once more to find out what bloggers in the wider worldof Information management are up to as I host Log
How do you survive when you are new to a DBA job? Keep a journal of aquired
knowledge is an example of Julien Lamarche's sage advice in
href="http://www.pythian.com/blogs/345/tips-for-the-new-dba">Tips for the New DBA. Couldn't agree more, and
lately it has become easier, I might rephrase this as "dump any useful information you learn into a Wiki".
Expect those MySQL guys to be glowing with fitness next time you see them.. Kaj Arnö has a report on the
href="http://www.planetmysql.org/kaj/?p=94">MySQL Global Sports Day, also documented complete with movie by Ronald in Technical Notes and Articles of Interest.
Is enabling autocommit the same as disabling transactions? No, explains Roland Bouman in
and Autocommit with some clear guidelines of when you would, and would not want to use autocommit.
Does MySQL have a community release? Peter in the MySQL
Performance Blog sees the recent MySQL 5.0.37 as the first
real Community Release because it contains community contributed features, unlike previous versions which came from the Enterprise MySQL source tree.
Be aware of some MySQL auto incrememt gotchas warns Eric Bergen in
auto increment ids outside of mysql - a well written explanation of the feature and potential problems. I like
his blog tagline: You will probably want some waders, a pick axe, and one of those hats with a light on it
before you go in here.
Today's web technologies like LAMP, AJAX and Ruby will become tomorrow's enterprise
infrastructure says Steve Curry, the director of corporate communications at MySQL quoted in an
interesting Reg developer article asking
href="http://www.regdeveloper.co.uk/2007/03/18/mysql_enterprise_fit/">is this database fit for the enterprise?
The Informix Zone announces the next Cheetah Open Beta Drop
is available with some cool new features like Label Based Access Control. The Zone also has its usual
thorough review of therecent Integrated Data Solutions for IBM IDS Cheetah Chat with theLabs.
The new Informix team blog IDS Experts begins
a two part article on
href="http://www.ibm.com/developerworks/blogs/page/idsteam?entry=tracing_sql_in_cheetah_part&ca=drs-bl">Tracing SQL in Cheetah, and also informs us that
href="http://www.ibm.com/developerworks/blogs/page/idsteam?entry=support_for_truncate_table_in">TRUNCATE TABLE is
now supported in Enterprise Replication.
In IBM's other database.. Willie's Getting the Most
out of DB2 for z/OS and System z blog reminds us that
href="http://blogs.ittoolbox.com/database/db2zos/archives/db2-9-for-zos-went-ga-today-15146">DB2 9 for z/OS has
The DB2UDB.com compiles a useful list of DB2 SQL Cookbook Downloads Page with brief reviews.
How do you get directly into shared memory on DB2? With db2pd of course. Read Chris Eaton's
description of how touse db2pd to
In the world of Oracle, Alex Gorbachev has a nice write up complete with pictures of his
href="http://www.pythian.com/blogs/406/review-of-hotsos-symposium-2007">visit to the Hotsos Symposium 2007
ealier this month in Dallas - that's an Oracle performance conference in case you were wondering. Oracle
performance gets some analysis in Gaurav Verma's post: A Performance Case Study: Taming the
Workflow Purge which looks at in depth at I/O performance.
So how much Oracle do you think you know?
href="http://blogs.ittoolbox.com/database/solutions/archives/test-your-dba-smarts-15219">Take the quiz
suggests James F Koopman in An Expert's Guide to
Don't you hate it when you accidently delete $38 Billion worth of data and your restore fails? Several
bloggers picked up this story, including the Eye on Oracle blog which reminds us
href="http://eyeonoracle.blogs.techtarget.com/2007/03/20/this-is-why-to-test-your-backups/">This is why to test
your backups! Another sorry tale of bad and expensive things is recounted in
Dizwell's blog, a first person account entitled
href="http://www.dizwell.com/prod/node/628">The only issue.
That is all for this week's Log Buffer. Normal service will be resumed next week.[Read More]
The Informix Application Development blog marks its first anniversary today. When I started this blog a year ago I wondered how long it would be before I ran out of things to write and the blog went the way of most blogs, slowly running out of steam. Fortunately it has been a good year to be writing about Informix. With rapidly growing sales, an open beta for a major new release and many people generating content to review in the form of technical articles on developerWorks and other sites, there is always something to write about. There are more detailed articles lined up waiting for me to have time to write them.
A great sign of the rejuvenation of Informix is the proliferation of new blogs and websites devoted to the product in the past year. Highlights include The Informix Zone, independent of IBM and the definitive website for Informix advocacy and content. The Informix Technology blog, an excellent source of well-researched in-depth articles. Informix Magazine an IDS driven portal and aggregator for all things Informix. The IDS Experts blog - a new platform for Informix Tech Support and Development engineers. Meanwhile, the International Informix User Group has negotiated a free download of IDS with no time-limit, in addition to the growing repository of user contributed Informix utilities. Open source Informix initiatives have also been on the increase, for example the Informix Driver for Ruby and the continued development of DBD::Informix.
Lessons I have learned after a year of blogging include:
It has been fun writing the blog this past year and I have got to know some good people along the way. Informix has a loyal and growing following both inside and outside of IBM, having earned its status as a cult database through a combination of performance, reliability, small footprint and ease of administration that place it in a category of its own. Yes I am biased.[Read More]
What follows is a brief summary of problems you might encounter running IDS 10.0 or 11.10 beta on Windows Vista, and what to do about them.
We did not see any show stoppers when we tested Vista at the Microsoft Platform Adoption Center, just minor issues that can be worked around.
A big cause of problems applications running on Vista can encounter is the new User Account Control Feature - which prevents user programs from modifying the HKEY_LOCAL_MACHINE Registry key, starting services and other system tasks unless they are executed with the "run as administrator" option. The good news is that because IDS runs as a Windows service it is not subject to UAC restrictions, so main IDS functionality is unaffected. Also since recent versions of IDS and CSDK support IPV6 there are no issues with the new TCP stack.
Note that IDS 10.0 is not currently supported on Vista - though the 11.10 release version will be. This does not mean tech support won't try and help, more that Vista compatibility fixes may not be back ported to 10. However these things are subject to change, so if you read this post after today verify the current support status with tech support.
Why use Vista?
One reason you might want to go to the trouble of installing Windows Vista is performance. If you have a machine with plenty of memory you can take advantage of improved caching algorithms and a re-written TCP/IP stack.
We didn't have much time for performance testing in Redmond, but based on a simple SQL fetch comparison between XP and Vista on a 2GB dual core machine - 500 users were around 18% faster on Vista and 1000 users were around 30% faster. Don't read much into this - set up realistic tests for your application - and if you have less memory all bets are off, Vista likes memory.
Known Problems and Workarounds
The following table lists some problems you might run into with IDS 10.0 and 11.10 Beta on Vista. If you have experienced any other Vista specific issues please comment.
One way to avoid all the problems associated with the User Account Control feature would be to disable it to get back behaviour similar to that of XP - not surprisingly Microsoft recommend not doing this.
Some issues you might see are systemic in that they are due to the operating system locking down services which were previously open rather than application incompatibility problems. An example is that machines will not be able to ping each other or connect to network sockets without first enabling netbios over TCP and Filesharing/Discovery services.
I will update this post if any new information comes to light.
Update 4/16/07: See advice on Installing the Informix JDBC Driver on Windows Vista on jgp.net.[Read More]
This is part 1 of what will ultimately be a 3 part article describing an AJAX-based front end to an image database written in ZK - an event-driven component-based development framework. ZK can work well for GUI web applications as it provides a simple markup language to define the user interface and takes care of the AJAX synchronization behind the scenes.
Part 1 - Uploading and downloading images to a database
A ZK database application has the following dependencies (if you have ZK installed and you know how to get a database connection you can skip this part):
2. Create a Database
For part 1 a simple table consisting of an image number, image name and a byte data type to store an image is sufficient:
create database imgdb1;create table album(id serial, name varchar(100), img byte);create unique index nameIdx on album(name);
3. Create a new ZK Application
Create a new application directory, say "imgdb1", (under $TOMCAT_HOME/webapps if using Tomcat), and edit the WEB-INF/web.xml file to add ZK support. The ZK Quick Start Guide (PDF) section 5 describes how to do this.
4. Write the Presentation Layer
One of ZK's strengths is the ease of writing a user interface with the ZUML markup language. Note: the <ZK> tag shown here is closed in step 5. In my example, the code in steps 4 and 5 is written to a file called index.zul (which the server will recognize as a default file like index.html). A window containing the image and Display/Add/Delete buttons can be succinctly defined in ZUML as follows:
5. Write the Database Service Methods
The displayImage() method selects the named image from the database, retrieves it from the ResultSet as an InputStream object which can then be set to the image defined in the window via an AImage object.
The uploadImage() method calls FileUpload.get()to upload an image from the local filesystem to the database. If the file is confirmed to be an image it is retrieved as a byte array and bound to a prepared INSERT statement.
The deleteImage() method sends a DELETE statement to the database.
<zscript> import org.zkoss.image.AImage; import java.sql.*;import javax.sql.*;import javax.naming.*;In this example the Connection conn = ds.getConnection(); statement gets a JDBC connection from a connection pool. Replace this (and the Context and DataSource declarations) with a direct DriverManager.getConnection(url) call and associated initialization code if you prefer to make a direct connection.
Now, assuming the data server is online, pointing the browser to the application URL (in my case http://localhost:8080/imgdb1/) should display the application.
Part 2 will add basic browsing, update, delete, and a incorporate a few informational fields to the database application. Comments are welcome, particularly suggestions on improving the code.[Read More]