如何使用Script Component的Outputbuffer逐个插入行

时间:2016-12-29 14:23:35

标签: c# ssis output-buffering script-component

我在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逐行传递。不等待缓冲区填满。

0 个答案:

没有答案