IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
    
     Home      Products      Services & solutions      Support & downloads      My account     
developerWorks  >  Blogs  >   developerWorks

author Informix Application Development

Guy Bowerman is the Informix Dynamic Server (IDS) architect for Windows, Installation and common libraries. This blog covers IDS application development, with digressions into operating systems, security and other topics. The postings on this site are his own and do not represent positions, strategies or opinions of IBM.



Monday April 07, 2008

Chat with the Labs - Optimizing Performance


Here is a reminder for tomorrow's chat with the lab with Jerry Keese and John Miller III..

    Tuesday, April 8th, 2008

    8 AM PST, 10 AM Central, 11 AM Eastern, 4 PM London, 5 PM Paris

    Optimizing IDS Performance

    In this Chat, some of the more popular onstat options for performance issues will be covered, showing how they have evolved throughout the history of IDS. With this as a backdrop, guidance will be given to a performance-minded administrator on how to use the improved onstat information to get the most out of IDS. Our speakers will be Jerry Keesee, Informix Lab Director and John Miller iii, Senior Technical Staff Member.

    You may RSVP for this Chat at: https://ww4.premconf.com/webrsvp/register?conf_id=9943887 . For RSVP assistance by phone, you may call 1-800-289-0579 and refer to the call with Confirmation Code 9943887.

    Questions, comments: lspina _ at_ us.ibm.com


Categories : [   performance  ]

Apr 07 2008, 06:18:40 PM EDT Permalink



Thursday April 03, 2008

DLL Hell Part 4: Optimizing Shared Memory Usage on Windows

My erstwhile colleague Johann Backlund writes from Sweden:
    
    ...
    I thought I would take a chance on guessing your email address to send 
    you some of my experiences regarding IDS shared memory allocation and 
    DLL's ...maybe something you could include in your blog series on the 
    topic (part 1, part 2, part 3). 
    I had planned to send this as a comment to your blog, but since comments 
    are disabled...(hint, hint ;o)...
    
    I'm working with a customer that just took the big step from 7.31 to
    10.00. The migration went fairly well, but after a week or so they got
    problems with onstat, onmode and oncheck. They got the standard error:
    
    shmat: [22]: operating system error
    MapViewOfFileEx: w32ec=487 at nt_shm.c:663
    Unable to attach to shared memory.
    Invalid argument
    
    and this seemed to occur when the total shared memory size had grown to
    around 1.7GB. They are running 10.00.TC6X2 with /3GB turned on.
    
    We tried applying the KB913409 hotfix and ran this with both 10.00.TC6X2
    and 10.00.TC7 (because of the fix for IC52767), but we could still
    reproduce the problem.
    
    After some experiments, I managed to pinpoint the exact segment causing
    the problem and compared the set of DLL's loaded by oninit.exe with the
    DLL's loaded by the other utilities. I found that there were two DLL's in
    the address space occupied by that segment: WINMM.DLL and PSAPI.DLL.
    
    By increasing SHMADD to 34000, that particular address space wasn't used
    by IDS and this allowed the customer to allocate all of their memory
    without causing problems for onstat et al.
    
    So, this problem can actually occur even though DLL's are loaded in the
    correct address space and the best way to avoid it is to set SHMADD to a
    higher value to make it stay away from those small areas in the system DLL
    address space. Also, I think Informix should consider to:
    
      * make oninit.exe load the same DLL's as the shared memory based utilities.
      * have oninit.exe stay away from the system DLL address space altogether
       (not sure that Win32 API allows this in a simple way).
      * add documentation on the problem with suggestions on increasing SHMADD
       - maybe even set the minimum value to a higher value than now (like 64M).
    
    ...
    
    cheers
    
    Johan
    
Thanks Johan.

About disabling comments. Unfortunately I had to disable comments on the blog the other weekend after getting 150 spam comments in the space of a couple of hours. Each one had to be manually removed. DeveloperWorks has since installed new a captcha mechanism, so I might re-enable them soon when I'm feeling brave. Comments have been temporarily switched off on IDS Experts too.

