2009-11-14 85 views
0

我使用iBATIS我的應用程序了。我正在使用IBatis 1.6.1版本。我認爲它可以處理所有與數據庫連接相關的操作。但現在我對此有點擔心。有時,我正在將以下錯誤詳細信息記錄到我的日誌文件中,IBatis需要幫助嗎?

消息 無法打開與「MySQL,MySQL provider 5.0.8.1」的連接。 源 IBatisNet.DataMapper 堆棧 在IBatisNet.DataMapper.SqlMapSession.OpenConnection(字符串的connectionString)在IBatisNet.DataMapper.SqlMapSession.OpenConnection()在IBatisNet.DataMapper.Commands.DbCommandDecorator.System.Data.IDbCommand.ExecuteReader()在IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject(RequestScope請求,ISqlMapSession會話,對象parameterObject,對象resultObject)在IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(ISqlMapSession會話,對象parameterObject,對象resultObject)在IBatisNet.DataMapper.MappedStatements.MappedStatement .ExecuteQueryForObject(ISqlMapSession會話,對象parameterObject)在IBatisNet.DataMapper.SqlMapper.QueryForObject(字符串statementName,對象parameterObject)在Sunya.VideoStreaming.Persistence.SchoolRepository.GetSchoolDetailsByUrl(力量在System.Web.HttpApplication.SyncEventExecutionStep的ASP.global_asax.Application_BeginRequest(Object sender,EventArgs e)處的D:\ SVN \ Sprint104 \ Persistence \ SchoolRepository.cs:EduVisionBasePage.GetSchoolUrl(School &_school)的192行。 System.Web.HttpApplication.IExecutionStep.Execute()在System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾& completedSynchronously) 消息 連接太多 源 MySql.Data 堆棧 在MySql.Data.MySqlClient.MySqlStream .OpenPacket()at MySql.Data.MySqlClient.NativeDriver.Authenticate411()at MySql.Data.MySqlClient.NativeDriver.Authenticate()at MySql.Data.MySqlClient.NativeDriver.Open()at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection ()在MySql.Data.MySqlClient MySqlPool.GetConnection()at MySql.Data.MySqlClient.MySqlConnection.Open()at IBatisNet.DataMapper.SqlMapSession.OpenConnection(String connectionString)

有人對這個錯誤有一些想法嗎?

回答

0

iBATIS已經存在了很長一段時間(2001年),並且我懷疑MySQL提供者中存在一個主要的錯誤。你提到發生錯誤「有時」 - 如果是間歇性的,也許問題出在其它地方。 「無法打開連接」可能意味着這一點。網絡錯誤,數據庫中斷,太多未發佈的連接,身份驗證問題等都可能導致此錯誤。

0

如果您正在使用JDBC事務管理員設置的數據源「UNPOOLED」你myBatisConfig.xml

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

這是一個簡短的回答。我的預感是連接池類連接時間太長。降低「poolMaximunActiveConnection」和「poolMaximunIdleConnections」的值可能會解決問題。

注:使用MyBatis的3.0.3的Java,MySQL的的Windows 5.5.9

搜索詞:iBatis的,MyBatis的, '太多的連接' 中,MySQL