我使用查找和 foreach 活动的组合来遍历数据摄取查询集并执行它们(其背后的原因是一个单独的广泛主题:))。由于数据源连接到专用网络,因此我提供了一个专用 VM 来运行自托管运行时。在大多数情况下,一切都运行顺利,我可以看到工作进程占用 CPU 和较高的整体 CPU 利用率(这很好)。
但是:有时,当大部分工作完成时,只有 2-3 个活动在排队,我可以看到运行时没有处理并且 CPU 使用率下降到零,事件日志中没有新条目出现。一段时间后(大约 10 分钟)我得到了 30002(下面提供了示例)并且运行时愉快地完成了工作。
示例事件消息:
作业 ID:***-fcab-429a-bb45-*** 任务 ID:***-d820-414e-ad8c-*** 队列 ID:***-4f44-4c39-a1c1-*** 日志 ID:PulledOffNewTask
问题:这种 Azure 数据工厂自托管集成运行时行为的根本原因是什么?这个可以微调吗?
更新 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\3.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]:无法打开Server服务性能对象。数据部分的前四个字节 (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