:Oracle9 and non-blocking mode

Hi Jim,

I use it to timeout connect calls when a database is either down and/or
unreachable for some reason. This is rare, but it does happen, either
because of a network glitch or a snapshot is going on, or it’s just down.
Here’s a code snippet.

require “dbi”
require “timeout”

begin
timeout(10){
DBI.connect(“dbi:oracle:mydsn”,user,passwd)
}
rescue TimeoutError

perhaps sleep & retry, perhaps exit

rescue

some other error

end

As things stand now the timeout block does nothing and it takes 1-2 minutes
(!) for the connect attempt to timeout if something goes wrong.

I also refer you to my original post about this problem at
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/68854

Regards,

Dan

···

-----Original Message-----
From: Jim Cain [mailto:list@jimcain.us]
Sent: Tuesday, July 01, 2003 10:04 AM
To: ruby-talk@ruby-lang.org
Subject: DBD::Oracle9 and non-blocking mode

I’m about ready to make available an early copy of my
library, but first
I have some questions regarding non-blocking mode. I’ve never
actually
used this feature, so I’d like to hear from those that do how
they use
it. Do you need more support for it beyond simply
setting/resetting the
mode? What is the most convenient way for you to be notified
that an OCI
call is still executing? When a call is still running, would
you like to
call Statement#execute again to see if it’s finished, or
would you like
some other method?

Thanks for the input.

Cheers,
Jim