Hi we met OutOfMemory issue in our service. we are using dependency below :
<dependency> <groupId>com.refinitiv.eta</groupId> <artifactId>eta</artifactId> <version>3.6.2.2</version> </dependency> <dependency> <groupId>com.refinitiv.ema</groupId> <artifactId>ema</artifactId> <version>3.6.2.2</version> </dependency>
we deployed service on our server. running sub rate from trep and posting message to trep too(every 5 mins).
after around 10 hours. OOM issue occur.
we have export the heapdump file and did some analysis.
we found that most memory used by a JsonFactory object.
for more information. big memory used by attribute in JsonFactory:
could you help provide more information about the #elementSetDefDbPool and #fieldSetDefDbPool ?
btw, we are using OmmConsumer.submit to post message. each post event we will create new OmmConsumer and release it after all AckId return backed.
PostMsg postMsg = EmaFactory.createPostMsg(); UpdateMsg nestedUpdateMsg = EmaFactory.createUpdateMsg(); FieldList fieldList = fieldListMap.get(ric).getKey(); StringBuilder fieldListStringBuilder = fieldListMap.get(ric).getValue(); nestedUpdateMsg.payload(fieldList); long currentPostId = postId.incrementAndGet(); try { consumer .submit( postMsg .postId(currentPostId) .serviceName(serviceName) .name(ric) .solicitAck(true) .complete(true) .payload(nestedUpdateMsg) , loginHandle );