首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测执行第三方代码时出现的问题。(NAS作业)

检测执行第三方代码时出现的问题。(NAS作业)
EN

Stack Overflow用户
提问于 2013-11-15 21:07:12
回答 1查看 125关注 0票数 0

我正在努力找出一个问题,但我正在努力寻找一个可行的解决方案。这个问题可能更多的是关于理论而不是实现。我只是需要一些其他的观点。

问题是:

我们使用的是Navision应用服务器(NAS),它通过报告和代码单元运行某种类型的业务逻辑、复制、XML处理和其他东西。有时,其中一些作业会陷入循环或死锁等情况。

理想的解决方案是修复Codeunit和报告中的问题,以便它们可以处理自己的问题;但这不是一种选择。我真的无法访问这些作业的代码。

我正在努力寻找一种方法,如何至少部分自动化地检测这些问题。我能想到的唯一方法是为每个作业存储一些资源消耗统计信息(CPU、SQL CPU和I/O,可能是空闲时间),并在下一次运行时对其进行比较。如果会有一些重大的差异,就会触发警报。

如果这项工作需要4个小时来完成,卡在过程的开始,我想知道,在合理的时间,而不是在6小时后,它是显而易见的。

我有完全访问SQL服务器,NAS服务器和它的进程。我在.NET 4中使用C#

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-22 03:47:35

由于您可以访问一些代码单元,因此您还需要一个空闲表,以便在此解决方案的Navision安装中使用。您可以创建一个日志表,它的主键类型为int,设置为autonumber,并在整个过程中向表中插入一条带有时间戳的记录。之后,您可能希望对该日志表调用,以强制将插入的记录写入事务日志。然后,您可以使用外部进程监视该表,如果最后记录的时间戳超过某个阈值(可能类似于30分钟),您可以发送一封电子邮件,或者以您希望的方式提醒自己。您可能希望在每次运行之前清空该表,以避免因不需要的记录而使数据库膨胀。或者,您可以简单地将一个文件写入磁盘,并通过您的进程代码重复访问该文件,从而更新该文件的最后修改日期。然后,您的监控工具可以以相同的方式检查文件的最后修改日期,如果该文件在进程仍在运行的情况下长时间未被修改,则会发送警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20001832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档