- PR -

Servletでバッチ処理のような時間のかかる処理について

投稿者投稿内容
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-15 12:45
引用:

WebLogic なんかだと、特定のスレッドが指定した時間以上同じ処理に占有されていると警告ログが出力されます。JBoss にもありませんかね・・・?


なるほど。そういう機能があるのですね。
元ベンダなのでかもしれませんが(^^、どうやって監視するか?というのをつい
考えてしまいます。WebLogicのログに出るのなら、それをポーリングすればツール
でも監視出来ますね。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-12-15 13:16
みなさん、レスありがとうございます。

EJBは使える環境ではありません。。。(>_<)
また、APはTomcatのため、AP依存のテクノロジは採用できないのです。(汗)

別のプログラムをキックしてCSVを処理してみることにいたします。
まだ実装してないのですが、プログラムの処理終了を待つ必要ってないんですよね。。。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-12-15 14:13
>私もせっかく JBoss を使っているのなら MDB を使ってみては?と思います。
すいません。JBoss 使ってるなんて話はなかったですね。
別プロセスをキックするのでもいいですし、あとは Jakarta の製品で ThreadPool なんてのあります。シンプルに非同期処理を実現するライブラリです。
http://jakarta.apache.org/commons/sandbox/threadpool/
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2003-12-15 23:49
> 別のプログラムをキックしてCSVを処理してみることにいたします。

この場合、
1.多数の実行リクエストを受けたときに、通常のサービスができなくなる危険性の回避
2.バッチ処理が途中で止まった場合のリカバリ
3.2でリカバリした場合の一貫性
といった要求が無いか気をつける必要があります。

このような要求がある場合は、
・チャネルを作成して、バッチ処理の登録と実行とを分離する
・チャネルからの取り出し、処理(の一部)と、実行済み部分の削除(or 記憶)を1つのトランザクションで実行するようにする

と言った作りこみをするかと思います。しかし、上記≒MDBです。
上記のような要求があれば、JBossを使うのが良いでしょう。無料で使えますし、内部のWebコンテナにtomcatが使えるので、移行自体はスムーズにできるでしょう。
EJBを使う場合は、それなりの知識も必要になりますが、自前で実装検討するよりは良いでしょう。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-12-16 14:45
インギさん、t-wataさん
レスありがとうございます。

JBoss使えないのですよ〜。。。つらいところです。

Jakarta Commons ThreadPool にかなりの魅力を感じました。

やっぱ、Jakartaなしには生きていけない。。。

スキルアップ/キャリアアップ(JOB@IT)