是否存在自托管集成运行时的轮询间隔设置?

时间:2018-04-12 17:27:36

标签: azure azure-data-factory azure-data-factory-2

我使用lookup和foreach活动的组合来遍历数据提取查询集并执行它们(背后的原因是一个单独的广泛主题:))。当数据源连接到专用网络时,我已经配置了专用VM来运行自托管运行时。在大多数情况下,一切运行顺利,我可以看到工作进程占用CPU和高CPU总体利用率(这是好的)。

但是:有时,当大多数工作完成后,只有2-3个活动排成一行,我可以看到运行时没有处理,CPU使用率降到零,没有新的条目显示在事件日志中。经过一段时间(大约10分钟)后,我得到了30002(下面提供了示例),运行时很乐意完成工作。

示例事件消息:

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

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

更新1

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

应用程序日志包含3组错误(参见下面的事件[1]至[5]),这些错误发生在约2分钟的时间间隔内,此后不久,8个事件(确切地说是我的工作进程的数量)被记录到整合运行时日志(参见[6]),紧接着#34; 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]:无法打开服务器服务性能对象。数据部分的前四个字节(DWORD)包含状态代码。

[4]:服务公开程序" WmiApRpl"在DLL" C:\ Windows \ system32 \ wbem \ wmiaprpl.dll"失败。此服务的性能数据将不可用。

" Integration Runtime" 日志:

[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

3 个答案:

答案 0 :(得分:1)

看起来像工人崩溃造成的。你可以检查一下事件日志:Windows Log =>应用?类别中的任何错误?

答案 1 :(得分:0)

据我所知,您没有很多选项来调整Integration Runtime。我的赌注是您的专用网络连接问题。无论何时运行管道,在vm处打开cmd并使用-t ping数据库pc。如果进程挂起,请查看ping之间的响应时间。

示例ping:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fadeScrollbars="false"
    android:scrollbarFadeDuration="0"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">


    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="52dp"/>



</android.support.v4.widget.NestedScrollView>

希望这有帮助!

答案 2 :(得分:0)

30002表示IntegrationRuntime已分配新任务并开始执行。 如果10分钟&#34;重试间隔&#34;可以不断地再现,然后30002可以进一步指示IntegrationRuntime在之前分配的失败任务上丢失了轨道并且必须重试。

您可以在事件日志中搜索特定的JobId,以验证是否在10分钟前出现以及与之相关的任何例外。

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