モジュール jdk.management.cmm
パッケージ jdk.management.cmm

インタフェースSystemResourcePressureMXBean

  • すべてのスーパー・インタフェース:
    PlatformManagedObject


    public interface SystemResourcePressureMXBean
    extends PlatformManagedObject
    協調的メモリー管理を使用すると、SystemResourcePressureMXBeanを介してVMにメモリー負荷を伝達します。 メモリー負荷は、システムの合計メモリー使用量(RAM)を表します。 負荷が高まるほど、メモリー不足が発生しやすくなります。

    Java仮想マシンは、SystemResourcePressureMXBeanのインスタンスを最大で1つ持つことができます。 MBeanServer内でSystemResourcePressureMXBeanを一意に識別するためのObjectName"com.oracle.management:type=ResourcePressureMBean"です。 これを取得するには、PlatformManagedObject.getObjectName()メソッドを呼び出します。

    通知

    1つ以上の通知リスナーを登録して、メモリー負荷が変更されたときに通知を受信できるようにするには、SystemResourcePressureMXBean実装をNotificationEmitterにする必要があります。

    このMXBeanは、メモリー負荷が変更されたときにAttributeChangeNotificationを生成します。 アプリケーションは、独自のNotificationListenerを追加することで、メモリー負荷に対応できます。

    登録

    このMXBeanを登録するには、次のようなコードを使用する必要があります。

    
         SystemResourcePressureMXBean mxbean =
           ManagementFactory.getPlatformMXBean(SystemResourcePressureMXBean.class);
         ManagementFactory.getPlatformMBeanServer().registerMBean(mxbean, mxbean.getObjectName());
     
    協調的メモリー管理は商用機能であるため、これを使用するためには、-XX:+UnlockCommercialFeaturesを使用してVMが実行されている必要があります。 それ以外の場合は、ManagementFactory.getPlatformMXBean(java.lang.Class<T>)IllegalArgumentExceptionをスローします。
    導入されたバージョン:
    8u40
    関連項目:
    ManagementFactory.getPlatformMXBean(java.lang.Class<T>)MBeanServer
    • メソッドの詳細

      • getMemoryPressure

        int getMemoryPressure​()
        現在のメモリー負荷レベルを取得します。
        戻り値:
        現在のメモリー負荷レベル
      • setMemoryPressure

        void setMemoryPressure​(int pressureLevel)
        現在のメモリー負荷レベルを設定します。 MemoryPressure属性は0から10までの値を取ることができ、0はメモリー負荷がほとんどない状態を示し、10はシステムのメモリーが非常に少ないことを意味します。 現在のメモリー負荷レベルがすでにpressureLevelにある場合、処理は行われず、通知も送信されません。
        パラメータ:
        pressureLevel - 0から10までのレベル
        例外:
        IllegalArgumentException - 指定されたpressureLevelが、0から10の範囲外の場合。
        SecurityException - セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("control")を持たない場合。