CRM 2011使用每个线程的组织服务代理对插入进行多线程处理

时间:2015-01-06 22:14:58

标签: multithreading dynamics-crm-2011 crm

我的情景是:

  1. 我们有内部部署CRM 2011。

  2. 我有一个可以运行很长时间的流程,很多插入/数千个可能需要5-30分钟

  3. 创建一个将在此过程中运行异步的Windows服务

    我创建了" x"每个都有自己的组织服务代理的线程数,这些代理将并行执行插入

    1. 我们安装了4.0 .net框架
    2. 结果是:

      我可以看到大约10个线程可以提高40%到50%。

      超过此并发线程数将无济于事。

      我想知道哪些设置会阻止线程并行运行以及如何设置这些设置?

      在Windows服务app.config中的

      我尝试了这个设置但没有任何改进:

      <system.net>
      <connectionManagement>
      <add address = "*" maxconnection = "100" />
      </connectionManagement>
      </system.net>
      

      我想WCF组织服务会为我拥有的每个服务代理创建一个会话,它可以处理超过10个?

1 个答案:

答案 0 :(得分:3)

根据我的经验,多线程只能让你到目前为止。在某个时间点,Web服务器正在尽可能快地处理请求(如果插件作为事务的一部分执行,插件也可能是一个相当大的瓶颈。我将检查Web服务器的性能和你正在点击数据库服务器,看看是否有任何瓶颈。

如果您正在使用汇总12+,那么您可以将交易批量转换为Execute Multiple

我也希望你不是为每个记录创建一个新的线程来插入/更新,因此也是一个新的IOrganizationService。考虑一次给一个线程提供10-100条记录,让它处理所有这些记录。