2010-12-06 5 views
1

ソフトウェアの展開に関して問題があります。 JBoss 4.2.3を使用しています。サーバーを再起動しないJBossの展開

私が今やっている典型的な手動の展開プロセスを説明させてください:

  1. サーバーへのEAR、WARやJARファイルをコピーします。
  2. サーバーを停止します。
  3. 展開フォルダにEAR、WAR、およびJARをコピーします。
  4. データベース更新スクリプトを実行します。
  5. サーバーを起動します。

私はサーバーの再起動を避ける方法を探していました。それは多くの問題と多くの不便を引き起こしたからです。たとえば、サーバーのダウンタイムをスケジュールするには、大きなリストに電子メールを送信する必要がありました。

もう1つの問題は、SOAPを介して互いに通信する2台のサーバーがあることです.1台のサーバーがダウンすると、データ同期の問題が発生する可能性があります。

ホットデプロイメントは本当にうまくいきませんでした。時には、クラスローダーの例外があり、キャッシュの問題が発生することもあります。

私はクラスタリングを検討していましたが、それがうまくいくかどうかはかなり確信がありませんでした。

誰も同じような経験をしていますか?どんな解決策や提案ですか?

事前に感謝します。

P.S.私はstackoverflowの代わりにこれをserverfaultに投稿する必要がありますか? (私が開発者であるために私はここに好きです:)

+0

私はJBossがホットデプロイメントを行うことができると思いました。 –

+0

@jpartogi:これは可能ですが、クラスローダーのリークが原因でプロダクション設定にはあまり適していません。 – skaffman

答えて

3

ホットデプロイメントがうまく行かず、再起動はオプションではない場合は、私が提案できる唯一のことはフェールオーバーでクラスタリングすることです - 1つではなく、SOAPリクエストがそれらの両方で負荷分散されています。アップグレードを実行する必要がある場合は、1台のサーバーをシャットダウンしてアップグレードし、起動し、2台目のサーバーをシャットダウンし、アップグレードしてからバックアップを開始します。

これを正しく行うと(それは難しいが、できる)、休憩時間はありません。ローリングアップグレード中にサーバが共存できるようにして、データベースのアップグレードが下位互換性があることを確認する必要がありますが、それはすべて達成できます。

+1

はい、扱いにくいです。そして、デプロイメントの30%が発生するデータベースの互換性の問題(たとえば、列の変更など)によって、ORMが他のノードで失敗する可能性があります...うーん...私はそれについて考える必要があります...ありがとう応答。 – yiqing

+0

これは既にJBossとスティッキーセッションでTomcatで使用されていました(うまく動作します)。唯一の問題は、JBossドメインの機能(セッション・フェイルオーバーとリアル・ロード・ベースのバランシング(ラウンドロビンではない)とHornetQクラスターの機能)が欠けていることです。たぶん私はこの問題について自分自身で質問しなければなりません...(JBoss 7.1.1) – gkephorus

関連する問題