У меня есть приложение, которое будет находиться в сети business2business, которая будет взаимодействовать с нашим AS400 в нашей внутренней сетевой среде. Брандмауэр был настроен для пропуска запроса данных на наш AS400, но мы наблюдаем огромное отставание в скорости соединения и времени отклика. Например, то, что в наших локальных средах разработки занимает менее полсекунды, в среде B2B занимает более 120 секунд.
Это функция, которую мы используем для получения наших данных. Мы используем блоки приложений корпоративной библиотеки, поэтому объект ASI - это база данных ...
/// <summary>
/// Generic function to retrieve data table from AS400
/// </summary>
/// <param name="sql">SQL String</param>
/// <returns></returns>
private DataTable GetASIDataTable(string sql)
{
DataTable tbl = null;
HttpContext.Current.Trace.Warn("GetASIDataTable(" + sql + ") BEGIN");
using (var cmd = ASI.GetSqlStringCommand(sql))
{
using (var ds = ASI.ExecuteDataSet(cmd))
{
if (ds.Tables.Count > 0) tbl = ds.Tables[0];
}
}
HttpContext.Current.Trace.Warn("GetASIDataTable() END");
return tbl;
}
Я пытаюсь провести мозговой штурм по некоторым идеям, чтобы понять, почему это происходит.