Got a moment to gve this more thought...

> ----
> #!/usr/SD/perl/bin/perl
> 
> #use DBD::Oracle;
> use DBI;
> 
> $SIG{ALRM} = sub { print "Caught alarm\n"; };
> 
> alarm (2);
> $dbh = DBI->connect('dbi:Oracle:eman', 'eman', 'eman');
> alarm (0);
> 
> sleep(5);
> print "Success\n";
> 
> ----
> If the "use DBD::Oracle" line is uncommented, the script succeeds.  If 
> commented out, it fails, and the $SIG{ALRM} handler doesn't work either- 
> it just prints "Alarm Clock" and exits.
> 
> It appears that the oracle libraries are monkeying with the signal 
> handlers?

May actually be Solaris when it dynamically loads a library that
uses threading into an application that wasn't linked for threading.

> I'm not really happy with the "use DBD::Oracle" workaround at this point- 
> i'd hate to miss some script somewhere while trying to add it.
> 
> If there's a way to fix this in DBD, i'd prefer that, certainly.

Try reconfiguring (and rebuilding) perl to support threads. Don't
actually _use_ the threads support, but the fact it's there (ie
perl was linked with -lthread) may be enough to avoid the problem.

Please let us know if it helps.

Tim.

Reply via email to