Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 与tsql的tdsool连接超时_Sql Server_Tsql_Centos_Connection Pooling - Fatal编程技术网

Sql server 与tsql的tdsool连接超时

Sql server 与tsql的tdsool连接超时,sql-server,tsql,centos,connection-pooling,Sql Server,Tsql,Centos,Connection Pooling,我们正在使用tdspool,并试图在同一台机器上使用tsql本地连接到它。tdspool似乎打开了它的连接,但连接到池的任何客户端都超时,并开始侦听 pool.conf [global] min pool conn = 5 max pool conn = 10 max member age = 120 [sampool] user = [REDACTED] password = [REDACTED]

我们正在使用tdspool,并试图在同一台机器上使用tsql本地连接到它。tdspool似乎打开了它的连接,但连接到池的任何客户端都超时,并开始侦听

pool.conf

[global]
        min pool conn = 5
        max pool conn = 10
        max member age = 120

[sampool]
        user = [REDACTED]
        password = [REDACTED]
        database = [REDACTED]
        server = [REDACTED]
        port = 1313 ;change to a non standard port so we can see the connection details in the debug log
当使用tsql连接到127.0.0.1:1313时,tdspool输出仅表示“接受连接”,而不表示其他内容。freetds.log输出以下内容:

dblib.c:1237:tdsdbopen: Calling tds_connect_and_login(0x2b3fec0, 0x2b40580)
iconv.c:328:tds_iconv_open(0x2b3fec0, UTF-8)
iconv.c:187:local name for ISO-8859-1 is ISO-8859-1
iconv.c:187:local name for UTF-8 is UTF-8
iconv.c:187:local name for UCS-2LE is UCS-2LE
iconv.c:187:local name for UCS-2BE is UCS-2BE
iconv.c:346:setting up conversions for client charset "UTF-8"
iconv.c:348:preparing iconv for "UTF-8" <-> "UCS-2LE" conversion
iconv.c:395:preparing iconv for "ISO-8859-1" <-> "UCS-2LE" conversion
iconv.c:400:tds_iconv_open: done
net.c:202:Connecting to 127.0.0.1 port 1313 (TDS version 7.3)
net.c:274:tds_open_socket: connect(2) returned "Operation now in progress"
net.c:313:tds_open_socket() succeeded
util.c:165:Changed query state from DEAD to IDLE
packet.c:740:Sending packet
0000 12 01 00 3a 00 00 00 00-00 00 1a 00 06 01 00 20 |...:.... ....... |
0010 00 01 02 00 21 00 0c 03-00 2d 00 04 04 00 31 00 |....!... .-....1.|
0020 01 ff 09 00 00 00 00 00-02 4d 53 53 51 4c 53 65 |........ .MSSQLSe|
0030 72 76 65 72 00 96 24 00-00 00                   |rver..$. ..|

util.c:322:tdserror(0x2a6b8c0, 0x2b3fec0, 20003, 115)
dblib.c:7897:dbperror(0x2b3f3b0, 20003, 115)
dblib.c:7965:dbperror: Calling dblib_err_handler with msgno = 20003; msg->msgtext = "Adaptive Server connection timed out (127.0.0.1:1313)"
dblib.c:5743:dbgetuserdata(0x2b3f3b0)
dblib.c:7987:dbperror: dblib_err_handler for msgno = 20003; msg->msgtext = "Adaptive Server connection timed out (127.0.0.1:1313)" -- returns 2 (INT_CANCEL)
util.c:352:tdserror: client library returned TDS_INT_CANCEL(2)
util.c:375:tdserror: returning TDS_INT_CANCEL(2)
query.c:3769:tds_disconnect()
util.c:165:Changed query state from IDLE to DEAD
login.c:472:login packet rejected
util.c:322:tdserror(0x2a6b8c0, 0x2b3fec0, 20002, 0)
dblib.c:7897:dbperror(0x2b3f3b0, 20002, 0)
dblib.c:7965:dbperror: Calling dblib_err_handler with msgno = 20002; msg->msgtext = "Adaptive Server connection failed (127.0.0.1:1313)"
dblib.c:5743:dbgetuserdata(0x2b3f3b0)
dblib.c:7987:dbperror: dblib_err_handler for msgno = 20002; msg->msgtext = "Adaptive Server connection failed (127.0.0.1:1313)" -- returns 2 (INT_CANCEL)
util.c:352:tdserror: client library returned TDS_INT_CANCEL(2)
util.c:375:tdserror: returning TDS_INT_CANCEL(2)
dblib.c:1241:tdsdbopen: tds_connect_and_login failed for "127.0.0.1:1313"!
dblib.c:1463:dbclose(0x2b3f3b0)
dblib.c:243:dblib_del_connection(0x7fa27f9644a0, 0x2b3fec0)
mem.c:648:tds_free_all_results()
dblib.c:290:dblib_release_tds_ctx(1)
dblib.c:5845:dbfreebuf(0x2b3f3b0)
dblib.c:743:dbloginfree(0x2b3ef10)
dblib.c:1533:dbexit(void)
dblib.c:1533:dbexit(void)
dblib.c:290:dblib_release_tds_ctx(1)

操作系统:CentOS 6.5

我也有类似的问题。将尽力帮助您解决您的问题。首先,确保/etc/freetds.conf包含有效的配置:

[global]
tds version = 4.2 
...
[myserver]
    host = <ip>
    port = 1433
    tds version = 4.2 < this is important
[全球]
tds版本=4.2
...
[myserver]
主机=
端口=1433
tds版本=4.2<这很重要
现在,/etc/tdspool.conf

 [sampool]
 user = [REDACTED]
 password = [REDACTED]
 database = [REDACTED]
 server = myserver < important
 port = 1313
[sampool]
用户=[已编辑]
密码=[已编辑]
数据库=[已编辑]
server=myserver<重要
端口=1313
然后TDPool应该可以正常启动。我的错误如下: 1.我认为pool.conf中的服务器是ip或服务器的域,而实际上这是对freetds.conf中服务器的引用 2.在freetds.conf中,我使用了错误(过高)的tds版本。Tdspool支持tds版本,最高版本为4.2,如其文档中所述

现在,如果您尝试通过tsql-S 172.0.0.1:1313进行连接,您仍然会永远得到“接受连接…”。但是,如果你这样做了

tsql -S 127.0.0.1:1313 -U <username> -P <password> -D <database>
tsql-s127.0.0.1:1313-U-P-D

您将通过tdspool连接并能够对您的sql server运行查询。

该软件存在错误。

我们去了官方的邮件列表,一字不差地问了这个问题。答案似乎是,如果不重写当前项目,就不会有一个

客户端库已经使用并经过了良好的测试,但池和服务器是 情况真的不太好

tdspool的当前状态为。。。。它编译!我对此并不感到惊讶 无法正确运行

也就是说它是开源的。欢迎提供任何帮助/建议/补丁


我们花了相当多的时间试图找出我们做错了什么,所以这是一种痛苦。虽然我希望创建/修改现有的SQL Server池,但我对FreeTDS(一个很棒的项目)附带如此不稳定的池感到失望

这对我来说不起作用。不管我做什么,我永远都会“接受连接…”。
tsql -S 127.0.0.1:1313 -U <username> -P <password> -D <database>