我正在Amazon RDS实例上运行Oracle 11GR2。偶尔IO Error: Got minus one from a read call
打给我时,我会收到提示DriverManager.getConnection(getUrl())
,但我不确定为什么。其他应用程序可以正常工作。
为了进一步混淆,错误有时会自动纠正(在程序的下一次迭代之后)。
我应该如何处理“从读取调用中减去一个”错误?
全栈跟踪:
java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at com.cwd.facile.db.Database.<init>(Database.java:44)
at com.cwd.facile.ns.NetSuiteRequestBased.<init>(NetSuiteRequestBased.java:29)
at com.cwd.facile.ns.CommonOperations.isInventoryItem(CommonOperations.java:205)
at com.cwd.facile.ns.CommonOperations.findItemIdByName(CommonOperations.java:188)
at com.cwd.facile.ns.CommonOperations.createSalesOrder(CommonOperations.java:970)
at com.cwd.facile.Main.main(Main.java:47)
Caused by: oracle.net.ns.NetException: Got minus one from a read call
at oracle.net.ns.Packet.receive(Packet.java:311)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:300)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
... 12 more
Database.java第44行: setConn(DriverManager.getConnection(getUrl()));
其他资讯:
问题的直接原因是JDBC驱动程序试图从被“另一端”关闭的网络套接字中读取。
这可能是由于以下原因:
如果已将远程服务器配置为(例如,在“ SQLNET.ora”文件中)不接受来自IP的连接。
如果JDBC网址不正确,则您可能正在尝试连接到非数据库对象。
如果到数据库服务的打开的连接太多,则它可能会拒绝新的连接。
考虑到这些症状,我认为最有可能出现“连接过多”的情况。这表明您的应用程序正在泄漏连接。即创建连接,然后无法(始终)关闭它们。
问题内容: 嗨,当我尝试用我的Java示例代码连接oracle时,我是Java新手,但出现了以上异常 我的代码是 并且抛出的异常是 帮我解决一下 问题答案: 首先,连接URL错误。8080后通常由Web服务器(如Apache Tomcat)使用。Oracle本身使用默认端口1521。另请参见此Oracle JDBC文档 。 再者,你忘了打电话。这会将光标设置到结果集中的下一行。结果集将与游标一起返
我正在迁移一个带有MySQL数据库的Java应用程序。现在连接会在某个时候超时,尽管使用相同参数的同一个连接在以前的几个事务中工作得很好。代码如下: 公共类DBConnection{ } 和我的日志: null 2016-06-21 15:53:31,436警告[com.arjuna.ats.arjuna](Transaction Reaper Worker 0)arjuna012108:Chec
问题内容: 我需要读取UDP流量,直到达到超时为止。我可以通过在UDPConn上调用SetDeadline并循环直到出现I / O超时错误来做到这一点,但这似乎有些破绽(基于错误条件的流控制)。以下代码段似乎更正确,但不会终止。在生产中,这显然将在goroutine中执行;为了简单起见,它被编写为主要功能。 给定程序为什么不终止?基于https://gobyexample.com/select,h
问题内容: 当我将脚本上传到服务器时,出现此错误 警告:未知:打开(/ tmp / sess_58f54ee6a828f04116c2ed97664497b2,O_RDWR)失败:第0行的未知中的权限被拒绝(13) 警告:未知:无法写入会话数据(文件)。请在第0行的Unknown中验证session.save_path的当前设置正确(/ tmp) 尽管我将/ tmp文件夹的权限设置为777,但在我
无法解析Android应用程序模块的Gradle配置。请解决gradle构建问题和/或重新同步。
我想使用Boilerpipe从多个网站的新闻页面中提取文本,问题是每次尝试时,都会出现ConnectionException错误。我刚刚使用了《锅炉管道快速启动指南》中的示例语法: 这里是连接错误: 我尝试了很多网站,但它来同样的错误。 我如何解决这个问题,或者至少看看问题在哪里?(可能是防火墙,或端口配置...)