If it always stops at the same place, it makes me think of a resource problem, something like a quota?
I don't remember of there are select quotas. Does it do the same if run as sysdba or some other well-endowed database user? > -----Original Message----- > From: Dan [mailto:dkele...@gmail.com] > Sent: Thursday, July 08, 2010 10:02 AM > To: dbi-users@perl.org > Subject: "sql*net message from client" hang > > Hello, > I have some code that has been running happily for many years, but > suddenly started hanging on a simple select query to our Oracle DB. > The DB > shows it as an inactive session with "SQL*NET message from client", so > the > DB thinks it is waiting for the perl script, but the perl script is > hung > reading from the DB according to truss. I boiled it down to a 20 line > test > script that prepares a query using DBI and then executes it ~190 times > for > different 10k blocks of the table. It seems to consistently hang on > the > 97th iteration, and times out after a few hours hung in "SQL*NET > message > from client". Has anyone ever come across an issue like this? Even > stranger, > when I inserted "$dbh->{RowCacheSize} = -1;" , it seems to complete and > never hang... Our hunch is that this is some issue with the network, > but > don't have the expertise to pinpoint what would cause this strange > behaviour > > We are running old DBI .67, but i tried the same script with a local > version > of the latest and greatest DBI and DBD::Oracle with the same results. > Here > is a sample output from setting $dbh->trace(15); : > > 96 : 1793727 > -> execute for DBD::Oracle::st (DBI::st=HASH(0x40ad7c)~0x40ad4c > '1793727') thr#12d600 > bind :p1 <== '1793727' (type 0) > rebinding :p1 (not-utf8, ftype 1, csid 0, csform 0, inout 0) > bind :p1 <== '1793727' (size 7/8/0, ptype 4, otype 1) > bind :p1 <== '1793727' (size 7/7, otype 1, indp 0, at_exec 1) > > OCIBindByName(3960a0,404734,38f52c,":p1",3,3a8438,7,1,40474c,0,404744,0 > ,0,2)=SUCCESS > > OCIBindDynamic(395e34,38f52c,404710,fefec350,404710,fefec644)=SUCCESS > bind :p1 <== '1793727' (in, not-utf8, csid 31->0->31, ftype 1, > csform > 0->0, maxlen 7, maxdata_size 0) > OCIAttrSet(395e34,OCI_HTYPE_BIND,ffbff290,0,31,38f52c)=SUCCESS > dbd_st_execute SELECT (out0, lob0)... > in ':p1' [0,0]: len 7, ind 0 > OCIStmtExecute(38f4b8,3960a0,38f52c,0,0,0,0,0)=SUCCESS > OCIAttrGet(3960a0,OCI_HTYPE_STMT,ffbff40a,0,10,38f52c)=SUCCESS > dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0) > <- execute= '0E0' at simple.pl line 18 > 97 : 1793738 > -> execute for DBD::Oracle::st (DBI::st=HASH(0x40ad7c)~0x40ad4c > '1793738') thr#12d600 > bind :p1 <== '1793738' (type 0) > rebinding :p1 (not-utf8, ftype 1, csid 0, csform 0, inout 0) > bind :p1 <== '1793738' (size 7/8/0, ptype 4, otype 1) > bind :p1 <== '1793738' (size 7/7, otype 1, indp 0, at_exec 1) > > OCIBindByName(3960a0,404734,38f52c,":p1",3,3a8438,7,1,40474c,0,404744,0 > ,0,2)=SUCCESS > > OCIBindDynamic(395e34,38f52c,404710,fefec350,404710,fefec644)=SUCCESS > bind :p1 <== '1793738' (in, not-utf8, csid 31->0->31, ftype 1, > csform > 0->0, maxlen 7, maxdata_size 0) > OCIAttrSet(395e34,OCI_HTYPE_BIND,ffbff290,0,31,38f52c)=SUCCESS > dbd_st_execute SELECT (out0, lob0)... > in ':p1' [0,0]: len 7, ind 0 > ... > ### HANGS forever here :( > ... > > Any help is much appreciated! > > Thanks, > Dan