6 Replies Latest reply on Dec 15, 2006 8:46 AM by 550701

    Io exception: Broken pipe

      Hello dear colleagues,

      We have a strange problem happening.
      We are a software company making both C and java applications for banks. We have a Java application that runs fine everywhere but in one customer bank.
      We use Oracle 10.2g , OJDBC14, and Java
      The platform is AIX5.3

      This application is a server, waiting for MQSeries messages and stores data in Oracle.
      Obviously messages can arrive any time.
      The Oracle connection is done once when we start, and remains opened all the time.

      In this particular case, for this customer, if there is a 20 min or more gap between 2 messages (during this time there is no DB activity whatsoever) , our Java application receives this error:

      2006-11-28 08:21:12 : ERROR ... [JLooperDAO2] SQL STATE: null
      java.sql.SQLException: Io exception: Broken pipe
           at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
           at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
           at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
           at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:977)
           at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
           at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
           at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
           at com.viveo.jlooper.dao.JLooperDAO2.processPreparedStatement(Unknown Source)
           at com.viveo.jlooper.dao.JLooperDAO2.ExecuteStatement(Unknown Source)
           at com.viveo.jlooper.dao.JLooperDAO2.processMappingBlock(Unknown Source)
           at com.viveo.jlooper.dao.JLooperDAO2.process(Unknown Source)
           at com.viveo.jlooper.mdl.JLooper.run(Unknown Source)
           at com.viveo.jlooper.appl.JLooperMain.main(Unknown Source)

      This problem is perfectly reproduceable, every time.

      I guess it may come from certain Oracle parameters, but wich one(s) ?
      Is there a log file where I could find an explanation ?

      Any help would be greatly appreciated.

      Thank you very much

        • 1. Re: Io exception: Broken pipe
          Avi Abrami
          If you have a reproducible test case, then create a service request (SR -- formerly TAR) with Oracle Support, via the MetaLink Web site, and send it to them.

          Good Luck,
          • 2. Re: Io exception: Broken pipe
            Do you have any settings about database timeouts? For some sort of reason my gut feeling tels me that your application expects some sort of keep-alive from your database with X time. (this is just a hunch though).
            • 3. Re: Io exception: Broken pipe
              I sounds to me the dba may have altered the default profile to limit idle time. Check the values for the default profile ( or custom profile if one has been created and assigned to your user). You can revoke that by:

              alter profile default limit idle_time unlimited;

              Run this as a dba, if that is the case.

              • 4. Re: Io exception: Broken pipe
                I sounds to me the dba may have altered the default
                profile to limit idle time. Check the values for the
                default profile
                I just asked the dba of our customer to check these default profile values, and they are set to unlimited , just like in our case here.
                And there is no other dedicated profile.

                Could it be some listner parameter ? sqlnet.ora ? Those files are present but contain no parameter related to the time.

                I'm stuck here... Does someone have any other idea of what I could do ?

                Thank you very much (for those who already answered too).

                • 5. Re: Io exception: Broken pipe
                  I too am having the same problem with using an OAS 9.0.4. server talking to a 9iAS db. I have a Struts application that if you leave the application over night will have broken pipes in the morning. The connections should not have persisted, but might have. This problem only happens when the Servlet is left up and no activity over night.

                  They claim that no restart of the server or DB happened during that time so I am betting on a timeout somewhere in the system too.

                  I have two problems:

                  One to set up a situation that reproduces the problem.

                  Two finding out some way through JDBC to effectively test for this situation and
                  be able to re-create, or re-open a connection to continue processing.

                  Error in fetcAllDBRecord java.sql.SQLException: Io exception: Broken
                  pipe06/09/26 09:05:25 java.sql.SQLException: Io exception: Broken pipe
                  06/09/26 09:05:25 at
                  06/09/26 09:05:25 at
                  06/09/26 09:05:25 at
                  06/09/26 09:05:25 at
                  06/09/26 09:05:25 at
                  06/09/26 09:05:25 at

                  ......app specific levels

                  Any help would be appreciated.

                  ---John Putnam
                  • 6. Re: Io exception: Broken pipe
                    Please follow this thread here, as of now:

                    Re: Io exception: Broken pipe

                    I had mistaken where to post this question first.

                    Thank you very much