1.问题描述
客户在做压力测试时,日志中报如下错误:
java.sql.SQLException: Io 异常: Got minus one from a read call
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.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
2.应用环境
WebLogic Server 923
Linux BL680-156 2.6.16.60-0.21-smp
3.问题分析
此问题“java.sql.SQLException: Io 异常: Got minus one from a read call”
主要是数据库Driver与数据库通讯时出的错,应该是数据当时有一定的问题。
通过检查分析,发现出问题时数据库的表空间及归档日志都已经满了。
4.结论
此问题由于数据库空间及归档日志空间不足所导致的;因此,这里建议对数据库的配置进行优化以避免在生产环境中出现这个问题。
5.系统调优建议
5.1 CSR系统
CSR系统节点如下,前端为F5
5.1.1 Web应用优化建议
CSR域Web应用有两个:jECF_Web 和 jECF_Bat
优化建议:
需将如下属性Servlet Reload Check(in seconds),Resource Reload Check(in seconds)及JSP Page Check(in seconds)的值由1秒调为-1.
因为在生产环境中,不建议对程序进行频繁的更新,建议定期更新,比如每个周末的晚上来更新,更新后将weblogic server重启。
即使当前系统程序真的更新很频繁,也建议将值不要设为1秒,可设为600秒,即十分钟左右比较适合。
5.1.2 连接池优化建议
CSR域连接池如下:
优化建议:
这里建议将数据库连接池的初始值和最大值设置的一样大,并且与系统的最大并发量保持一致。
5.2 AG系统
AG系统节点如下,前端为F5
5.2.1 Web应用优化建议
CSR域Web应用:EBCCAG
优化建议:
需将如下属性Servlet Reload Check(in seconds),Resource Reload Check(in seconds)及JSP Page Check(in seconds)的值由1秒调为-1.
原因同5.1.1小节一样。
5.2.2 连接池优化建议
CSR域连接池如下:
优化建议:
这里建议将数据库连接池的初始值和最大值设置的一样大,并且与系统的最大并发量保持一致。
5.3 WF系统
WF系统节点如下,前端为F5
5.3.1 Web应用优化建议
CSR域Web应用:photpshop和VME
优化建议:
需将如下属性Servlet Reload Check(in seconds),Resource Reload Check(in seconds)及JSP Page Check(in seconds)的值由1秒调为-1.
原因同5.1.1小节一样。
6.文件句柄数调优
建议客户将操作系统“ulimit -n”命令结果的值改为8192,并将BEA_HOME\weblogic92\common\bin\commEnv.sh文件最后一行“resetFD”注释掉或删除,因为这里设置了缺省值1024;删除resetFD后,将操作系统中设置的值;
将操作系统“ulimit -n”的值调高一些,那么一个java进程准许打开的文件数就会多一些,能够避免因“Too many open file”问题。
7.数据库调优
因为在压力测试过程中,数据库报了表空间不足和归档日志满的问题,这个需要引起高度注意,以免在生产环境中出现同样问题。