問題タブ [mbeans]

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.

0 投票する
2 に答える
10581 参照

java - JBossサービス(MBean)を自動的に開始します

サーバーが起動されるたびに自動的に起動されるJBossサービスを構築しようとしています。

私のサービスには次のクラス構造があります。

また、サービス用に次の設定ファイル(jboss-service.xml)があります。

私の質問は、このサービスを自動的に開始するにはどうすればよいですか?

JBossがロードプロセスの一部としてメソッドstart()を呼び出すことを期待していましたが、そうではありません。start()メソッドに多くのlogginコードがありますが、出力が表示されません。

ただし、JMXConsoleを使用してMBeanステータスを確認すると、その状態(StateString)は「開始済み」です。

問題が解決しました

私は自分の問題の解決策を見つけました。start()、stop()、destroy()、create()の各メソッドをオーバーライドしていました。それでも、抽象クラスServiceMBeanSupportを拡張しているので、メソッドstartService()、stopService()などをオーバーライドする必要があります。

コードをメソッドstart()からメソッドstartService()に移動したところ、すべてが必要に応じて動作しています。依存関係が満たされるとすぐに、サービスが開始され、メソッドstartService()が実行されます。

結論は次のとおりです。MBeanのライフサイクルにはcreate()、start()、stop()、destroy()の呼び出しが含まれますが、抽象クラスServiceMBeanSupportの実装ではこれらのメソッドを使用してライフサイクルを処理します。それでも、プログラマーがライフサイクルに参加できるようにするために、保護されたメソッド* Service()を提供します。

0 投票する
1 に答える
1025 参照

java - (実験的な) JSR-262 JMX-WS 対応の Java ツールまたはアプリケーションはありますか?

Java Management Extensions (JMX) エージェント用の Web サービス コネクタと参照実装ws-jmx-connectorに非常に興味があります。JSR 262 は、Java 以外のクライアントを使用して JMX エージェントと通信するオプションがあれば、クロスプラットフォーム/クロス言語のエンタープライズ統合プロジェクトに新しい機会を提供します。(Delphi クライアントで参照実装をほとんど手間をかけずに使用できました)。

JSR 262 が「有効」で、JMX WS を介して MBean を公開する (オープン ソースの) Java ツールまたは製品はありますか?

0 投票する
2 に答える
3319 参照

java - JConsoleに表示されるCoherenceノードMBeanのJMX問合せに関する問題

JMX を使用して、職場のリモートCoherenceクラスタを監視するためのカスタム ツールを構築しています。問題なく接続して MBean を直接クエリすることができ、必要なほぼすべての情報を取得できました。ただし、クラスター内の特定のキャッシュについて MBean にクエリを実行しようとしたときに問題が発生しました。ここで、gets/puts の合計数、それぞれの平均時間などに関する統計を確認できます。

プログラムでアクセスしようとしている MBean は、JConsole を使用してリモート プロセスに接続すると表示され、次のような名前が付けられます。

type=Cacheすべてのキャッシュを指定せずに、特定のノード ID のすべての MBean を動的に取得できれば、より柔軟になります。私は次のようにそれらを照会しようとしています:

ただし、queryMBeans()またはを使用するかどうかに関係なくqueryNames()、クエリは次を含むセットを返します...

  • ...上記の引数を渡すと0 個のオブジェクト
  • ...最初の引数に渡すと0 個のオブジェクトnull
  • ...第 2 引数Coherence:*に渡す場合、ドメイン内のすべての MBean (112)null
  • null...両方の引数を渡すと、すべての MBean (128)

最初の 2 つの結果は予期しないものQueryExpで、 I'm passに問題があることを示唆していますが、何が問題なのかわかりません。2 番目のパラメータに or を (typeIsCache最初のパラメータとしてorを使用して)渡してみましたが、常に 0 の結果が得られます。specifiedNodeIdcoherencenull

私は JMX にかなり慣れています — 問題が何であるかについての洞察はありますか? (参考までに、監視ツールは Java 5 で実行されるため、現時点では JMX 2.0 などは役に立ちません。)

0 投票する
3 に答える
586 参照

java - MBean からシングルトン クラスのインスタンス データにアクセスできません

締め切りに間に合わず、汗だくです。過去数日間、私は問題に取り組んできましたが、今こそ大声で叫ぶときです。

アプリケーション (「APP」と呼びましょう) があり、APP 用に作成された「PerformanceStatistics」MBean があります。また、MBean がアプリケーションのランタイムにアクセスして計算するためのデータを提供するシングルトン データ クラス (「SDATA」と呼びましょう) もあります。したがって、アプリケーションの起動中とその後のアプリケーションのライフサイクル中に、SDATA インスタンスにデータを追加します。そのため、この SDATA インスタンスには常にデータが含まれています。

問題は、PerformanceStatistics MBean からデータまたはデータ構造にアクセスできないことです。データを追加するときにデータ構造を確認すると、すべての構造にデータが含まれています。しかし、MBean からこのシングルトン インスタンスを呼び出すと、空のデータが表示されます。

何が起こっているのか、誰かが説明したり、ヒントを得ることができますか? どんな助けでも大歓迎です。

念のため、あらゆる種類の SDATA クラスを final にして、すべてのメソッドを同期、静的などにしようとしました。しかし、今まで運がありません。

もう1つの残念なことは、異なる「ServicePerformanceData」インスタンスを取得する場合があることです(つまり、 ServicePerformanceData.getInstance() を出力すると、それらは異なる時点で異なります)。何が起こっているのかわからない。このアプリケーションを WebLogic サーバーで実行し、JConsole を使用しています。

