zoukankan      html  css  js  c++  java
  • 关于SharePoint工作流 任务锁定问题的一些资料

    ref:

    http://msdn.microsoft.com/en-us/library/dd441390(v=office.12).aspx

    1)为什么会被锁定

    a.因为产品本身问题:http://connect.nintex.com/forums/thread/6503.aspx

    b.因为工作流代码变动-老工作流实例无法正常反序列化.--本文不讨论此种情况

    c.因为超出了服务器处理能力,造成任务排队处理,未处理完成的始终处于锁定状态。 

    2) 如何重现

    正常情况下重现很困难。

    场景一:

    有一种特殊情况:启动一个实例,同时创建多个并行任务,然后同时异步提交2个任务,会有一个任务被锁. 锁定的任务解锁后可以正常提交。

    场景2:

    同时提交大量任务时也会出现锁定,我们开发了一个批量审批的Webpart,允许用户一次提交100个任务,发现经常会出现任务锁定。提交时发现很多任务处于锁定状态,服务器处理的很慢,需要经过很长时间,才能把所有锁定的任务处理完成。

    修改工作流日志级别为Verbose,发现大量的日志:RunWorkflow: No pending events - possibly targeted for async delivery: List:/Site/MyList Item:<myItemID>

     后来只允许一次提交50,然后把workflow-eventdelivery-throttle参数也改成50,任务处理速度明显变快。

    cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin
    stsadm -o setproperty -pn workflow-eventdelivery-throttle -pv "60"

    但是这样会造成一个用户批量提交时,会占用大量服务器资源,造成其他用户访问系统响应慢。

    3)关于Workflow限流和启用工作流详细日志

    About the “workflow-eventdelivery-throttle” parameter

    http://blogs.msdn.com/b/vincent_runge/archive/2008/09/16/about-the-workflow-eventdelivery-throttle-parameter.aspx

    http://blogs.msdn.com/b/vincent_runge/archive/2008/09/16/about-the-workflow-eventdelivery-throttle-parameter.aspx

    4)如果数据库服务器性能不行,则造成锁定的几率变大

    因为其他软件的限制,有个客户安装了32位的OS和SqlServer,开始SqlServer的大内存支持没有正确开启,批量提交任务时频繁发生锁定。后来正确启用SQLServer大数据支持,锁定现象就出现的很少了。  所以,数据库还是要用64位的。

     5)如果用代码解锁任务后提交依然出错,可以尝试iisreset后解锁。

  • 相关阅读:
    Customizing the Test Runner
    Creating Custom Shadows ——创建自定义shadow
    Extending Robolectric
    Driving the Activity Lifecycle
    Configuring Robolectric
    Writing Your First Test
    Getting Started
    Robolectric Test-Drive Your Android Code
    为知笔记 | 为知笔记 Markdown 新手指南
    LeetCode_238_Product of Array Except Self
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/2619767.html
Copyright © 2011-2022 走看看