- PR -

Javaアプレットを起動しようとするとIEが落ちる。

1
投稿者投稿内容
ゴングラッチェ
常連さん
会議室デビュー日: 2006/03/03
投稿数: 36
投稿日時: 2006-12-05 18:52
Javaアプレットを起動しようとすると、IEのプロセスが落ちる現象が発生し
調査をしています。原因の核心、明確な理由に基づく解決方法を得られずに
苦心しております。

1.現象
 IEでJavaアプレットを起動しようとします。Javaアプレットが起動される直前
 でIEの全てのウィンドウが一斉に閉じられ、IEのプロセスが落ちます。落ちる
 時にIEは何も情報を提供してきません。何の情報もなく、スイッチが切れるか
 のように落ちます。
 Javaアプレットの起動まで到達せず、JavaVMの起動の段階で落ちています。
 SunのJava仮想マシンのテストサイトにアクセスしても、IEが落ちます。

2.背景
 JavaVMには、Javaアプレットのレスポンスや動作要件を満たすためオプション
 を設定しています。
 Windowsのコントロールパネルにある、Java Plug-inのコントロールパネルにて
 Java実行時のパラメータに「-Xms128m -Xmx256m」というヒープメモリの設定を
 しています。
 このJava実行時のパラメータの設定値を小さくすれば、IEを落とさずにアプレ
 ットを起動できるようになることまでわかりました。また、設定をはずしても
 同様に起動できるようになりました。

 ※同様のスペックのPCでも現象が発生するPCと発生しないPCがあります。
 ※潤沢なメモリ(2GBなど)を搭載するPCでも発生するPCがあります。

3.相談
 設定されたヒープメモリサイズに対し、利用可能なメモリが足らずJavaVM起
 動とともにメモリ不足でIEごと落ちたのであろうと考えています。
 しかし、そこから先を調べることができません。また、上記の推測の正否を
 確認する情報が得られません。事例を探しましたが、見つかりませんでした。

 有識者の方々に情報をいただければと思い、投稿をさせていただいた次第です。

 以下のような説明をするために助けとなる資料、サイトをご存知ないでしょうか。
 「IEが落ちてしまったのは○○だったからです。
  IEが落ちないようにするにはJavaの設定を△△とします。」

 ※上記は回答を募集しているようにとれると思いますが、そういう意図はあり
  ません。こんな説明はそもそも無理かもしれないとも思っています。

 なお、システム情報やタスクマネージャにて確認できる利用可能物理メモリの
 サイズは、ヒープメモリサイズ設定に直接関係していないようです。
 (これがとても困る・・・拠り所がない・・・でもヒープサイズ小さくすると動く・・・)

 メモリ不足で落ちた、というのは以下が発生したことだろうという想定です。
 (意図的に起こしてます。)
 
コード:
C:\\\\>java -Xms1024m -Xmx1024 HelloWorld
Error occurred during initialization of VM
Incompatible initial and maximum heap sizes specified


 この情報がIEが落ちたときの情報として得られる手段があれば、裏付けになる
 と思うのですが、探しても見つかりません。IEにログがあると聞いたことも
 ありませんがお心当たりがありましたらお教えください。

4.環境他情報
 【環境】
 OS :Windows XP Professional ServicePack 2
 Mem :512MB
 Java:java version "1.4.2_02"
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)
  Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
 IE :6.0.2900.2180.xpsp_xp2.gdr.050301-1519
 ※SP2を当ててから現象が発生、SP2そのものが原因ではないことは確認済み
  SP2による消費メモリの増加が今回の現象の引き金と推測。

 SunのJava仮想マシンのテストサイト
 http://java.com/ja/download/help/testvm.xml

 お使いのPCでも現象を再現することができます。Java Plug-inの実行時パラメータ
 に、大きなヒープメモリを確保するよう設定、ブラウザ再起動後に、テストサイト
 へアクセスします。例えば、512MBのPCの場合「-Xms1024m -Xmx1024m」としてテス
 トサイトにアクセスします。
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2006-12-05 20:17
hs_err_pidというファイルがデスクトップにありませんか?
ゴングラッチェ
常連さん
会議室デビュー日: 2006/03/03
投稿数: 36
投稿日時: 2006-12-05 21:41
引用:
ひらさんの書き込み 2006-12-05 20:17 より
hs_err_pidというファイルがデスクトップにありませんか?



情報提供ありがとうございます。
hs_err_pidファイルはデスクトップにはありませんでした。
現在検索をかけています。

