2011-08-12 29 views
0

我在写一个.net应用程序,它通过它的xml-rpc服务与OpenERP进行交互。我正在使用cook计算库。多线程应用程序超时例外 - > OpenERP集成

本申请的目的是要加载(或更新)的产品的巨大数目的OpenERP入> 100000,这样做同步需要花费时间,所以我包裹该呼叫转变为Parallel.ForEach呼叫,

的问题是我一直在为某些线程获取超时异常,并且我找不到问题出在哪里,是否需要调整某种配置? - >需要帮助。

这是我的配置:

  • 的XML-RPC库超时设置为:16分钟
  • ParallelOptions - > MaxDegreeOfParallelism被设置为6
  • 和连接的最大数量被设置至36

连接配置:

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

在撰写本文时,我用9款产品测试了上述设置,4线程超时,主要包括

感谢大家,等待您的回复。

Abdelkrim。

回答

0

如果您打算用6个线程来完成数据加载,那么您很可能会在数据库事务级别发生冲突。我不知道为什么它会完全超时,我会预料会出现延迟或死锁异常。

如果您只是想最大限度地提高数据加载的吞吐量,请尝试使用单个线程加载100个产品,然后使用两个线程,三个线程等进行计时。我猜测三个线程的速度不会超过两个线程,因为大部分延迟都会在数据库中,而不是在任何客户端处理中。有两个线程的唯一好处是您不必等待网络通信。

当然这是我所有的猜测。衡量它并发布你的结果。