自承载集成运行时是否有任何轮询间隔设置?

Is there any poll interval setting for the self-hosted integration runtime?

我结合使用查找和 foreach 活动来遍历数据摄取查询集并执行它们(背后的原因是一个单独的广泛主题 :))。由于数据源连接到专用网络,我已经为 运行 自托管 运行 时间提供了专用 VM。在大多数情况下,一切 运行 都很顺利,我可以看到工作进程正在消耗 CPU 和较高的整体 CPU 利用率(这很好)。

但是:有时候,当大部分工作已经完成,只有2-3个活动在排队时,我可以看到运行时间没有处理和 CPU 使用率下降到零,事件日志中没有新条目出现。一段时间后(大约 10 分钟),我得到了 30002(下面提供了示例)并且 运行time 愉快地完成了工作。

示例事件消息:

Job ID: ***-fcab-429a-bb45-***
Task ID: ***-d820-414e-ad8c-***
Queue ID: ***-4f44-4c39-a1c1-***
Log ID: PulledOffNewTask

问题:这种 Azure 数据工厂自托管集成 运行time 行为的根本原因可能是什么?这个可以微调吗?


更新 1

在应用程序日志中发现错误,在集成 运行时间日志中发现警告。

应用程序日志包含 3 组错误(请参阅下面的事件 [1] 至 [5]),这些错误发生在大约 2 分钟的时间间隔内,之后不久,8 个事件(正是我的工作进程数)被记录到集成 运行 时间日志(参见 [6]),紧接着出现“Windows 错误报告”事件。然后我们面临“冻结”。

所以 - 看起来像个错误:(

“应用程序” 日志:

[1]

Application: diawp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
   at Microsoft.DataTransfer.TransferTask.CopyTaskBase.UpdateJobProgress(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.TimerQueueTimer.CallCallback()
   at System.Threading.TimerQueueTimer.Fire()
   at System.Threading.TimerQueue.FireNextTimers()

[2]

Faulting application name: diawp.exe, version: 3.5.6639.1, time stamp: 0x5aa8cf5f
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x00007ff914402c65
Faulting process id: 0x1bc4
Faulting application start time: 0x01d3d287ef6e34fa
Faulting application path: C:\Program Files\Microsoft Integration Runtime.0\Shared\diawp.exe
Faulting module path: unknown
Report Id: 1fe7de4d-5481-478d-b9e7-d542c24ab18a
Faulting package full name: 
Faulting package-relative application ID: 

[3]: 无法打开服务器服务性能对象。数据部分的前四个字节 (DWORD) 包含状态代码。

[4]:DLL“C:\Windows\system32\wbem\wmiaprpl.dll”中服务“WmiApRpl”的打开过程失败。此服务的性能数据将不可用。

“集成运行时” 日志:

[6]

'Type=System.InvalidOperationException,Message=Instance 'diawp#10' does not exist in the specified Category.,Source=System,StackTrace=   at System.Diagnostics.CounterDefinitionSample.GetInstanceValue(String instanceName)
   at System.Diagnostics.PerformanceCounter.NextSample()
   at System.Diagnostics.PerformanceCounter.NextValue()
   at Microsoft.DataTransfer.TransferTask.FormatedPerfCounter.TryGet(Single& value),'
Job ID: 7b629411-c6cd-42d0-9939-e830e58db015
Log ID: Warning

据我所知,您没有很多选项来调整 Integration Runtime。我敢打赌是您的专用网络存在连接问题。每当你 运行 管道时,在虚拟机上打开一个 cmd 并使用 -t ping 数据库 pc。如果进程挂起,请查看 ping 之间的响应时间。

示例 ping:

ping 192.168.1.1 -t

希望对您有所帮助!

看起来像是工人崩溃造成的。您能否从以下位置检查事件日志:Windows 日志 => 应用程序?类别有误吗?

30002 表示 IntegrationRuntime 已分配新任务并开始执行。 如果 10 分钟 "retry interval" 可以不断重现,那么 30002 可能进一步表明 IntegrationRuntime 在之前分配给它的失败任务上丢失了踪迹,必须重试。

您可以在事件日志中搜索特定的 JobId,以验证是否在 10 分钟前出现以及是否有任何异常。

顺便说一句,正常快乐路径中的轮询间隔以秒为单位。