tsql

2015-09-04 11 views
5

के साथ tdsool समय के साथ कनेक्शन हम tdspool का उपयोग कर रहे हैं और उसी मशीन पर स्थानीय रूप से tsql का उपयोग कर कनेक्ट करने का प्रयास कर रहे हैं। टीडीएसपूल अपने कनेक्शन को ठीक से खोलने लगता है और सुनना शुरू करता है हालांकि पूल क्लाइंट से कनेक्ट होने वाला कोई क्लाइंट।tsql

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:1313 से कनेक्ट कर TSQL का उपयोग कर 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) 

TSQL -सी:

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 

ओएस: CentOS 6.5

उत्तर

1

सॉफ्टवेयर

Bugged है हम आधिकारिक मेलिंग सूची के लिए चला गया, और इस सवाल का शब्दशः पूछा। जवाब यह प्रतीत होता है कि वर्तमान परियोजना को फिर से लिखने के बिना कोई नहीं है।

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

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

यह कहा गया कि यह खुला स्रोत है। कोई मदद/सुझाव/पैच स्वागत है।

हमने यह पता लगाने की कोशिश में काफी समय बिताया कि हम क्या गलत कर रहे थे, इसलिए यह एक दर्द है। जबकि मैं मौजूदा SQL सर्वर पूल बनाने/संशोधित करने के लिए देख रहा हूं, मैं निराश हूं कि इस तरह के अस्थिर पूल

1

मैं इसी तरह की समस्या थी। आप को हल करने में आपकी मदद करने की कोशिश करेंगे। सबसे पहले, सुनिश्चित करें कि आपकी /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 में सर्वर आईपी या सर्वर का डोमेन है, जबकि वास्तव में freetds.conf में सर्वर का संदर्भ है 2. freetds.conf में मैंने गलत (बहुत अधिक) टीडीएस का उपयोग किया संस्करण। टीडीएसपूल 4.2 के दशक तक टीडीएस संस्करणों का समर्थन करता है, जैसा कि उनके दस्तावेज़ों में बताया गया है।

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

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

आप कनेक्ट करेंगे और tdspool के माध्यम से अपने SQL सर्वर के विरुद्ध क्वेरी चलाने में सक्षम होंगे।

+0

के साथ फ्रीटीडीएस (एक अद्भुत प्रोजेक्ट) जहाज यह मेरे लिए काम नहीं करता है। इससे कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मुझे हमेशा "कनेक्शन स्वीकार करना ..." मिलता है। –