我在 SSIS 2012 中有一个脚本组件,它从中获取数据WebService(json)
、反序列化并插入到表中。
这工作正常,但有时 Web 服务已关闭,我收到 500 错误。所以我想将这些错误记录到LogTable
使用另一个OutputBuffer
.
所以我想出了这个:
for (int attempts = 0; attempts < 10; attempts++)
{
try
response = wr.GetResponse();
break;
// success = true;
}
catch (WebException ex)
{
//success = false;
Output2Buffer.AddRow();
Output2Buffer.Message = "Error 500, Waiting 30s and retrying";
System.Threading.Thread.Sleep(30000);
}
}
问题是我从 web 服务中检索的数据量很大,有时需要几个小时才能获取这些数百万条记录,如果我这样记录,它不会Message
在发生错误时立即将其插入日志表但仅当缓冲区填充到 10000 行/10 MB 时。
如何强制逐行OutputBuffer
传递。不等待缓冲区填满。