私のJavaアプリケーションでjstackコマンドを実行しようとしています。アプリケーションはかなり大きく、jboss AS内で約4GBのメモリを占有しています。 OSはWindows Server 2003 Standard Editionです。 「このコマンドを処理するのに十分なストレージがない」というエラーが表示されるたびに十分なRAM、16GB、およびディスク容量があります。だから、どんなアイデアですか?Jstackと十分なストレージがこのコマンドを処理するために利用可能です
答えて
私はWin2008r2に最近、このに走った、それが把握してしばらく時間がかかったので、私は私の解決策を共有しようと思いました。 Rob's comment about psexec -sは私のために何をしたのですか?
Vista以降では、ユーザーコンテキストのためにjstackがサービスに対して動作しないようです。それは記憶とは関係ありません。これは、mstscで/ adminまたは/ consoleスイッチを使用しない限り、2003年にリモートデスクトップ経由でこの問題が発生したのと同じ理由と思われます。 Vistaの時点で、セキュリティの強化はおそらくそれを壊したものです。
cmdウィンドウから私のアプリを起動してもうまくいきましたが、標準インストールのデバッグには役立ちません。 Javaデバッグポート(VisualVM、Eclipse、またはほとんどのJavaデバッガ用)を有効にするには、アプリケーションを再起動する必要があります。デバッグを有効にしていない場合は、キャプチャしようとしている状態を失います。ユーザーの資格情報でサービスを開始できませんでした - 私は少し驚いていました。しかし、psexec -sはシステムのコンテキストからjstackを実行します。これは魅力的でした。ああ、UACがオンの場合、昇格したcmdプロンプトからpsexecを実行する必要があります。
適度なアプリケーション(1GB)のWindowsマシンでJStackを実行する際に問題が発生しました。 Netbeansを使用してスタックとヒープ解析を終了しました。これは、ダンプファイルの構文解析に非常によく似ていたようです。 YMMV。
Netbeansにプロファイリングを試してください。非常に良いです。 VisualVMはカットダウンのNBプロファイラであり、6u7が付属しています。 Windowsの2003上のJVMがWindowsサービスとして実行されているとき、私はこれを見ている過去に
まず、これはissue with the TMP directoryであるかどうかを確認します。
第2に、jstack(またはjconsoleなどの他のユーティリティ)は、同じセッションで実行されていない限り、ローカルプロセスに接続しません。サービスが特定のユーザーとして実行されている場合は、同じセッションにログインして接続することができます。リモートデスクトップを使用している場合は、 "mstsc/admin"(/ consoleであった)を使用して接続し、jstackを再度実行してみてください。 TMPディレクトリが正しく設定されていることを確認して問題が解決しない場合は、必ず確認してください。
サービスがLocalSystemとして実行されている場合、上記の手順はあまり役に立ちません。 LocalSystemと同じセッションにログインする方法があるかどうかはわかりません。
リモート監視用にプロセスを設定し、jvisualvm(サーバーまたは他のマシンから)を使用してポートに接続し、スレッド・ダンプを行うことがあります。
ローカルシステムとして実行されている場合の解決策: ログインアカウントを使用して「mstsc/admin」を使用して接続します(必要な権限が不明、管理者グループに所属しています)。 psexec -s "%JAVA_HOME%¥bin¥jstack.exe" PID> stack.txt ここで、PIDはプロセスのプロセスIDです。特定の環境に応じてJDKの実際のパスを置き換える必要があるかもしれません。 –
これは、基になるO/Sからのエラーメッセージです。スローされた例外をキャッチする以外に、これに対処するためにコードで行うことはあまりありません。 Windowsには非常に限られているため、ブーイングしてください。
psexec -s jstack PID >> c:\jstack.log
は完全に同じマシンで動作します。最初は時間がかかりましたが、もう一度ファイルにリダイレクトするオプションで実行しましたが、それは数秒で完了しました。
- 1. Cmdエラー - このコマンドを処理するのに十分なストレージがありません
- 2. エラー "このコマンドを処理するのに十分なストレージがありません"ウィンドウサーバー2008
- 3. リリーススワップは、Linuxで利用可能な十分なRAMが
- 4. Windowsのバッチファイルでstartコマンドを使用した後、 "このコマンドを処理するのに十分なストレージがありません" 7
- 5. Googleアナリティクスイベントトラッキングを処理するためにRequireJSでグローバルに利用可能な機能を作成します
- 6. 利用可能なスペースを埋めるために拡大するスクロール可能な分割で100%のCSSイメージ
- 7. 利用可能な処理コアを確認する
- 8. コマンドラインからjavaユーティリティを実行しているときに、このコマンドを処理するストレージが不十分です
- 9. SignalException:処理中にSIGHUPを処理することが可能です
- 10. IIS/SQL Serverのエラー:このコマンドを処理するのに十分な記憶域がありません。
- 11. 利用可能であればDOMストレージ
- 12. このコマンドを処理するのに十分な記憶領域がありません
- 13. HDP 2.5のSolr例外のためテーブル作成時にHbase Javaコードがスタックする - SolrServersがこの要求を処理するために利用可能
- 14. テレグラムボット:利用可能なコマンドの略語
- 15. インラインブロック要素が利用可能な幅を自動的に埋めることは可能ですか?
- 16. sasで十分でないディスク領域を処理するソリューション
- 17. 新しいファイルがアンドロイドの外部ストレージで利用可能になったときに通知する方法
- 18. 利用可能なニュースグループの数を取得するNNTPコマンド
- 19. 処理されたブロックと未処理のブロックをハンドルバーに出力することは可能ですか?
- 20. Player1とPlayer2の間でコマンドを処理するためのベストモデル
- 21. コンシインターインターバルタイマー(実行可能な結果が不十分です)
- 22. 利用可能なエディタを表示するためのbashコマンドがありますか?
- 23. memcachedメモリゲッターオーバフローを処理することは可能ですか?
- 24. 部分再利用可能なVueコンポーネント
- 25. 膨大なコールバックがスクリプトを中断するか、十分なRAMが利用可能になるたびに続行しますか?
- 26. 十分な管理 - 「Priviledge not held」を返すコマンド。
- 27. エラー:「オフラインモードのために利用可能なキャッシュされたバージョン」
- 28. 再利用可能なhtml/aspファイルを含めることは可能ですか?
- 29. RSPECは、90%のパスが十分であることを示すテストを処理できますか?
- 30. 商業利用のために春の雲データフローUIを使用することは可能ですか?
これは、Windowsのエラーメッセージのようです。 –
私は280メガバイトを取っているTomcatに持っています。 – ripper234
この質問を見る - http://stackoverflow.com/questions/222108/getting-the-java-thread-id-and-stack-trace-of-run-away-java-thread それはdoesn ' jconsoleがアプリケーションを認識しないので、助けてください。 – ripper234