On Thu, Feb 19, 2009 at 2:08 PM, <sco...@pythian.com> wrote: > > oracle instant client 11.1 > > I wonder if they have changed how 11.1 works?? wil have to look at that > > what was the ORacle version working with 1.16?
9.2.0 > > > > But it seems to work now using the 'ora_envhp => 0' attribute. Is there > > some > > penalty performance when using this option ? > > > > Not in terms of speed it does use a little more resources so it is not > something you want to use on a mass scale say on a large web server or > alike. > > > > On Thu, Feb 19, 2009 at 1:56 PM, <sco...@pythian.com> 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 > >> > <martin.ev...@easysoft.com>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. > >> > > >> > >> > >> > > > > >