Hi Jeremy, That seems to have done the trick. In my case i updated line 132 because i have updated to your awesome new version.
Thanks and keep up the great work! Cheers, Tom On Friday, 4 December 2015 21:10:25 UTC+2, Jeremy Evans wrote: > > On Friday, December 4, 2015 at 7:23:41 AM UTC-8, Tom Van Schoor wrote: >> >> Hi guys, >> >> We recently moved away from ODBC because we were having issues with >> unicode support and it turned out that TinyTds worked out of the box. >> >> *@db ||= Sequel.connect(adapter: 'tinytds', host: ENV['DATABASE_HOST'], >> database: 'SomeDB', user: ENV['SOME_USER'], password: ENV['SOME_PWD'])* >> >> Worked for over a month without any issues yet today it started acting up: >> *General failure exception=#<Sequel::DatabaseError: TinyTds::Error: >> Adaptive Server connection timed out>* >> >> Our DB admin assures me nothing changed on DB level and our source code >> has not changed either. >> I can connect to the DB fine using ODBC, telnet and SQL Server Management >> Studio. >> >> Frankly I am out of ideas on how to debug this so any advise would be >> welcome. >> > > It sounds like the connection dropped, which is usually network related. > Restarting the program should be enough to fix that. There is a bug here, > in that the exception is not recognized as a disconnect and it doesn't > remove it from the connection pool. Can you try this diff and see if it > helps? > > Thanks, > Jeremy > > diff --git a/lib/sequel/adapters/tinytds.rb > b/lib/sequel/adapters/tinytds.rb > index 6b7251a..71f3f34 100644 > --- a/lib/sequel/adapters/tinytds.rb > +++ b/lib/sequel/adapters/tinytds.rb > @@ -129,7 +129,7 @@ module Sequel > end > end > > - TINYTDS_DISCONNECT_ERRORS = /\A(Attempt to initiate a new Adaptive > Server operation with results pending|The request failed to run because the > batch is aborted, this can be caused by abort signal sent from client)/ > + TINYTDS_DISCONNECT_ERRORS = /\A(Attempt to initiate a new Adaptive > Server operation with results pending|The request failed to run because the > batch is aborted, this can be caused by abort signal sent from > client|Adaptive Server connection timed out)/ > # Return true if the :conn argument is present and not active. > def disconnect_error?(e, opts) > super || (opts[:conn] && !opts[:conn].active?) || > ((e.is_a?(::TinyTds::Error) && TINYTDS_DISCONNECT_ERRORS.match(e.message))) > -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
