Chinaunix

标题: DBD:TimesTen中execute函数无法执行 [打印本页]

作者: tanjiesymbol    时间: 2007-10-05 14:43
标题: DBD:TimesTen中execute函数无法执行
被一个问题困扰好几天了!
在HP-UX(IA64)上使用64位的TimesTen内存数据库,想用perl访问TimesTen作一些日常的维护工作。
cpan上down了一个DBD-TimesTen-0.06。先在linux上线测试了一下(HP是生产机,不敢乱搞),没有问题。
但是在HP上装的时候,麻烦不断!
先是编译不过,后来查出来是因为TimesTen是64位的,而perl Makefile.PL出来的Makefile没有加+DD64选项。
编译问题之后是perl程序的执行问题。现在的情况是只要代码里面没有execute()函数,都可以正确执行。只要代码
中有execute(),程序coredump
[web@cx_oam tanjie]$perl test.pl
Bus error (core dumped)

用perl -d单步调试时,执行到execute语句时,程序长时间无反映,cpu占用率极高,perl进程占用超过80%的cpu,
好像是在作死循环一样

DBD:TimesTen使用的人较少,网上几乎都找不到什么有用的信息,哪位大侠能从dbi出发,分析一下execute()函数到底是
通过何种途径调用driver的方法的。小弟刚刚接触perl,在此先谢过了!
作者: tanjiesymbol    时间: 2007-10-05 20:26
标题: 问题已解决
问题已经解决。
错误的原因是DBD:TimesTen在64位平台有bug,部分变量使用了TimesTen中有问题的类型定义,导致在64位平台上使用32位的变量接受TimesTen传来的64位的变量,变量溢出。
作者: baidunan    时间: 2016-03-30 10:01
为啥我 32bit 的XP 系统 和 64 win7 系统都会有这个问题呀,

D:\Users\KONGJUNLONG280>cd D:\pm\DBD-TimesTen-0.06

D:\pm\DBD-TimesTen-0.06>perl Makefile.pl
Useless use of private variable in void context at Makefile.pl line 113.

Configuring DBD::TimesTen ...

>>>     Remember to actually *READ* the README file!
        And re-read it if you have any problems.

Multiple copies of Driver.xst found in: C:/Perl64/site/lib/auto/DBI/ C:/Perl64/l
ib/auto/DBI/ at Makefile.pl line 68.
Using DBI 1.634 (for perl 5.022001 on MSWin32-x64-multi-thread) installed in C:/
Perl64/site/lib/auto/DBI/
Using TimesTen in C:\TimesTen\tt1122_64

Warning (mostly harmless): No library found for -lttclient
Warning (mostly harmless): No library found for -lmoldname
Warning (mostly harmless): No library found for -lkernel32
Warning (mostly harmless): No library found for -luser32
Warning (mostly harmless): No library found for -lgdi32
Warning (mostly harmless): No library found for -lwinspool
Warning (mostly harmless): No library found for -lcomdlg32
Warning (mostly harmless): No library found for -ladvapi32
Warning (mostly harmless): No library found for -lshell32
Warning (mostly harmless): No library found for -lole32
Warning (mostly harmless): No library found for -loleaut32
Warning (mostly harmless): No library found for -lnetapi32
Warning (mostly harmless): No library found for -luuid
Warning (mostly harmless): No library found for -lws2_32
Warning (mostly harmless): No library found for -lmpr
Warning (mostly harmless): No library found for -lwinmm
Warning (mostly harmless): No library found for -lversion
Warning (mostly harmless): No library found for -lodbc32
Warning (mostly harmless): No library found for -lodbccp32
Warning (mostly harmless): No library found for -lcomctl32
Multiple copies of Driver.xst found in: C:/Perl64/site/lib/auto/DBI/ C:/Perl64/l
ib/auto/DBI/ at Makefile.pl line 125.
Using DBI 1.634 (for perl 5.022001 on MSWin32-x64-multi-thread) installed in C:/
Perl64/site/lib/auto/DBI/
Generating a dmake-style Makefile
Writing Makefile for DBD::TimesTen
Writing MYMETA.yml and MYMETA.json

The DBD::TimesTen tests will use these values for the database connection:

    DBI_DSN=            e.g. dbi:TimesTen:demo
    DBI_USER=
    DBI_PASS=
Warning: not all required environment variables are set.


D:\pm\DBD-TimesTen-0.06>


































































































欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2