我有一个应用程序将驻留在 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;
}
我正在尝试集思广益,以考虑为什么会发生这种情况。