У меня есть консольное приложение .exe, которое порождается более чем 50 процессами, которое вставит 10000 записей в базу данных, передав ей другой аргумент, для параллельной работы.
В этом exe-файле я использую одну таблицу статических данных, в которой изначально хранятся некоторые значения, и все процессы используют эту таблицу данных для извлечения определенных значений.Проблема, с которой я сейчас сталкиваюсь, один или два раза в неделю, значение становится пустым из таблицы данных.Позже, если я перезапущу exe, я получу правильные значения.
Есть идеи, в чем причина этой проблемы?Я увеличил пул соединений с app.config
до 500. Разве плохо использовать таблицу статических данных, когда процесс выполняется более 50 раз?
В следующем коде иногда regioncodevalue
становится нулевым, но после повторного запуска,Я получу значения
static DataTable dtZone = all.CreateDataTableFromQuery("O_ZONE", geozonesql, ref ErrorMessage, true);
string regioncodevalue = GetRegionCodeFromGeoZoneCode(geo_zone_code);
private static string GetRegionCodeFromGeoZoneCode(string geo_zone_fromcell)
{
string region_code = "";
try
{
geo_zone_fromcell = geo_zone_fromcell.Replace(" ", "");
if (dtZone .Rows.Count > 0)
{
var dValue = from row in dtZone .AsEnumerable()
where row.Field<string>("GEO_ZONE_CODE") == "" + geo_zone_fromcell + ""
select row.Field<string>("REGION_CODE");
region_code = dValue.First();
return region_code;
}
else
return "";
}
catch (Exception ex)
{
log.Error(ex.Message);
return "";
}
}