System Or Internal Error InterruptedIOException
Posted in 2014
A user reported intermittent JDBC failures after moving to Informix 12.1: "Connection not established" followed by "System or internal error java.io.InterruptedIOException" in a Spring/Hibernate app on GlassFish, leaving the application unusable until restarted. Suggestions included checking for hard-coded Java library paths in ONCONFIG, verifying server reachability and avoiding JDBC autocommit toggling. The server online.log showed listener errors -25582 (broken network connection) and -27001 (read error on connect), which finderr attributes to network/connection timeouts, busy server or too few poll/listener threads. The platform was Solaris, but no resolution is recorded in the thread.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: SQL Development & Query Writing, Connectivity: ODBC / JDBC / .NET, Java & JDBC Development, Cloud, Docker & Containers
Hi, After upgrading to Informix 12.1, we are encountering this error. It all starts with java.sql.SQLException Connection not established Then we start getting threads with this error: Caused by: java.sql.SQLException: System or internal error java.io.InterruptedIOException The application is not useable and usually needs to be restarted afterwards. Anyone experienced this error before ? Thank you Please see logs below: java.sql.SQLException: Connection not established at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:355) at com.informix.jdbc.IfxSqliConnect.setAutoCommit(IfxSqliConnect.java:1673) at com.sun.gjc.spi.base.ConnectionHolder.setAutoCommit(ConnectionHolder.java:624) at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java: 174) at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransacti on.java:122) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:95) at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(Hibernat eTransactionManager.java:490) at org.springframework.transaction.support.AbstractPlatformTransactionManager.proce ssCommit(AbstractPlatformTransactionManager.java:495) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commi t(AbstractPlatformTransactionManager.java:468) at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTra nsactionAfterReturning(TransactionAspectSupport.java:258) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa ctionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM ethodInvocation.java:144) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.j ava:174) at com.sun.proxy.$Proxy127.loginUser(Unknown Source) at com.user.web.UserAction.login(UserAction.java:101) at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:343) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:215) at com.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:138) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:215) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2 77) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1 88) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingS tandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java :165) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:17 0) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain. java:135) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53 ) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:33 0) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) at java.lang.Thread.run(Thread.java:682) hreadName=Thread-1;|org.hibernate.exception.GenericJDBCException: could not execute query at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateCo nverter.java:82) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.doList(Loader.java:1596) at org.hibernate.loader.Loader.list(Loader.java:1577) at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:111) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1322) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:300) at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:433) at com.card.dao.CardDaoImpl.findCardByCardNo(CardDaoImpl.java:107) at com.card.service.CardServiceImpl.findCardByCardNo(CardServiceImpl.java:125) at com.card.service.CardServiceImpl.findCardByCardNo(CardServiceImpl.java:112) at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils .java:292) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(Ref lectiveMethodInvocation.java:155) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM ethodInvocation.java:122) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa ctionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM ethodInvocation.java:144) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.j ava:174) at com.sun.proxy.$Proxy103.findCardByCardNo(Unknown Source) at com.cardreload.web.CardReloadAction.submitCardReload(CardReloadAction
Check your ONCONFIG file. If you copied your previous one and the location of the Java libraries is hard coded in there (instead of using $INFORMIXDIR) then it may be pointing to the previous version of the libraries or to nothing at all and that may be the problem. Art Art S. Kagel, Principal Consultant ASK Database Management Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Tue, Sep 16, 2014 at 6:48 AM, NATYURAL HORACIO < horacio.natyural@gmail.com> wrote: > Hi, > > After upgrading to Informix 12.1, we are encountering this error. > > It all starts with > > java.sql.SQLException Connection not established > > Then we start getting threads with this error: > > Caused by: java.sql.SQLException: System or internal error > java.io.InterruptedIOException > > The application is not useable and usually needs to be restarted > afterwards. > Anyone experienced this error before ? > > Thank you > > Please see logs below: > > java.sql.SQLException: Connection not established > > at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:355) > > at > com.informix.jdbc.IfxSqliConnect.setAutoCommit(IfxSqliConnect.java:1673) > > at > > com.sun.gjc.spi.base.ConnectionHolder.setAutoCommit(ConnectionHolder.java:624) > > at > > > org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java: 174) > > at > > > org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransacti on.java:122) > > at > org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:95) > > at > > > org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(Hibernat eTransactionManager.java:490) > > at > > > org.springframework.transaction.support.AbstractPlatformTransactionManager.proce ssCommit(AbstractPlatformTransactionManager.java:495) > > at > > > org.springframework.transaction.support.AbstractPlatformTransactionManager.commi t(AbstractPlatformTransactionManager.java:468) > > at > > > org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTra nsactionAfterReturning(TransactionAspectSupport.java:258) > > at > > > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa ctionInterceptor.java:106) > > at > > > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM ethodInvocation.java:144) > > at > > > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.j ava:174) > > at com.sun.proxy.$Proxy127.loginUser(Unknown Source) > > at com.user.web.UserAction.login(UserAction.java:101) > > at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source) > > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) > > at > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > > at > org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:343) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:215) > > at > com.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:138) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:256) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:215) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2 77) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1 88) > > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) > > at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) > > at > > > com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingS tandardPipeline.java:85) > > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) > > at > > org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) > > at > > > com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java :165) > > at > com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) > > at > com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) > > at > com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) > > at > > > com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:17 0) > > at > > > com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain. java:135) > > at > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) > > at > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) > > at > com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) > > at > > > com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53 ) > > at > > com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) > > at com.sun.grizzly.ContextTask.run(ContextTask.java:69) > > at > > > com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:33 0) > > at > > > com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) > > at java.lang.Thread.run(Thread.java:682) > > hreadName=Thread-1;|org.hibernate.exception.GenericJDBCException: could not > execute query > > at > > > org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateCo nverter.java:82) > > at > > org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70) > > at > > > org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) > > at org.hibernate.loader.Loader.doList(Loader.java:1596) > > at org.hibernate.loader.Loader.list(Loader.java:1577) > > at > org.hibernate.loader.cr
Hi Art, Actually there's no problem upgrade. The problem happens very intermettently and when it happens, our application goes down and is unuseable.. I have yet to see the online log. It's causing our application to stop in the middle of the day. The errors I posted were the errors I saw in the log files Thanks
Hi,
these error messages seem to be coming from the application which is using the
JDBC driver from a Spring application.
The interesting part would be if you get a message at the same time in
online.log and if the database server is reachable
with other tools outside your application ( using ping/telnet to database
port, or dbaccess from same machine at the
time of non-reachability), since the message points to a network connectivity
issue
(TCP connection was established but is broken after commit suddenly).
There could be a problem with the JDBC driver, but if your applications seems
to work generally, and you have only
partial problems, I would not suspect any problem there.
Maybe you can send the JDBC connection parameters so we can see if there is
anything special which leads to the problem.
Another hint:
When looking at the trace, the error occurs in the moment when the application
server tries to reset the autocommit
state of the JDBC connection. If you are not really using the JDBC autocommit
(and keep track of the transaction
in the application), you should not set it in the JDBC connection parameters
(which seems to be the case,
since Hibernate tries to reset the value only if it is detected to be active
the time of transaction start).
Best regards,
Marcus Haarmann
----- Ursprüngliche Mail -----
Von: "NATYURAL HORACIO" <horacio.natyural@gmail.com>
An: ids@iiug.org
Gesendet: Dienstag, 16. September 2014 16:35:09
Betreff: Re: System Or Internal Error InterruptedIOExceptio [33789]
Hi Art,
Actually there's no problem upgrade.
The problem happens very intermettently and when it happens, our application
goes down and is unuseable..
I have yet to see the online log. It's causing our application to stop in the
middle of the day.
The errors I posted were the errors I saw in the log files
Thanks
*******************************************************************************
Forum Note: Use "Reply" to post a response in the discussion forum.
Hi, In the informix online logs we are seeing the following errors: Informix Listener err - 25582 Listener err - 27001 What can I do to check these errors ?
Hi, in your Informix Server environment you can do: % finderr 25582 -25582 Network connection is broken. The connection terminated because the network is down, the database server is offline, or the client is offline. If you receive this error on a client, check the network connection, and the database server. If you receive this error on the database server, check the network connection, and the client. % finderr 27001 -27001 Read error occurred during connection attempt. This error can occur on either the client or database server side. When you encounter this error on the client side, it indicates that a network I/O error occurred when the client tried to connect to a database server. Probably the connection attempt timed out because the database server or the network was very busy, too many clients were attempting to connect to the database server simultaneously, or the database server was taken off-line during the connection attempt. If you are using IBM Informix Dynamic Server, IBM Informix Universal Server, or IBM Informix OnLine Dynamic Server, verify that the database server is still online. If you are using IBM Informix SE, verify that the sqlexecd daemon for the database server is still running. Use either or both of the environment variables INFORMIXCONTIME and INFORMIXCONRETRY on the client side to increase the connection time and number of retry attempts. When you encounter this error on the database server side, it is a warning that a network I/O error is detected while the database server is accepting a connection request from a client. This error usually occurs when the database server or the network is very busy or when too many clients are trying to connect to the database server at once. The database server might be taking so long to respond to a client that the client's connection request timed out before the connection is complete. Or possibly a client terminated its connection attempt before the connection is completely established. If this error is seen only occasionally in the server message log, it is just a warning. No corrective action is required on the server side. If this error occurs frequently on a database server that runs on a host with multiple processors, you might want to tune the database server by increasing the number of poll threads and/or listener threads. % The output from the "finderr" command should give you some ideas where to start looking. Regards, Martin -- Martin Fuerderer IBM Informix Development Munich, Germany Information Management Read about the Informix Warehouse Accelerator: http://tinyurl.com/the-iwa-blog IBM Deutschland Research & Development GmbH Chairman of the Supervisory Board: Martina Koederitz Board of Management: Dirk Wittkopp Corporate Seat: Boeblingen, Germany Reg.-Gericht: Amtsgericht Stuttgart, HRB 243294 From: "NATYURAL HORACIO" <horacio.natyural@gmail.com> To: ids@iiug.org, Date: 09/17/2014 12:08 Subject: Re: System Or Internal Error InterruptedIOExceptio [33797] Sent by: ids-bounces@iiug.org Hi, In the informix online logs we are seeing the following errors: Informix Listener err - 25582 Listener err - 27001 What can I do to check these errors ? ******************************************************************************* Forum Note: Use "Reply" to post a response in the discussion forum.
What is the platform? Solaris or other? On Wed, Sep 17, 2014 at 11:04 AM, NATYURAL HORACIO < horacio.natyural@gmail.com> wrote: > Hi, > > In the informix online logs we are seeing the following errors: > > Informix > > Listener err - 25582 > Listener err - 27001 > > What can I do to check these errors ? > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > -- Fernando Nunes Portugal http://informix-technology.blogspot.com My email works... but I don't check it frequently... --20cf303bf576f3315a0503422eb6
Platform is Solaris.. Actually, my question is why am I getting interrupted ? I tried looking at the source code, I'm getting interrupted while sending my prepared statement.. Don't get what's causing this error ... As per my stack trace.. Caused by: java.sql.SQLException: System or internal error java.io.InterruptedIOException at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:430) at com.informix.jdbc.IfxSqli.sendPrepare(IfxSqli.java:1165) at com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1081) at com.informix.jdbc.IfxResultSet.executePrepare(IfxResultSet.java:182) IfxSqli.executePrepare(IfxSqli.java:1081) public void executePrepare(Statement paramStatement) /* */ throws SQLException /* */ { /* 1075 */ if (!this.conn.lockSession()) { /* 1076 */ throw IfxErrMsg.getSQLMinorException(-79748, -80033, this.conn); /* */ } /* */ /* */ try /* */ { /* 1081 */ sendPrepare((IfxStatement)paramStatement); com.informix.jdbc.IfxSqli.sendPrepare(IfxSqli.java:1165) /* */ private void sendPrepare(IfxStatement paramIfxStatement) /* */ throws SQLException /* */ { /* 1124 */ String str = paramIfxStatement.commandString; /* */ try /* */ { /* 1128 */ if (str.length() > 65535) /* 1129 */ throw IfxErrMsg.getSQLException(-79864, this.conn); /* 1130 */ if ((this.conn.db_use_log) && (!this.conn.autoCommit) && (this.conn.isBatchUpdatePerSpec()) && ((paramIfxStatement instanceof IfxPreparedStatement))) /* */ { /* 1134 */ IfxPreparedStatement localIfxPreparedStatement = (IfxPreparedStatement)paramIfxStatement; /* 1135 */ if ((localIfxPreparedStatement.jdField_BatchVector_of_type_JavaUtilVector.size() > 0) && (!localIfxPreparedStatement.usePut())) { /* 1136 */ initiateTransaction(); /* */ } /* */ /* */ } /* */ /* 1143 */ this.os.writeSmallInt(2); /* */ /* 1147 */ this.os.writeSmallInt((short)paramIfxStatement.numqmarks); /* */ /* 1150 */ this.os.writeChar(str, this.dbEncoding); /* */ /* 1153 */ this.os.writeSmallInt(22); /* */ /* 1156 */ this.os.writeSmallInt(49); /* 1157 */ this.isReleased = false; /* */ } /* */ catch (SQLException localSQLException) /* */ { /* 1161 */ throw localSQLException; /* */ } /* */ catch (Exception localException) /* */ { /* 1165 */ throw IfxErrMsg.getSQLException(-79716, localException.toString(), this.conn); /* */ } /* */ }