Monday, August 26, 2019

JDBC Connections from E-Business Suite Application Tier Fail with "java.sql.SQLException: Io exception: There is no process to read data written to a pipe." (Doc ID 734293.1)

APPLIES TO:

Oracle Applications Utilities - Version 11.5.10.2 to 12.1.3 [Release 11.5.10 to 12.1]
IBM AIX on POWER Systems (64-bit)
IBM AIX Based Systems (64-bit)
AIX5L Based Systems (64-bit)
Checked for relevance on June 4th, 2018

SYMPTOMS

All the JDBC Thin Client connections from E-Business Suite are waiting long and then failing with error :
...
java.sql.SQLException: Io exception: There is no process to read data written to a pipe.
...
SQL*Plus connections are working fine.

CAUSE

This issue is usually caused by "TimeOut" issue under the following levels :
1. Firewall level timeout
2. SQL*Net level timeout
3. Listener level timeout
Please test the JDBC connection using the following code :

//=======================================================
// Test Code: cut from here
//=======================================================
import java.sql.*;
class oraConn
{
public static void main (String args []) throws SQLException
{
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
java.util.Properties ora_property = new java.util.Properties();
Connection conn =
DriverManager.getConnection("jdbc:oracle:thin:apps/<passwd>@<host>.<domain>:<port>:<SID>");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select user from dual");
while (rset.next())
System.out.println(rset.getString(1));
} catch (SQLException ex) {

// A SQLException was generated. Catch it and
// display the error information. Note that there
// could be multiple error objects chained
// together.

System.out.println ("\n*** SQLException caught ***\n");

// Walk through the list of SQL exceptions and print
// each SQL exception's information
while (ex != null) {
System.out.println ("SQLState: " + ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage ());
System.out.println ("Vendor: " + ex.getErrorCode ());
ex.printStackTrace();

ex = ex.getNextException ();
System.out.println ("");
}
}
}
}
//=======================================================
// End-of-Code
//======================================================= 

Check if it is able to create a JDBC connection on the server. Monitor it with :
SQL> SELECT sid, serial#, logon_time, program
       FROM v$session
      WHERE program LIKE 'JDBC%';

Check if the test code returns following error after the above session gets killed :
...

*** SQLException caught ***

SQLState: null
Message: Io exception: There is no process to read data written to a pipe.
Vendor: 17002
java.sql.SQLException: Io exception: There is no process to read data written to a pipe.
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
at oracle.jdbc.ttc7.TTC7Proto .handleIOException(TTC7Protocol.java:3664)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:353)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:371)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:551)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:351)
at java.sql.DriverManager.getConnection(DriverManager.java:559)
at java.sql.DriverManager.getConnection(DriverManager.java:211)
at oraConn.main(oraConn.java:9) 
...

SOLUTION

To implement the solution, please execute the following steps :

1. Unset any timeout value at network level or firewall level, if any.

2. Modify timeout settings :
listener.ora :
INBOUND_CONNECT_TIMEOUT_LISTENER = 0
sqlnet.ora :
SQLNET.INBOUND_CONNECT_TIMEOUT = 0

3. Re-start the Database and the DB Listener

4. Retest the issue

5. Migrate the solution to appropriate Environment
 

Was this document helpful?

 
   
 

Document Details

 
Email link to this documentOpen document in new windowPrintable Page
PROBLEM
PUBLISHED
Jul 29, 2019
Jul 29, 2019
   
 

Related Products

 
Oracle Applications Utilities
   
 

Document References

 
No References available for this document.
   
Didn't find what you are looking for?

No comments:

Post a Comment

Database Options/Management Packs Usage Reporting for Oracle Databases 11.2 and later (Doc ID 1317265.1)

  Database Options/Management Packs Usage Report You can determine whether an option is currently in use in a database by running options_pa...