簡體   English   中英

啟用連接池時,dataadapter.fill命令在高負載下隨機返回0行

[英]dataadapter.fill command randomly returns 0 rows under heavy load when connection pooling is enabled

我們在ASP.NET應用程序中一直遇到ADO.NET命令的問題,因此將其歸結到此。

沒有錯誤返回,而是dataadapter.fill命令僅返回0行。

這僅在查詢正常執行的某些時間(大部分時間)中發生。 我們知道SQL Server沒有返回錯誤(使用sql profiler),並且查詢應該已經返回了結果(重新運行dataadapter.fill確實返回了一些行,並且這些行始終存在於數據庫中)這似乎發生了僅當我們打開ado.net連接池並且服務器處於高負載時。

我們正在使用SqlClient連接/命令對象並連接到SQL Server數據庫(到目前為止,我們已經在SQL 2005和SQL 2008中看到了此行為)

select語句是否返回多個結果集? 如果是,那么您可能要使用:

using(DbDataAdapter dataAdapter = _providerFactory.CreateDataAdapter())
{
  dataAdapter.TableMappings.AddRange(tableMappings);
  dataAdapter.SelectCommand = selectCommand;

  // This is crucial for HasChanges() to return the correct value
  dataAdapter.AcceptChangesDuringFill = false;

  MyTypedDataSet dataSet = new MyTypedDataSet();
  dataSet.EnforceConstraints = false;
  dataAdapter.Fill(dataSet);
  bool hasData = dataSet.HasChanges();
  return hasData;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM