oralce Socket read timed out 我快疯了,什么原因造成的?

[#|2011-08-28T04:44:50.952+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=21;|
- Task com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@7a7316 (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
|#]

[#|2011-08-28T04:44:50.953+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=21;|- Task com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@119bf23 (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
|#]

[#|2011-08-28T04:44:50.953+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=21;|- Task com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@153ba60 (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
|#]

[#|2011-08-28T04:44:50.958+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=325;|- [c3p0] Exceptions occurred while trying to close a PooledConnection's resources normally.
|#]

[#|2011-08-28T04:44:50.959+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=326;|- [c3p0] Exceptions occurred while trying to close a PooledConnection's resources normally.
|#]

[#|2011-08-28T04:44:50.960+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=325;|- [c3p0] NewPooledConnection close Exception.
java.sql.SQLException: Io exception: Socket read timed out
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:480)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1202)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:549)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470)
at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
|#]

[#|2011-08-28T04:44:50.961+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=326;|- [c3p0] NewPooledConnection close Exception.
java.sql.SQLException: Io exception: Socket read timed out
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:480)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1202)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:549)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470)
at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
|#]

[#|2011-08-28T04:44:50.962+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=325;|- Failed to destroy resource: com.mchange.v2.c3p0.impl.NewPooledConnection@80ba2e
java.sql.SQLException: Some resources failed to close properly while closing com.mchange.v2.c3p0.impl.NewPooledConnection@80ba2e
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:571)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470)
at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
|#]

[#|2011-08-28T04:44:50.962+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=326;|- Failed to destroy resource: com.mchange.v2.c3p0.impl.NewPooledConnection@13861e
java.sql.SQLException: Some resources failed to close properly while closing com.mchange.v2.c3p0.impl.NewPooledConnection@13861e
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:571)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470)
at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
|#]

[#|2011-08-28T04:44:50.963+0800|INFO|sun-appserver-ee8.1_02|javax.enterprise.system.stream.out|_ThreadID=327;|- [c3p0] Exceptions occurred while trying to close a PooledConnection's resources normally.
|#]

 

1,监听配置错误,超时。比如端口有问题什么的。
2,实例配置错误,不带实例的估计可以。
3,服务器被锁了一段时间,或者挂掉了。

[quote]failed to complete in maximum time 60000ms[/quote]
兄弟,你可能是操作了一个非常花时间的操作,但你又限定了 60秒 这个上限,所以 oracle 在60秒内完成不了你这个操作,以至抛出这个异常,要不你把时间设得长一点试试看

172800000

[quote]我就是一个简单的查询用户,这个错误是在一天中偶尔出现,执行这个sql语句花费的时间不可能超过1分钟。我怀疑网络,数据库这边有问题。 [/quote]

所以我怀疑有的操作 锁住表了。不间断的。

[quote]他是偶尔出现这个问题,我是搞开发这边的,数据库不是我们公司负责,他们老说数据库没问题,我又不懂得怎么查,我该怎么办? [/quote] 这个你得协调,你用他数据库,有权利把他日志弄过来,一切都明了了。

[quote]我怀疑网络,数据库这边有问题。 [/quote]
你的数据不是本地的?那有可能是是网络的问题啊。我之前也遇到这种情况,数据库所在的机器和我的机器不是同一个,二者是通过一个路由器连接的,但那个路由器使用得的时间很长了,会偶尔断线(因为我在本机的CMD里 ping -a 了一下,明显可以看到它某段时间内是无法 ping 通的)。不知道你会不会也是同样的问题。

我建议你开个CMD一直PING对方数据库所在机器的地址,看看会不会发生 time out 的情况

[quote]看数据库日志,我看不懂 , 哎。。。水平太菜了。。。。。。 [/quote]
别害怕看这个,看到日志你自然会摸索懂的。
还有 我让你去要日志,还有个目的就是,让对方能够真正重视起来(看他日志等于是掀他老底 他会有点小恐惧的 估计自己也会检查一下的 )。

要不然你把日志要过来发给我 我帮你看也行。

[quote]但是网络偶尔断一下,这也正常啊,网络会丢一两个包。 [/quote]
丢几个包应该是没问题的。你看一下会不会在比较长的一段时间内(比如60秒)内一直连接不上

[quote]网络也不是我们公司负责的,哎,老扯皮[/quote]哎,就是啊,遇到这种问题就是郁闷啊。我们当时就是想在自己机器上搭个数据库免得出现这种情况,可是对方就是不愿意提供表结构和数据给我们啊。

[quote]我试试,先谢谢了! [/quote]
不谢 有事站内问我吧,先把日志搞定。
欢迎采纳我的意见!

你用的是c3p0连接池吧?
把max_statements设置为0。
c3p0在同时关闭statement和connection的时候,或者关闭他们之间的时间很短的时候,有时候connection并没有被关闭,因为有些preparedstatement还在被cached住,会导致死锁。

你的 定时任务 是用的oracle的?贴出来 ,感觉有问题。