マイナーなJVMアップグレードを行うことはどの程度安全ですか?


10

私は何年にもわたってJVMに取り組んできましたが、JVMのクラッシュを経験したことはほとんどありません...約6か月前までです。

それ以来、2つのJVM障害が原因で約5つのJVMクラッシュが発生しました。Oracleのソリューションは常に同じでした...アップグレード。

各アップグレードは常にポイントリリースとの間で行われます。つまり、Oracleの最新の提案(バグが修正されたことを確認した後)は、1.6u20から1.6u26にアップグレードすることでした。

JVMのマイナーバージョンをアップグレードする必要はありますか?

これは膨大な量の回帰テストを必要とする大きなイベントですか、それとも受け入れるべき安全なアップグレードですか?


3
問題のJVMはどのコンテキストで実行されますか?ゲームアプレットの再生に使用しますか、それとも病院の情報システムを実行しますか?正解はその情報に大きく依存します。
blubb

回答:


5

ないはずマイナーバージョンをアップグレードするための大きなイベントで、私は問題を経験したことがありません。

とはいえ、悪名高いJava 7の問題はやや恐ろしいものであり、メジャーバージョンのアップグレードであったとしても、これらの特定の問題は実際にはJava 6〜u20で発生し、u25で修正された可能性があります。それらは、Java 6がデフォルトで有効にしていないJava 6がデフォルトで有効にしているいくつかの最適化フラグがあるために浮上しました。Java 6でこれらのフラグを使用した場合、(おおよそ)6u19から6u20へのマイナーアップグレードにより、クラッシュだけでなく、ループの誤った実行、つまり計算が発生する可能性があります

実際のところ、アップグレードされたバージョンが動作することを保証する人はいません。JVM、その環境(コンピューター、OS)、およびアプリケーション、それらはすべて相互に相互作用します。膨大な量のものが全体としてうまく機能していることを合理的に確認するには、確かに膨大な量の回帰テストを行う必要があります。

JVMアップグレードへの私のアプローチは、他のアップグレードと似ています。アップグレードする特別な必要がない限り、それが重要なセキュリティアップグレードでない限り、しばらく待って、インターネットで他の人の体験を読みます。1か月ほどで誰も不満を言っていない場合は、アップグレードしても安全です。


特にインターネットで他の人の体験を読みたい場所はありますか?
ダコタノース、2011

@Dakotah North:特定の場所ではありません。多数のメーリングリスト(たとえば、Java 7がリリースされた日に重大な問題の警告が出されたannounce@apache.org)に掛かると、この種の情報がたくさん提供されます。
Joonas Pulakka、2011

4

エンタープライズJavaアプリケーションでの私の経験では、JVMのマイナーな更新を採用することの利点は、関連するリスクよりも重要です。

1つの利点は、マイナーアップデートにほとんど常にバグ修正が含まれていることです。これらの更新を適用すると、実際に運用環境の安定性を向上させることができます。根本原因の分析により、欠陥がすでに特定されており、JVMのマイナーアップデートで修正されているというJVMクラッシュが発生しました。

もう1つの利点は、マイナーアップデートにパフォーマンスの改善が含まれることが多いことです。ただし、@ Joonasが指摘しているように、重要なテストを行わずに、更新(メジャーまたはマイナー)で実証されていないまたは実験的なパフォーマンスフラグを使用することは危険です。

他の変更と同様に、責任を持って進めることが最も重要です。ここでは、JVMの更新を計画するときに従ういくつかのプラクティスを示します。

  • 現在のバージョンとターゲットバージョンの間のすべてのマイナーアップデートのすべてのリリースノートを注意深く確認してください。
  • アプリケーションの停止に対するユーザーの許容度を理解し、それに応じて回帰テストを行います。(@Simon)
  • インターネット(@Joonas)で他者の体験を調査する
  • 持っているロールバック計画を所定の位置に(@Thorbjorn)

2

Oracle Java 1.6 u20の周りに、「混合コード」の安全チェック警告が導入されました。これは、一部のユーザーのアプリケーションに影響を与え、アプリケーションをクラッシュさせました。これはマイナーなアップグレードであり、生産に深刻な影響を与えました。

常にロールバックの準備をしてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.