【问题标题】:Pentaho Kettle - Error Writing to Log FilePentaho Kettle - 写入日志文件时出错
【发布时间】:2016-11-10 19:25:29
【问题描述】:

我们有一个 Pentaho 作业,它在我们的本地环境中运行良好,但是在部署它并使用 Kettle 运行该作业后,写入日志文件时出现错误。错误发生在设置为“为每个输入行执行?”的作业中。检查。下面是如何配置日志记录设置的路径和名称是之前设置的变量。在这一步之前可以正常登录到文件。

作业记录配置

这是我在使用调试日志级别运行 Kettle 时遇到的错误。在失败的工作中,我们也在写入日志,我不知道这是否是一种不好的做法。有没有其他人遇到过这个问题并知道解决方案?

ProcessFiles - Log folder [file:////<ServerPath>/QA/PentahoLogs] exists.
ProcessFiles - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : Unable to open file appender for file [${LOGFOLDER}${LOGFILENAME}_20161005.txt] : org.pentaho.di.core.exception.KettleException:
ProcessFiles - There was an error while trying to open file 'file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt' for writing
ProcessFiles - Could not write to "file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt" because it is currently in use.
ProcessFiles - ERROR (version 6.1.0.1-196, build 1 from 2016-04-07 12.08.49 by buildguy) : org.pentaho.di.core.exception.KettleException:
ProcessFiles - There was an error while trying to open file 'file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt' for writing
ProcessFiles - Could not write to "file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt" because it is currently in use.
ProcessFiles -
ProcessFiles -    at org.pentaho.di.core.logging.LogChannelFileWriter.<init>(LogChannelFileWriter.java:78)
ProcessFiles -    at org.pentaho.di.core.logging.LogChannelFileWriter.<init>(LogChannelFileWriter.java:96)
ProcessFiles -    at org.pentaho.di.job.entries.job.JobEntryJob.execute(JobEntryJob.java:552)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:723)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:864)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:864)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:864)
ProcessFiles -    at org.pentaho.di.job.Job.execute(Job.java:545)
ProcessFiles -    at org.pentaho.di.job.Job.run(Job.java:435)
ProcessFiles - Caused by: org.apache.commons.vfs2.FileSystemException: Could not write to "file:////<ServerPath>/QA/PentahoLogs/PartImportLog_20161005.txt" because it is currently in use.
ProcessFiles -    at org.apache.commons.vfs2.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:475)
ProcessFiles -    at org.pentaho.di.core.vfs.KettleVFS.getOutputStream(KettleVFS.java:289)
ProcessFiles -    at org.pentaho.di.core.logging.LogChannelFileWriter.<init>(LogChannelFileWriter.java:76)
ProcessFiles -    ... 8 more

【问题讨论】:

    标签: logging pentaho kettle


    【解决方案1】:

    确保日志路径/文件未被同一存储库用户或其他用户中的其他作业使用。

    【讨论】:

    • 对此表示感谢和抱歉。下次我会好好照顾它的。
    【解决方案2】:

    阅读日志:

    ProcessFiles - 无法写入“file://///QA/PentahoLogs/PartImportLog_20161005.txt”,因为它当前正在使用中。

    所以这意味着其他进程正在锁定 txt 文件。

    【讨论】:

    • 该文件未被任何个人打开,此日志仅对该作业唯一。似乎工作本身正在文件上创建一个锁,我不知道为什么。我做了一些研究,似乎 Pentaho 的 UNC 路径有问题,这可能是失败的原因。当我们指向本地驱动器时,问题并未发生。
    • 尝试使用 ${Internal.Job.Filename.Directory}${LOGFOLDER}${LOGFILENAME} 设置相对于作业的路由
    猜你喜欢
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多