web-dev-qa-db-ja.com

JBoss 4.2.xからJBoss 5.x、6.x、7.xおよびWildFly 8.xへのアップグレードの利点(およびヒント)?

開発の時間とコストについて心配する必要がないと想定してください:一般的な技術的利点(パフォーマンスの向上?APIの向上?)と新機能に興味があります。

私は現在4.2.xを使用する製品に取り組んでおり、私たちは、かなり先のバージョンであり、収束する必要があるバージョンの大きなシフトを検討しています。

各バージョンのリリースノートと、5.x、6.x、7.x、8.xの各リリースに関するいくつかの記事をざっと見ました。しかし、私は切り替えを行った人々から直接フィードバックをいただければ幸いです。

メッセージング(JBoss MQからJBoss Messengingへの切り替え)を取り巻くいくつかの重要な変更があることに気づきました。JBoss7.xの場合、設定レイヤーがかなり変更されているようです。次に、JBoss/WildFly 8.xに切り替えると、さらに多くのことが行われます。

できれば落とし穴を指摘する良い記事を推薦してください。 JBoss 5.xへの移行でいくつかは見つかりましたが、6.xでも7.xでもそれほど多くはありませんでした。他の誰かが8.xを評価してくれました。 JBossのみに焦点を当てることをお勧めしますが、関連があると思われる場合は、代替案もお気軽に推奨してください。

詳細については、JPFとOSGi対応(Eclipse Equinoxを使用)プラグインベースのシステムを組み合わせて使用​​し、クライアントはSwingで開発されています(一部はWebStart経由でデプロイされています)。

pdate:この質問はすでにいくつかの素晴らしい答えをもたらしましたが、WildFlyの更新に値すると思います(そして、実際、私たちの内部プロジェクトは、当初予定していた4.2.xから7.xへの切り替えを遅らせましたWildFlyの場合)。新しい考えと答えを歓迎します。

31
haylem

JBoss 4から5にアップグレードしました。経験から、次の点に注意することが最も重要です。

  • JBoss 5(および6と7)は、XMLファイルを使用するJBoss 4ほど寛容ではありません。すべてのデプロイメント記述子XMLファイルが有効であることを確認する必要があります。一部のファイルでDTDを使用している可能性があります-XMLスキーマを使用するようにこれらをアップグレードすることをお勧めします。
  • 一部のライブラリは非互換性を引き起こす可能性があります。これは、Webサービスにアクセスしたり、XML解析を行ったりする場合に特に当てはまります。
  • JBoss 4でJSPをプリコンパイルすると、JBoss 6/7ではそれができないでしょう。
  • JBoss 4および5は異なるメッセージキュー実装を使用します。メッセージキューまたはトピックが定義されている場合は、それらを再定義する必要があります。
  • JBoss TreeCacheは使用されなくなりました。これをキャッシュ目的で使用する場合は、代わりに新しいJBossキャッシュを使用するように変更する必要があります。
  • JBoss 5のセキュリティは異なります。リモートクライアントがJBossへの安全なアクセスを必要とする場合、それらを別の方法で設定する必要があります。

役立つリソースは次のとおりです。

http://Java.dzone.com/articles/migrating-jboss-4-jboss-5http://venugopaal.wordpress.com/2009/02/02/jboss405- to-jboss-5ga

正式には、JBoss 6はJava EE Webプロファイル)に対してのみ認定されているため、EJB 2.xなどの「レガシー」機能を使用する場合、将来的にはサポートされなくなる可能性があります。 JBoss 6は現在EJB2.1を完全にサポートしていますが、これは保証されていません。

また、JBoss 5は、JBoss 4よりもメモリの処理がはるかに優れていることもわかりました。JBoss4では、JBoss 5の場合よりも多くのPermGenエラーが発生します。

24
Dave

JBoss 5.1.0の実稼働経験とバージョン6の調査からのみ話すことができます

