Index: mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs
===================================================================
--- mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs (revision 556964)
+++ mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/MSSQL/ProcedureTest.cs (working copy)
@@ -113,8 +113,44 @@
Account account = sqlMap.QueryForObject("GetAccountViaSP2", hash) as Account;
Assert.AreEqual(1, account.Id );
}
-
+
///
+ /// Test get an account via a store procedure.
+ ///
+ [Test]
+ public void GetThreadedAccountViaProcedure2()
+ {
+
+ int maxThreads;
+ int maxCompletionPortThreads;
+ int curThreads;
+
+ System.Threading.ThreadPool.GetMaxThreads(out maxThreads, out maxCompletionPortThreads);
+
+ for (int i = 0; i < 1000; i++)
+ {
+ System.Threading.ThreadPool.QueueUserWorkItem(GetAccountViaProcedure2);
+ }
+
+ while (true)
+ {
+ System.Threading.Thread.Sleep(100);
+ System.Threading.ThreadPool.GetAvailableThreads(out curThreads, out maxCompletionPortThreads);
+ if (curThreads == maxThreads) {
+ break;
+ }
+ }
+ }
+
+ private void GetAccountViaProcedure2(Object o)
+ {
+ Hashtable hash = new Hashtable();
+ hash.Add("Account_ID", 1);
+ Account account = sqlMap.QueryForObject("GetAccountViaSP2", hash) as Account;
+ Assert.AreEqual(1, account.Id);
+ }
+
+ ///
/// Test an insert with identity key via a store procedure.
///
[Test]
Index: mapper/IBatisNet.DataMapper/Commands/DefaultPreparedCommand.cs
===================================================================
--- mapper/IBatisNet.DataMapper/Commands/DefaultPreparedCommand.cs (revision 556964)
+++ mapper/IBatisNet.DataMapper/Commands/DefaultPreparedCommand.cs (working copy)
@@ -51,8 +51,6 @@
#region Fields
private static readonly ILog _logger = LogManager.GetLogger( MethodBase.GetCurrentMethod().DeclaringType );
- private StringBuilder _paramLogList = new StringBuilder(); // Log info
- private StringBuilder _typeLogList = new StringBuilder(); // Log info
#endregion
@@ -100,11 +98,14 @@
StringCollection properties = request.PreparedStatement.DbParametersName;
IDbDataParameter[] parameters = request.PreparedStatement.DbParameters;
+ StringBuilder _paramLogList = null; // Log info
+ StringBuilder _typeLogList = null; // Log info
+
#region Logging
if (_logger.IsDebugEnabled)
- {
- _paramLogList.Remove(0, _paramLogList.Length);
- _typeLogList.Remove(0, _typeLogList.Length);
+ {
+ _paramLogList = new StringBuilder();
+ _typeLogList = new StringBuilder();
}
#endregion