(stderr) =256m""=="" 此时在 Pentaho Shell 脚本中出乎意料
Posted
技术标签:
【中文标题】(stderr) =256m""=="" 此时在 Pentaho Shell 脚本中出乎意料【英文标题】:(stderr) =256m""=="" was unexpected at this time in Pentaho Shell script 【发布时间】:2018-04-18 15:06:42 【问题描述】:这个问题和pentaho: error (stderr) =256m""=="" was unexpected at this time. while calling kitchen command (dos command using shell script job entry) from job差不多
但它在清晰度上有所不同,因为我提供了确切的细节,而且这个问题已经 3 年了,这也带来了版本问题。此外,该问题尚未得到解答,互联网上没有其他可用的解决方案,除了少数只有未回答问题的页面。因此,再次发布更详细的信息。
我使用的是 pentaho 7.0.0,在我的 kjb 文件中,有一个 shell 脚本执行器调用另一个 ktr(我知道运行 ktr 可以通过使用 Transformation 执行器来完成,但我的要求有点不同,请共同操作)。这是我正在调用的批处理文件中的命令:
C:\pentahodi\6.1.0\data-integration\Pan.bat /file:"H:/newKtr.ktr" "/param:filePath=%filePath%" /level:Basic > H:/pentahoLog.log
但是,当我从 cmd 运行这个批处理文件时,它运行顺利并且 ktr 被调用并将 filePath 参数传递给它。但是当我使用 %filePath% (用于从 kjb 本身的参数传递)时,我得到了这个错误:
错误(版本 7.0.0.0-25,buildguy 从 2016-11-05 15.35.36 构建 1):(stderr) =256m""=="" 此时出乎意料。
在其中一个在线资源中,我了解到这个问题发生在 64 位 Windows 系统中。是这样吗?我正在运行 64 位 Windows 7。
这确实阻碍了我的所有努力。我是 pentaho 的新手,不知道如何解决这个问题。任何提示将不胜感激。
请帮忙。谢谢。
【问题讨论】:
您能否具体说明一下这是什么脚本?shell
标记通常用于 POSIX 系列 shell,而 cmd.exe(和 PowerShell)则不是/不是。对有争议的特定 shell 进行标记将有助于将其呈现在合适的人面前,而不是来自“shell”标记的一堆 UNIXy 人。 :)
顺便说一句,理想情况下,我们希望问题包含重现问题所需的所有内容。这意味着实际上打开pan.bat
,构建一个新脚本,其中最短的子集可以创建相同的错误,并在问题中包含该简化脚本作为minimal reproducible example。有关构建简化复制器的更多指导,请参阅sscce.org 的“修剪技巧”部分。
你试试 /param:"filePath=%filePath%" 而不是 "/param:filePath=%filePath%" 吗?
@AlainD 试过了。同样的错误。你能解释一下为什么会发生这种情况吗?
@CharlesDuffy 我已将其标记为 shell 和 pentaho,因为 pentaho 为运行脚本提供的模块名为“shell”。在谈到 Unix 或 Windows 的 pentaho 时,shell 没有任何区别。
【参考方案1】:
作为解决方案,打开spoon.bat 文件并从PENTAHO_DI_JAVA_OPTIONS 中删除“-XX:MaxPermSize=256m”。
然后从shell执行器调用bat文件或者处理一个文件步骤
【讨论】:
感谢您的解决方案!虽然现在有点晚了...... :)以上是关于(stderr) =256m""=="" 此时在 Pentaho Shell 脚本中出乎意料的主要内容,如果未能解决你的问题,请参考以下文章
什么时候应该使用 perror("...") 和 fprintf(stderr, "...")?
将“__m256 with random-bits”转换为 [0, 1] 范围的浮点值
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: PermGen space(示