We are using Oracle Database 12.1.0.2.0 with 1.7.0_101 Java version. In Java Developer (12.1.3.0.0 with Java 1.7.0_51), we created following method:
private static String callSoapWebService(String soapEndpointUrl, String stringXml, String soapAction) {
String xmlResponse = null;
// System.out.println(stringXml);
try {
// Create SOAP Connection
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
System.setProperty("https.protocols", "TLSv1.2");
System.setProperty("javax.net.ssl.trustStore", "c:\\CERT\\cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("sun.net.client.defaultConnectTimeout", "2000");
System.setProperty("sun.rmi.transport.proxy.connectTimeout", "8000");
// Send SOAP Message to SOAP Server
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(soapAction, stringXml), soapEndpointUrl);
ByteArrayOutputStream out = new ByteArrayOutputStream();
soapResponse.writeTo(out);
xmlResponse = out.toString();
xmlResponse = xmlResponse.replaceAll("(\\r|\\n)", "");
soapConnection.close();
} catch (Exception e) {
xmlResponse = null;
e.printStackTrace();
}
return xmlResponse;
}
When the method is called from Java Developer for multiple time everything is working fine. But when we call it from Oracle database as java stored procedure, only first time we get response. After second attempt, the error is raised: IO Error: End of TNS data channel. I found in log (incdir_...) following:
Dump file D:\APP\ORACLE\diag\rdbms\orcl\orcl\incident\incdir_77077\orcl_s000_3664_i77077.trc
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Windows NT Version V6.1 Service Pack 1
CPU : 4 - type 8664, 4 Physical Cores
Process Affinity : 0x0x0000000000000000
Memory (Avail/Total): Ph:5672M/8191M, Ph+PgF:11530M/16381M
VM name : VMWare Version (6)
Instance name: orcl
Redo thread mounted by this instance: 1
Oracle process number: 23
Windows thread id: 3664, image: ORACLE.EXE (S000)
*** 2018-12-28 11:28:08.928
*** SESSION ID:(368.29614) 2018-12-28 11:28:08.928
*** CLIENT ID:() 2018-12-28 11:28:08.928
*** SERVICE NAME:(orcl) 2018-12-28 11:28:08.928
*** MODULE NAME:(SQL Developer) 2018-12-28 11:28:08.928
*** CLIENT DRIVER:(jdbcthin) 2018-12-28 11:28:08.928
*** ACTION NAME:() 2018-12-28 11:28:08.928
[TOC00000]
Jump to table of contents
Dump continued from file: D:\APP\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_s000_3664.trc
[TOC00001]
ORA-07445: exception encountered: core dump [joniul_set_native_libraries()+28] [ACCESS_VIOLATION] [ADDR:0x0] [PC:0x14910B62C] [UNABLE_TO_READ] []
[TOC00001-END]
[TOC00002]
========= Dump for incident 77077 (ORA 7445 [joniul_set_native_libraries]) ========
[TOC00003]
----- Beginning of Customized Incident Dump(s) -----
Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x0] [PC:0x14910B62C, joniul_set_native_libraries()+28]
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
Process Id: 0x00000548 Thread Id : 0x00000e50 Time : Fri Dec 28 11:28:08
Excp. Code: 0xc0000005 Excp. Type: ACCESS_VIO Flags: 0x00000000