0

我正在为我的应用程序使用 IBatis。我使用的是 IBatis 1.6.1 版本。我认为它可以处理与数据库连接相关的所有操作。但我现在有点担心这个。有时我会在日志文件中收到以下错误详细信息,

消息无法打开与“MySQL,MySQL 提供程序 5.0.8.1”的连接。源 IBatisNet.DataMapper 堆栈位于 IBatisNet.DataMapper.SqlMapSession.OpenConnection(String connectionString) 位于 IBatisNet.DataMapper.SqlMapSession.OpenConnection() 位于 IBatisNet.DataMapper.Commands.DbCommandDecorator.System.Data.IDbCommand.ExecuteReader() 位于 IBatisNet.DataMapper。 MappedStatements.MappedStatement.RunQueryForObject(RequestScope request, ISqlMapSession session, Object parameterObject, Object resultObject) at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(ISqlMapSession session, Object parameterObject, Object resultObject) at IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(ISqlMapSession会话,对象参数对象)在 IBatisNet.DataMapper.SqlMapper.QueryForObject(字符串语句名称,

有人对错误有一些想法吗?

4

2 回答 2

0

如果您使用 JDBC 事务管理器,请在 myBatisConfig.xml 中将数据源设置为“UNPOOLED”

<transactionManager type="JDBC"/> <dataSource type="UNPOOLED"> . . . </dataSource> </environment>

这是简短的答案。我的预感是连接池类保持连接的时间过长。降低“poolMaximunActiveConnection”和“poolMaximunIdleConnections”的值可能会解决问题。

备注:使用 myBatis 3.0.3 Java,mySql Windows 5.5.9

搜索词:iBatis, myBatis, 'Too many connections', mySQL

于 2011-04-21T20:28:34.587 回答
0

iBATIS已经存在了很长一段时间(2001 年),我怀疑 MySQL 提供程序中是否存在重大错误。您提到该错误“有时”发生-如果它是间歇性的,则问题可能出在其他地方。“无法打开连接”可能就是这个意思。网络错误、数据库中断、太多未发布的连接、身份验证问题等都可能导致此错误。

于 2009-11-14T16:51:42.117 回答