- - PR -
Strutsでスレッドの呼び出した後のJSPでの監視について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-24 02:38
Struts1.2.7を使用しています。
JSP1 ------> JSP2 | スレッド開始 上記のように、JSP1からJSP2に遷移するアクションでスレッドを開始し、JSP2で待機して、 スレッドが終了したかどうかを確認し、終了していた場合に別のアクションを発生させたいのですが、JSP2でスレッドの終了状態を確認するのにどのような方法があるでしょうか? スレッドのクラスが終了した場合に、スレッドクラスが終了フラグみたいなものをセッションに設定して、 JSP2は一定間隔でリフレッシュし、そのセッションの終了フラグで判断しようとしましたが、 JSP2は経過時間をカウントする画面なので、Refresh等をした場合にカウントが0に戻ってしまう為に行き詰まっております。 すみませんが、よろしくご教授お願い致します。 | ||||
|
投稿日時: 2005-08-24 02:46
コードがないので詳しくはわからないですが。。
カウントするための変数をリクエストごとに初期化してるからではないのですか? 最初のリクエストで生成された後は同じインスタンスを参照するようにすれば解決すると思います。 もちろん、同期を考慮した実装にする必要はあります。 | ||||
|
投稿日時: 2005-08-24 10:05
こんなの参考になるでしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7110&forum=12 | ||||
|
投稿日時: 2005-08-25 03:12
mogeさん、お返事ありがとうございます。
>カウントするための変数をリクエストごとに初期化してるからではないのですか? >最初のリクエストで生成された後は同じインスタンスを参照するようにすれば解決すると思います。 >もちろん、同期を考慮した実装にする必要はあります。 おっしゃるとうりで、経過時間の表示はJavaScriptで行っており、リロード時に初期化されてしまいます。 経過時間の表示は、スレッドを呼び出すActionクラスで経過時間をリクエストで返して、 その値を表示する方法を試してみます。 ---- インギさん、お返事ありがとうございます。 >こんなの参考になるでしょうか。 >http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7110&forum=12 ありがとうございます、まだ全部読めていませんが参考にさせてもらいます。 | ||||
|
投稿日時: 2005-08-25 10:02
J2EEの規約でアプリケーションは独自でスレッドを作成してはならないことになっています。そもそもあまりお勧めしません。
いまどきのアプリサーバは大体メッセージキューを内蔵しているので、JMSかMDBを利用されてはいかがでしょうか? | ||||
|
投稿日時: 2005-08-25 12:48
別に禁止されてはいません。ただし、使用するには注意が必要なので、きちんと理解した上で 独自スレッドを使う必要があります。 | ||||
|
投稿日時: 2005-08-25 13:28
私も「使うなら注意して使え」という認識
ではいるのですが。 でもAPサーバの中には余計なお世話すぎな ものもいて、servlet中からスレッド生成 してるのをデプロイ時にチェックしてエラ ー吐くようなものがありました。。 その製品も新バージョンが出たててバグが いっぱいの時に検証してもらっただけなの で、今はどうなってるかわかりませんが。 | ||||
|
投稿日時: 2005-08-25 22:13
スレッド禁止しているのはEJBだけだったみたいですね。
勘違いしていました。 |