Получение java.lang.outofmemoryerror: java heap -пространство с org.eclipse.paho.mqttv5.client.internal.clientstateJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получение java.lang.outofmemoryerror: java heap -пространство с org.eclipse.paho.mqttv5.client.internal.clientstate

Сообщение Anonymous »

Скриншот дампа памяти < /p>
Когда я запускаю свое приложение Springboot, я получаю «Получение java.lang.outofmemoryerr: java huep space»
, кажется, размер «org.eclipse.paho.mqttv5.client.internal.clientState». ? и Options.SetSessionExpiryInterval (4294967295L); < /p>
Так что, если экземпляр приложения умирает, то новый экземпляр продолжается так, как если бы он был тем же клиентом, поэтому оно потребляет сообщение, которое не использовалось ранее. < /p>
public void connect() {
try {

client = new MqttAsyncClient(brokerUrl, "my-client");

MqttConnectionOptions options = new MqttConnectionOptions();
options.setUserName(username);
options.setPassword(password.getBytes());
options.setAutomaticReconnect(true);
options.setCleanStart(false); // Persistent session
options.setSessionExpiryInterval(4294967295L); // Max session expiry

client.setCallback(new MqttCallback() {
@Override
public void messageArrived(String topic, MqttMessage message) {
executor.submit(() -> {
try {
String payload = new String(message.getPayload());
routeMessage(topic, payload);
} catch (Exception e) {
log.error("❌ Error processing MQTT message from topic {}: {}", topic, e.getMessage(), e);
}
});
}

@Override
public void disconnected(MqttDisconnectResponse disconnectResponse) {
log.warn("🔌 Disconnected from MQTT broker: {}", disconnectResponse.getReasonString());
}

@Override
public void mqttErrorOccurred(MqttException exception) {
log.error("❌ MQTT error occurred", exception);
}

@Override
public void deliveryComplete(IMqttToken token) {
// Not used for subscriptions
}

@Override
public void connectComplete(boolean reconnect, String serverURI) {
log.info("🔄 MQTT connection complete to {}", serverURI);
}

@Override
public void authPacketArrived(int reasonCode, MqttProperties properties) {
// Optional, unused
}
});

client.connect(options).waitForCompletion();

log.info("✅ Connected to MQTT broker at {}", brokerUrl);

for (String topic : topics) {
client.subscribe(topic, 2).waitForCompletion();
log.info("📡 Subscribed to topic: {}", topic);
}

} catch (MqttException e) {
log.error("❌ Failed to connect or subscribe to MQTT broker", e);
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... aho-mqttv5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»