シングル トンおよびデータ アクセス メソッドを持つ SDATA クラス

}

PerformanceStatistics MBean クラスServicePerformanceData .getInstance() のようなデータを呼び出すと、その構造には何もありません。したがって、私はこれで結果を得ることができません。

}

0 投票する
5 に答える
29842 参照

java - リモート MBean サーバーへのアクセス

JBoss を使用してクライアント/サーバー アプリケーションを実行しています。

サーバー JVM の MBeanServer に接続するにはどうすればよいですか? MemoryMX MBean を使用してメモリ消費を追跡したいと考えています。

JNDI ルックアップを使用して JBoss MBeanServer に接続できますが、java.lang.MemoryMX MBean が JBoss MBeanServer に登録されていません。

編集: 要件は、クライアントからのメモリ使用量へのプログラムによるアクセスです。

0 投票する
2 に答える
2670 参照

java - SpringのMBeanExporterに特定のMBeanServerを使用するように強制する

JBoss4.2.2でWebアプリケーションを実行しています。パフォーマンスを監視するために、Java 5に同梱されている内部プラットフォームのJMXサーバーを有効にしました。つまり、次のように追加しました。

JBossの起動スクリプトに。これは期待どおりに機能します。ただし、この結果、すべてのMBeanがプラットフォームMBeanServerに登録されるようになりました。それは望ましくありません。JBossのMBeanServerに登録してもらいたいのです。

難しいのは、Springを使用してマネージドBeanを登録していることです。このために、MBeanExporterが使用されます。したがって、MBeanExporterBeanを登録するときにJBossのMBeanServerを使用するように指示する必要があります。ただし、MBeanExporter使用されるサーバーに影響を与える唯一の公開されたメソッドはですsetServer(MBeanServer mBeanServer)問題は、プログラムで正しいMBeanServerへの参照を取得する方法しか知らないことであり、MBeanExporterが宣言されているSpringのXMLではわかりません。

私のオプションは次のようです:

  1. サブクラスをMBeanExporterに書き込み、特定のメソッドをオーバーライドして、正しいMBeanServerがロードされるようにします
  2. PostBeanProcessorJBossのMBeanServerを見つけて呼び出すsetServer
  3. JNDI?MBeanServerがJNDIで公開されている場合にのみ機能し、私はそれを見つけることができませんでした。

最も慣用的な方法は何ですか?私は本当にばかげたことをしていますか?

0 投票する
2 に答える
1353 参照

java - JBoss MBeans:配列属性を持つ方法は?

配列属性でMBeanを定義することは可能ですか?現在、MBeanは次のように定義されています。

次に、MBeanコードで、文字列を分割します。ただし、次のMBeanでは、スペースを含む文字列をサポートする必要があります。カンマ区切りを行うこともできますが、MBeanは配列をサポートしているので、次のように定義できます。

私が間違っている?

0 投票する
1 に答える
2867 参照

tomcat - JconsoleでのTomcat6.0のMBeanの表示

私はTomcatを制御するための小さなエージェントを作成しようとしていますが、今のところJMXが最適なオプションのようです。manager httpサービスを使用すると、必要なすべての情報を提供する、あらゆる種類のきちんとしたmbeanが登録されていることがわかります。唯一の問題は、jconsoleを使用してtomcatインスタンスに接続すると、これらのmbeanが表示されず、標準のJVMのものだけが表示されることです。

tomcatがそのmbeanをjconsoleで表示できるようにする前に、ある種のブードゥーを実行する必要がありますか、それともjconsoleの機能を誤解していますか?何が起こっているのかを理解するまで、コードを書き始めたくありません。

ところで、私はWin7でJava1.6.0_16を使用してTomcat6.0.20を実行しています。

乾杯、ブライアン。

0 投票する
3 に答える
1181 参照

java - Javaで複数のプロセスにまたがる単一のオブジェクトを更新する

いくつかのリレーショナル DB テーブルは、プロセス内に存在する単一のオブジェクト キャッシュによって管理されます。キャッシュがコミットされると、テーブルが更新されます。DB リレーショナル テーブルは通常の SQL クエリによって更新されますが、休止状態のような複雑なものではありません。

最終的に、他のプロセスは、互いに通信せずにこのオブジェクトを変更するビジネスに入りました。つまり、各プロセスはこのオブジェクトを初期化し(DBから読み取り)、更新します(DBにコミットします)。他のプロセスは、それが保持されていることを知りません古いキャッシュ。

このワークフローを修正する必要があります。私はいくつかの方法を考えました。1 つは、このオブジェクトを mBean にすることです。そのため、オブジェクトは 1 つのプロセスに存在し、すべてのプロセスは最終的に mBean メソッドの呼び出しによってそのプロセス内のオブジェクトを変更します。

ただし、このアプローチにはいくつかの問題があります。1) このキャッシュによって返されるすべてのオブジェクトは mBean であるため、メソッドの呼び出しがかなりおしゃべりになる可能性があります。2) また、すべてのプロセスが DB の一貫したデータ モデル (キャッシュ) を参照する必要があり、可能であればその内容を DB にマージする必要があります。(トランザクションのように)。DB が他のプロセスによって大幅に更新された場合、マージが失敗しても問題ありません。

Java のどのテクノロジーがこの問題の解決に役立つでしょうか?

0 投票する
2 に答える
191 参照

java - How could I get an .ear's filesize at runtime?

I started out attempting to do this with the Length ant task, but realized that that would be done before the ear is packaged. Packaging the ear, then checking the file size, and then placing it in the ear would effect the size of the ear.

Is there a way to get the ear's size programmatically at run-time? Or perhaps an MBean that would have that information?