问题标签 [java-batch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - 当实体从读取器传递到处理器时出现 LazyInitializationException
我在 Wildfly 9.0.1 中使用 java 批处理 (jsr-352)。对实体的惰性字段进行步进(基于块)访问的处理器。当处理器想要获取惰性字段时,我给出LazyInitializationException
. 当我在 wildfly 11.0.0.Alpha1 上运行它时,一切正常。在 wildfly 9.0.1 中,当我使用存储库获取此字段时,没有问题。我怎样才能使用存储库做到这一点?
读者:
处理器:
作家:
这是完整的错误:
websphere-liberty - 在 WebSphere Liberty 中禁用批处理安全性
我们在反向代理后面使用 WebSphere Liberty 服务器。我们启用了 appSecurity-2.0 功能以添加一个自定义 TAI,该 TAI 验证代理和 Liberty 之间的 HTTP 请求。为了使用 WebSphere Liberty 附带的批处理框架,我们启用了功能 batchManagement-1.0 并添加了所需的角色配置,如此处所述https://www.ibm.com/support/knowledgecenter/en/was_beta_liberty/com.ibm.websphere .wlp.nd.multiplatform.doc/ae/twlp_batch_securing.html。
如果将标签 authorization-roles 添加到 server.xml 并将角色 batchAdmin 分配给基本注册表中的用户,则可以通过 REST API 提交批处理。但是,如果我们添加授权角色标签,Liberty 会将来自代理(前端用户)的 HTTP 请求限制到已部署的 Web 应用程序,并报告用户没有访问资源所需的权限。是否可以独立于 appSecurity 功能禁用 WebSphere Liberty 中的批处理安全性?
jakarta-ee - NullPointerException 在 WebLogic 中使用 managedScheduledExecutorService 运行批处理作业
我在我的项目中使用批处理作业并将其部署在 weblogic 上。我在 weblogic 控制台中设置数据源和模式名称。当我想通过运行开始工作时,BatchRuntime.getJobOperator().start("test-job", new Properties())
出现以下错误:
在 EXECUTIONINSTANCEDATA 我有以下记录:
编辑:新堆栈跟踪(由 managedScheduledExecutorService 安排的作业)
websphere-liberty - IBM JSR 352 作业日志为空
我在 Websphere Liberty Profile 服务器上运行 IBM JSR 352 java 批处理应用程序。用于写入作业日志的应用程序,例如 C:\web servers\liberty_profile\wlp-javaee7-17.0.0.1\wlp\usr\servers\javnat-batch-server\logs\joblogs\Job1000\2018-05-24\instance .19401\execution.19401\part.1.log
part.1.log 包含作业执行信息和异常堆栈跟踪。
但是,目前,每次运行任何批处理作业时,都会创建 part.1.log,但大小为 0。该文件只是空的。我没有更改任何配置。你们能否阐明在这种情况下可能出现的问题?提前致谢。
websphere-liberty - 如何检索 IBM JSR 352 JSL 的决策 ID
我在 Liberty Profile 服务器下运行 IBM JSR 352 批处理作业。我的 JSL 包含决定,例如
我试图从决策者/批处理中检索决策的 ID,但没有运气。它不在 JobContext 或 StepContext 内。有大佬知道怎么找回吗?非常感谢!
spring-batch - 创建 java 批处理作业时,是否可以在多个流程元素中重用一个步骤元素?
我正在创建将定义一个相对简单的 Java 批处理作业的 XML(请参阅 JSR 352)。
我的工作有三个步骤,我希望能够动态地让用户决定他们是要执行所有三个步骤,还是只执行第一步,或者只执行第二步,或者只执行第一步和第三步,或者只是第二步和第三步,等等。基本上我想给用户所有可能的组合,以便按顺序运行步骤的子集。
我感到困惑的是在作业 xml 中定义这种行为。我有一个 javax.batch.api.Decider 的实现,它会根据用户想要做的事情返回一个特定的值。
我的决策者 xml 看起来像这样:
我认为最好的方法是使用几个<flow>
元素来定义不同的可能性。例如,这里只是我可以定义的两个可能的流程元素:
问题是我不想一遍又一遍地输入所有步骤,因为我的步骤比我在这里介绍的要复杂得多。我有每个步骤的分区和属性,如果我必须将每个步骤的完整定义多次放入作业 xml 文件中,那么冗余 xml 的数量将会很大。
有没有一种方法可以让我只从流程元素中引用一个步骤,而不必每次都完全定义它?
java - JSR352 - 单项读取,多项写入
在我正在处理的一个项目中,我们正在读取一个文件,其中读取的每个项目(一条记录)都代表要写入目标数据库的可变数量的项目。这显然似乎打破了 JSR352 的模式,将单个块膨胀得比预期的要多。
有没有人遇到过这种问题?如果是,它是如何解决的?
control-m - JSR352 批处理作业的设计:几个步骤比一个大批处理更好吗?
我的 JSR352 批处理作业需要从数据库中读取,然后根据结果流向两个路径之一,每个路径都涉及更多 if/else 场景。我想知道用大批处理编写单个步骤和由较小批处理组成的几个步骤之间的利弊是什么。该作业不涉及块大小大于 1 的块步骤,因为它需要立即持久化读取结果以防万一,然后再继续执行其他逻辑。该作业将使用 Control-M 运行,我想知道使用多个较小的步骤是否会提供更多控制点。
websphere - 如何授权 Java Batch 作业以便它可以从 WebSphere Liberty 中的启动 bean 运行?
我正在尝试从我的启动 bean 中提交一个基本的批处理作业,这给了我一条错误消息“用户未经授权的用户无权启动批处理作业”。
这是我的启动 bean:
在我的 server.xml 中,我配置了用户名和密码:
如何正确进行身份验证,以便我的作业可以由启动 bean 运行?
java - 带分区的 Java 批处理步骤返回错误的 batchStatus 和 exitStatus
我在 JDL 中有一个(非常简单的)java 批处理作业,只需两个步骤。
当“下载”步骤返回“已停止”状态时,作业应停止。重新启动后,应调用停止通知。
没有分区一切正常。
无分区统计
有了分区,我得到了非常奇怪的批处理结束退出的状态。如果下载步骤返回“已停止”,则作业不会停止。即使分区只有一个线程和一个分区。
尝试重新启动时会引发以下错误(当然)。JBERET000609:作业执行 1 已完成,无法重新启动。
分区统计
职位描述
欢迎每一个提示和建议。我错过了什么?
无分区
在作业开始时,作业调用 -downloadBatchlet => STOPPED 并停止。
重新启动作业时调用 - notifyBatchlet => COMPLETED 并结束。
带隔断
在作业开始时,作业调用 -downloadBatchlet => STOPPED 并停止。
重新启动时,作业调用 NO STEPS 并结束。