develooper Front page | perl.dbi.users | Postings from February 2001

RE: Oracle DBD: space leak and max open cursors errors

Thread Previous | Thread Next
From:
Mitchell, Louise M
Date:
February 20, 2001 14:48
Subject:
RE: Oracle DBD: space leak and max open cursors errors
Message ID:
85FAE3EFDA2C674F8EF7FDB35769863D0D1F29@pnlmse07.pnl.gov
In your init<sid>.ora file, increate the max_cursors option.

L

-----Original Message-----
From: Eli [mailto:eli.venter@celera.com]
Sent: Tuesday, February 20, 2001 2:04 PM
To: dbi-users@perl.org; Tim.Bunce@ig.co.uk
Subject: Oracle DBD: space leak and max open cursors errors



I'm getting:

DBD::Oracle::db disconnect failed: ORA-00600: internal error code,
arguments: [729], [360], [space leak], [], [], [], [], [] (DBD ERROR:
OCISessionEnd)

This is after calling a stored procedure which returns some data through
a inout parameter around 50 times. The disconnect is in our error
handeling. The error that sends us to disconnect is:

 DBD::Oracle::st execute failed: ORA-01000: maximum open cursors
exceeded

Our DBI code inside the loop looks like: 

  my $procedure = q{
      BEGIN 
        RAP.GET_NEXT_JOB(:id, :cmd, :bsub);
      END;
  };
  my $sth = $dbh->prepare_cached( $procedure ) || confess "Can't
prepare";

  $sth->bind_param_inout(":id", $identifier, 20, DBI::SQL_INTEGER);
  $sth->bind_param_inout(":cmd", $command, 512, DBI::SQL_VARCHAR);
  $sth->bind_param_inout(":bsub", $bsub, 512, DBI::SQL_VARCHAR);

  $sth->execute;

We tried putting a $sth->finish after the execute, but that doesn't
change anything. It seems to be something to do with the inout param
because we do something very similar with only in params and never have
the problem.

Any ideas or suggestions?

thanks

-Eli

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About