Error de Java Heap Space de CordApp y javax.net.ssl.SSLException

Hemos creado una aplicación con:

  • 2 nodos + 1 notario
  • 2 aplicaciones web (una para cada nodo)

La versión de Corda es 3.2

CordApp tiene:

  • El primer flujo, que recibe en la entrada una lista de objetos, se utiliza para crear una lista de estado. Esta lista será la salida de la transacción.
  • la lista de objetos (aproximadamente 3000 objetos) se divide en listas con un tamaño de 450 (debido al error de ActiveMQ Artemis para listas con un tamaño más grande [java.lang.IllegalArgumentException: el registro es demasiado grande para almacenarlo])

  • Después del primer flujo, lanzamos otro flujo con una lógica similar. En este caso, tenemos una lista de StateAndRef (resultados de una consulta con RPCops) recibida como entrada dentro del flujo y utilizada como salida para la transacción.

  • En este caso, dividimos la lista (aproximadamente 3000 objetos) en sublistas de 450 elementos.

Aleatoriamente recibimos un error de Java Heap Space y SslHandshakeCompletionEvent (javax.net.ssl.SSLException: se agotó el tiempo de espera del apretón de manos) . Esto parece una seria pérdida de memoria.

Podemos hacer todo el flujo de trabajo solo usando params -Xmx10240m (10GB) en nuestra máquina local. Al monitorear el recurso, parece que el montón crece esponencialmente especialmente durante las transacciones.

¿Cuál podría ser la razón de este accidente?

¿No es posible usar Corda con listas de este tamaño?

Respuesta 1

Cambié de Eclipse a IntelliJ desde ayer. Encontré un equivalente entre los IDEs para todo menos una cosa básica: una intención de crear una clase que no existe en el classpath en el ...

Acabo de comenzar a aprender Java, pero tengo problemas casi en cada paso ... Al menos quiero hacer que este tutorial de inicio súper simple funcione (desde la página oficial de Maven) :) He hecho cada paso como ...

Digamos que tengo algo como esto: Public class Container implementa elementos serializables {private List <Object>; [... algunos otros campos ...]} implementos públicos de clase A ...

He creado este código para mostrar un ejemplo de un orden de selección y un orden de fusión. He conseguido que funcione correctamente, pero parece que tengo un problema de formato para la salida del programa. ...