1

我正在使用 MyBatis 持久性框架连接到 Teradata。Tomcat 7 是使用的服务器。在进行性能测试时,当通过 Mybatis 连接触发插入查询时,会超时。该问题仅在性能测试中出现,并且仅在写入操作上出现我得到的异常是 - 引起:com.teradata.jdbc.jdbc_4.util.JDBCException:[Teradata JDBC Driver] [TeraJDBC 14.00.00.21] [Error 802] [SQLState HY000] 数据包接收超时...

我正在使用资源声明(并使用 JNDI 访问它)在 Tomcat 中使用连接池。在 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 中启用了行级锁定。这会造成连接用完的问题。

4

1 回答 1

1

您是否考虑过使用 TD2(默认)身份验证机制时 Teradata JDBC 驱动程序出现的慢速登录问题?

此问题归因于 Java 虚拟机使用的默认随机数生成器中的缺陷。该链接为您提供了一个测试脚本来确认问题的存在,以及一个记录在案的解决该缺陷的解决方法。

编辑:

这将解决您在 Mybatis 中如何处理 POOLED 或 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>

这种方法可能需要在您的 Mybatis 服务器上安装 JDBC 客户端,并且可能无法与您的实现一起使用,具体取决于您的基础设施的设计方式。

于 2013-08-02T17:41:43.053 回答