我正在使用MyBatis持久化框架来连接到Teradata。Tomcat 7是使用的服务器。在进行性能测试时,当插入查询通过Myb提斯连接被触发时,就会超时。这个问题只发生在性能测试上,问题只发生在写操作上,我得到的异常是由: com.teradata.jdbc.jdbc_4.util.JDBCException: Teradata驱动程序错误802包接收超时引起的.
我正在使用Tomcat中的连接池,使用资源声明(并使用JNDI访问它)。在server.xml条目下面的列表
<Resource name="jdbc/ TERADATA " auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.teradata.jdbc.TeraDriver"
url="jdbc:teradata:// <host name> /TMODE=TERA,LOB_SUPPORT=ON,DATABASE= <Schema Name>"
username="<User>" password="<password>"
maxActive="60"
maxIdle="10"
maxWait="200"
minIdle="2"
initialSize="2"
validationQuery="select 1"
testOnBorrow="TRUE"
removeAbandoned="TRUE"
removeAbandonedTimeout="60”
logAbandoned="FALSE" jdbcInterceptors="ConnectionState;ResetAbandonedTimer;SlowQueryReportJmx(threshold=30000)"
logValidationErrors="TRUE"
defaultAutoCommit="FALSE"
validationInterval="1000"
testOnReturn="FALSE”
minEvictableIdleTimeMillis="900000
timeBetweenEvictionRunsMillis="1800000"
autoReconnect="TRUE"
accessToUnderlyingConnectionAllowed=”TRUE"
/>tomcat的连接池是否可能与Mybatis的连接池发生冲突。如果是的话,是否有任何方法来覆盖它。在MyBatis中,启用了行级泄漏。这会造成连接耗尽的问题吗?
发布于 2013-08-02 17:41:43
您是否考虑过在使用Teradata驱动程序时使用慢速登录 (默认)身份验证机制时发生的TD2问题?
此问题是由Java虚拟机使用的默认随机数生成器中的缺陷造成的。该链接为您提供了一个测试脚本,以确认问题的存在,以及解决缺陷的文档化工作。
编辑:
这将解决如何处理Mybatis中关于池或UNPOOLED的连接。它不会处理JNDI配置,因为它必须在JNDI中处理。
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
<dataSource type="UNPOOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>此方法可能需要将JDBC客户端安装在您的Mybatis服务器上,并且可能无法使用您的实现,这取决于您的基础设施是如何设计的。
https://stackoverflow.com/questions/18016463
复制相似问题