英文:
DB2 ODBC connection hangs
问题
我在我的Windows 10上安装了DB2 11.5.7(和11.5.8)。
我已经通过使用db2sampl创建了SAMPLE DB。
当我尝试通过ODBC连接到这个数据库时,它在连接阶段卡住了(我不得不终止进程)。
无论是从我的x86应用程序(C ++)还是从ODBC数据源管理员(32位)建立连接都没有关系。
- 在上面的截图中,我只是按了“连接”按钮。
- ODBC数据源管理员变为无响应,并且完全利用1-2个CPU核心。
- 这并不是每次都发生,但在98%的尝试中都会卡住。有时候我很幸运,但重新启动ODBC数据源管理员(32位),连接就会再次卡住。
如果我启动ODBC数据源管理员(64位),连接总是成功的。
我的机器的一些附加信息:
- 这是一台迷你电脑 - Beelink SER6 Pro 7735HS
- AMD Ryzen 7 7735HS
在我测试的所有其他机器上都没有类似的问题。
我尝试过的事情:
- 输入正确和错误的用户密码 - 在两种情况下都会卡住
- 在Windows 11上执行 - 连接卡住了
- 在Windows 10上执行 - 连接卡住了
- 在带有Windows 10的虚拟机(VMWare)中执行 - 连接卡住了
- 连接到远程DB2服务器 - 连接也会卡住
- 从另一台机器连接到这台机器 - 另一台机器成功连接
- 尝试了DB2版本:11.5.7和11.5.8 - 在两个版本上都会卡住
- ODBC数据源管理员(64位) - 连接成功。
我期望从ODBC 32位成功连接。
英文:
I've installed DB2 11.5.7 (and 11.5.8) on my Windows 10.
I've created SAMPLE DB (using db2sampl).
When I'm trying to connect to this DB through ODBC it hangs on connection stage (I have to kill process)
It doesn't metters either connection establishing from my x86 application (C++) or from ODBC Data Source Administrator (32-bit).
- On screenshot above I just pressed button "connect".
- ODBC Data Source Administrator becomes Not Responding and fully utilize 1-2 CPU cores
- It happens not each time, but it hangs in 98% attempts. Sometimes I'm lucky, but it's enough to relaunch ODBC Data Source Administrator (32-bit) and connection hangs again.
If I launch ODBC Data Source Administrator (64-bit) - connection always success.
Some additional info of my machine:
- it's Mini PC - Beelink SER6 Pro 7735HS
- AMD Ryzen 7 7735HS
On all other machines which I tested no any similar problems.
What I tried:
- Input correct and wrong user's password - hangs in both cases
- Perform it on Windows 11 - connect hangs
- Perform it on Windows 10 - connect hangs
- Perform it under Virtual Machine (VMWare) with guest Windows 10 - connect hangs
- Connect to remote DB2 Server - connect hangs too
- Connect to this machine from another - another machine connects successfully
- Tried DB2 versions: 11.5.7 and 11.5.8 - on both connect hangs
- ODBC Data Source Administrator (64-bit) - connects successfully
I expect success connection from ODBC 32-bit.
答案1
得分: 0
最终我自己找到了解决方法
根据我的C++应用程序的调用堆栈和ProcMon捕获的处理情况,我几乎确信挂起发生在icclib内部(根据堆栈),它是GSKIT的一部分。
所以我决定在Google中搜索与GSK8相关的挂起问题,嘿,我找到了这个IBM报告的问题:
> IJ44774: GSKIT与AMD EPYC家族25处理器存在问题
>
> 错误描述
>
> 像mmcrcluster或mmaddnode这样的命令可能会在GSKIT中挂起
> 层在AMD EPYC家族25处理器上。已知在GSKIT层挂起的家族25的特定型号是
> AMD EPYC 7343。
>
> 本地修复
>
> 在问题节点的/usr/lpp/mmfs/lib/gsk8/Cicc/icclib/ICCSIG.txt文件中添加“ICC_SHIFT=3”行。
>
> ...
>
> 症状:
>
> 管理命令挂起
>
> 受影响的平台:
>
> Linux操作系统环境
>
> 受影响的功能区域:
>
> 管理命令,gskit
- 它描述了Linux的修复方法,但是在我的情况下,我使用的是Windows!
在Windows上找到ICCSIG.txt的路径:
C:\Program Files (x86)\ibm\gsk8\lib\C\icc\icclib\ICCSIG.txt
- 我只是在文件末尾添加了
ICC_SHIFT=3
,然后就完成了!
英文:
Finally found fix myself
Accordingly to call stack from my C++ app and to process happened catched by ProcMon I was almost confident that hang happens inside icclib (it's by stack) and it's is a part of GSKIT.
So I decided to search in google about some hang problem related to GSK8 and voila I find this IBM reported issue:
> IJ44774: GSKIT ISSUE WITH AMD EPYC FAMILY 25 PROCESSORS
>
> Error description
>
> Commands like mmcrcluster or mmaddnode may hang in GSKIT
> layer on AMD EPYC family 25 processors. A particular model
> from family 25 that is known to hang in GSKIT layer is
> AMD EPYC 7343.
>
> Local fix
>
> Add "ICC_SHIFT=3" line in
> /usr/lpp/mmfs/lib/gsk8/Cicc/icclib/ICCSIG.txt
> file on problem nodes.
>
> ...
>
> Symptom:
>
> Admin commands hangs
>
> Platforms affected:
>
> Linux OS environments
>
> Functional Area affected:
>
> Admin Commands, gskit
- it's describes fix for Linux, But! in my case it's a Windows!
Path to ICCSIG.txt on Windows:
C:\Program Files (x86)\ibm\gsk8\lib\C\icc\icclib\ICCSIG.txt
- I've just added
ICC_SHIFT=3
at the end of that file and that's it!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论