What Johan's comments show is that there is more than one approach to optimizing shared memory usage on the 32-bit Windows platform. You can rebase DLLs out of the way, but tuning the size of shared memory segments can be equally useful. Thanks to Microsoft not seeming to place a very high priority on DLL base address standards this problem needs to be revisited with almost every operating system service pack. At least 64-bit Windows gets over this problem with 8TB of addressable space.

Categories : [   windows  ]

Apr 03 2008, 09:31:57 PM EDT Permalink



Tuesday April 01, 2008

Ruby/Informix 0.7.0 - Now with INTERVAL Support

The open source Ruby/Informix driver developed by Gerardo Santana has been updated to include INTERVAL data type support, along with Ruby 1.9 compatibility and other enhancements and bug fixes. Here is Gerardo's announcement in full:
    Update 4/3/08
    
    Unfortunately, one of the structural changes introduced in 0.7.0 was
    not done right and caused that the name of Informix resources were not
    unique.
    
    This is fixed in 0.7.1, along with a documentation bug, and an
    optimization that speeds up Database#columns (considered a bug also,
    hence its inclusion in 0.7.1).
    
    
    Original announcement
    
    I'm pleased to announce another release of Ruby/Informix, a Ruby
    library for connecting to IBM Informix.
    
    In this release you'll find support for the INTERVAL data type, more
    handy methods and more and better documentation with examples, along
    with a new web site.
    
    Web site: http://ruby-informix.rubyforge.org/
    Documentation: http://ruby-informix.rubyforge.org/doc/
    
    Some examples:
    
    Connecting to a database:
    
        db = Informix.connect('stores')
    
    
    Inserting records
    
        stmt = db.prepare('insert into state values(?, ?)')
        stmt.execute('CA', 'California')
    
    
    Iterating over a table using a hash (shortcut):
    
        db.each_hash('select * from customers') do |cust|
          puts "#{cust['firstname']} #{cust['lastname']}"
        end
    
    
    
    Changelog follows:
    
    0.7.0  03/31/2008
    ------------------
    New features:
        * Experimental support for the INTERVAL data type:
            - year_to_month, day_to_fraction, from_months and from_seconds class
              methods for creating an Interval object
            - +@ and -@ unary operators
            - +, * and / operations available with Integer, Rational, Date, Time
              and DateTime objects
            - methods for returning the respective fields of an Interval object
              individually (years, months, days, hours, minutes and seconds)
            - to_a method for returning the fields of an Interval object as an array
            - methods for converting the Interval object to the given unit, where
              apply (to_years, to_months, to_days, to_hours, to_minutes and
              to_seconds)
            - to_s method for displaying an Interval object as an string according
              to ANSI SQL standards
            - includes Comparable
        * Database#version returns a struct with version information of the database
          server.
        * Database#each and Database#each_hash shortcut methods for declaring and
          opening a cursor in a single step.
          Contributed by Reid Morrison 
    
        * Database#execute is not an alias for Database#immediate any more.
          It has become a shortcut for preparing and executing a statement in a
          single step.
        * SequentialCursor includes Enumerable
        * Ruby 1.9 compatible
        * More and better documentation
    
    Bugs fixed:
        * The documentation for class Error was not being recognized by rdoc
    
    Remarks:
        * Database.new deprecated in favor of Database.open
        * Database#do was removed
        * A lot of C code has been reimplemented in Ruby
        * Modules and classes have been reorganized
        * Database#execute still behaves the same, except that it can also accept
          input parameters and return at most one record. Database#immediate is
          more efficient though.
    -- 
    Gerardo Santana
    



Apr 01 2008, 01:25:19 AM EDT Permalink



Saturday March 29, 2008

How to register a blade without using Blade Manager

Is there any way to register a datablade without using Blade Manager (also know as blademgr)?

