Tomcatの起動。Java Runtime Environmentで致命的なエラーが検出されました(JVMのクラッシュ解析と関連情報)。
2013年1月10日の注意事項
本日、コードを更新した後、突然問題が発生しました。Tomcatの起動時に、必ずjvm fatal errorが発生して、tomcatが正常に起動せず、以下のエラーメッセージが表示されます。
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (c1_Optimizer.cpp:271), pid=6048, tid=5404
# guarantee(x_compare_res ! = Constant::not_comparable) failed: incomparable constants in IfOp
#
# JRE version: 6.0_29-b11
# Java VM: Java HotSpot(TM) Client VM (20.4-b02 mixed mode windows-x86 )
2013-01-10 13:47:34,671 INFO hibernate.cfg.AnnotationBinder:419 -> Binding entity from annotated class: com.estone.www.spis.model.po.zd. sys.DPossession
2013-01-10 13:47:34,671 INFO cfg.annotations.EntityBinder:422 -> Bind entity com.estone.www.spis.model.po.zd.sys.DPossession on table d_ possession
2013-01-10 13:47:34,671 INFO hibernate.cfg.AnnotationBinder:419 -> Binding entity from annotated class: com.estone.www.spis.model.po.zd. writ.DWritTemplate
2013-01-10 13:47:34,671 INFO cfg.annotations.EntityBinder:422 -> Bind entity com.estone.www.spis.model.po.zd.writ.DWritTemplate on table d_writ_template
2013-01-10 13:47:34,671 INFO hibernate.cfg.AnnotationBinder:419 -> Binding entity from annotated class: com.estone.www.spis.model.po.zd. writ.DWritType
2013-01-10 13:47:34,671 INFO cfg.annotations.EntityBinder:422 -> Bind entity com.estone.www.spis.model.po.zd.writ.DWritType on table d_ writ_type
# An error report file with more information is saved as:
# D:\Program Files\apache-tomcat-6.0.20\bin\hs_err_pid6048.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
長い間ネットで検索して、ようやく似たようなエラーを見つけたのですが、ネット上の説明はこう煮詰まっていました。JITがコンパイル最適化を行う際に処理に誤りがあり、それがJVMのコンパイラのバグを誘発した可能性がある。幸い、SUN(Oracle)が関連ドキュメントを提供してくれたので、問題を解決することができました。
ドキュメントは以下の場所にあります。
システムクラッシュのトラブルシューティング - HotSpot VM搭載Java SE 6用トラブルシューティングガイド
ここで、このエラーを引き起こしているのは、このメソッドです。
org.hibernate.cfg.annotations.SimpleValueBinder.setType
回避策 jvmがメソッドのコンパイル最適化をスキップするようにする。
1. eclipseでサービスを起動する場合、myeclipse-preference-java-installed jresに設定し、defalt vmの引数を以下のコードで埋めれば完了です。図にあるように
コード
-XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType
使用するJREを選択し、editeditをクリックします。
上記のコードをここに貼り付けると、OK
2. 2. スタートアップから直接 tomcat を起動する場合は、以下のファイルを変更する必要があります。 Windows では /bin/catalina.bat を、Unix では /bin/catalina.sh を変更してください。
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
これを次のように変更するだけです。
set JAVA_OPTS=%JAVA_OPTS% -XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType %LOGGING_CONFIG%
に示すように。
参考:下記リンク先に感謝
http://seanhe.iteye.com/blog/905997
http://eric-flower.iteye.com/blog/1447080
http://sind.iteye.com/blog/1132459
i ライフのブログ 人生に思うこと_私と1988年_CSDNブログ
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例