いただいた情報から、BEA社の資料を見つけることができました。
WebLogicサーバに同梱されているSun社製JavaVMの前提で
hs_err_pidファイルの解説の他、メモリ使用量についての情報が
記載されていました。
Java Plug-in、IEとのリンクはしない情報ですが、有用な情報を
入手できたと思います。
hs_err_pidファイルの捜索、上記情報をもとにJava Plug-inにお
ける設定との関係、JavaVMが起動できないだけでなくIEもろとも
落ちてしまう点についても情報を捜索してみる考えです。

Java Plug-inにより起動されたJavaVMは、タスクスケジューラの
プロセス情報から見ると、IEのプロセスとメモリ空間を共有して
いるように思っています。この点がIEが落ちることに関係してい
るように思えてなりません。

引き続き、お心あたりがありましたら情報提供いただければ幸い
です。

2006/12/05 21:43
hs_err_pidファイルの捜索について、結果見つかりませんでした。
隠しファイル等にも存在しませんでした。JavaVMはOSからのシグ
ナルを受けることなくダウンしたようです。ライブラリ関数など
OS他の要因によるダウンの可能性はかなり低く、ほぼ無いであろ
うという認識をしています。
純粋にJVMが起動する際にメモリ量が足りなかったことが原因であ
る可能性は高まりましたが、試行錯誤をしていておかしなことが
あることもわかりました。初書き込みで記載したJavaコマンドを
実行するとエラー発生するもの。それをもう一回やってみたので
す。同じPCで。こんどは動いてしまいました。
コード:
C:\>java -Xms1024m -Xmx1024m HelloWorld

Hello World.


物理メモリは512MBしか積んでいません。ページファイルを使って
起動する時と、起動しない時があるようです。気まぐれでしょうか。
試しにWindowsでの限界値である2GBを設定してみました。そうした
ところ・・・
コード:
C:\>java -Xms2048m -Xmx2048m HelloWorld

Error occurred during initialization of VM
Could not reserve enough space for object heap


となりました。現象の発生するPCでこれが出力されていることが
確認できればどれほどの希望の光になるものか・・・
JavaVMとの格闘を続けます。



[ メッセージ編集済み 編集者: ゴングラッチェ 編集日時 2006-12-05 21:59 ]
会議室デビュー日: 2004/08/20
投稿数: 16
投稿日時: 2006-12-05 22:03
コントロールパネルの管理ツールより、イベントビューアを開き、アプリケーションのログと、システムのログを見てください。
メモリが足りない場合はシステムのログに、IEのクラッシュならアプリケーションのログに書き込まれていると思われます。

IEのクラッシュならば、WindowsUpdateでWindowsのQFEのあたり具合を最新にすると、直る場合がございます。

また、管理ツールのパフォーマンスモニタで、IEのプロセスを監視するのも、解決に近づく一手であると思います。

さらには、SunJavaよりjre-1.4代のリリースノートと、jre-1.5代のリリースノートをみて、クラッシュを起こすようなバグが出てないか確認することも必要です。
ゴングラッチェ
常連さん
会議室デビュー日: 2006/03/03
投稿数: 36
投稿日時: 2006-12-05 22:17
情報提供ありがとうございます。

引用:
をさんの書き込み 2006-12-05 22:03 より
コントロールパネルの管理ツールより、イベントビューアを開き、アプリケーションのログと、システムのログを見てください。


実は見ていました。今回のケースでは記録をされないようです。意図的に現象を発生させてイベントが記録されるかを見てみましたが記録はされませんでした。

QFEはこれから見てみます。SunJavaについては、ヒープ設定を両方(-Xms, -Xmx)設定しないと起動できないバグがあるという情報はつかんでいます。実際に試してみましたところ現象が発生することを確認できました。

パフォーマンスモニタを使ってIEのプロセス監視は行ってみます。Processについて監視しますが、監視項目が多いですね。ひとつづつ確認しながら進めます。
きっと、アプレット起動時に「ストン」とプロセスが落ちるところのみが見れるのだろうと推測しています。その直前の刹那に、使用メモリ量が振り切るような傾向が見れればと思っています。

引き続き、お心あたりがありましたら提供いただければ幸いです。
現在、会社から投稿をさせていただいてます。本日はこれで引き上げようと思います。
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2006-12-06 09:31
引用:

ゴングラッチェさんの書き込み (2006-12-05 18:52) より:
 Java:java version "1.4.2_02"


マイナーバージョンがちょっと古いような気がします。
さきほど確認したところ、1.4.2_13まで出ているようです。
1

スキルアップ/キャリアアップ(JOB@IT)