问题标签 [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.

0 投票
1 回答
426 浏览

websphere-liberty - 带有 Liberty Profile 的 JSR-352 - 'ORA-01002:无序获取'

我正在 Liberty Profile 中试验 JSR-352 实现,并且在我的阅读器处理了我的 JDBC ResultSet 的前 10 个项目后,我被“ORA-01002: fetch out of sequence”错误所困扰。我的块大小设置为 100。

这是我的读者:

如果 ResultSet 处理发生在 open() 方法中,那么我不会遇到任何错误。

这是我的 server.xml 中的 batchPersistence 配置:

这是作业日志中的错误:

我有额外的日志等,如果它们有帮助的话。提前致谢。

0 投票
2 回答
545 浏览

java - 在多个线程上运行 JAVAEE7 Batch 时出错

我正在尝试使用分区在多线程上运行 JAVAEE7 批处理。
我的批处理很简单:读取一堆随机数,使用 3 个线程写出它们的总和。

我的工作 XML

我的 PartitionMapperImpl:

我的读者:

我的处理器

我的作家

当我运行此批处理时,出现以下错误。我猜这与在 derby 数据库中同时存储多个检查点有关。

2017-03-02T15:22:45.955+0700| 情报:275 | 总和:13 2017-03-02T15:22:45.958+0700| 情报:316 | 块的总和:17 2017-03-02T15:23:05.971+0700| 严重:读取-处理-写入循环失败 com.ibm.jbatch.container.exception.BatchContainerServiceException:无法在 com 中保留 [process] 的检查点数据.ibm.jbatch.container.persistence.CheckpointManager.checkpoint(CheckpointManager.java:133) 在 com.ibm.jbatch.container.impl.ChunkStepControllerImpl.invokeChunk(ChunkStepControllerImpl.java:644) 在 com.ibm.jbatch.container.impl .ChunkStepControllerImpl.invokeCoreStep(ChunkStepControllerImpl.java:764) 在 com.ibm.jbatch.container.impl.BaseStepControllerImpl.execute(BaseStepControllerImpl.java:144) 在 com.ibm.jbatch.container.impl.ExecutionTransitioner.doExecutionLoop(ExecutionTransitioner.java :112) 在 com.ibm.jbatch.container。SQLTransactionRollbackException: ????????????????????????????????????: Lock : ROW, CHECKPOINTDATA, (110,27)等待 XID : {77885156, S} , APP, select id, obj from CHECKPOINTDATA where id = ? 授予 XID:{77885155,X} 锁定:ROW,CHECKPOINTDATA,(110,28)等待 XID:{77885155,S},APP,从 CHECKPOINTDATA 中选择 id,obj,其中 id = ?授予 XID : {77885156, X} ????????XID: 77885156? 在 fish.payara.jbatch.persistence.rdbms.JBatchJDBCPersistenceManager.queryCheckpointData(JBatchJDBCPersistenceManager.java:503) 在 fish.payara.jbatch.persistence.rdbms.JBatchJDBCPersistenceManager.updateCheckpointData(JBatchJDBCPersistenceManager.java:388) 在 fish.payara.jbatch.persistence .rdbms.LazyBootPersistenceManager.updateCheckpointData(LazyBootPersistenceManager.java:230) 在 com.ibm.jbatch.container.persistence.CheckpointManager。checkpoint(CheckpointManager.java:128) ... 13 更多原因:java.sql.SQLTransactionRollbackException: ??????????????????????????????? ????????: Lock : ROW, CHECKPOINTDATA, (110,27) Waiting XID : {77885156, S} , APP, select id, obj from CHECKPOINTDATA where id = ? 授予 XID:{77885155,X} 锁定:ROW,CHECKPOINTDATA,(110,28)等待 XID:{77885155,S},APP,从 CHECKPOINTDATA 中选择 id,obj,其中 id = ?授予 XID : {77885156, X} ????????XID: 77885156? 在 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) 在 org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) 在 org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException (未知来源)在 org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(未知来源)在 org.apache.derby.impl.jdbc。EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknown Source) at org.apache.derby。 impl.jdbc.EmbedResultSet.movePosition(Unknown Source) at org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown Source) at com.sun.gjc.spi.base.ResultSetWrapper.next(ResultSetWrapper.java:103)在fish.payara.jbatch.persistence.rdbms.JBatchJDBCPersistenceManager.queryCheckpointData(JBatchJDBCPersistenceManager.java:498) ... 16 更多原因:java.sql.SQLException: ??????????????? ?????????????????????: Lock : ROW, CHECKPOINTDATA, (110,27) Waiting XID : {77885156, S} , APP, select id, obj from CHECKPOINTDATA哪里 id = ?授予 XID : {77885155, X} 锁: ROW, CHECKPOINTDATA, (110, 28) 等待 XID : {77885155, S} , APP, select id, obj from CHECKPOINTDATA where id = ? 授予 XID : {77885156, X} ????????XID: 77885156? 在 org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 27 更多原因:错误 40001:??? ?????????????????????????????????:锁:行,检查点数据,(110,27)等待XID:{77885156 , S} , APP, 选择 id, obj from CHECKPOINTDATA where id = ? 授予 XID:{77885155,X} 锁定:ROW,CHECKPOINTDATA,(110,28)等待 XID:{77885155,S},APP,从 CHECKPOINTDATA 中选择 id,obj,其中 id = ?授予 XID : {77885156, X} ????????XID: 77885156? 在 org.apache.derby.impl.services.locks 的 org.apache.derby.iapi.error.StandardException.newException(Unknown Source)。

