DBD::Oracle and CHLD signals

DBD::Oracle and CHLD signals

am 21.09.2007 03:56:37 von aaron_saarela

------_=_NextPart_001_01C7FBF2.A92F76C3
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,
=20
I'm hoping someone can answer a couple of questions for me on
DBD::Oracle and child signals. I have several perl scripts that use
DBD::Oracle to establish a connection to my database. In these scripts,
I'm also executing system commands to launch external processes. What
I've noticed is that the default Perl signal handler for CHLD gets
changed when I hold a database connection open, which results in system(
) returning -1 instead of the return code of the external process.=20
=20
Can I expect DBD::Oracle to always replace the signal handler for CHLD
with one of its own or is there a way to disable this behavior?
=20
Can I safely reset the CHLD signal handler back to 'default' while still
holding an open connection?
=20
I don't intend to share the open connection across processes - I just
want to establish one connection for the life of my script while
executing several other child processes.
=20
Thanks for the help,
-Aaron
=20

------_=_NextPart_001_01C7FBF2.A92F76C3--

Re: DBD::Oracle and CHLD signals

am 21.09.2007 22:02:38 von Tim.Bunce

It's Oracle, not DBD::Oracle, that's changing the signal settings.
Yes, do try altering the CHLD signal handler after connecting and report
back what you find. Also read the archives.

Tim.

On Thu, Sep 20, 2007 at 06:56:37PM -0700, Aaron Saarela wrote:
> Hi,
>
> I'm hoping someone can answer a couple of questions for me on
> DBD::Oracle and child signals. I have several perl scripts that use
> DBD::Oracle to establish a connection to my database. In these scripts,
> I'm also executing system commands to launch external processes. What
> I've noticed is that the default Perl signal handler for CHLD gets
> changed when I hold a database connection open, which results in system(
> ) returning -1 instead of the return code of the external process.
>
> Can I expect DBD::Oracle to always replace the signal handler for CHLD
> with one of its own or is there a way to disable this behavior?
>
> Can I safely reset the CHLD signal handler back to 'default' while still
> holding an open connection?
>
> I don't intend to share the open connection across processes - I just
> want to establish one connection for the life of my script while
> executing several other child processes.
>
> Thanks for the help,
> -Aaron
>