如何设置定时任务指定重启IDoc Server

Published On: 2022年11月16日Categories: 帮助文档, 常见问题和回答, 操作指南, 知识库Views: 1

© All rights reserved. • 西安知行软件有限公司 • 陕ICP备09022277号

EDI系统与SAP系统集成中可能会因为一些特殊原因导致SAP系统与EDI系统连接断开,但是两个系统彼此都未收到断开的日志,常常到数据发送失败时才紧急处理,并且通常是SAP推送数据到EDI系统失败,EDI系统推送数据到SAP系统没有问题,这种情况通常很难排查具体的原因,针对此问题我们的运维团队提供了一个定时重启知行之桥中IDoc Server的解决方案,用来避免此类问题的发生。同时我们的开发团队也即将将该功能加入到产品中,在下一个知行之桥的网站版本上将支持通过简单配置来实现重启IDoc Server。本文将介绍如何在EDI服务器设置定时任务重启IDoc Server,和知行之桥新版本中如何进行配置重启IDoc Server。

设置定时任务

EDI服务器为Windows服务器

1.准备好重启IDoc Server的两个脚本,一个名为restartIDocServers.rst,一个名为restartIDocServers.js,脚本参考如下:
restartIDocServers.rst脚本:


  
    
      
        

[port.portid]

Restart IDoc server succeed! Restart IDoc server failed, [_code]: [_description] - [_details]
[_code]: [_description] - [_details]

restartIDocServers.js脚本:

var TIMEOUT = 90000;
var URL = "http://localhost:8001/pub/restartIDocServers.rst"; //URL中:http://localhost:8001,需要设置为实际使用的IP(域名):端口
if (WScript.Arguments.Length >= 1) {
    URL = WScript.Arguments.Item(0)
}

function sendErrorEmail(errMsg) {
    try {
        var objShell = WScript.CreateObject ("WScript.shell");
        var cmd = "RSSBus.exe appSendEmail -Subject \"Restart IDoc Server failed\" -Message \"" + errMsg + "\" -@libdir www\\bin\"";
        objShell.Run(cmd);
    } catch (err) {
    }
}

try {
    var objHttpRequest = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
    objHttpRequest.Open('GET', URL, false);
    objHttpRequest.SetTimeouts(0, TIMEOUT, TIMEOUT, TIMEOUT);
    objHttpRequest.Send();
    var status = objHttpRequest.Status
    switch (status) {
    case 200:
        break;
    default:
        var errMsg= "Status: " + status + " - " + objHttpRequest.StatusText + "\n" + objHttpRequest.ResponseText;
        sendErrorEmail(errMsg)
    }
    WScript.Quit(status);
} catch (err) {
    sendErrorEmail(err.message)
    WScript.Quit(-1);
}

2.将restartIDocServers.rst 文件放在安装目录下的www/pub文件夹中(www下没有pub目录的时,手动创建pub目录)。

edi

3.将restartIDocServers.js 文件放在安装目录下,与www平级,需要改脚本中的url路径,改为实际的IP和端口:http(s)://IP(域名):端口/pub/restartIDocServers.rst

edi

4.在Windows中任务计划程序中设置自动重启任务:

Task Scheduler–Create Task–设置定时任务名称

edi

定时任务设置:

①Triggers(触发器)
设置为每天定时执行该任务,建议设置每天凌晨0点执行,可以根据实际业务数据传输情况,在没有业务数据的时间点进行重启。

edi

②Actions(操作)

edi

  • Add arguments(potional):这里配置的是js文件目录,要注意使用双引号,参考:”E:\C-ArcESBCN\ArcCN_8336\restartIDocServers.js”
  • Start in(potional):这里设置的是知行之桥安装根目录,参考:E:\C-ArcESBCN\ArcCN_8336

以上两个参数必须设置正确。

③Conditions(条件)
默认设置即可

edi

④Settings(设置)
默认设置即可

edi

5.开启定时任务
edi
重启成功后,在知行之桥的应用系统日志可以看到重启成功的记录,如下图:

edi

EDI服务器为Linux服务器

1.准备好重启IDoc Server名为restartIDocServers.rst的脚本文件,脚本与windows环境的脚本一致。
2.将restartIDocServers.rst脚本文件放在安装目录下的/tmp/webapp/pub文件夹中(pub文件夹需要手动创建)

edi

3.设置定时任务

命令:crontab -e,进入可编辑状态,按照以下规则设置:

分 时 日 月 周 命令行

①如下参考,设置每天3点5分执行curl命令

05 3 * * * curl http://192.168.0.117:8080/pub/restartIDocServers.rst

设置时注意linux时区。

输入命令后,:wq保存退出,显示定时任务创建成功

edi

②查看设置的定时任务
命令:crontab -l

edi

③启动定时任务
命令:/sbin/service crond start

edi

④查看定时任务状态
命令:/sbin/service crond status
edi

4.定时任务工作后,在知行之桥的应用系统日志中显示重启成功的日志信息:

edi

知行之桥中如何进行简单配置来实现

下载知行之桥网站版本(即知行之桥 – 22.0.8348.0之后的网站版本)将支持页面简单配置即可实现重启IDoc Server,配置如下:

在IDoc端口的高级设置页面–特殊设置–其他设置添加参数:ServerAliveCheckInterval=重启时间间隔,如下图:

edi

查看重启IDoc Server的log:在安装目录AppDirectory\logs\IDoc中查看,如下图表示每5分钟重启一次:

edi

更多EDI信息,请参阅: EDI是什么?

了解更多EDI信息,请您电话 182-9578-5852 或邮件 sales@kasoftware.cn 联系我们。点击下方蓝色按钮,即可免费试用EDI软件。

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

为什么选择

知行之桥®?​

根据企业规模与集成需求,提供从本地部署到云端托管的灵活选择

可视化 EDI 工作流

基于拖拽式图形化设计器,零代码构建完整 EDI 业务流程,满足复杂供应链自动化场景。

Odette & Drummond 认证

通过 Odette(OFTP) 与 Drummond(AS2) 权威认证,确保与主机厂安全合规、高可靠的数据交换。

多系统集成能力

提供数据库、REST/SOAP、FTP/SFTP 等标准化接口,实现 ERP、WMS、MES 等系统的双向数据自动同步。

数据映射格式转换

内置可视化 Mapping 编辑器,零代码实现 EDI 报文与企业内部数据格式(XML/JSON…)的映射转换及复杂规则处理。

实时监控预警机制

全流程可视化监控报文状态,支持邮件、钉钉、企业微信自动预警,保障 JIT 交付的稳定性与及时性。

多工厂支持

支持集团级多组织、多工厂架构,实现数据隔离与权限管控,统一平台集中运维,满足大型制造企业多地点协同需求。