jconn驱动程序不遵守连接属性

2020-09-06 02:26发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在使用jconn4.jar通过Java代码连接到Sybase服务器。 问题在于,有时在向Sybase服务器读取/写入数据时,服务器会挂起,这会使与服务器的连接保持打开状态。 我们正在使用sp_who进行检查,然后从master..sysprocesses中选择*。

这种情况在我们无法访问的服务器上可重现,并且我们无法在我们拥有的Sybase服务器上重现。 为了尝试缓解此问题,我们在URL中使用了DEFAULT_QUERY_ TIMEOUT连接属性(jdbc:sybase:Tds:XXX.XXX.XXX.XXXX:X?DEFAULT_QUERY_ TIMEOUT = 10)。 不幸的是,驱动程序不尊重此属性,可能是驱动程序存在问题。 我们已经使用了两个驱动程序版本(用于JDBC(TM)/7.00(内部版本26502)/P/EBF17993/JDK16/Thu Jun 3 3:09:09的jConnect(TM)和用于JDBC(TM)/7.07的jConnect(TM) SP140(内部版本27377)/P/EBF28026/JDK 1.6.0/jdbcmain/OPT/Thu Apr 26 00:07:49 PDT 2018),但两者似乎都不尊重我们从url提供的连接属性。

这是已知的行为吗? 是否有任何文档可以找到所有已发布的jconn jar和已修复的已知错误?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在使用jconn4.jar通过Java代码连接到Sybase服务器。 问题在于,有时在向Sybase服务器读取/写入数据时,服务器会挂起,这会使与服务器的连接保持打开状态。 我们正在使用sp_who进行检查,然后从master..sysprocesses中选择*。

这种情况在我们无法访问的服务器上可重现,并且我们无法在我们拥有的Sybase服务器上重现。 为了尝试缓解此问题,我们在URL中使用了DEFAULT_QUERY_ TIMEOUT连接属性(jdbc:sybase:Tds:XXX.XXX.XXX.XXXX:X?DEFAULT_QUERY_ TIMEOUT = 10)。 不幸的是,驱动程序不尊重此属性,可能是驱动程序存在问题。 我们已经使用了两个驱动程序版本(用于JDBC(TM)/7.00(内部版本26502)/P/EBF17993/JDK16/Thu Jun 3 3:09:09的jConnect(TM)和用于JDBC(TM)/7.07的jConnect(TM) SP140(内部版本27377)/P/EBF28026/JDK 1.6.0/jdbcmain/OPT/Thu Apr 26 00:07:49 PDT 2018),但两者似乎都不尊重我们从url提供的连接属性。

这是已知的行为吗? 是否有任何文档可以找到所有已发布的jconn jar和已修复的已知错误?

付费偷看设置
发送
3条回答
渐行渐远_HoldOn
1楼-- · 2020-09-06 02:52

嗨,

在添加ResultSet结构之前,我看不到超时异常。
但是,我看不到超时问题。

测试代码:
import java.sql。*;
import java.io 。*;
import java.util。*;
public class Test {public static void main(String [] arg){
试试{Class.forName(" com.sybase.jdbc4.jdbc.SybDriver").newInstance();
//INTERNAL_QUERY_TIMEOUT = 5&DEFAULT_QUERY_TIMEOUT = 5
连接con = DriverManager.getConnection(" jdbc:sybase:Tds:host:port/database?dynamic_prepare = false&INTERNAL_QUERY_TIMEOUT = 5&DEFAULT_QUERY_TIMEOUT = 5","用户","密码");
Statement stmt = con.createStatement();
//也可以在Java中进行设置
//stmt.setQueryTimeout(5);
//无异常
//stmt.executeQuery("select * from largealloc");
//except ResultSet rs = stmt.executeQuery(" select * from largealloc");
int i = 1;
while(rs.next()){System.out.println(" Row:" + i);
System.out.println(" ID:" + rs.getString(1).trim());
System.out.println("");
i = i + 1;
}
rs.close();
stmt.close();
con.close();
}
catch(异常e){e.printStackTrace(); }最后{}}


运行此程序时遇到问题吗?

关于,
Ryan

落灬小鱼
2楼-- · 2020-09-06 03:02

关于此的任何指针?

Nan4612
3楼-- · 2020-09-06 03:02

尝试使用新的ASE客户端补丁进行安装。 还请检查PAS服务器的数据库环境值

一周热门 更多>