在多线程并发设置中使用unixODBC

前端之家收集整理的这篇文章主要介绍了在多线程并发设置中使用unixODBC前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我要问并回答这个问题,因为我花了很长时间才弄明白,我希望答案一直在这里开始.

问题:一个长时间运行的unixODBC查询阻止来自同一个应用程序的所有其他查询.

问题是:如何阻止这种情况发生.

解决方法

答案,以__handles.c的剪切和粘贴评论的形式 – 我知道,为什么不是每个人都想在那里寻找文档,对吧?
/*
 * 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)
 *
 */

猜你在找的Java相关文章