JBoss 5は Java EE 5 であり、JBoss 6および7は Java EE 6 です。 API機能の相違点は、これらの仕様に文書化されています。 JBoss 6の保存期間は非常に短い可能性があります。それは Java EE 6 Webプロファイル でのみ認定されており、バグ修正はバージョン7(執筆時の第3ベータ版)を対象としています)。

JBossコミュニティフォーラムでより良い答えが得られると思います。

9
McDowell

JBoss AS 5からJBoss AS 7にアップグレードし、WildFly AS 8.1を目指しています。 MQシリーズJMS 2 RARがないため、現在8に移行できません。

いくつかの違い:

  • 設定は非常に良く、簡単です。 XMLファイルのアスペクトを構成する20以上のXMLファイルに分散することはもうありません。代わりに、すべてが1つの中心的な場所です。すべてのポートが1か所で構成され、server.xmlを変換するXSLファイルはなくなりました。クラスの実装の詳細を知らなくても、構成ファイルを理解できます。 JBoss 5.xを設定したことがない場合、これを理解するのは困難です。
  • クラスローディングモデルは正常に見え、jboss-deployment-structure.xmlを介して多くの制御を取得します
  • 集中ログ(Slf4j、JUL、JCL、Log4j、…)は本当に素晴らしいです。
  • EJBクライアントライブラリは、はるかにクリーンアップされています。 20から10までのJARになり、そのうちの半分はOSGiバンドルです(クライアントはEclipse RCPアプリケーションです)。
  • EJBクライアントのmaven依存関係の混乱はなくなり、代わりにBOM POMを取得します。
  • サーバーAPIのBOM POMを取得します。
  • 起動が速く、メモリ使用量が少なくなります。 80のEJBとMQシリーズRARを6秒でデプロイしました。ライブデータセットは200 MBを超えています。
  • デフォルトでは、デプロイメントフォルダーは空です
  • XNIOの品質の(不足)は恐ろしいです。 7.xではEJBリモーティングにのみ使用され、いくつかのショーストッパーバグ(デッドロック、ダブルフリー、ソケットハンドルリークなど)に遭遇しました。 8.xでは、Tomcatの代わりにサーブレットにも使用されます。 Undertowで修正される非常に基本的なサーブレットのバグがまだたくさんあります。

アプリケーションに必要な変更:

  • jNDI名をEE 6標準名に変更
  • jBoss CacheからInfinispanに移行します(コードの一部はフラットAPIに移行されましたが、一部はまだツリーAPIを使用しています)
  • セキュリティの柔軟性がやや低くなります(認証された呼び出しと認証されていない呼び出しを修正できなくなります)
  • リモートJNDIの詳細に依存する恐ろしいコード
  • eJBクライアントの構成が異なります
  • インストール、デプロイ、開始、停止などのすべてのスクリプト
  • ExternalContextがなくなったので、別のアプローチに置き換える必要がありました
  • sARのMBeanを@StartUp EJBに置き換えました
  • cocoonの醜いハック

AS 7.xシリーズにはlotのバグがあり、修正はEAPシリーズでのみ利用可能です。 8.xではなく7.xを使用する場合は、EAP 6を購入することを強くお勧めします。

5

以下は、JBoss AS 7の妥協案と将来に関する興味深いスレッドで、AS 5とAS 6の問題についても触れています。

http://community.jboss.org/message/613171

0
Vadzim

最新にアップグレードした後、PermGenの膨らみの問題に直面している可能性のある人に注意を向けさせたかっただけです。 JBoss-6 Microcontainerは、起動時にクラスパス内のすべてのJARからクラスをロードすることにより、Jboss固有のアノテーションをスキャンしようとします。これにより、PermGenが不要なクラスの読み込みを開始するときに、PermGenが肥大化します。スキャンの量を減らすために、Microcontainerはjboss-scanning.xmlを使用して別の記述子フックを提供します。この「jboss-scanning.xml」をWAR内のWEB-INFに追加し、「jboss-scanning.xml」をEAR内のMETA-INFに追加します。

<scanning xmlns="urn:jboss:scanning:1.0">

    <!-- Purpose: Disable scanning for annotations in contained deployment. -->

</scanning>
0
karthik m