跟踪ODBC呼吁Informix Client for Linux
题
我尝试跟踪ODBC功能的电话从我的程序工作上的Linux。这个程序动态链接ODBC管理并随后连接到数据库和获取某些数据。
我可以追踪ODBC话与unixODBC通过添加到odbcinst.ini:
[ODBC]
Trace=yes
TraceFile=/tmp/sql.log
这种方法记录的IBM: 收集的数据对于ODBC问题
但是,当我改变管理从unixODBC到Informix自己的管理(libifdmr.因此),跟踪文件的不是创造。任何人都成功地获得ODBC跟踪从Informix管理(和司机)在Linux上?
客户的版本:CSDK3.50UC3
我希望它是不是一个错误的和什么是错的我的配置。
作为unixODBC:我不能使用unixODBC在多线程的应用程序。我使用连接池和我的应用程序segfaulted时断线是从另外一个线程于连接。它还要慢得多,在多线程的应用程序。
解决方案 2
我ODBC跟踪,在我的odbc.ini这些设置:
[ODBC]
TRACE=1
TRACEFILE=/tmp/odbc_trace.txt
TRACEDLL=idmrs09a.so
我从IBM Informix ODBC驱动程序程序员手册版本3.50复制它们。 所以其他IBM文件似乎不是有效的,而那些设置在ODBC.INI而不是ODBCINST.INI并且必须设置这是不是在文件“为一个ODBC问题收集数据。”
提到TRACEDLL更新: 看来IBM改变了文档:有上TRACEDLL信息,但仍ODBCINST.INI
其他提示
如果您运行:
strings $INFORMIXDIR/lib/cli/libifdmr.so | grep _OdbcSetTrace
你能看到的任何引用。如果没有,那么该库是不支持的功能。如果你看到的是,列出的机制应该工作。如果没有,你可能有一个报告错误。
什么水平,你想跟踪的问题是什么?而且,因为unixODBC的工作,为什么不使用驱动程序管理器,它的工作?
我已经采取从$ INFORMIXDIR /演示/ CLI中的示例distsel.c和使用CSDK 3.50.FC3编译它在Solaris 10。我把它拿到的地方连接成功了点,但表“项目”在我使用的数据库丢失,所以程序停止SQLExecDirect的()。当我在“桁架”(在Linux“strace的”等价)运行它,然后我看不出代码的证据,甚至试图打开跟踪文件。
我使用编译:
gcc -I$INFORMIXDIR/incl/cli distsel.c -DNO_WIN32 \
-L$INFORMIXDIR/lib/cli -lifdmr -lifcli -o distsel
我用下面.odbc.ini文件:
;
; odbc.ini
;
[ODBC Data Sources]
odbc_demo = IDS 11.50.FC3 stores on black
[ODBC]
Trace = yes
TraceFile = /tmp/odbc.trace
[odbc_demo]
Driver = /usr/informix/11.50.FC1/lib/cli/libifcli.so
Description = IBM Informix CLI 3.50
Server = black_19
FetchBufferSize = 99
UserName = jleffler
Password = XXXXXXXX
Database = stores
ServerOptions =
ConnectOptions =
Options =
ReadOnly = no
和这一个:
;
; odbc.ini
;
[ODBC Data Sources]
odbc_demo = IDS 11.50.FC3 stores on black
[odbc_demo]
Driver = /usr/informix/11.50.FC1/lib/cli/libifcli.so
Description = IBM Informix CLI 3.50
Server = black_19
FetchBufferSize = 99
UserName = jleffler
Password = XXXXXXXX
Database = stores
ServerOptions =
ConnectOptions =
Options =
ReadOnly = no
Trace = yes
TraceFile = /tmp/odbc.trace
因此,我相信你已经发现了一个bug。我不知道该错误是否是你所引用的FAQ或产品 - 我倾向于认为是后者。你应该将问题报告给IBM技术支持。 (我没有检查的Informix CLI(ODBC)手册;它可能是值得检查之前试图提交产品的错误;如果说明书表明,跟踪不工作,也许,如果它并不表明它确实工作,再有就是在你列出的常见问题解答页面错误。)
如果您想看到的SQL数据,常见问题解答的SQLIDEBUG部分作品:
SQLIDEBUG=2:distsel ./distsel
这是生成的文件distsel_6004_0_102d40我 - 它会为你不同。然后可以使用“sqliprint”实用程序以查看客户机和服务器之间的数据流动。
如果你不能找到 'sqliprint',拿回来给我。