Hi Tim,


> I've not forgotten you Gerald, I've just not had the time to look at this
> in any depth and I won't now till mid September at the earliest. Sorry.
>

I know it isn't an easy thing. My main hope was that the error message at
the end of my report


> > *********** Internal ERROR kghubatchfree_01 [0x1ecb290] ***********
> > additional information [0] [0] [0]
> > ***** Dump of memory around addr 0x1ecb290:
> >....

does tell you anything obvious, that isn't obvious to me because of my
limited OCI knowledge.

> Reading (or rereading) this section of the OCI manual may help:
>
http://download-east.oracle.com/otndoc/oracle9i/901_doc/appdev.901/a89857/oc
i09adv.htm#429718
>

I will reread it and maybe I find something usefull I have overlooked so
far...

In case I find anything new about it I will keep you uptodate

Thanks

Gerald


> Tim.
>
> On Mon, Aug 19, 2002 at 08:56:32AM +0200, Gerald Richter wrote:
> > Hi Tim,
> >
> > some time ago we talked about shareing the Oracle handles between
threads to
> > have only one database connection open. I send you a patch that basicly
does
> > it. Now I am back on that issuse and found out that it is working quite
well
> > as long as I don't do an UPDATE in a thread other then the one which has
> > created the handles. Since I don't have much knowlegde of OCI I would
like
> > to ask you, if you have idea what's wrong here and where to find
searching
> > for the problem.
> >
> > What I am doing is to create a database connection for which all OCI
handles
> > except the error handle are shared between threads. I can do selects in
any
> > thread and it works quite well. When I do an UPDATE statement in a
thread
> > that doesn't have created the handles I get the following error. I also
> > attach end of a DBI_TRACE=4 and for your convenice the patch against
> > DBD::Oracle 1.12. I would be very happy I you have any idea where to
search
> > for the problem. If you need more informations let me know.
> >
> > Thanks
> >
> > Gerald
> >
> >     -> prepare for DBD::Oracle::db (DBI::db=HASH(0x1eb43bc)~0x1eb5128
> > 'SELECT authMode, data FROM
> >          WebCenter_authHandler WHERE handlerID = ?') thr#1d821a4
> >     New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x1eb5128),
id=)
> >     dbih_setup_handle(DBI::st=HASH(0x1e6c86c)=>DBI::st=HASH(0x1eb5290),
> > DBD::Oracle::st, 1d83bb8, Null!)
> >     dbih_make_com(DBI::db=HASH(0x1eb5128), DBD::Oracle::st, 208)
thr#1d821a4
> >     dbd_preparse scanned 1 distinct placeholders
> >     dbd_st_prepare'd sql SELECT
> >     dbd_describe SELECT (EXPLICIT, lb 80)...
> >     fbh 1: 'AUTHMODE' NULLable, otype   1->  5, dbsize 80/81, p80.s0
> >     fbh 2: 'DATA' NULLable, otype   1->  5, dbsize 80/81, p80.s0
> >     dbd_describe'd 2 columns (row bytes: 160 max, 160 est avg, cache:
82)
> >     <- prepare= DBI::st=HASH(0x1e6c86c) at auth.pl line 59 via auth.pl
line
> > 139
> >     -> prepare for DBD::Oracle::db (DBI::db=HASH(0x1eb43bc)~0x1eb5128
> > 'UPDATE WebCenter_user SET lastLogin =
> >           SYSDATE WHERE userID = ?') thr#1d821a4
> >     New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x1eb5128),
id=)
> >     dbih_setup_handle(DBI::st=HASH(0x1eb52d8)=>DBI::st=HASH(0x1eb5374),
> > DBD::Oracle::st, 1eb52e4, Null!)
> >     dbih_make_com(DBI::db=HASH(0x1eb5128), DBD::Oracle::st, 208)
thr#1d821a4
> >     dbd_preparse scanned 1 distinct placeholders
> >     dbd_st_prepare'd sql UPDATE
> >     dbd_describe skipped for UPDATE
> >     <- prepare= DBI::st=HASH(0x1eb52d8) at auth.pl line 63 via auth.pl
line
> > 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1eb5164)~0x1e61e5c
'xx')
> > thr#1d821a4
> >     New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x1e9a410),
id=)
> >     dbih_setup_handle(DBI::st=HASH(0x1d80ef4)=>DBI::st=HASH(0x1e9a578),
> > DBD::Oracle::st, 1a4b7d8, Null!)
> >     dbih_make_com(DBI::db=HASH(0x1e9a410), DBD::Oracle::st, 208)
thr#1b799f4
> >     dbd_preparse scanned 1 distinct placeholders
> >     dbd_st_prepare'd sql SELECT
> >     dbd_describe SELECT (EXPLICIT, lb 80)...
> >     fbh 1: 'AUTHMODE' NULLable, otype   1->  5, dbsize 80/81, p80.s0
> >     fbh 2: 'DATA' NULLable, otype   1->  5, dbsize 80/81, p80.s0
> >     dbd_describe'd 2 columns (row bytes: 160 max, 160 est avg, cache:
82)
> >     <- prepare= DBI::st=HASH(0x1d80ef4) at auth.pl line 59 via auth.pl
line
> > 139
> >     -> prepare for DBD::Oracle::db (DBI::db=HASH(0x1e71aac)~0x1e9a410
> > 'UPDATE WebCenter_user SET lastLogin =
> >           SYSDATE WHERE userID = ?') thr#1b799f4
> >     New DBI::st (for DBD::Oracle::st, parent=DBI::db=HASH(0x1e9a410),
id=)
> >     dbih_setup_handle(DBI::st=HASH(0x1e9a5c0)=>DBI::st=HASH(0x1e9a65c),
> > DBD::Oracle::st, 1e9a5cc, Null!)
> >     dbih_make_com(DBI::db=HASH(0x1e9a410), DBD::Oracle::st, 208)
thr#1b799f4
> >     dbd_preparse scanned 1 distinct placeholders
> >     dbd_st_prepare'd sql UPDATE
> >     dbd_describe skipped for UPDATE
> >     <- prepare= DBI::st=HASH(0x1e9a5c0) at auth.pl line 63 via auth.pl
line
> > 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1e9a44c)~0x1d7631c
'xx')
> > thr#1b799f4
> >        bind :p1 <== 'xx' (type 0)
> >        bind :p1 <== 'xx' (size 2/3/0, ptype 4, otype 1)
> >        bind :p1 <== 'xx' (size 2/2, otype 1, indp 0, at_exec 1)
> >        bind :p1 done with ftype 1
> >     dbd_st_execute SELECT (out0, lob0)...
> >        in  ':p1' [0,0]: len  2, ind 0
> >     dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
> >     <- execute= '0E0' at auth.pl line 72 via auth.pl line 139
> >     -> bind_columns in DBD::_::st for DBD::Oracle::st
> > (DBI::st=HASH(0x1eb5164)~0x1e61e5c SCALAR(0x1dacb14) SCALAR(0x1dacb20)
> > SCALAR(0x1d8d418)) thr#1d821a4
> >     dbih_setup_fbav for 3 fields => 0x1ef34cc
> >     dbih_sth_bind_col 1 => SCALAR(0x1dacb14)
> >     dbih_sth_bind_col 2 => SCALAR(0x1dacb20)
> >     dbih_sth_bind_col 3 => SCALAR(0x1d8d418)
> >     <- bind_columns= 1 at auth.pl line 73 via auth.pl line 139
> >     -> fetch for DBD::Oracle::st (DBI::st=HASH(0x1eb5164)~0x1e61e5c)
> > thr#1d821a4
> >        bind :p1 <== 'xx' (type 0)
> >        bind :p1 <== 'xx' (size 2/3/0, ptype 4, otype 1)
> >        bind :p1 <== 'xx' (size 2/2, otype 1, indp 0, at_exec 1)
> >        bind :p1 done with ftype 1
> >     dbd_st_execute SELECT (out0, lob0)...
> >        in  ':p1' [0,0]: len  2, ind 0
> >     dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
> >     <- execute= '0E0' at auth.pl line 72 via auth.pl line 139
> >     -> bind_columns in DBD::_::st for DBD::Oracle::st
> > (DBI::st=HASH(0x1e9a44c)~0x1d7631c SCALAR(0x1cab014) SCALAR(0x1cab020)
> > SCALAR(0x1c4f400)) thr#1b799f4
> >     dbih_setup_fbav for 3 fields => 0x1ef4d14
> >     dbih_sth_bind_col 1 => SCALAR(0x1cab014)
> >     dbih_sth_bind_col 2 => SCALAR(0x1cab020)
> >     dbih_sth_bind_col 3 => SCALAR(0x1c4f400)
> >     <- bind_columns= 1 at auth.pl line 73 via auth.pl line 139
> >     -> fetch for DBD::Oracle::st (DBI::st=HASH(0x1e9a44c)~0x1d7631c)
> > thr#1b799f4
> >     dbd_st_fetch 3 fields...
> >     dbd_st_fetch 3 fields SUCCESS
> >     <- fetch= [ 'xx' undef 'xx' ] row1 at auth.pl line 82 via auth.pl
line
> > 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1eb52d8)~0x1eb5374
'xx')
> > thr#1d821a4
> >     dbd_st_fetch 3 fields...
> >     dbd_st_fetch 3 fields SUCCESS
> >     <- fetch= [ 'xx' undef 'xx' ] row1 at auth.pl line 82 via auth.pl
line
> > 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1e9a5c0)~0x1e9a65c
'xx')
> > thr#1b799f4
> >        bind :p1 <== 'xx' (type 0)
> >        bind :p1 <== 'xx' (size 2/3/0, ptype 4, otype 1)
> >        bind :p1 <== 'xx' (size 2/2, otype 1, indp 0, at_exec 1)
> >        bind :p1 done with ftype 1
> >     dbd_st_execute UPDATE (out0, lob0)...
> >        in  ':p1' [0,0]: len  2, ind 0
> >     dbd_st_execute UPDATE returned (SUCCESS, rpc1, fn5, out0)
> >     <- execute= 1 at auth.pl line 114 via auth.pl line 139
> >     -> finish for DBD::Oracle::st (DBI::st=HASH(0x1eb5164)~0x1e61e5c)
> > thr#1d821a4
> >        bind :p1 <== 'xx' (type 0)
> >        bind :p1 <== 'xx' (size 2/3/0, ptype 4, otype 1)
> >        bind :p1 <== 'xx' (size 2/2, otype 1, indp 0, at_exec 1)
> >        bind :p1 done with ftype 1
> >     dbd_st_execute UPDATE (out0, lob0)...
> >        in  ':p1' [0,0]: len  2, ind 0
> >     dbd_st_execute UPDATE returned (SUCCESS, rpc1, fn5, out0)
> >     <- execute= 1 at auth.pl line 114 via auth.pl line 139
> >     -> finish for DBD::Oracle::st (DBI::st=HASH(0x1e9a44c)~0x1d7631c)
> > thr#1b799f4
> >     <- finish= 1 at auth.pl line 117 via auth.pl line 139
> >     -> finish for DBD::Oracle::st (DBI::st=HASH(0x1d80ef4)~0x1e9a578)
> > thr#1b799f4
> >     <- finish= 1 at auth.pl line 118 via auth.pl line 139
> >     -> finish for DBD::Oracle::st (DBI::st=HASH(0x1e9a5c0)~0x1e9a65c)
> > thr#1b799f4
> >     <- finish= 1 at auth.pl line 119 via auth.pl line 139
> >     <- finish= 1 at auth.pl line 117 via auth.pl line 139
> >     -> finish for DBD::Oracle::st (DBI::st=HASH(0x1e6c86c)~0x1eb5290)
> > thr#1d821a4
> >     <- finish= 1 at auth.pl line 118 via auth.pl line 139
> >     -> finish for DBD::Oracle::st (DBI::st=HASH(0x1eb52d8)~0x1eb5374)
> > thr#1d821a4
> >     <- finish= 1 at auth.pl line 119 via auth.pl line 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1e9a44c)~0x1d7631c
'xx')
> > thr#1b799f4
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1eb5164)~0x1e61e5c
'xx')
> > thr#1d821a4
> >        bind :p1 <== 'xx' (type 0)
> >        bind :p1 <== 'xx' (size 2/3/0, ptype 4, otype 1)
> >        bind :p1 <== 'xx' (size 2/2, otype 1, indp 0, at_exec 1)
> >        bind :p1 done with ftype 1
> >     dbd_st_execute SELECT (out0, lob0)...
> >        in  ':p1' [0,0]: len  2, ind 0
> >     dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
> >     <- execute= '0E0' at auth.pl line 72 via auth.pl line 139
> >     -> bind_columns for DBD::Oracle::st
(DBI::st=HASH(0x1e9a44c)~0x1d7631c
> > SCALAR(0x1e9a6bc) SCALAR(0x1d76304) SCALAR(0x1ef4cb4)) thr#1b799f4
> >     dbih_sth_bind_col 1 => SCALAR(0x1e9a6bc)
> >     dbih_sth_bind_col 2 => SCALAR(0x1d76304)
> >     dbih_sth_bind_col 3 => SCALAR(0x1ef4cb4)
> >     <- bind_columns= 1 at auth.pl line 73 via auth.pl line 139
> >     -> fetch for DBD::Oracle::st (DBI::st=HASH(0x1e9a44c)~0x1d7631c)
> > thr#1b799f4
> >        bind :p1 <== 'xx' (type 0)
> >        bind :p1 <== 'xx' (size 2/3/0, ptype 4, otype 1)
> >        bind :p1 <== 'xx' (size 2/2, otype 1, indp 0, at_exec 1)
> >        bind :p1 done with ftype 1
> >     dbd_st_execute SELECT (out0, lob0)...
> >        in  ':p1' [0,0]: len  2, ind 0
> >     dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
> >     <- execute= '0E0' at auth.pl line 72 via auth.pl line 139
> >     -> bind_columns for DBD::Oracle::st
(DBI::st=HASH(0x1eb5164)~0x1e61e5c
> > SCALAR(0x1eb53d4) SCALAR(0x1e61e44) SCALAR(0x1ef346c)) thr#1d821a4
> >     dbih_sth_bind_col 1 => SCALAR(0x1eb53d4)
> >     dbih_sth_bind_col 2 => SCALAR(0x1e61e44)
> >     dbih_sth_bind_col 3 => SCALAR(0x1ef346c)
> >     <- bind_columns= 1 at auth.pl line 73 via auth.pl line 139
> >     -> fetch for DBD::Oracle::st (DBI::st=HASH(0x1eb5164)~0x1e61e5c)
> > thr#1d821a4
> >     dbd_st_fetch 3 fields...
> >     dbd_st_fetch 3 fields SUCCESS
> >     <- fetch= [ 'xx' undef 'xx' ] row1 at auth.pl line 82 via auth.pl
line
> > 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1e9a5c0)~0x1e9a65c
'xx')
> > thr#1b799f4
> >     dbd_st_fetch 3 fields...
> >     dbd_st_fetch 3 fields SUCCESS
> >     <- fetch= [ 'xx' undef 'xx' ] row1 at auth.pl line 82 via auth.pl
line
> > 139
> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x1eb52d8)~0x1eb5374
'xx')
> > thr#1d821a4
> >
> >
> > *********** Internal ERROR kghubatchfree_01 [0x1ecb290] ***********
> > additional information [0] [0] [0]
> > ***** Dump of memory around addr 0x1ecb290:
> > 1ECB090 00000000 00000000 00000000 00000000  [................]
> >         Repeat 29 times
> > 1ECB270 00000821 01ECAF7C 01EC0E08 01ECA57C  [!...|....|.]
> > 1ECB280 01ECBAAC 1000080D 00000000 60259108  [?..........%`]
> > 1ECB290 84000802 00000000 01ECA56C 01ECBACC  [.......l.??.]
> > 1ECB2A0 01ECA608 880007EE 00000000 01ECB2AC  [........?.]
> > 1ECB2B0 01ECB2AC 00000000 00000000 00000000  [?.............]
> > 1ECB2C0 00000000 00000000 00000000 00000000  [................]
> >   Repeat 28 times
> >
> > ******************************************************
> > KGHU DUMP heap name="session heap"  desc=0x1eec164
> > parent=1ee5320 subhp=1eec174 prv=1eeba14 nxt=1eeba14
> > flg=0x55 eck=0x0 chkprv=1eed6c4 chknxt=1eed6c4 ctr=1
> > BATCH HEADER 1 addr=1eed6b8 (prv=1eec200 nxt=1eec200)
> >   Chunk  1eed6cc sz=      572  free      "               "
> >   Chunk  1eed908 sz=       48  alloc     "kpplal dvoid   "
> >   Chunk  1eed938 sz=       80  alloc     "kpplal dvoid   "
> >   Chunk  1eed988 sz=       48  alloc     "kpplal dvoid   "
> >   Chunk  1eed9b8 sz=       80  alloc     "kpplal dvoid   "
> >   Chunk  1eeda08 sz=       48  alloc     "kpplal dvoid   "
> >   Chunk  1eeda38 sz=       80  alloc     "kpplal dvoid   "
> >   Chunk  1eeda88 sz=       48  alloc     "kpplal dvoid   "
> > Total kghu heap size  =      1024
> > FREE LISTS:
> > Bucket 3 size 48
> >   Chunk  1ecbad4 sz=       60  free      "               "
> > Bucket 32 size 512
> >   Chunk  1eed6cc sz=      572  free      "               "
> > Total kghu free space =       632
> > ******************************************************
> > DUMP OF KGH SUBHEAP USED BY KGHU [ds=1eec174]:
> >
> > ******************************************************
> > HEAP DUMP heap name="session heap"  desc=0x1eec174
> >  extent sz=0x224 alt=32767 het=32767 rec=0 flg=2 opc=2
> >  parent=1ee5320 owner=0 nex=0 xsz=0x414
> > EXTENT 0
> >   Chunk  1eed6ac sz=     1036    freeable  "kpplal dvoid   "
> > Total heap size    =     1036
> > FREE LISTS:
> >  Bucket 0 size=220
> >  Bucket 1 size=16396
> >  Bucket 2 size=24588
> >  Bucket 3 size=32780
> >  Bucket 4 size=40972
> >  Bucket 5 size=43532
> > Total free space   =        0
> > UNPINNED RECREATABLE CHUNKS (lru first):
> > PERMANENT CHUNKS:
> > Permanent space    =        0
> > ******************************************************
> > END OF KGHU DUMP**************************************
> > ******************************************************
> > kgepop: no error frame to pop to for error 21500
> >
> >
> >
> > -------------------------------------------------------------
> > Gerald Richter    ecos electronic communication services gmbh
> > Internetconnect * Webserver/-design/-datenbanken * Consulting
> >
> > Post:       Tulpenstrasse 5         D-55276 Dienheim b. Mainz
> > E-Mail:     [EMAIL PROTECTED]         Voice:    +49 6133 925131
> > WWW:        http://www.ecos.de      Fax:      +49 6133 925152
> > -------------------------------------------------------------
> >
> >
>
>
>

-------------------------------------------------------------
Gerald Richter    ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting

Post:       Tulpenstrasse 5         D-55276 Dienheim b. Mainz
E-Mail:     [EMAIL PROTECTED]         Voice:    +49 6133 925131
WWW:        http://www.ecos.de      Fax:      +49 6133 925152
-------------------------------------------------------------


Reply via email to