使用VBScript的SAS企业指南。通过SAS程序循环会被卡住
我面临一个随机的问题。当使用VBScript和SASEGObjectModel.Application.7.1执行SAS程序时,通过CodeCollection的循环有时会受阻,即使程序执行成功(最终数据库在我们的服务器中正确创建)。脚本simple不会转到CodeCollection的下一个程序(执行脚本的提示仍然处于打开状态…无限期)。发生的SAS程序是随机的,频率也是随机的。我要说这样的话:使用VBScript的SAS企业指南。通过SAS程序循环会被卡住,vbscript,sas,Vbscript,Sas,我面临一个随机的问题。当使用VBScript和SASEGObjectModel.Application.7.1执行SAS程序时,通过CodeCollection的循环有时会受阻,即使程序执行成功(最终数据库在我们的服务器中正确创建)。脚本simple不会转到CodeCollection的下一个程序(执行脚本的提示仍然处于打开状态…无限期)。发生的SAS程序是随机的,频率也是随机的。我要说这样的话: Dim oSasApp Set oSasApp = CreateObject("SASEGObj
Dim oSasApp
Set oSasApp = CreateObject("SASEGObjectModel.Application.7.1")
oSasApp.SetActiveProfile("some-profile")
Dim oSasProj
Set oSasProj = oSasApp.Open("some-project.egp", "")
Dim oProgramList
Set oProgramList = oSasProj.CodeCollection
Dim programOrder
Set programOrder = ...here I assign the SAS programs order array reading from a .txt...
For Each program in programOrder
For Each sasProgram in oProgramList
If sasProgram.Name = program Then
sasProgram.Run
sasProgram.Log.SaveAs "some-folder/" & sasProgram.Name & ".txt"
End If
Next
Next
oSasProj.Close
oSasApp.Quit
问题不在于日志的保存,因为被阻塞程序的日志txt文件也被正确创建
有什么想法吗?我们的SAS服务器可能有问题?我应该声明一些选项吗
SAS指南版本:7.15
窗口:10
所以。。。对于面临同样问题的人。如上所述,如果在提示符下按enter键,脚本将再次流动。所以它在等待我的输入,原因我不知道。我做了两件事来绕开它。不确定是否所有这些都是必要的,或者是否只有一个解决了它,但这里是: 首先,通过VBScript,我关闭了生成列表,并在SAS程序运行后应用了延迟: 按程序顺序为每个程序编写
对于每个SASI程序,操作程序列表
如果sasProgram.Name=program,则
sasProgram.GenSasReport=False
sasProgram.GenHTML=False
sasProgram.GenListing=False
sasProgram.GenPDF=False
sasProgram.GenRTF=False
程序,运行
WScript.Sleep(2000年)
sasProgram.Log.SaveAs“some folder/”&sasProgram.Name&“.txt”
如果结束
下一个
下一个
在我的批处理文件中,我使用“cscript”命令调用VBScript,我将其设置为对VBScript可能询问的每条消息应用“y”:
cd ./script-folder
echo y | cscript script-file-name.vbs
就是这样。您需要查看SAS服务器日志。可能在大量运行请求涌入期间,某些连接被拒绝或断开,或者连接的运行调度程序挂起在某些未关闭或锁定的资源上。如果您正在运行本地SAS会话,请对可能“挂起”的预期SAS会话使用Windows资源监视器。其他很好的本地故障排除工具是Sysinternals Process Monitor和Process Explorer。您还可以尝试在每个程序运行后添加延迟,以确保不是请求的频率导致问题。这是很好的信息。刚刚发现了一些可以改变一切并使问题更简单的东西:如果在提示符下按enter键,脚本将再次流动。所以它正在等待我的输入。我不明白为什么,因为我没有在.vbs文件中为此编写任何代码。必须是SAS企业指南的内容。我操作的数据库很大,主程序运行大约需要7个小时。我在想如果SAS指南有什么要求的话。可能与数据大小有关?日志?结果?知道会是什么吗?