- PR -

Strutsでスレッドの呼び出した後のJSPでの監視について

投稿者投稿内容
カイ
会議室デビュー日: 2005/08/15
投稿数: 6
投稿日時: 2005-08-24 02:38
Struts1.2.7を使用しています。

JSP1 ------> JSP2
    |
  スレッド開始

上記のように、JSP1からJSP2に遷移するアクションでスレッドを開始し、JSP2で待機して、
スレッドが終了したかどうかを確認し、終了していた場合に別のアクションを発生させたいのですが、JSP2でスレッドの終了状態を確認するのにどのような方法があるでしょうか?

スレッドのクラスが終了した場合に、スレッドクラスが終了フラグみたいなものをセッションに設定して、
JSP2は一定間隔でリフレッシュし、そのセッションの終了フラグで判断しようとしましたが、
JSP2は経過時間をカウントする画面なので、Refresh等をした場合にカウントが0に戻ってしまう為に行き詰まっております。


すみませんが、よろしくご教授お願い致します。
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-08-24 02:46
コードがないので詳しくはわからないですが。。
引用:

JSP2は一定間隔でリフレッシュし、そのセッションの終了フラグで判断しようとしましたが、
JSP2は経過時間をカウントする画面なので、Refresh等をした場合にカウントが0に戻ってしまう為に行き詰まっております。


カウントするための変数をリクエストごとに初期化してるからではないのですか?
最初のリクエストで生成された後は同じインスタンスを参照するようにすれば解決すると思います。
もちろん、同期を考慮した実装にする必要はあります。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-08-24 10:05
こんなの参考になるでしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7110&forum=12
カイ
会議室デビュー日: 2005/08/15
投稿数: 6
投稿日時: 2005-08-25 03:12
mogeさん、お返事ありがとうございます。

>カウントするための変数をリクエストごとに初期化してるからではないのですか?
>最初のリクエストで生成された後は同じインスタンスを参照するようにすれば解決すると思います。
>もちろん、同期を考慮した実装にする必要はあります。

おっしゃるとうりで、経過時間の表示はJavaScriptで行っており、リロード時に初期化されてしまいます。
経過時間の表示は、スレッドを呼び出すActionクラスで経過時間をリクエストで返して、
その値を表示する方法を試してみます。

----
インギさん、お返事ありがとうございます。

>こんなの参考になるでしょうか。
>http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7110&forum=12

ありがとうございます、まだ全部読めていませんが参考にさせてもらいます。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-08-25 10:02
J2EEの規約でアプリケーションは独自でスレッドを作成してはならないことになっています。そもそもあまりお勧めしません。
いまどきのアプリサーバは大体メッセージキューを内蔵しているので、JMSかMDBを利用されてはいかがでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-08-25 12:48
引用:

Anthyhimeさんの書き込み (2005-08-25 10:02) より:
J2EEの規約でアプリケーションは独自でスレッドを作成してはならないことになっています。


別に禁止されてはいません。ただし、使用するには注意が必要なので、きちんと理解した上で
独自スレッドを使う必要があります。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-08-25 13:28
私も「使うなら注意して使え」という認識
ではいるのですが。

でもAPサーバの中には余計なお世話すぎな
ものもいて、servlet中からスレッド生成
してるのをデプロイ時にチェックしてエラ
ー吐くようなものがありました。。

その製品も新バージョンが出たててバグが
いっぱいの時に検証してもらっただけなの
で、今はどうなってるかわかりませんが。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-08-25 22:13
スレッド禁止しているのはEJBだけだったみたいですね。
勘違いしていました。

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