我在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);
}
}
问题在于,我从网络服务中检索的数据量是巨大,有时需要花费数小时才能获得这些数百万条记录,如果我像这样记录,它将不会插入发生错误时立即Message
到日志表,但仅当缓冲区将填满10000行/ 10 MB时。
如何强制OutputBuffer
逐行传递行。不等待缓冲区填满。