转:java.sql.SQLException: 违反协议错误的一种解释
转:java.sql.SQLException: 违反协议异常的一种解释转:java.sql.SQLException: 违反协议异常的一种解释?转
转:java.sql.SQLException: 违反协议异常的一种解释
转:
java.sql.SQLException: 违反协议异常的一种解释
?
转自:http://willam2004.iteye.com/blog/900077
?
一次做应用升级出现了一个问题,描述如下:?
?? 升级分为两块,一块是数据库结构变更(表结构增加新字段);一块是应用程序的升级。?
?? 应用环境为:jboss4.0.5 + ibatis + spring 数据源在jboss的oracle-ds.xml文件中进行配置,通过spring的jndi方式进行查找 。?
?? 我先将数据库进行升级,更改表结构(增加字段),因为应用中的ibatis的查询采用的是ResultMap返回方式,返回定义的表结构字段,即使数据库发生变更,也不会产生影响。于是我大胆的进行脚本的执行。结果当我下午16:00数据库变更之后,几乎在同时就有人反应应用的一些查询功能无法使用,立刻查看出错日志:?
>??
上网查了下,影响到preparedStatment cache的参数有两个:maxStatements和maxStatementsPerConnection?如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭,默认为0。?
继续实验:?
1、将c3p0配置增加maxStatements和maxStatementsPerConnection并都设值20。?
修改数据库表结构,刷新访问页面。?
后台抛出违反协议和处于不一致状态的错误提示。?
2.将oracle-ds.xml文件配置更改prepared-statement-cache-size为0。?
修改数据库表结构,刷新访问页面。?
后台没有抛出违反协议和处于不一致状态的错误提示。?
附参考文章:?
http://community.jboss.org/wiki/configdatasources?? 讲解jboss中关于datasource的参数?
http://msq.iteye.com/blog/60387?? 讲解c3p0的详细参数?