- PR -

Struts のファイルアップロードでフェイルオーバされない

1
投稿者投稿内容
たつ
会議室デビュー日: 2007/03/15
投稿数: 6
投稿日時: 2007-03-15 11:12
現在 Java + Struts + Jakarta POIを使用してシステム開発をしています。
更に2台のAPサーバで負荷分散、およびフェイルオーバされる仕組みとしています。

この中でファイルアップロード機能を使用しているのですが
テストにおいて、使用している2台のAP サーバの内、
ファイルアップロード処理中のサーバ側を切断すると、
ブラウザ上は真白となり、上手くフェイルオーバされません。
(再試行により稼動しているもう一方のサーバ側にフェイルオーバされます)

再試行を要せずにフェイルオーバするための方法について、
ご存知の方がいらっしゃいましたら、ご教示下さい。

尚、struts-config.xmlファイルのアクションクラスの定義の
スコープは、session から request のいずれの場合においても、
同じ現象となっております。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-15 12:40
APサーバは何をお使いでしょうか?
また負荷分散/フェールオーバはどうやって実現していますか?

例えば、WebLogic で Web サーバプラグインを使って負荷分散/フェールオーバを行っているのであれば FileCaching 機能を使うことが出来ます。。
http://edocs.beasys.co.jp/e-docs/wls/docs81/plugins/plugin_params.html#1157851

リクエストのサイズが大きい場合、Web サーバ側で POST リクエストをファイルに保存して、AP サーバが落ちた場合はフェールオーバして POST リクエストを再試行してくれます。
たつ
会議室デビュー日: 2007/03/15
投稿数: 6
投稿日時: 2007-03-15 13:21
ご連絡ありがとうございます。

構成は、下記のとおりです。
 HTTP/APサーバ2機
  tomcat5.0.28
  Apache 2.0.49
 ロードバランサ1機
  Big-IP

負荷分散/フェールオーバの実現方法
 java.io.Serializable で各オブジェクトをシリアライズ(直列化)可能にしています。
 自分で作成したクラスのインスタンスをセッションオブジェクトとして使う際には
 implements Serializable を付加しています。

 web.xmlの<web-app>ディレクティブ先頭行に<distributable/>を記載しています。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-15 13:32
Big-IP に、WebLogic のFileCaching みたいな POST リクエストを一旦保存する機能はあるでしょうか?
なければ大きな POST リクエスト最中に落ちた場合にフェールオーバすることはできないと思います。
Big-IP のサポート窓口に問いあわせてみてはいかがでしょう。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-03-15 13:39
ファイル送信の完全なフェイルオーバーなんてできるんですか?

ブラウザ側からF5等で再試行すれば動きそうな気はします。

落ちた場所にもよりますが、Webサーバが落ちたのならば、
ロードバランスしてようと、クライアントからはサーバに
強制的にTCPセッションを切られたのと同じになります。

Tomcatの場合は、mod_jkはワーカーがダウンした場合に
リクエストを別のワーカーに再送する設定もありますが、

ブラウザから送信された全てのデータをメモリなり、
一時ファイルなりに常に保存しなければならないので、
ファイル送信に対応するのは厳しそうな気がします。
たつ
会議室デビュー日: 2007/03/15
投稿数: 6
投稿日時: 2007-03-15 13:58
ご連絡ありがとうございます。

> ブラウザ側からF5等で再試行すれば動きそうな気はします。
ブラウザ側からの再試行で動作することは確認出来ております。

> Tomcatの場合は、mod_jkはワーカーがダウンした場合に
> リクエストを別のワーカーに再送する設定もありますが、
前述の設定を試行してみたいと考えます。
お手数ですが、ご教示いただけますでしょうか。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-15 14:50
>前述の設定を試行してみたいと考えます。
>お手数ですが、ご教示いただけますでしょうか。
mod_jk が WebLogic のプラグインのように、一旦ファイルに保存する仕組みが実装されていなければ Big-IP でフェールオーバするのとだいたい同じ事です。
やはりブラウザ側で再送信しないといけません。
1

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