Skip to Main Content
  • Questions
  • Issues in OCI calls from C++ exe in Solaris platform - Oracle 12c Upgrade

Breadcrumb

May 4th

Question and Answer

Connor McDonald

Thanks for the question, ARUNPRASAD.

Asked: January 09, 2019 - 8:58 pm UTC

Last updated: January 10, 2019 - 8:17 am UTC

Version: oracle 12c (12.1.0.2)

Viewed 1000+ times

You Asked

Problem Description
---------------------------------------------------
C++ exe’s not working in Sun Solaris 5.11 11.3 server after upgraded to oci12. Failed with “GPF (11) Segment Violation(SIGSEGV)” after 10 successful OCI call attempts to invoke oopen oracle API.

Detailed description:
As part of oracle 12c (12.1.0.2) Database upgrade, rebuilt C++ exes with Oracle 12c library path in Solaris server.
The purpose of the exe is to do manipulation and invoke stored procedures for DML operations.
The C++ exe’s making calls to oracle stored procs via OCI.

Steps taken so far:
• Rebuilt Exe’s with Oracle 12c DB Libraries (Updated Sun Solaris environment variables LD_LIBRARY_PATH, LIBPATH to point Oracle 12c Client library paths) & Oracle Studio 12.5 CC compiler.
• Testing exe’s resulted in Segment Violation (SIGSEGV) error Application logs shows error out when it hits oopen method for the 11th time.

Note:
• Windows build with new 12c oracle client home path is working fine as expected. The issue is observed only in Solaris build.
• Tested by making 11th stored proc as dummy with no DML operations inside. Still resulted in SIGSEGV error. We infer that there is no problem w.r.to DML operations inside the DB object
• Tested by making a 11th call to a different stored proc (instead of the original). Resulted at same error, We infer that there is no problem with the DB object.

logs:

0 (01) | 00008.501 (00008.501) : After Oopen Call (70 ) : OOpen Success 0
0 (01) | 00008.506 (00008.506) : dbOCIOpenStoredProc (65 ) : Before OCI_SUCCESS
0 (01) | 00008.509 (00008.509) : After Oopen Call (70 ) : OOpen Success 0
0 (01) | 00008.516 (00008.516) : dbOCIOpenStoredProc (65 ) : Before OCI_SUCCESS
0 (01) | 00008.519 (00008.519) : After Oopen Call (70 ) : OOpen Success 0
0 (01) | 00008.746 (00008.746) : baBatchLogging (97 ) : Mon Jan 7 11:41:53 2019 : Entry Mode Set = Ok, Run Mode = 2, Date = 20190107, Time = Mon Jan 7 11:41:53 2019
0 (01) | 00008.750 (00008.750) : dbOCIOpenStoredProc (65 ) : Before OCI_SUCCESS
0 (01) | 00008.751 (00008.751) : ABEND-DETECT (68 ) : ++ Illegal Signal detected (GPF) (11)
0 (01) | 00008.753 (00008.753) : ABEND-DETECT (71 ) : ++ Function call stack

and Connor said...

Sorry, I think you'll need to take this one up with Support.

But 'oopen'? That's dating way way way back to Oracle 7.3, and is right on the verge of being desupported.

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnoci/release-changes.html#GUID-1876E8B1-43EC-4074-95B9-D91185D79360

I think it would make sense to take this opportunity to bring that code up to date.

Is this answer out of date? If it is, please let us know via a Comment

More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database