sql server - टीएसएलएल के साथ टीएसएसओएल समय से कनेक्शन




sql-server tsql (2)

मुझे इसी तरह की समस्या थी अपने को हल करने में आपकी मदद करने की कोशिश करेंगे पहले, सुनिश्चित करें कि आपके /etc/freetds.conf में मान्य कॉन्फ़िगरेशन है:

[global]
tds version = 4.2 
...
[myserver]
    host = <ip>
    port = 1433
    tds version = 4.2 < this is important

अब, /etc/tdspool.conf

 [sampool]
 user = [REDACTED]
 password = [REDACTED]
 database = [REDACTED]
 server = myserver < important
 port = 1313

तब tdspool sampool ठीक शुरू करना चाहिए। निम्न के रूप में मेरी त्रुटियां थीं: 1. मुझे लगता है कि pool.conf में सर्वर सर्वर का आईपी या डोमेन है, जबकि वास्तव में यह फ़्रीटिड्स.कं. 2 में सर्वर के संदर्भ में है I में। Freetds.conf में मैंने गलत (बहुत अधिक) टीडीएस वर्जन का इस्तेमाल किया। टीडीस्पल्स टीडीएस संस्करण को 4.2 तक का समर्थन करता है, जैसा कि उनके डॉक्स में कहा गया है।

अब, यदि आप टीएसएलएल-एस 172.0.0.1:12313 से कनेक्ट करने का प्रयास करते हैं, तो आप हमेशा "कनेक्शन स्वीकार कर रहे होंगे ..." हमेशा के लिए। परन्तु, यदि आप करते हैं

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

आप कनेक्ट होंगे और अपने एसक्यूएल सर्वर के खिलाफ टीडीएसपूल के माध्यम से प्रश्नों को चलाने में सक्षम होंगे।

हम टीडीएसपूल का उपयोग कर रहे हैं और एक ही मशीन पर स्थानीय रूप से एसएसएलएल का उपयोग करके इसे कनेक्ट करने का प्रयास कर रहे हैं। 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

जब 127.0.0.1:12313 से जुड़ते हुए टीएसएलएल का उपयोग करते हुए टीडीएसपूल आउटपुट केवल "कनेक्शन स्वीकार करना" और कुछ और नहीं कहता 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)

tsql -C:

Version: freetds v0.95.19
             freetds.conf directory: /etc
     MS db-lib source compatibility: yes
        Sybase binary compatibility: no
                      Thread safety: yes
                      iconv library: yes
                        TDS version: 5.0
                              iODBC: no
                           unixodbc: yes
              SSPI "trusted" logins: no
                           Kerberos: no
                            OpenSSL: no
                             GnuTLS: no

OS: CentOS 6.5


सॉफ्टवेयर खराब है

हम आधिकारिक मेलिंग लिस्ट पर गए, और इस सवाल के बारे में पूछा। उत्तर ऐसा लगता है कि मौजूदा परियोजना को फिर से लिखने के बिना कोई भी नहीं है

क्लाइंट पुस्तकालयों का उपयोग किया जाता है और अच्छी तरह से परीक्षण किया जाता है लेकिन पूल और सर्वर वास्तव में एक अच्छी स्थिति में नहीं हैं।

टीडीस्पल की वर्तमान स्थिति .... यह संकलित है! मुझे आश्चर्य नहीं है कि यह ठीक से नहीं चल रहा है।

उसने कहा कि यह खुला स्रोत है किसी भी मदद / सुझाव / पैच का स्वागत है

हम यह समझने की कोशिश कर रहे थे कि हम कितना गलत कर रहे थे, इसलिए यह एक दर्द है। जबकि मैं मौजूदा एसक्यूएल सर्वर पूल बनाने / संशोधित करने के लिए देख रहा हूँ, मुझे निराश है कि फ्रीटीडीएस (एक अद्भुत परियोजना) ऐसे अस्थिर पूल के साथ जहाज





connection-pooling