[unixODBC-support] Core dump issue from UnixODBC on AIX platform

Hassan Shaik hshaik at arcot.com
Mon Nov 5 15:02:51 GMT 2007

Hi Nick,

We are using DB2 ODBC driver. Looks like, it is thread-safe;

Following are the contents of odbcinst.ini file.

Description=DB2 ODBC Driver
Driver=cd /home/db2inst3/sqllib/lib/libdb2.so


So, default value for Threading level is 3, right? Do you recommend
adding "Threading = 0" in this file?

Interesting thing is, when I turn on trace logging, we couldn't see core
dump for 2 days (because of delay introduced?).


-----Original Message-----
From: unixodbc-support-bounces at easysoft.com
[mailto:unixodbc-support-bounces at easysoft.com] On Behalf Of Nick Gorham
Sent: Monday, November 05, 2007 8:20 PM
To: Support for the unixODBC project
Subject: Re: [unixODBC-support] Core dump issue from UnixODBC on AIX

Hassan Shaik wrote:

>Hi Nick,
>Thanks for your quick response. 
>1. Can you please point me to the ftp location from where I can 
>download UnixODBC 2.2.13pre? When it will be released officially?

No date for release yet.

>2. I have gone through some of the discussions in easysoft support 
>email aliases. In one thread, its recommended to set "Threading = 0" in

>odbcinst.ini file. I have gone through the below notes in __handles.c 
>file. Can you please more elaborate on when to use these levels? Does 
>trying "Threading = 0" will help? Pls clarify.
> * use just one mutex for all the lists, this avoids any issues
> * with deadlocks, the performance issue should be minimal, if it
> * turns out to be a problem, we can readdress this
> *
> * We also have a mutex to protect the connection pooling code
> *
> * If compiled with thread support the DM allows four different
> * thread strategies
> *
> * Level 0 - Only the DM internal structures are protected
> * the driver is assumed to take care of it's self
> *
> * Level 1 - The driver is protected down to the statement level
> * each statement will be protected, and the same for the connect
> * level for connect functions, note that descriptors are considered
> * equal to statements when it comes to thread protection.
> *
> * Level 2 - The driver is protected at the connection level. only
> * one thread can be in a particular driver at one time
> *
> * Level 3 - The driver is protected at the env level, only one thing
> * at a time.
> *
> * By default the driver open connections with a lock level of 3,
> * this can be changed by adding the line
> *
> * Threading = N
> *
> * to the driver entry in odbcinst.ini, where N is the locking level
> * (0-3)
> *
> */
>Appreciate your help on this.
The comments you posted explain the use of the flag. If your driver
isn't thread safe use something otyher than 0, if it is, then 0 is fine.

You didn't mention what driver you were using. As you seem to be
reporting a problem with the driver managers own thread handling, the
Threading level should have no effect.

Nick Gorham
Easysoft Limited
http://www.easysoft.com, http://www.unixODBC.org

unixODBC-support mailing list
unixODBC-support at easysoft.com

More information about the unixODBC-support mailing list