質問

JMX MBean の設計におけるベスト プラクティスは何ですか?特に役立つと思われる例はありますか?

役に立ちましたか?

解決

レートの代わりに絶対数を返します。例えば率を導き出すのではなく、DB コミットの合計数を返します。

これにより、クライアントは、必要な期間にわたって料金を監視し、独自に料金を導き出すことができます。おそらくもっと重要なことは、これにより、クライアントが頻繁に接続しない場合に、レートの急上昇を見逃すことがなくなります。

主に HTML インターフェース経由で JMX Bean を使用している場合は、私が従ういくつかのプラクティスがあります。以下は、多くの場合、JMX Bean が (単に既存のメソッドを JMX 公開するのではなく) 既存の Bean をラップする必要があることを意味します。

  1. 返されたオブジェクトを表す適切にフォーマットされた文字列を出力します。デフォルトの取得 toString() 出力はほとんど役に立たない可能性があります
  2. 例外をキャプチャして表示します。そうしないと、空白のページが表示され、何が問題だったのかを判断するためにログ ファイルにアクセスする必要がある可能性があります。
  3. 異なる文字セットを表示している場合は、表示の問題を防ぐために出力を適切にエスケープする必要があるかもしれません (私は中国語データを表示する JMX コントロールでこれに遭遇しました)
  4. 公開されたメソッドへの入力は適切にサニタイズする必要があります (例:操作の一部として ID を入力する場合、次のようにすることができます。 trim() 空白などを削除するために使用します)

上記は、単に JMX 経由で公開される Bean から、使用可能な管理コンソールに近いものに重点を変更します。

他のヒント

私の最初のJMX豆と私を得た最初のものは、戻り値の型でした - あなたのメソッドは文字列を返す場合、それは多くの方が簡単だ - その方法は、あなたのクライアントは、簡単に(私は主にJConsoleで働いていた)応答を表示することができます - あなたはドンが」トンこれを行うには、あまり意味はありません応答としてcom.mycompany.Response@xxxxのようなものを、得る:)

の属性は、副作用がないと動作が予測可能であることを確認してください。

時間のかかる(またはリソースを消費する)動作を実行無実探して属性よりも悪いものは何もありません。私は私の時間にいくつかのhumdingersを見てきました..

ので、例えば、起動時からすべての接続の詳細を返すMBeanの機能を使用していないログインにJMXを使用しないでください。

一つは、JMX監視のために意味されることを覚えておいてください。意味 - 。現在の瞬間に関連するデータのみを表示します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top