- PR -

Axis2にてプロセス毎(HttpServletのインスタンス毎)に変数を共有

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/04/01
投稿数: 10
投稿日時: 2007-07-10 10:40
Tomcat5.5上のAxis2にてプロセス毎(HttpServletのインスタンス毎)に変数を共有したいのですがどのようにしたらよいのでしょうか?
AxisServletを拡張して変数をもたせてもAxis2サービス内からだとAxisServletが取得できないのです。
なにとぞご教授お願いいたします。

_________________


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-07-10 11:08 ]
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-10 11:57
スレッドローカルあたりがお手軽でいいのではないでしょうか。
あとは調べてね。
未記入
会議室デビュー日: 2004/04/01
投稿数: 10
投稿日時: 2007-07-10 14:38
すいません。自分でしらべたんですがとうしてもよい発想がでてきません。
スレッドローカルということはスレッド毎に変数を持たせるというこてでしょうか?
スレッド単位ではなくスレッドを起動している親であるプロセス単位に変数を保持したのです。説明が不足していてすません。
たとえば、あるAプロセスがスレッドAA1、AA2を立ち上げるとAA1、AA2内で共通的に
利用できるよう変数を保持したいのです。
もし、ご教授していただけるのでしたらよろしくお願いします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-07-10 14:51
プロセスってどういう意味で使っています?
Linuxにおけるプロセスを指しているのでしょうか?
その場合はJavaでは同一VM上は同一プロセスという扱いですか?
当初の発言どおりHttpServletのインスタンス毎というなら意味は分かるのですが。

Filterを利用してThreadとServletのインスタンスを管理するなど、
方法論はいくつかあるとは思います。
私の手元ではAxisの1系しかないもので、2系固有の方法論となると
詳しいことは何もいえませんが。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-10 15:43
HttpServletのインスタンス毎ということで、スレッドごとにというように
考えたのでスレッドローカルだったんですが、JVMごと(クラスローダ)に
変数を持って、各スレッド内から使用したいということですね。
でしたら、GOFデザインパターンのSingletonパターンと、ConcurrentHashMap
あたりを組み合わせてみてはいかがでしょうか。スレッド間で同一リソース
を参照するので、同期処理も意識する必要がありますね。

れいのごとく、あとは調べてね。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-07-10 16:20
Servlet間でデータ共有するならServletContextというものがあります。
1

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