2012-04-20 92 views
0

我有一个.Net EXE坐在Windows服务器上,我有一个Autosys作业设置为启动应用程序。当我开始工作时,它只是停留在运行状态,但应用程序从不运行。该应用程序需要大约5分钟的时间运行。它下载一些图像,将它们压缩,然后将文件移动到另一台服务器。我可以从cmd行成功运行应用程序。我没有收到任何错误消息,工作继续说它正在运行。我是Autosys的新手,我正在寻找关于如何解决问题的建议。谢谢。Autosys作业停留在运行状态

正确的框架位于应用程序所针对的服务器上。

回答

1

当autosys作业正在运行时,我会在Windows服务器上检查作业的日志文件。打开Autosys命令提示符并运行autosyslog -J以读取日志。检查任何错误消息,特别是运行该命令的子进程的PID。然后检查任务管理器,看看该PID是否正在运行。

此外,当作业正在运行时,请执行autorep -d -J以获取详细的运行报告并查看是否有任何错误消息?

在Windows上解决这些问题可能会很痛苦。当您从命令行运行它时,我会怀疑它的工作环境,以及它在Autosys中的不同。你是否像在Autosys工作中一样运行你的命令行作为SAME所有者ID?如果检查客户端日志没有帮助,那么接下来我将运行set命令logging as作为所有者ID,将输出保存到文件中,然后创建问题作业的副本,将set命令替换为命令并将输出管道输送到一份文件。然后比较两个文件的差异。

+0

谢谢。我会试试这个。 – VBCSharp 2012-04-21 02:10:54

0

您可以从Autosys守护程序日志文件中获取更多有用的调试信息。它通常位于安装了Autosys代理的路径下的tmp文件夹内(例如C:\ Program Files(x86)\ CA \ UnicenterAutoSysJM.DEV \ tmp)。您需要浏览位于该文件夹中的所有文件以找到与您正在查找的特定作业相对应的文件。

此文件包含Autosys代理程序用于启动程序的实际命令以及由Autosys设置的其他环境变量。

0

当作业停留在开始或运行状态时,这意味着Autosys事件处理器与Windows远程代理进行通信并传递远程代理运行作业的所有信息。但是,该远程代理无法与数据库通信以通知其运行的作业的状态。

您可能想要检查Windows远程代理是否与数据库有连接。 这可以通过使用命令来确定“autoping -m WindowsMachineName -D”

例如,下面简单介绍一下这个问题: -

<AutosysCommandPrompt>: autoping -m WindowsMachineName -D 

AutoPinging Machine [WindowsMachineName] AND checking the Remote Agent's DB Access. 
    ERROR: AutoPing WAS NOT SUCCESSFUL! 

    Remote Agent on WindowsMachineName could not connect to DB: xxxxxxxx.WORLD 

现在,在这种情况下,调查tnsnames.ora文件,使确保数据库名称在其中。这可能是数据库连接失败的原因之一。 一旦完成,您应该得到以下命令的输出。

<AutosysCommandPrompt>: autoping -m WindowsMachineName -D 

AutoPinging Machine [WindowsMachineName] AND checking the Remote Agent's DB Access. 
    AutoPing WAS SUCCESSFUL! 

希望这会有所帮助。

0

最好的检查方法是更改​​作业命令以执行“路径”,从命令行使用用户的用户权限来比较用户权限。