前序:Kettle统一数据库管理配置
最初用 Kettle的时候,为了方便不同环境用不同的数据库连接,在网上找了一个统一数据库管理配置的方案。大概是把配置文件夹放入自定义目录,通过配置环境变量让Kettle应用。在配置文件夹中实现资源库管理和数据库连接参数管理。
详见: http://blog.csdn.net/xiezhongkai08/article/details/71244528
但最后在任务计划调用批处理脚本的时候,发现Kettle还是会去找当前用户文件夹下的配置文件夹,导致自动化执行失败。
注意:只有在任务计划执行这一步是失败的。
解决:
配置文件夹迁移到当前登录用户文件夹下,计划执行成功。有一天发现,计划都开始执行失败了。(其实有点奇怪。测试环境显示执行成功但是实际是执行失败的,线上环境显示就是执行失败的。)经过排查,把计划中的安全选项参数修改成只在用户登录时运行,则计划运行成功。如下图:
经过计划日志比对发现,只在用户登录时运行的执行者是当前用户,不管用户是否登陆都要运行的用户是Administrator。
而后把配置文件夹复制到Administrator文件夹下,安全选项变更为不管用户登录都要运行,计划执行成功。
PS:其实我还是有点晕头转向的,明明指定了运行账户但还是报错。再查查吧,先这样。