错误、漏洞、问题 - 页 2399

 

在切换到另一个账户时,终端挂断。

建立: 2007, 操作系统: Win7 x64


 
Vitaly Muzichenko:

在切换到另一个账户时,终端挂断。

建立: 2007, 操作系统: Win7 x64

我希望在这些情况下能有定制的人物,因为我有他们的一切。

你可能没有这些东西。那么问题就出在其他方面了。

 
fxsaber:

如果你试图删除一个循环的脚本,可能会导致终端冻结一段时间。

但如果你在测试器中运行一个循环的专家顾问,当你按下停止按钮时,它就会立即冻结。


为什么在这些情况下会有不同的行为?

它有多大的循环?循环中是否有IsStopped()检查

如果终端挂起,这意味着接口线程被阻断。脚本有3秒钟的时间停止,如果没有IsStopped()检查,它将继续运行,直到明确停止。而在这种情况下,接口线程可能会被锁定。

一个测试员会更快地停下来,因为它不能执行关键的功能(例如,交易)。此外,测试人员是一个独立的过程,不影响客户终端

 
Slava:

它是如何循环的?循环中是否有IsStopped()检查?

我是在专门讨论没有这个检查的脚本。

如果终端挂起,这意味着接口线程被锁定。脚本有3秒钟的时间来停止,如果没有检查IsStopped(),它将继续运行,直到被硬性停止。而在这种情况下,接口线程可以被锁定。

测试者的停止速度更快,因为它不能执行关键功能(如交易)。另外,测试人员是一个完全独立的过程,不影响客户终端

所以我注意到,在Tester和Terminal中硬停的执行方式是不同的。

 
fxsaber:

在这样的情况下,我对定制的人物犯了罪,因为我在他们身上得到了一切。

你可能没有这些东西。那么问题就不同了。

没有定制的。

如果你在同一台服务器上切换账户,它会挂起一小段时间,日志显示 "终端异常"

如果在不同的服务器(DC)之间切换,则会挂起很长一段时间。

如果很长时间在一台服务器上工作而不切换,例如3-5天,然后再切换,那么终端就会挂得很紧。

 
Vitaly Muzichenko:


然后它挂起了一小段时间,日志显示 "终端异常"。


请提供完整的日志条目

 
Slava:

请给我完整的日志条目

我明白了,问题一定出在我这边,挂念是来自我的顾问。

EJ      2       08:58:24.000    EA_Trade (EURCAD,H1)    Abnormal termination

对吗?

 
Vitaly Muzichenko:

我明白了,问题一定出在我这边,挂念是来自我的顾问。

对吗?

看起来像一个循环的EA,没有IsStopped()检查
 
Slava:
看起来像一个没有IsStopped()检查的循环EA

是的,它是,但不是循环的,而是定时的。

我将添加IsStopped()。

谢谢你!

 
Vitaly Muzichenko:

是的,它是,但不是循环的,而是定时的。

我将添加IsStopped()。

谢谢你!

如果OnTimer没有被循环,就不应该有异常终止。

你能给你的专家检查一下客户终端的行为吗?

原因: