TinyTds:: Ошибка: невозможно открыть сокет

Я исследовал это в течение нескольких часов, и я не могу найти решение.

У меня есть приложение Rails 2, которое использует гем TinyTds ( tiny_tds) для подключения к серверу SQL 2000, размещенному локально в нашей компании.

В течение последних 6 месяцев приложение подключалось к SQL Server почти каждый день без проблем.

Внезапно, когда я пытался подключиться вчера, я начал получать сообщение об ошибке:

TinyTds::Error: Unable to open socket
from /var/lib/gems/1.8/gems/tiny_tds-0.4.5/lib/tiny_tds/client.rb:60:in `connect'
from /var/lib/gems/1.8/gems/tiny_tds-0.4.5/lib/tiny_tds/client.rb:60:in `initialize'

Из моего исследования я видел, как некоторые люди предлагали мне использовать SO_REUSEADDR, чтобы позволить ему подключаться и игнорировать ограничения по времени ожидания или "использованию", например: setsockopt(sock, SOL_SOCKET, SO_REUSEADDR), но я не могу понять, как использовать эту команду в текущем контексте. Я попытался вызвать его в командной строке на сервере, и он не будет работать, но опять же, я не уверен, что он делает, или я могу даже вызвать это из командной строки.

Я пытался вызвать netstat -a, который показывает текущие сокеты, но я не уверен, что делать с этой информацией.

Я также видел, что служба перезапустить
можно перезапустить сокет, но я не уверен, какой сокет перезапустить.

Наконец, в моем файле конфигурации freetds.conf у меня есть эти настройки:

host = 192.168.0.220 
port = 1433
tds version = 8.0

Я не совсем уверен, какую дорогу выбрать. Я хорошо разбираюсь в Rails, но эта штука с сокетами выходит за рамки моего нынешнего понимания. Это также приложение Rails 2 (устаревшее), которое является ключевым для некоторых основных процессов, которые использует наш бизнес. Мы не можем перейти на Rails 3 из-за того, что гем адаптера сервера SQL для SQL 2000 Server не будет работать с Rails 3.

Кто-нибудь может помочь?

0 ответов

Другие вопросы по тегам