クラス MBeanClientInterceptor

java.lang.ObjectSE
org.springframework.jmx.access.MBeanClientInterceptor
実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptorAwareBeanClassLoaderAwareDisposableBeanInitializingBean
既知の直属サブクラス
MBeanProxyFactoryBean

public class MBeanClientInterceptor extends ObjectSE implements MethodInterceptor, BeanClassLoaderAware, InitializingBean, DisposableBean
指定された MBeanServerConnection で実行されている MBean に呼び出しをルーティングする MethodInterceptor。ローカルおよびリモート MBeanServerConnection の両方で機能します。

デフォルトでは、MBeanClientInterceptor は MBeanServer に接続し、起動時に MBean メタデータをキャッシュします。これは、アプリケーションの起動時に実行されていない可能性のあるリモート MBeanServer に対して実行する場合、望ましくない可能性があります。connectOnStartup プロパティを "false" に設定することにより、プロキシに対する最初の呼び出しまでこのプロセスを延期できます。

この機能は、通常 MBeanProxyFactoryBean を介して使用されます。詳細については、そのクラスの javadoc を参照してください。

導入:
1.2
作成者:
Rob Harrop, Juergen Hoeller
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final Log
    サブクラスで利用可能なロガー。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    "connectOnStartup" がオンになっている場合(これはデフォルトです)、MBeanServerConnection を準備します。
    protected ObjectSE
    プロキシメソッドから戻るために、指定された結果オブジェクトを(属性アクセスまたは操作呼び出しから)指定されたターゲットクラスに変換します。
    void
    Bean の破棄時に、包含 BeanFactory によって呼び出されます。
    protected ObjectSE
    構成された管理対象リソースに呼び出しをルーティングします。
    特定のエントリを追加または上書きするオプションを使用して、環境への Map アクセスをコネクターに設定できるようにします。
    protected final ClassSE<?>
    ターゲット MBean の管理インターフェース、または何も指定されていない場合は null を返します。
    protected ObjectSE
    接続をリフレッシュし、可能であれば MBean の呼び出しを再試行します。
    構成された管理対象リソースに呼び出しをルーティングします。
    protected boolean
    このクライアントインターセプターがすでに準備されているかどうか、つまり
    void
    MBeanServerConnection が構成されていることを確認し、ローカル接続が提供されていない場合、ローカル接続の検出を試みます。
    void
    検索する MBeanServer のエージェント ID を設定します。
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    setConnectOnStartup(boolean connectOnStartup)
    プロキシが作成時 (true) に MBeanServer に接続するか、最初に呼び出されたとき (false) に接続するかを設定します。
    void
    setEnvironment(MapSE<StringSE,?> environment)
    JMX コネクターの環境を指定します。
    void
    setManagementInterface(ClassSE<?> managementInterface)
    ターゲット MBean の管理インターフェースを設定し、MBean 属性の Bean プロパティ setter および getter および MBean 操作の従来の Java メソッドを公開します。
    void
    呼び出しがルーティングされる MBean の ObjectName を ObjectName インスタンスまたは String として設定します。
    void
    setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
    接続失敗時に MBeanServer 接続をリフレッシュするかどうかを設定します。
    void
    すべての呼び出しがルーティングされる MBean への接続に使用される MBeanServerConnection を設定します。
    void
    リモート MBeanServer のサービス URL を設定します。
    void
    setUseStrictCasing(boolean useStrictCasing)
    属性に厳密な大文字小文字を使用するかどうかを設定します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • MBeanClientInterceptor

      public MBeanClientInterceptor()
  • メソッドの詳細

    • setServer

      public void setServer(MBeanServerConnectionSE server)
      すべての呼び出しがルーティングされる MBean への接続に使用される MBeanServerConnection を設定します。
    • setServiceUrl

      public void setServiceUrl(StringSE url) throws MalformedURLExceptionSE
      リモート MBeanServer のサービス URL を設定します。
      例外:
      MalformedURLExceptionSE
    • setEnvironment

      public void setEnvironment(@Nullable MapSE<StringSE,?> environment)
      JMX コネクターの環境を指定します。
      関連事項:
    • getEnvironment

      @Nullable public MapSE<StringSE,?> getEnvironment()
      特定のエントリを追加または上書きするオプションを使用して、環境への Map アクセスをコネクターに設定できるようにします。

      environment[myKey] などを介してエントリを直接指定する場合に便利です。これは、子 Bean 定義にエントリを追加またはオーバーライドする場合に特に役立ちます。

    • setAgentId

      public void setAgentId(StringSE agentId)
      検索する MBeanServer のエージェント ID を設定します。

      デフォルトはなしです。指定した場合、"serviceUrl" プロパティが設定されていない限り、これによりアテンダント MBeanServer の検索が試行されます。

      関連事項:
    • setConnectOnStartup

      public void setConnectOnStartup(boolean connectOnStartup)
      プロキシが作成時 (true) に MBeanServer に接続するか、最初に呼び出されたとき (false) に接続するかを設定します。デフォルトは true です。
    • setRefreshOnConnectFailure

      public void setRefreshOnConnectFailure(boolean refreshOnConnectFailure)
      接続失敗時に MBeanServer 接続をリフレッシュするかどうかを設定します。デフォルトは false です。

      オンにすると、JMX サーバーのホットリスタートが可能になり、IOException が発生した場合に自動的に再接続して再試行できます。

    • setObjectName

      public void setObjectName(ObjectSE objectName) throws MalformedObjectNameExceptionSE
      呼び出しがルーティングされる MBean の ObjectName を ObjectName インスタンスまたは String として設定します。
      例外:
      MalformedObjectNameExceptionSE
    • setUseStrictCasing

      public void setUseStrictCasing(boolean useStrictCasing)
      属性に厳密な大文字小文字を使用するかどうかを設定します。デフォルトで有効になっています。

      厳密な大文字小文字を使用する場合、getFoo() などの getter を持つ JavaBean プロパティは、Foo と呼ばれる属性に変換されます。厳密なケーシングを無効にすると、getFoo() は foo に変換されます。

    • setManagementInterface

      public void setManagementInterface(@Nullable ClassSE<?> managementInterface)
      ターゲット MBean の管理インターフェースを設定し、MBean 属性の Bean プロパティ setter および getter および MBean 操作の従来の Java メソッドを公開します。
    • getManagementInterface

      @Nullable protected final ClassSE<?> getManagementInterface()
      ターゲット MBean の管理インターフェース、または何も指定されていない場合は null を返します。
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE beanClassLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      beanClassLoader - 所有クラスローダー
    • afterPropertiesSet

      public void afterPropertiesSet()
      "connectOnStartup" がオンになっている場合(これはデフォルトです)、MBeanServerConnection を準備します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • prepare

      public void prepare()
      MBeanServerConnection が構成されていることを確認し、ローカル接続が提供されていない場合、ローカル接続の検出を試みます。
    • isPrepared

      protected boolean isPrepared()
      このクライアントインターセプターがすでに準備されているかどうか、つまり、すでにサーバーを検索してすべてのメタデータをキャッシュしているかどうかを返します。
    • invoke

      @Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
      構成された管理対象リソースに呼び出しをルーティングします。
      次で指定:
      インターフェース MethodInterceptorinvoke 
      パラメーター:
      invocation - 再ルーティングする MethodInvocation 
      戻り値:
      再ルーティングされた呼び出しの結果として返された値
      例外:
      ThrowableSE - ユーザーに伝播された呼び出しエラー
      関連事項:
    • handleConnectFailure

      @Nullable protected ObjectSE handleConnectFailure(MethodInvocation invocation, ExceptionSE ex) throws ThrowableSE
      接続をリフレッシュし、可能であれば MBean の呼び出しを再試行します。

      接続失敗時にリフレッシュするように構成されていない場合、このメソッドは元の例外を単に再スローします。

      パラメーター:
      invocation - 失敗した呼び出し
      ex - リモート呼び出しで発生した例外
      戻り値:
      成功した場合、新しい呼び出しの結果値
      例外:
      ThrowableSE - 失敗した場合、新しい呼び出しによって発生した例外
      関連事項:
    • doInvoke

      @Nullable protected ObjectSE doInvoke(MethodInvocation invocation) throws ThrowableSE
      構成された管理対象リソースに呼び出しをルーティングします。JavaBean プロパティアクセスを MBeanServerConnection.get/setAttribute に、メソッド呼び出しを MBeanServerConnection.invoke に正しくルーティングします。
      パラメーター:
      invocation - 再ルーティングする MethodInvocation 
      戻り値:
      再ルーティングされた呼び出しの結果として返された値
      例外:
      ThrowableSE - ユーザーに伝播された呼び出しエラー
    • convertResultValueIfNecessary

      @Nullable protected ObjectSE convertResultValueIfNecessary(@Nullable ObjectSE result, MethodParameter parameter)
      プロキシメソッドから戻るために、指定された結果オブジェクトを(属性アクセスまたは操作呼び出しから)指定されたターゲットクラスに変換します。
      パラメーター:
      result - MBeanServer によって返される結果オブジェクト
      parameter - 呼び出されたプロキシメソッドのメソッドパラメーター
      戻り値:
      変換された結果オブジェクト、または変換が不要な場合は渡されたオブジェクト
    • destroy

      public void destroy()
      インターフェースからコピーされた説明: DisposableBean
      Bean の破棄時に、包含 BeanFactory によって呼び出されます。
      次で指定:
      インターフェース DisposableBeandestroy