Re: DBI.pm - Memoryfault(coredump)

2020-10-26 Thread Garry T. Williams
On Monday, October 26, 2020 11:47:54 AM EDT David Nicol wrote:
> if the Oracle module is maintained by red hat, yum update should
> help. If you built it in-house, you may need to yum update the perl
> development environment and reinstall.

This is good advice.

The original poster also should make sure the Oracle C-API libraries
are still installed properly on the client machine.

It's impossible to really tell from what the original poster wrote
what the code that is running is doing.  (The code he posted is a
shell script that executes the actual code, which is unknown to us.)

But...

It probably is DBD::Oracle running under DBI.  That is the preferred,
simple, and reliable way to access Oracle databases from Perl.  There
is no need to complicate things with an intermediate Java program.
Just use the direct interface to the Oracle C-API -- DBD::Oracle.

(I have used Perl DBD::Oracle for over 20 years on many different
operating systems and releases with zero problems.)

The error the original poster is getting is probably due to the
DBD::Oracle module never being updated to the new RHEL release.
Fixing it may require recompiling by hand, using CPAN.  (I do not know
if RHEL has an already-built DBD::Oracle module available from their
repositories.  I install from CPAN -- that is compile -- in Fedora.)

-- 
Garry T. Williams


Re: [EXTERNAL] Re: DBI.pm - Memoryfault(coredump)

2020-10-26 Thread Fennell, Brian
I think the following links should cover all the pieces needed for 
Perl/JDBC/Oracle

https://www.oracle.com/database/technologies/appdev/jdbc.html
https://metacpan.org/pod/distribution/DBD-JDBC/JDBC.pod
https://sdkman.io/
Perl can launch the java server using qx:
https://perlmaven.com/qx


This is possibly a tangent:
The last time I dug into this I couldn't figure out how to build DBD::Oracle 
from source using a Git source (in place of CPAN)
There is very brief mention the cpanm support for git here
https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm
(search the page for "git" )
There is better documentation (sort of) hidden in the closed issues here - 
several uri formats can be used:
https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm
https://github.com/miyagawa/cpanminus/issues/296
https://github.com/miyagawa/cpanminus/commit/cf9a72038123a2f721508f17ec8d314cae03245a
https://github.com/miyagawa/cpanminus/pull/165
https://github.com/miyagawa/cpanminus/commit/8d82465cc0dde2bd35cd7b454f06f7fba9f205f8
https://github.com/miyagawa/cpanminus/pull/230
https://github.com/miyagawa/cpanminus/commit/c588cd7f5fa3fa6c9dcc30d1f4c958c4d45680c1

I found two github repos with incidents - the second seems most active
https://github.com/sergadin/dbd-oracle
https://github.com/gitpan/DBD-Oracle



This is also helpful:
https://metacpan.org/pod/DBI#trace
https://metacpan.org/pod/DBI#TRACING







The information contained in this electronic mail transmission is intended only 
for the use of the individual or entity named in this transmission. If you are 
not the intended recipient of this transmission, you are hereby notified that 
any disclosure, copying or distribution of the contents of this transmission is 
strictly prohibited and that you should delete the contents of this 
transmission from your system immediately. Any comments or statements contained 
in this transmission do not necessarily reflect the views or position of Radial 
or its subsidiaries and/or affiliates.




Re: [EXTERNAL] Re: DBI.pm - Memoryfault(coredump)

2020-10-26 Thread Fennell, Brian
Also consider switching to the JDBC module and using the Oracle JDBC driver.

The JDBC driver requires launching a Java server which perl accesses via 
sockets which is available from CPAN but is not simply a drop in replacement 
for other DBI / DBD modules.

I had to downgrade both perl and Oracle PM in order to get some legacy perl / 
Oracle working.

The "Correct fix" requires rebuilding the Perl/Oracle module from source, an 
Oracle license, Oracle C Libraries and dot-h files and "sample" makefiles, and 
lots of time and patience and skill debugging buffer overflows in C (using 
something like electric fence) and extensive knowledge of Perl internals and 
Oracle C libraries. The Perl/Oracle module was not being actively maintained 
the last time I checked. I was not able to invest the time needed.

There is a fork of the perl/oracle module (or more than one) on GitHub / GitLab 
which can be build using cpanm (not cpan) which supports git. I forget the 
details beyond that.



The information contained in this electronic mail transmission is intended only 
for the use of the individual or entity named in this transmission. If you are 
not the intended recipient of this transmission, you are hereby notified that 
any disclosure, copying or distribution of the contents of this transmission is 
strictly prohibited and that you should delete the contents of this 
transmission from your system immediately. Any comments or statements contained 
in this transmission do not necessarily reflect the views or position of Radial 
or its subsidiaries and/or affiliates.




Re: DBI.pm - Memoryfault(coredump)

2020-10-26 Thread David Nicol
if the Oracle module is maintained by red hat, yum update should help. If
you built it in-house, you may need to yum update the perl development
environment and reinstall.

On Fri, Oct 23, 2020 at 11:27 PM Srikantha  wrote:

> Hello,
> We are having the below issue from one of the perl modules. We are trying
> to get Oracle query results via this perl package and that package is using
> DBI.pm.
> The perl script is executing end-end but at the end there is a
> segmentation fault error. We have recently upgraded our RHEL version and so
> perl got updated to v5.16.3 from v5.10.1. Below code was working fine
> with the older version.  Your help if any will be greatly appreciated.
> if I comment the code lines which is trying to get Oracle query results,
> then there is no Memory fault error. So I am pointing out issue to DBI.pm.
> And DBI version is 1.643.
>
> *Code snippet:*
>
> ${CODE_MOUNT_BASE}/scripts/audits/run_audit_dm_${TABLE}_${DATAMART}.pl
>
> exit_status=$?
>
> echo "exit status after pl call:  ${exit_status}"
>
>
>
> *Log message*:
>
> /u01/Projects/audits/scripts/run_audit_dm.ksh: line 12: 2613: Memory
> fault(coredump)
>
> exit status after pl call: 267
>
>
> *Regards*
> *Srikantha*
> *Mb-9980073640*
>


-- 
"You can be in my dream if I can be in yours." -- Bob Dylan