2

これを数時間調査しましたが、解決策が見つからないようです。

TinyTds gem ( tiny_tds ) を使用して、社内でローカルにホストされている SQL 2000 サーバーに接続する Rails 2 アプリがあります。

このアプリは、過去 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 アプリ ( legacy ) でもあり、ビジネスで使用するいくつかのコア プロセスの鍵となります。Rails 3 では SQL 2000 Server 用の SQL サーバー アダプター gem が動作しないため、Rails 3 にアップグレードできません。

誰でも助けることができますか?

4

0 に答える 0