>PERL_DBI_DEBUG=9 would generate a different pile of information.
This is the output for the first disconnection using PERL_DBI_DEBUG=9 :
///////////////////////////////////////////////////////
Disconnecting ... ##### <-- from my script
-->> DBD::Informix::dbd_ix_db_disconnect()
dbd_ix_db_disconnect -- delete statements
-->> DBD::Informix::dbd_ix_link_delchain()
-->> DBD::Informix::::dbd_st_destroyer()
-->> del_statement() 0x0026B048
-->> del_statement() state NoMoreData
-->> del_statement() state Opened
del_statement() CLOSE cursor c_000000000
-->> del_statement() state Declared
del_statement() FREE cursor c_000000000
-->> del_statement() state Described
-->> del_statement() state Allocated
dbd_ix_st_deallocate() DEALLOCATE DESCRIPTOR d_000000000
-->> del_statement() state Prepared
del_statement() FREE statement p_000000000
-->> del_statement() state Unused
<<-- del_statement() 0x0026B048
<<-- DBD::Informix::::dbd_st_destroyer()
<<-- DBD::Informix::dbd_ix_link_delchain()
dbd_ix_db_disconnect -- statements deleted
DISCONNECT (x_000000000)
DISCONNECT -- STATUS 0
<<-- DBD::Informix::dbd_ix_db_disconnect()
<- disconnect= 1 at tmp line 33
-> DBI->connect(DBI:Informix:dimonex, , ****)
>> connect DISPATCH (DBI::dr=HASH(0x1186d0) rc2/4 @5 g0 ima1 pid#28768) at /usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/DBI.pm line 582
-> connect for DBD::Informix::dr (DBI::dr=HASH(0x1186d0)~0x1b4034 'dimonex' '' **** HASH(0x261f54))
New DBI::db (for DBD::Informix::db, parent=DBI::dr=HASH(0x1b4034), id=)
dbih_setup_handle(DBI::db=HASH(0x1214c0)=>DBI::db=HASH(0x261fcc), DBD::Informix::db, 1214cc, Null!)
dbih_make_com(DBI::dr=HASH(0x1b4034), 23e2b8, DBD::Informix::db, 288, 0) thr#0
dbih_setup_attrib(DBI::db=HASH(0x261fcc), Err, DBI::dr=HASH(0x1b4034)) SCALAR(0x121430) (already defined)
dbih_setup_attrib(DBI::db=HASH(0x261fcc), State, DBI::dr=HASH(0x1b4034)) SCALAR(0x1213a0) (already defined)
dbih_setup_attrib(DBI::db=HASH(0x261fcc), Errstr, DBI::dr=HASH(0x1b4034)) SCALAR(0x12140c) (already defined)
dbih_setup_attrib(DBI::db=HASH(0x261fcc), TraceLevel, DBI::dr=HASH(0x1b4034)) 0 (already defined)
dbih_setup_attrib(DBI::db=HASH(0x261fcc), FetchHashKeyName, DBI::dr=HASH(0x1b4034)) 'NAME' (already defined)
dbih_setup_attrib(DBI::db=HASH(0x261fcc), HandleError, DBI::dr=HASH(0x1b4034)) undef (not defined)
Disconnected <br> <br> <br> ##### <-- from my script
///////////////////////////////////////////////////////////////////////////////////////
Is it my imagination or is it setting up the next connection before finishing the current one. How is this possible ??
>And running truss or its equivalent on perl would also potentially be informative.
truss -f gives the following output
//////////////////////////////////////////////////////
>> disconnect DISPATCH (DBI::db=HASH(0x1b3ff8) rc1/1 @1 g0 imac01 pid#28768) at tmp line 33
-> disconnect for DBD::Informix::db (DBI::db=HASH(0x1b3ff8)~0x1213b8)
Disconnecting ...
-->> DBD::Informix::dbd_ix_db_disconnect()
dbd_ix_db_disconnect -- delete statements
-->> DBD::Informix::dbd_ix_link_delchain()
29365: write(5, "\0\0\0\f", 4) = 4
29365: write(5, " ACF86\0\v13 +A1", 8) = 8
29365: write(5, "\004\0\0\0\t10\0\0\0\0\f", 12) = 12
29365: semop(196609, 0xFFBEF128, 1) = 0
29365: getpid() = 29365 [29364]
29365: write(5, " S C", 2) = 2
29365: write(5, "\0\002 <", 4) = 4
29365: write(5, " ACF86\0\v139607", 8) = 8
29365: write(5, "\00E\0\0\0\0\080 s y s m".., 572) = 572
29365: getpid() = 29365 [29364]
29365: write(5, " C S", 2) = 2
29365: write(5, "\0\0\0\b", 4) = 4
29365: write(5, " ACF86\0\v1411A1", 8) = 8
29365: write(5, "\004\0\0\0\n\0\f", 8) = 8
29365: semop(196609, 0xFFBEF068, 1) = 0
29365: getpid() = 29365 [29364]
29365: write(5, " S C", 2) = 2
29365: write(5, "\0\0\002", 4) = 4
29365: write(5, " ACF86\0\v14 j <", 8) = 8
29365: write(5, "\0\f", 2) = 2
Disconnecting ...
29365: write(1, " D i s c o n n e c t i".., 20) = 20
29365: getpid() = 29365 [29364]
29365: write(5, " C S", 2) = 2
29365: write(5, "\0\0\0\b", 4) = 4
29365: write(5, " ACF86\0\v14C3FC", 8) = 8
29365: write(5, "\004\0\0\0\n\0\f", 8) = 8
29365: semop(196609, 0xFFBEF178, 1) = 0
29365: getpid() = 29365 [29364]
29365: write(5, " S C", 2) = 2
29365: write(5, "\0\0\002", 4) = 4
29365: write(5, " ACF86\0\v15147F", 8) = 8
29365: write(5, "\0\f", 2) = 2
29365: getpid() = 29365 [29364]
29365: write(5, " C S", 2) = 2
29365: write(5, "\0\0\0\b", 4) = 4
29365: write(5, " ACF86\0\v15 Z u", 8) = 8
29365: write(5, "\004\0\0\0\v\0\f", 8) = 8
29365: semop(196609, 0xFFBEF150, 1) = 0
29365: getpid() = 29365 [29364]
29365: write(5, " S C", 2) = 2
29365: write(5, "\0\0\002", 4) = 4
29365: write(5, " ACF86\0\v15B2EE", 8) = 8
29365: write(5, "\0\f", 2) = 2
29365: getpid() = 29365 [29364]
29365: write(5, " C S", 2) = 2
29365: write(5, "\0\0\004", 4) = 4
29365: write(5, " ACF86\0\v15F79D", 8) = 8
29365: write(5, "\0 T\0\f", 4) = 4
29365: semop(196609, 0xFFBEEE50, 1) = 0
29365: getpid() = 29365 [29364]
29365: write(5, " S C", 2) = 2
29365: write(5, "\0\0\006", 4) = 4
29365: write(5, " ACF86\0\v16 N H", 8) = 8
29365: write(5, "\0 T\0\0\0\f", 6) = 6
29365: getpid() = 29365 [29364]
29365: write(5, " C S", 2) = 2
29365: write(5, "\0\0\002", 4) = 4
29365: write(5, " ACF86\0\v1689FC", 8) = 8
29365: write(5, "\0 8", 2) = 2
29365: semop(196609, 0xFFBEEEB0, 1) = 0
29365: getpid() = 29365 [29364]
29365: write(5, " S C", 2) = 2
29365: write(5, "\0\0\002", 4) = 4
29365: write(5, " ACF86\0\v16EAFB", 8) = 8
29365: write(5, "\0 8", 2) = 2
29365: semop(196609, 0xFFBEEC80, 1) = 0
29365: semop(196609, 0xFF0A24E0, 1) = 0
29365: alarm(0) = 0
29365: sigaction(SIGALRM, 0xFFBEEB98, 0xFFBEEC48) = 0
29365: sigfillset(0xFF23C824) = 0
29365: sigprocmask(SIG_BLOCK, 0xFFBEEC38, 0xFFBEEC28) = 0
29365: alarm(1) = 0
29365: Received signal #14, SIGALRM, in sigsuspend() [caught]
29365: sigsuspend(0xFFBEEC18) Err#4 EINTR
29365: setcontext(0xFFBEE900)
29365: alarm(0) = 0
29365: sigprocmask(SIG_UNBLOCK, 0xFFBEEC38, 0x00000000) = 0
29365: sigaction(SIGALRM, 0xFFBEEB98, 0x00000000) = 0
29365: shmdt(0x00800000) = 0
29365: write(5, " C S", 2) = 2
29365: write(5, "\0\0\01E", 4) = 4
29365: write(5, " ACF86\0\v978499", 8) = 8
29365: write(5, "\0 r\0\0\0\t s y s m a s".., 30) = 30
Disconnected <br> <br> <br>
DBG - 2 Connecting DBI:Informix:dimonex ...
29365: write(1, " D i s c o n n e c t e d".., 7
////////////////////////////////////////////////////////////////////////
>Why are you stuck with IDS 9.21? Can you not upgrade to a more recent version? I'm not in the >least bit sure it would alter the slow disconnect behaviour, but it would at least avoid problems >with the potential unavailability of support. There could be a large number of subsidiary questions >arising - but I need some basic data first.
Unfortunately, this is the version we are running with at the moment ... But I'll get the boss onto it :-)
I hope that this mail provides some useful information,
sincerely,
Paul.
>--
>#include <disclaimer.h>
.