你有任何想法如何解决这个问题吗?
或者任何可以在超过 2 个线程上运行的示例都非常有帮助。
提前致谢。

0 投票
1 回答
34 浏览

java - 我们可以在现代 Java 批处理中使用 Facebook API 吗?

我们可以在现代 Java 批处理中使用 Facebook API 吗?需要一些信息,例如是否可以在现代 Java 批处理中使用该 API,如果可以,我们如何实现它?

0 投票
1 回答
593 浏览

java - JSR-352 Batchlet ejb nullPointerException

我想使用 EJB 填充列表的 batchlet 有问题。

当我启动项目时,glassfish 会标记一个错误:

捕获异常执行步骤:com.ibm.jbatch.container.exception.BatchContainerRuntimeException: java.lang.NullPointerException

Glassfish 版本是 4.1.1

我的批处理代码是:

我尝试在调试中运行应用程序并检查 nodeEJB,它始终保持空值。

您知道如何将我的 EJB 用于我的 batchlet 吗?

谢谢你的帮助

厄施

编辑:

NodeFacade 代码:

豆类.xml:

getNetworkStatusBatch.xml:

myBackgroundJobManager.java:

0 投票
2 回答
413 浏览

java - Batchlet 与 EJB 计时器

我做了一个应用程序来对网络节点进行一些测试,例如 ping 测试、检索磁盘空间等。

我使用预定的批处理来运行操作,但我想知道这是否是批处理的正确使用?

EJB 计时器是否应该更相关?此外,当我运行一个批处理时,我的 glassfish 服务器会保留批处理作业的日志,我不需要它(尤其是一天生成的批处理作业量)。

如果我需要在相同的计划时间内运行一些工作,我认为批处理可以做到,但 EJB 计时器也可以吗?

您能否就实现这一目标的正确方式给我您的意见?

谢谢,厄施

0 投票
0 回答
125 浏览

jakarta-ee - 清除 glassfish 批处理作业执行

我正在寻找一种方法来每天从我的 java 应用程序中清除 glassfish 批处理日志(通过 batchlet 或 ejb 计时器)。

也许另一种方法是只保留失败的工作并清除成功的批次,有可能吗?

谢谢,厄施

0 投票
1 回答
483 浏览

weblogic - 带有 Weblogic 12.1.3 的 Java 批处理 (JSR 352)

我可以在 weblogic 12.1.3 中使用 java 批处理吗?此版本的 weblogic 支持 java EE 7 但在控制台中我找不到带有批处理配置的页面

0 投票
1 回答
153 浏览

spring-batch - 我可以在 JavaSE 环境中运行 Java Spring Batch 程序吗?

我们正在探索为 z/OS(大型机)创建的 Java 批处理程序的部署/执行模式

选项 1:在 Liberty 配置文件中部署它

选项 2:我可以在 JavaSE 环境中运行 Spring Batch 程序吗?

0 投票
2 回答
209 浏览

java - 如何在块处理中实现文件更新逻辑(Java Batch - JSR352)

我正在尝试使用 IBM 的 JSR352 实现开发 Java 批处理程序。由于批处理作业涉及迭代处理大量记录,因此我选择将其实现为块处理作业。

这项工作涉及 3 个步骤,这些步骤对文件 1 中的每个记录保持重复

  1. Reader 类:从文件 1 中读取内容以形成关键文本
  2. 处理器类:查找文件 2 中的关键文本
  3. Writer Class:使用自定义文本更新文件 2 中找到关键文本的文本

从处理器到编写器,我可以返回找到关键文本匹配的所有行号。但是,如果没有对文件的 RandomAccess,我如何从我的 Writer 更新文件 2 中的那些特定行号?

由于我仅限于使用这些输入/输出流进行文件处理,因此我无法在处理器和编写器类之间拆分查找和更新逻辑。我怎样才能做到这一点?

这是因为代码将在 Windows 机器中开发,但最终在大型机 (z/os) 服务器中执行。

0 投票
0 回答
69 浏览

jsr352 - 在 JSR352 Java 批处理中使用分区时的写入器行为

我使用 Websphere Liberty 服务器容器中可用的 JSR352 框架实现实现了一个 Java 批处理程序。

此作业面向块处理

  1. Reader - 读取数据
  2. 处理器 - 处理它 Writer
  3. Writer - 在一个文件中写入数据并在另一个文件中更新数据

当我为此作业创建 2 个分区时,Writer 中的写操作会相互覆盖吗?还是两个分区的写入输出都保留在文件中而不会被另一个覆盖?