oracle instant client 11.1 But it seems to work now using the 'ora_envhp => 0' attribute. Is there some penalty performance when using this option ?
On Thu, Feb 19, 2009 at 1:56 PM, <[email protected]> wrote: > What is the version of the Oracle client you are using? > > There is a rather large gap between 1.16 and 1.22 on the way they connect > especially with the older Oracle clients which could explain his > > cheers > John Scoles > > > On Thu, Feb 19, 2009 at 12:33 PM, Martin Evans > > <[email protected]>wrote: > > > >> Karl Forner wrote: > >> > >>> I'm experiencing a very strange problem : in short, I could not > >>> reconnect > >>> to a DB using DBI once I successfully connected then failed (with bad > >>> password for example), IN THAT ORDER. > >>> > >>> I made a script reproducing the bug: > >>> ================= > >>> #!/usr/bin/env perl > >>> use strict; > >>> use warnings; > >>> use DBI; > >>> > >>> my $dsn = 'dbi:Oracle:sid=TITI;host=xxx.yyy.zzz.com;port=1521'; > >>> my $user = 'toto'; > >>> my $password = $user; > >>> my $options = { AutoCommit => 0 }; > >>> my @goodinfo = ($dsn, $user, $password, $options); > >>> my @badinfo = ($dsn, $user, '', $options); > >>> > >>> test(@goodinfo); > >>> test(@badinfo); > >>> test(@goodinfo); > >>> test(@goodinfo); > >>> > >>> sub test { > >>> my $dbh; > >>> eval { $dbh = DBI->connect(@_) }; > >>> warn "$...@\n" if $@; > >>> print $dbh ? "Ok" : "NOK"; > >>> print "\n"; > >>> } > >>> > >>> ======== > >>> > >>> so I expect to get "OK NOK OK OK". > >>> But on one computer I get "OK NOK NOK NOK", and on another I get the > >>> expected stuff (using the same database) > >>> > >>> But if I do > >>> test(@badinfo); > >>> test(@goodinfo); > >>> test(@goodinfo); > >>> > >>> I get "NOK OK OK" on both !!!!!!! > >>> > >>> Is this a bug ?? > >>> > >>> Thanks > >>> Karl Forner > >>> > >>> P.S > >>> > >>> Here are the configs : > >>> > >>> working computer: > >>> arch: ia64 > >>> OS: Suse ES 9 > >>> perl -v : v5.8.6 > >>> DBI: 1.607 > >>> DBD::Oracle: 1.16 > >>> > >>> buggy computer: > >>> arch: i686 > >>> OS : ubuntu 8.04 > >>> perl -v : v5.8.8 > >>> DBI: 1.601 > >>> DBD::Oracle: 1.22 > >>> > >>> > >> I think if you add add "ora_envhp => 0" to your options it will work. > >> See the DBD::Oracle pod for an explanation. > >> > > > > Indeed it works, thnak you. > > I think this is something quite dangerous and difficult to solve, maybe > it > > should be a default or clearly explained in the synopsis. > > Typical use case it testing a list of login/password. Here the connection > > begins to fail as soon as there is a success followed by a failure, then > > all > > subsequent connections fail. > > Moreover it does not happen with previous version of DBD::Oracle. > > > > Thanks again for the answer. > > > > >
