【发布时间】:2021-11-14 23:47:05
【问题描述】:
我在基于 .net 5.0 的支付处理应用程序中使用 dapper。在单元测试中,一切正常,但是当我使用 JMeter 加载 100 个用户的负载时,在处理少量事务后,dapper 开始崩溃并出现以下错误:
异常[System.InvalidOperationException:必须打开连接 对于这个操作 Oracle.ManagedDataAccess.Client.OracleCommand.ValidateStatePriorToExecution() 在 Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()
在 Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action2 paramReader) in /_/Dapper/SqlMapper.cs:line 2822 at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 572 at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable1 commandTimeout, Nullable`1 commandType) 在 /_/Dapper/SqlMapper.cs:line 443
SP执行代码如下:
public static int ExecuteSP(string spName, object parameters)
{
IDbConnection connection = ConnectionManager.GetConnection(_ConnectionString);
int result = connection.Execute(spName, parameters, null, null, CommandType.StoredProcedure);
ConnectionManager.CloseConnection();
return result;
}
public static IDbConnection GetConnection(string connectionString)
{
DefaultTypeMap.MatchNamesWithUnderscores = true;
if (_oracleConnection == null)
{
_oracleConnection = new OracleConnection(GetConnectionString(connectionString));
}
if (_oracleConnection.State == ConnectionState.Closed)
{
_oracleConnection.Open();
}
return _oracleConnection;
}
我在配置或使用 Dapper 时有什么遗漏吗?
【问题讨论】:
标签: dapper stress-testing