問題タブ [jberet]
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.
java - JSR 352: Wildfly9 / JBeret - 同じデプロイメント ファイル レベルに含まれていないバッチ ジョブを呼び出す方法
JAR ライブラリを含む WAR アプリケーションがあります。JAR ライブラリには、バッチ ジョブとバッチ アーティファクト ( META-INF/batch-jobs/...
) が含まれています。WAR アプリには、この jar がライブラリーとして含まれており、クライアントがインターフェースを呼び出すバッチ・ジョブを呼び出せるようにする JAX-RS サービスを定義していますJobOperator
...
このデプロイメントを実行すると、JSR 352 実装 (JBeret) は、JobOperator インターフェイスが呼び出されたときにジョブが見つからないという不平を言い続けます... ただし、バッチ ジョブとバッチ アーティファクトが WAR デプロイメントのクラスとして含まれている場合、すべてがスムーズに実行されます...
それで、問題は何ですか?
java - java.util.list の Java EE 7 バッチ (JSR-352) 構文?
私は、Java EE 7 バッチ処理 (JSR-352) の実装である Jberet を使用しています。コンマ区切りのリストを指定する代わりに、注入に使用されるオブジェクトのリストを JSL (Job Specification Language) で作成するためのより適切な構文があるかどうかを知りたかったのです。Javaクラスのリストを作りたかったのですが、一行にまとめるととても長くて読めません。これは私が現在それを行う方法です
次のようなものがあればよかったです。
1時間ほど探してもそれらしいものは見つかりませんでした。私が使用しているバッチの実装は Jberet です。単純に文字列操作を行って独自のリストを作成できることはわかっていますが、よりクリーンな解決策があるかどうか疑問に思っていました。
java - JSR352: アノテーション @Named が Java SE で機能しない
JBoss 実装JBeretを使用して、Java SE でJSR352 (Java プラットフォーム用のバッチ アプリケーション)のデモを作成しています。そして、このジョブの統合テストを実行したいと思います。このバッチ ジョブには、次の 3 つのコンポーネントがあります。
io.mincong.batch.MyItemReader
io.mincong.batch.MyItemProcessor
io.mincong.batch.MyItemWriter
それらはすべて注釈付きの名前付き Bean です@Named
。
この注釈のおかげio.mincong.batch
で、ジョブ ファイルにパッケージ名のプレフィックスを入力しなくても、ジョブ クラスを使用できますmyJob.xml
。これは、WildFly 10 などの Java EE コンテナーでは正常に機能します。ただし、Java SE では機能しなくなりました。パッケージ プレフィックスを追加する必要があります。ここでジョブ xml myJob.xml
:
また、別紙に 2 つの mvn install ログがあり、パッケージ プレフィックスありとなしがあります。つまり、使用と不使用@Named
です。このエラーが発生する理由 いくつかの依存関係がありませんか? 何か案が ?
以下の pom.xml も見ることができます。追加情報:
- JBERET: JBERET のセットアップ
- JBERET: 最小限のアプリケーション依存性
- JBERET: Java SE バッチ アプリケーションの追加の依存関係
- JBERET: GitHub の jberet/jsr352/test-apps
@Named を使用すると Maven のインストールが失敗する
@Named が使用されていない場合の Maven インストールの成功
pom.xml
batch-processing - JobExecution#getJobName の NPE
私のアプリケーションでは、バッチ処理に JBeret 実装を使用しています。
ジョブの実行中の実行を取得しようとすると、NPE が発生しました。
スタックトレース:
原因: org.jberet.runtime.JobExecutionImpl.getJobName(JobExecutionImpl.java:141) での java.lang.NullPointerException org.jberet.operations.JobOperatorImpl.getRunningExecutions(JobOperatorImpl.java:157) で.batch.rs.BatchOperatorServiceBean.getRunningJobIds(BatchOperatorServiceBean.java:143)、ch.adnovum.monexio.server.batch.rs.BatchOperatorServiceBean.assertAtomicJob(BatchOperatorServiceBean.java:94)、ch.adnovum.monexio.server.batch.rs .BatchOperatorServiceBean.start(BatchOperatorServiceBean.java:54)
JBeret がジョブ情報を格納するデータベースを確認したところ、有効なインスタンスにアタッチされたすべての実行が確認できました。
誰も同じ問題に直面したことがありますか?
jakarta-ee - JavaEE バッチはアプリケーションの再デプロイに耐えられますか?
ダウンタイムがほぼゼロの高可用性システムで Wildfly 10 を使用しています。バッチ プロセスはシステムの作業の重要な部分を実行し、常に多くのプロセスが同時に実行されています。一方、更新を適用するために、かなり頻繁に (週に数回) アプリケーションを再デプロイする必要があります。バッチはシステム クラッシュに耐える必要がありますが、実行中のバッチはアプリケーションの (再) 展開に耐えられますか? さまざまなリソースを調べましたが、一般的にバッチに関する多くの情報がありますが、その特定の答えは見つかりませんでした。どうもありがとう。
java - jberet、1 つの wildfly インスタンス、複数のデータソース: 複数のジョブ リポジトリを使用できますか?
現在、それぞれの wildfly 9.0 インスタンスで実行されている一連のサービスがあります。それらのいくつかには、jberet 1.2.0 を使用して実装されたバッチ ジョブがあります。
各 wildfly インスタンスには、サービス用の 1 つのデータソース (jdbc、oracle) と、定義された jberet 用の 1 つのジョブ リポジトリがあります。現在、jberet テーブルは、このワイルドフライ インスタンスの単一のデータ ソースのデータベースに配置されています。
現在、すべてのバッチ ジョブを別のワイルドフライ インスタンスに移動して、バッチによって生成された負荷を他のワイルドフライ インスタンスから切り離しています。
これで、x 個のデータソース (サービスごとに 1 つ) を持つ 1 つの standalone.xml ができました。
job-repository/-ies を定義するベスト プラクティスは何ですか?
- jberet のみを含むデータソース (新しい DB) を指す 1 つの別個のジョブリポジトリ
- そのサービスのデータソースを指すサービスごとに1つのジョブリポジトリ(それは可能ですか?どうやって? https://github.com/fcorneli/jberet-eap6/blob/master/eap6-batch/src/main/ resources/schema/wildfly-batch_1_0.xsd可能ではないと思います/意図していません。)
- jberet データをいずれかのサービスの既存の DB の 1 つに入れます (どちらを選択するか? 負荷、サイズ?)