Класс MemoryNotificationInfo
public class MemoryNotificationInfo extends Object
Уведомление о памяти генерируется MemoryMXBean, когда виртуальная машина Java обнаруживает, что использование памяти пулом памяти превышает пороговое значение. Сгенерированное уведомление будет содержать информацию о уведомлении о памяти о выявленном состоянии:
- Имя пула памяти.
- Использование памяти пулом памяти в момент создания уведомления.
- Количество раз, когда использование памяти пересекало порог в момент создания уведомления. Для уведомлений по порогу использования, это значение будет
usage threshold count. Для уведомлений по порогу сбора, это значение будетcollection usage threshold count.
CompositeData, представляющий собой объект MemoryNotificationInfo, хранится в user data объекта notification. Метод from предназначен для преобразования из CompositeData в объект MemoryNotificationInfo. Например:
Notification notif;
// receive the notification emitted by MemoryMXBean and set to notif
...
String notifType = notif.getType();
if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED) ||
notifType.equals(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED)) {
// retrieve the memory notification information
CompositeData cd = (CompositeData) notif.getUserData();
MemoryNotificationInfo info = MemoryNotificationInfo.from(cd);
....
}
Типы уведомлений, генерируемые MemoryMXBean:
- A
usage threshold exceeded notification.
Это уведомление будет отправлено, когда использование памяти пулом памяти увеличится и достигнет или превысит его пороговое значение использования. Последующие превышения порога использования не вызовут дальнейших уведомлений, пока использование памяти не станет меньше порога использования. - A
collection usage threshold exceeded notification.
Это уведомление будет отправлено, когда использование памяти пулом памяти будет больше или равно его пороговому значению использования для сбора после того, как виртуальная машина Java приложила усилия для рециркуляции неиспользуемых объектов в этом пуле памяти.
- Since:
- 1.5
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
MEMORY_COLLECTION_THRESHOLD_EXCEEDED |
Тип уведомления, указывающий, что использование памяти пулом памяти больше или равно его пороговому значению использования для сбора после того, как виртуальная машина Java приложила усилия для рециркуляции неиспользуемых объектов в этом пуле памяти. |
static final String |
MEMORY_THRESHOLD_EXCEEDED |
Тип уведомления, указывающий, что использование памяти пулом памяти достигло или превысило его пороговое значение использования. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
MemoryNotificationInfo |
Создает объект MemoryNotificationInfo. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MemoryNotificationInfo |
from |
Возвращает объект MemoryNotificationInfo, представленный данным CompositeData. |
long |
getCount() |
Возвращает количество раз, когда использование памяти пересекало порог в момент создания уведомления. |
String |
getPoolName() |
Возвращает имя пула памяти, которое инициирует это уведомление. |
MemoryUsage |
getUsage() |
Возвращает использование памяти пулом памяти в момент создания этого уведомления. |
Подробное описание полей
MEMORY_THRESHOLD_EXCEEDED
public static final String MEMORY_THRESHOLD_EXCEEDED
MemoryMXBean. Последующие превышения порога использования не вызовут дальнейших уведомлений, пока использование памяти не станет меньше порога использования. Значение этого типа уведомления: java.management.memory.threshold.exceeded.- See Also:
MEMORY_COLLECTION_THRESHOLD_EXCEEDED
public static final String MEMORY_COLLECTION_THRESHOLD_EXCEEDED
MemoryMXBean. Значение этого типа уведомления: java.management.memory.collection.threshold.exceeded.- See Also:
Подробное описание конструкторов
MemoryNotificationInfo
public MemoryNotificationInfo(String poolName, MemoryUsage usage, long count)
MemoryNotificationInfo.- Параметры:
-
poolName- Имя пула памяти, который инициировал это уведомление. -
usage- Использование памяти пулом памяти. -
count- Количество пересечений порога.
Подробное описание методов
getPoolName
public String getPoolName()
- Возвращает:
- имя пула памяти, которое инициировало это уведомление.
getUsage
public MemoryUsage getUsage()
- Возвращает:
- использование памяти пулом памяти в момент создания этого уведомления.
getCount
public long getCount()
threshold
count. Для уведомлений по порогу сбора, это значение будет collection usage threshold count.- Возвращает:
- количество раз, когда использование памяти пересекало порог в момент создания уведомления.
from
public static MemoryNotificationInfo from(CompositeData cd)
MemoryNotificationInfo, представленный данным CompositeData. Данный CompositeData должен содержать следующие атрибуты: | Имя атрибута | Тип |
|---|---|
| poolName | java.lang.String |
| usage | javax.management.openmbean.CompositeData |
| count | java.lang.Long |
- Параметры:
-
cd-CompositeData, представляющий объектMemoryNotificationInfo - Возвращает:
- объект
MemoryNotificationInfo, представленныйcd, еслиcdнеnull;nullв противном случае. - Исключения:
-
IllegalArgumentException- еслиcdне представляет объектMemoryNotificationInfo.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.management/java/lang/management/MemoryNotificationInfo.html