Exception: System.OutOfMemoryExceptionMessage: Exception of type 'System.OutOfMemoryException' was thrown.StackTrace: at System.Text.StringBuilder.ToString()
at System.String.Format(IFormatProvider provider, String format, Object[] args)
at System.String.Format(String format, Object[] args)
at ClientBackServer.CDBLog.ProcessLogDBOldThread()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()asp.net
at System.String.Format(IFormatProvider provider, String format, Object[] args)
at System.String.Format(String format, Object[] args)
at ClientBackServer.CDBLog.ProcessLogDBOldThread()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()asp.net
解决方案 »
- VS2008中添加站点模板
- 急!用正则表达式如何替换网页<title>aaaaa</title>里面的内容
- 简单的问题,是关于数据绑定,我在线,请大家帮个忙啊, 我在线
- access中没有视图?
- 请教asp.net操作word文件的case,请众XD们指点一下!
- asp.netd读取asp写的cookies
- 调试不能通过,帮帮我啊
- dim ts as datagridtablestyle= new datagridtablestyle()怎么说找不到datagridtablestyle?
- 请帮忙!建立.NET站点后系统报错!该怎么设置!
- 时间
- Table控件table1.Rows.GetEnumerator()却取得了null
- spread for asp.net 表头的问题
里面做神马操作把内存耗尽了??
DateTime m_timePrev = DateTime.Now;
SqlConnection connection = new SqlConnection(sCon);
connection.Open();
SqlTransaction tans = connection.BeginTransaction();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.Transaction = tans;
bool bHaveTrans=false;//表明是否有提交
while (true)
{
if (m_threadExitEvent.WaitOne(0))
{
//线程退出
if (m_QueueDBLog.Count == 0 && bHaveTrans == false)
break;
}
m_SemaphoreDBLog.WaitOne(500);
DateTime Now = DateTime.Now;
TimeSpan span = Now - m_timePrev;
if (m_QueueDBLog.Count > 0)
{
Log_Pattern log = (Log_Pattern)m_QueueDBLog.Dequeue();
string sSql = string.Empty;
try
{
sSql = string.Format("insert into Tbl_system_Log(QueryID,sModuleName,sLogLevel,nErrorCode,sErrorMessage,time)" +
" values(\'{0}\',\'{1}\',\'{2}\',\'{3}\',\'{4}\',{5})",
log.sSessionID,
MODULE_NAME.Module_Names[Convert.ToInt32(log.nModuleID)],
LOGLEVEL_NAME.LogLevelNames[Convert.ToInt32(log.nLogLevel)],
log.nErrorCode, log.sMsg, "getdate()"); SqlBaseOperate.ExecuteTransNonQuery(ref command, sSql);
bHaveTrans = true;
}
catch (Exception ex)
{
//测试 OutOfMemoryException ycb
GC.Collect();
string sError = "数据库日志记录失败!错误信息:" + ex.Message + ".sql语句为:" + sSql;
StockWebServierBase.PushLog(StockWebServierBase.sSessionID, MODULE_ID.DB_OPERATING, LOGLEVEL.FAULT_LEVEL, LOGTYPE.DB_LOG, 0, sError);
}
}
//如果有要提交的数据,并且提交时间大于3秒
if (span.Milliseconds > Convert.ToInt32(StockWebServierBase.m_mapSystemCfgParam["DbCommitInterval"]) && bHaveTrans)
{
try
{
SqlBaseOperate.ExecuteCommitTrans(ref tans);
connection.Close();
connection.Dispose();
connection = new SqlConnection(sCon);
connection.Open();
tans = connection.BeginTransaction();
command.Connection = connection;
command.Transaction = tans;
bHaveTrans = false;//已经没有数据
m_timePrev = Now;
}
catch (Exception ex)
{
string sError = "数据库日志记录执行提交失败!错误信息:" + ex.Message ;
StockWebServierBase.PushLog(StockWebServierBase.sSessionID,MODULE_ID.DB_OPERATING, LOGLEVEL.FAULT_LEVEL, LOGTYPE.DB_LOG, 0, sError);
}
}
}
connection.Close();