- ベストアンサー
javaサーブレットから別サーバのバッチ起動
お世話になります。 現在、javaサーブレットからDBサーバにあるバッチを起動するプログラムを作成しております。 HPなどで色々調査したのですが実現方法が、よくわからず困っております。 参考となるHPやコーディング例がありましたら教えて頂けないでしょうか。 javaサーブレットの環境は、 centOS 5.5、jdk 1.6、tomcat 5.5となります。 お手数お掛け致しますが、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
若干邪道ですが、お手軽な方法として ssh でキックしてしまう方法もあります。 参照URLのように正規に java で実行する方が柔軟な呼び出しができますが、 java.lang.Runtime.exec() で直接 ssh を呼び出してもいいかもしれません。 # この場合は pure java ではなくなるので、メンテナンス性を考えると邪道です。 Webからバッチをキックする場合は、2度押しなど複数キックされることもあるので、実際のバッチ担当者とうまく詰めて実装しないといけないですね。
その他の回答 (1)
- askaaska
- ベストアンサー率35% (1455/4149)
DBサーバもcentOS? 方法はいくつもあるわ。 その1) DBサーバにもTomcatを立ててバッチを起動するサーブレットを作成し APサーバからHttpConnectionでリクエストを投げる その2) ネットワーク越しに起動 (マウント) その3) DBサーバに常駐アプリを作成し、DBを監視。 APサーバからDBに起動するバッチとパラメータを書き込んで それを見つけたら起動。 その4) DBサーバにメールサーバを立ててそれの受信で起動 こんな具合にいろいろ考えられるわ。 でも大事なのは進行状態の確認とエラーが起きたときの通知方法よ。 そっちは大丈夫かしら。
お礼
早速のご回答誠にありがとうございます。 DBサーバのバッチは、別担当(会社)となり実行結果は、リターンコードなどを返して頂く事を考えております。 私が担当するサーブレットでは、処理結果をパラメータにしてバッチを起動するだけとなります。 上記の様な場合は、教えて頂いたその2の「ネットワーク越しに起動」の方法で対応したいと思います。
補足
情報が、不足しておりすみません。 DBサーバは、Red Hat EnterPrise Linux ES release4となります。
お礼
ご回答ありがとうございます。 No.1の方の仰る通り実現方法は、たくさんあるのですね。 正規のjavaでの実行する方が、柔軟なようなので教えて頂いたURL参考にさせて頂きます。