There isn't a great deal of need for this on UNIX since the blademgr command line utility is distributed as part of IDS in the bin directory - though having said that it would be handy to be able to perform as many administrative functions as possible remotely via SQL.

On Windows there is no command line blademgr utility; the only option is to install the DBDK (DataBlade Developer's Kit) and use the GUI Blade Manager utility in order to register a blade with a database. That seems like a lot of effort to go to just to register a blade, especially since IDS 11.10 comes with some new bundled blades like Binary UDT, Basic Text Search and Node.

There is an alternative to calling blademgr, and that is to call the underlying SYSBldPrepare() and SYSBldRegister() SQL functions to register a blade manually. As far as I know this method was first published externally by Jochen Platzer in this comp.databases.informix thread in 2004: datablade registration in ANSI database

For example here is how I would register the Binary UDT datablade with a database called "mydb":
    DATABASE mydb; EXECUTE FUNCTION SYSBldPrepare('ifxmngr', 'sysblderrorlog'); EXECUTE FUNCTION SYSBldRegister('binaryudt.1.0','sysblderrorlog');

Now suppose I wanted to automate this process on Windows and create a batch file that registers an arbitrary blade to a database. Something like this would work for simple blades (i.e. blades that do not depend on other blades):

    bladereg.bat: echo EXECUTE FUNCTION SYSBldPrepare('ifxmngr', 'sysblderrorlog'); ^ EXECUTE FUNCTION SYSBldRegister('%2','sysblderrorlog') | dbaccess %1
So to register the Binary UDT blade to a database "mydb" using this batch file you would call: bladereg mydb binaryudt.1.0.

See Jochen's original post for instructions on manually registering blades that depend on other blades (like the Excalibur Text Blade for example). In summary, each dependent blade should be registered with SYSBldRegister in the correct order.

Is this method a supported way of registering a blade? Well, since it is not officially documented (AFAIK), it could change at some point, so if you have trouble with it, it would be advisable to try reproducing the problem with blademgr first.

Categories : [   blades  ]

Mar 29 2008, 06:44:55 PM EDT Permalink



Friday March 21, 2008

Database Popularity Contest

I love meaningless internet popularity contests where you never really know whether the winning object of affection has the popular vote or the most orchestrated get-the-votes-out campaign. This year IBM Informix Dynamic Server 11 (IDS 11) is in the finals of the CI Product of the Year: Databases, along with Oracle Database 11g, Microsoft SQL Server, MaxDB by MySQL and CodeGear's InterBase 2007 Server Edition. So here's your chance to vote, and take part in direct democracy at its best, where sovereignty is held by the assembly of all citizens who choose to participate, or the most fanatical pressure group, depending on one's perspective.


Mar 21 2008, 01:11:43 PM EDT Permalink



Tuesday March 18, 2008

IBM’s Top Performing Value Add Distributor - Bell Micro

Congratulations to Bell Micro who are the "2007 Top Performing Value Add Distributor - IBM Software" as announced in this press release today: BELL MICRO NAMED IBM’S TOP PERFORMING VALUE ADD DISTRIBUTOR FOR SOFTWARE.

From the press release:

    "Bell Micro has been awarded as our best OEM Distributor in North East Europe for 2007,” said Aurore Achour, VAD Sales Manager, IBM Software Group - North East Europe. “The company, whose core offering is Informix OEM, has managed to grow both new business and maintenance OEM revenue in 2007, leading sales for North East Europe. More importantly, Bell Micro has demonstrated great value with a high number of technical certifications and skills, plus 24x7 support for both end-users and ISVs. Not only have they highly performed in OEM sales but they have also more than demonstrated their skills as Value Added OEM distributor.”

Bell Micro develop applications based on Informix technology and use these to help ISV's develop business solutions with lower hardware costs. They are also the creators of the popular Informix City website.

Categories : [   sales  ]

Mar 18 2008, 01:36:00 PM EDT Permalink



Monday March 17, 2008

IDS Problems with Windows domains - status

There have been some major problems with IDS running in Windows domains, and on domain controllers lately, and now is a good time to summarize those problems and what to do about them. I should start with a confession - we were not doing enough testing of Windows domain installation scenarios on IDS which allowed problems to creep in. As part of this investigation several new QA tests were introduced to prevent problems like this recurring.

Below is a summary of known problems with their APAR numbers which you can reference when communicating with Tech Support. APAR numbers are the defect reference numbers that begin with ICxxxx. These are only generated when a customer case is attached to a problem. If a product defect was identified and fixed internally the reference I quote starts with "idsdb" and it will be equally meaningful to tech support.

All of these problems are fixed in the latest PID (Post Interim Drop) releases of the IDS 10 and 11 codelines: 10.00.TC8W1 and 11.10.TC2W2. If necessary call tech support to discuss the status of individual defects in more detail and whether it is appropriate to receive a patch.

IC55604 WINDOWS: IDS DOMAIN INSTALL IS NOT WORKING
If the Install in Domain option is checked and if the informix 
user does not exist on the PDC/BDC, then an error message like 
the following appears:					       
Installation Message					       
---------------------------				       
The user DOMAIN\informix does not exist. Please specify an     
existing user name.					       
---------------------------				       


IC55601 WINDOWS: IDS CANNOT BE INSTALLED INTO A MICROSOFT WINDOWS DOMAIN
In a new installed and configured MS Windows domain of Windows 
Server 2003 Enterprise					       
an IDS version 10 cannot be installed.			       
After the installation was started, a new user has to be       
created during the installation process.		       
When the password for the new user 'informix' was inserted,    
and the 'ok' button was used				       
an error message box like this appears: 		       
---------------------------				       
Installation Message					       
---------------------------				       
The user DOMAINNAME\informix does not exist. Please specify an 
existing user name.					       
---------------------------				       
OK							       
---------------------------				       
Normally the information for the new user 'informix' should be 
collected.						       
Therefore this user cannot exist on this system at this time.


IC55169 WINDOWS DOMAIN USERS ARE ONLY ACCEPTED AS DOMAIN\USERNAME NOT USERNAME
You have a Windows 2000 domain style user, and a client        
computer that belongs to that domain.			       
Starting from IDS 10.00.TC6  when authenticating domain users, 
the only format accepted is				       
   DOMAINNAME\username					       
while							       
    username						       
always returns error -951.
(also reported as idsdb00153303 for IDS 11.10.xC2)


Defects which only occur in IDS 11.10

IC55490 WINDOWS: IDS 11 INSTALL ON DOMAIN CONTROLLER FAILS WITH NOROLESEP_CREATEINFXUSER 3
When IDS 11 is installed on a Windows Domain Controller on     
which the informix user does not exist the installation fails  
with the following error:				       
norolesep_createinfxuser 3 - Could not add the specified user  
to the group.						       
Although the Informix user and the Informix-Admin group get    
created, the Informix user is not added to the Informix-Admin  
group and not granted the required privileges to start IDS as a
service.						       
This problem is specific to the IDS 11.


idsdb00134811 ONINIT FAILS WITH IXDBSA GROUP ERROR AFTER INSTALLING ON WINDOWS PRIMARY DOMAIN CONTROLLER


Categories : [   install  |  windows  ]

Mar 17 2008, 04:57:32 PM EDT Permalink



Thursday March 13, 2008

DLL Hell Part 3 - DLL address clash problem in Windows Server 2003 SP2

It seems like every time Microsoft release a new service pack they introduce a DLL load address regression with it. For a little background on DLL load addresses and the problems they can cause for applications such as IDS refer to two earlier blog entries: part 1, part 2.

This time the culprit is the home networking configuration manager DLL hnetcfg.dll. In IDS installations with large shared memory configurations on Windows Server 2003 SP2 oncheck can fail with an error like this:

    shmat: [22]: operating system error
    MapViewOfFileEx: w32ec=487 at nt_shm.c:663
    Unable to attach to shared memory.
    Invalid argument

The default load address of hnetcfg.dll changed from 0x7F010000 in Windows Server 2003 SP1 (with KB913409 hotfix) back to an address space fragmenting 0x5F270000 in SP2.

To resolve the new problem, ask Microsoft for a fix of KB 948656.

ps. Thanks to Tim Steele in Australian Advanced Support for keeping track of these defects and chasing Microsoft.

Categories : [   troubleshooting  |  windows  ]

Mar 13 2008, 12:32:00 AM EDT Permalink



Tuesday March 04, 2008

Learn along with me

On second thoughts don't learn along with me. I have the attention span of gnat. Learn along with Kate Dawson, who recently joined the Data Server Education Team in Toronto and is documenting her experiences in a new blog called Learn along with me: Data Server training, certification, and education resources. In her current post she spotlights the free certifications available at upcoming data server conferences such as the IIUG conference in April, along with available self-study tutorials, certification guides, and self-assessment exams.

Welcome to IBM Kate.

Categories : [   education  ]

Mar 04 2008, 06:15:02 PM EST Permalink



Monday March 03, 2008

Webcast Tuesday - Securing Your Data

Informix security architect Jonathan Leffler is giving a webcast on Tuesday March 4th 2008 at 12PM Eastern (5PM UTC) entitled Securing Your Data: Choosing the Right Platform.

    There's no doubt that information security, especially that of your database, is of ever increasing importance. Just pick up a newspaper or turn on the news and you'll hear about how yet another large company or organization has put thousands or millions of their constituents' private information at risk - and paid the penalties including loss of confidence.

Attendees will learn:

  • The impact of the latest government regulations on database choices
  • What even small companies need to know about database security
  • How to be best prepared for audits or regulators
  • How to protect your data - at rest and while 'on the wire'


The flyer for this webcast and registration details can be found here.


Draft Redbook: Security and Compliance Solutions for IDS

The draft of new IBM Redbooks publication Security and Compliance Solutions for IBM Informix Dynamic Server is now available at the IBM Redbooks web site: http://www.redbooks.ibm.com/redpieces/abstracts/sg247556.html. This Redbook provides an overview of security features in IDS and has the following contents:

    Chapter 1. Technology overview
    Chapter 2. Role separation
    Chapter 3. Auditing
    Chapter 4. Securing data with SQL
    Chapter 5. Client-server communication
    Chapter 6. Server-server communication
    Chapter 7. Security issues with Backup and Restore
    Appendix A. Audit event mnemonics
    Appendix B. PAM API and macros
    


So take a look if you'd like to preview this book prior to final publication and perhaps provide feedback.

Categories : [   security  ]

Mar 03 2008, 01:19:16 PM EST Permalink



Wednesday February 27, 2008

Informix on Facebook

By the time I get around to joining a social network you can be sure it stopped being cool a long time ago. I created a MySpace profile when the only growing demographic was "sad bloggers with nothing better to do". Yesterday I finally joined FaceBook, so if you value your credibility get out now.

If you ignored this warning and still have have an account, you can become a fan of Informix Dynamic Server. I'm not sure about the concept being a fan of a product from a philosophical perspective, but am willing to make an exception for IDS, what with it being a Kult-Datenbank and all. The fan page has some interesting announcements and videos, though no photos as yet - I guess it's just a matter of time until someone adds the race car..


Feb 27 2008, 04:01:58 PM EST Permalink



Tuesday February 26, 2008

IBM Database Magazine Issue 1

The newly renamed IBM Database Magazine issue 1 is now published. This month there are a few Informix related articles: There is also an article on IBM Data Studio: Dawn of a New Era in Enterprise Data Management by Cynthia Harvey, which includes some information on where Data Studio is heading:

    More components will be integrated into the various life-cycle stages IBM Data Studio manages in the coming year. Some will be components of the free download, others will be paid features. Here's what features are likely to be added in the near future.

    • Rational Data Architect will become a fully integrated modeling component of Data Studio and will remain a paid feature
    • The Data Studio Administration Console, which provides monitoring capabilities, will be a component of the free offering and is currently available as a technology preview
    • Paid features for performance management, change management, query tuning, problem determination using pureQuery, and a test data generator are all likely additions in 2008



Feb 26 2008, 01:06:39 AM EST Permalink



Thursday February 21, 2008

Visual Studio Add-Ins standalone download

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.

Categories : [   VSAI  ]

Feb 21 2008, 07:03:37 PM EST Permalink



Wednesday February 20, 2008

Cheetah 2 Open Beta - download it now

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.

Categories : [   cheetah2  ]

Feb 20 2008, 07:21:23 PM EST Permalink


Wednesday February 20, 2008

Farewell DB2 Magazine

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.


Feb 20 2008, 05:15:43 PM EST Permalink

Previous month
  April 2008
Next month
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
27282930   
       
Today

RSS for

RSS for

Favorites
IDS Developer and User Forum
Informix Mag
International Informix Users Group
The Informix Zone
developerWorks Informix Page
Categories
4gl (1)
DE (2)
DataStudio (2)
ER (1)
MacOS (4)
SAP (1)
VSAI (1)
ajax (6)
apache (5)
appliance (1)
archecker (2)
blades (1)
blog (5)
blogs (1)
certification (1)
cheeetah (1)
cheetah (29)
cheetah2 (5)
conference (27)
csdk (2)
cygwin (1)
db2 (1)
dbaccess (2)
developerworks (1)
drda (1)
dws (1)
education (1)
er (2)
esql (5)
fragmentation (1)
gcc (1)
hdr (2)
hpl (1)
ids (2)
idsadmin (2)
idug (10)
iiug (14)
install (5)
iod (9)
java (18)
jdbc (3)
krakatoa (4)
lbac (2)
links (1)
linux (7)
mathematics (3)
migration (3)
mobile (1)
oat (2)
onbar (1)
performance (13)
perl (2)
php (8)
podcasts (1)
python (3)
rational (1)
redbook (1)
rfid (1)
ruby (7)
sales (14)
scheduler (1)
security (13)
solano (2)
solutions (1)
spatial (1)
sql (6)
support (1)
techfair (1)
tomcat (3)
troubleshooting (9)
tv (1)
udr (1)
unix (6)
vsai (3)
win2K8 (2)
windows (37)
xa (1)
xml (1)
zk (7)

Tags
4gl DE DataStudio ER MacOS SAP VSAI ajax apache appliance archecker blades blog blogs certification cheeetah cheetah cheetah2 conference csdk cygwin db2 dbaccess developerworks drda dws education er esql fragmentation gcc hdr hpl ids idsadmin idug iiug install iod java jdbc krakatoa lbac links linux mathematics migration mobile oat onbar performance perl php podcasts python rational redbook rfid ruby sales scheduler security solano solutions spatial sql support techfair tomcat troubleshooting tv udr unix vsai win2K8 windows xa xml zk

Recent Entries
Chat with the Labs - Optimizing ...
DLL Hell Part 4: Optimizing Shar...
Ruby/Informix 0.7.0 - Now with I...
How to register a blade without ...
Database Popularity Contest
IBM’s Top Performing Value Add D...
IDS Problems with Windows domain...
DLL Hell Part 3 - DLL address cl...
Learn along with me
Webcast Tuesday - Securing Your ...
Informix on Facebook
IBM Database Magazine Issue 1
Visual Studio Add-Ins standalone...
Cheetah 2 Open Beta - download i...
Farewell DB2 Magazine

Blogs I read
IDS Experts
Informix Technology
Informix Zone Blog
Informix and Computing
Inside Emerging Technologies
JGP.log
Pythian Group - Log Buffer
Replication Roundtable
Santana's Tech Notes
Unofficial oninit blog

Special offers
Save on Rational testing software
Download trial versions of popular IBM software
Register for the DB2 Information Management Technical Conference

More offers


 
    About IBM Privacy Contact