-
- すべてのスーパー・インタフェース:
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
-
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 int
getMemoryPressure()
現在のメモリー負荷レベルを取得します。void
setMemoryPressure(int pressureLevel)
現在のメモリー負荷レベルを設定します。-
インタフェース java.lang.management.PlatformManagedObjectから継承されたメソッド
getObjectName
-
-
-
-
メソッドの詳細
-
getMemoryPressure
int getMemoryPressure()
現在のメモリー負荷レベルを取得します。- 戻り値:
- 現在のメモリー負荷レベル
-
setMemoryPressure
void setMemoryPressure(int pressureLevel)
現在のメモリー負荷レベルを設定します。MemoryPressure
属性は0
から10
までの値を取ることができ、0
はメモリー負荷がほとんどない状態を示し、10
はシステムのメモリーが非常に少ないことを意味します。 現在のメモリー負荷レベルがすでにpressureLevel
にある場合、処理は行われず、通知も送信されません。- パラメータ:
pressureLevel
- 0から10までのレベル- 例外:
IllegalArgumentException
- 指定されたpressureLevelが、0から10の範囲外の場合。SecurityException
- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("control")を持たない場合。
-
-