Проблемы со статической таблицей данных при выполнении нескольких процессов - PullRequest
0 голосов
/ 30 мая 2018

У меня есть консольное приложение .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 "";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...