問題タブ [java-melody]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaMelody を SparkJava で動作させるには?
SparkJava の組み込み Jetty サーバーで単純な構成を使用したい場合、 JavaMelodyをSparkJavaと統合する最良の方法は何ですか?
これは、SparkJava を開始する方法です。
これは私がjavamelodyを起動する方法です:
このような JavaMelody の起動の問題は、別の jetty サーバーが作成されることです。Spring と Hibernate で問題なく動作するため、すべての統計を表示できますが、別の Jetty サーバーであるため、HTTP 要求の統計は表示できません。
正確な問題は、SparkJava で JavaMelody を起動して、HTTP 統計を含む JavaMelody のすべての統計を表示する方法です。
PS:解決策として、リフレクションハックは私にとっては問題ありません
garbage-collection - Javaメロディーを使用してガベージコレクションの実行を自動化するには?
実稼働環境でのメモリ使用量を監視するために Java メロディーを使用しています。要件は、メモリが を超えないようにすること256MB/512MB
です。
私は最大限のコードを最適化しましたが、それでも使用法はありますが448MB/512MB
、Javaメロディーでガベージコレクターを手動で実行すると、メモリ消費量は109MB/512MB
.
java - web.xml コードを Java melody の Java config に変換する方法
プロジェクトから web.xml を完全に削除して Java 構成に変換することは可能ですか?
次の web.xml を Java 構成に変換するにはどうすればよいですか?
これを理解するためにいくつかのリンクをたどりました
それらのいくつかは次のとおりです 。web.xmlをアプリケーションコンテキスト構成ファイルに置き換える方法は?
しかし、web.xml の各メンバーを対応する Java 構成に置き換える方法に関するチュートリアル/ブログは見つかりませんでした。
たとえば、一部のフィルタはライブラリを介して提供され、機能のために web.xml で宣言するだけで済みます。Java 構成で同じことを実現するにはどうすればよいですか (web.xml 全体を Java 構成に置き換える)。
java - 使用されている jdbc 接続がリークしているようで、その理由がわかりません
私は何年もの間この問題と戦ってきましたが、私の人生では問題が何であるかを理解することはできません. 使用しているスタックのステージを設定しましょう。
- Web ベースの Java 8 アプリケーション
- GWT
- 休止状態 4.3.11
- MySQL
- モンゴDB
- 春
- Tomcat 8 (たとえば、C3PO の代わりに Tomcat 接続プーリングを含む)
- Hibernate Search / Lucene
- Terracotta と EhCache
問題は、数日おき (場合によっては 2 日おき、場合によっては 10 日に 1 回、場合によって異なります) の早朝に、アプリケーションが「ロックアップ」することです。明確にするために、それはクラッシュしません。ログインすることも、そのことについて何もすることもできません。すべてのバックグラウンド タスク - すべて - が停止します。この状態でログインしようとすると、ログ ファイルで、有効なユーザーとして認証されていることを確認できますが、応答が送信されないため、アプリケーションは単に「スピン」します。
これらの「ロックアップ」がいつ発生するかに関してこれまでに発見された唯一のパターンは、朝のスケジュールされたタスクまたは SAP インポートが実行されているときに発生することです。ただし、実行中のプロセスが常に同じとは限りません。SAP インポートの 1 つや、内部でスケジュールされたタスクの実行中にロックアップが発生することがあります。これらに共通するのは、営業時間外 (午前 1 時から午前 6 時の間) に実行されることと、非常に集中的なプロセスであることです。
監視に JavaMelody を使用していますが、この午前 1 時から午前 6 時までのさまざまな時間帯に、使用される jdbc 接続の数が急増し始めることが毎回わかります (添付の画像を参照)。それが開始されると、ロックアップが発生するのは時間の問題であり、それを解決する唯一の方法は、Tomcat をバウンスしてアプリケーションを再起動することです。
私が知る限り、ロックアップが発生したときにメモリ、CPUなどはすべて問題ありませんが、問題があるように見えるのは、使用されるjdbc接続の数が絶えず増加していることだけです。
私はトランザクション管理のコードを何度もチェックして、トランザクションが正しく終了していることを確認しました (トランザクション管理コードはかなり古風です: try ブロックで明示的な開始とコミット、catch ブロックでロールバック、finally でエンティティ マネージャーを閉じます)。ブロック)。それはすべて私には正しいように見えるので、私は本当に、本当に困惑しています. これに加えて、最近、Hibernate 接続解放モードを after_transaction に適切に明示的に構成しましたが、問題は引き続き発生します。
もう 1 つの奇妙な点は、異なるクライアントに対して同じアプリケーションの複数のインスタンスを実行することです。この問題は、1 つのクライアントに対してのみ定期的に発生します。彼らは私たちのクライアントであり、処理するデータが圧倒的に多く、すべてのクライアントがこれらのスケジュールされたタスクを実行しますが、SAP インポートを使用するのはこの大規模クライアントだけです。そのため、最初は SAP のインポートが問題だと思っていましたが、今朝の午前 1 時過ぎにハングアップし、インポートが開始される数時間前でした。この場合、内部でスケジュールされたタスクの実行中にロックされました。
この奇妙な動作を引き起こしている原因を知っている人はいますか? 私は考えられるすべてを調べましたが、役に立ちませんでした。
java - JavaMelody - GlassFish v3+ での SQL リクエストと jdbc 接続の監視
JavaMelody を使用して、Glassfish アプリケーション サーバーによって要求された SQL を監視したいと考えています。https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#monitoring-of-sql-requests-and-of-jdbc-connections-in-glassfish-v3に段階的な手順がありますが、2 番目のステップは私にはうまくいきません。
指示は次のとおりです。
GlassFish 管理コンソールで、たとえば、JDBC リソース (データソース) の名前を「jdbc/MyDataSource」から「jdbc/MyDataSource_uncached」に変更します。
JDBC リソースの名前を編集する方法が見つかりません。
次のスクリーンショットは、Glassfish 管理コンソールの [JDBC データ ソース] タブを示しています。 JDBC リソースの JNDI 名の編集
JDBC リソースの JNDI 名を変更する方法を知っていますか?
tomcat - Tomcat jdbc 接続プールでの JavaMelody の統合
JDBC モニタリングを JavaMelody に統合しようとしています。Tomcat jdbc プール接続を使用しています。私のセットアップは次のようなものです(簡略化):
(私は web.xml の <context> 記述よりもこの設定を好みます)
次の例外が発生します
java.sql.SQLException: java.sql.DriverManager.getConnection(DriverManager.java:596) で jdbc:mysql://127.0.0.1:3306/mydatabase?autoReconnect=true&characterEncoding=UTF-8 に適したドライバーが見つかりません。 sql.DriverManager.getConnection(DriverManager.java:187) で net.bull.javamelody.JdbcDriver.connect(JdbcDriver.java:83) で org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278) でorg.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) で org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) で org.apache.tomcat.jdbc でorg.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486) の .pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.ジャバ:144) org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116) で org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103) で org.apache.tomcat .jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127) at ... (私のメソッド)
javamelody がなくても問題なく動作しますが、一般的に javamelody は問題なく動作します。
私は何を間違っていますか?何か案は?
java - Javamelody に別のポートを使用させる方法 (Spring Boot + 2 つの HTTP ポートを公開)
Spring Boot Web アプリケーションがあります。ポート 8080 で REST API を公開します。Spring Boot Management エンドポイントで管理ポート 8081 も公開します ( http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-monitoring.html ) 。 . それを実現するためのカスタム Tomcat 構成はありません。ファイルにプロパティmanagement.port=8081
があるだけです。application.properties
https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-appで説明されているように、JavaMelody を構成しました
(カスタムJavaMelodyConfiguration
クラスがあり、org.springframework.boot.web.servlet.FilterRegistrationBean
そのレジスターがありますnet.bull.javamelody.MonitoringFilter
)。
この構成では、Javamelody はポート 8080 (ビジネス ポート) で公開されます。8081(管理ポート)に移動したいと思います。それを変更する方法は?
私はSpring Boot 1.4.2.RELEASE、javamelody 1.62.0を使用しています