phax / as2-lib

A generic Java AS2 library, servlet and server
107 stars 43 forks source link

Debugging Long Running request #83

Closed fuzails closed 5 years ago

fuzails commented 5 years ago

Having an issue that manifests as the following:

h.x.r.LoggingLongRunningRequestCallback : Long running request. ID=41; millisecs=520191;

How would we be able to track what the actual request is was?

Regards

phax commented 5 years ago

Hi, the log entry should be followed by

+ "; URL=" + aRequestScope.getURL ()

so you should see what URL caused the issue. Are you using as2-peppol-server or the as2-demo-webapp?

fuzails commented 5 years ago

We are using the AS2ReceiveServlet configuration from the as2-demo-webapp

We only have one URL that we recieve on, it seems as if it maybe related to the VerySecureRandom as i see this after a long time

2019-03-26 11:55:28.304 ERROR 12529 --- [RequestTrackerMonitor-1] .h.x.r.LoggingLongRunningRequestCallback : Long running request. ID=79; millisecs=1357162; URL=<redacted>
2019-03-26 11:55:30.110  WARN 12529 --- [http-nio-9092-exec-2] c.h.commons.random.VerySecureRandom      : Re-seeding VerySecureRandom took too long (1358770 milliseconds) - you may consider using '/dev/urandom'

But I am not sure if that means its related.

I was trying to see if I could somehow tie the logs here to what I am seeing in my nginx logs in the hope of identifying if is as2 receiver issue or and issue on the caller side.

phax commented 5 years ago

It's a problem of JDK random creation. Please see e.g. https://ruleoftech.com/2016/avoiding-jvm-delays-caused-by-random-number-generation or https://docs.oracle.com/cd/E13209_01/wlcp/wlss30/configwlss/jvmrand.html for details. It should be solvable via system properties and the like. E.g. -Djava.security.egd=file:/dev/./urandom hth

fuzails commented 5 years ago

Thanks, will try that and feedback

fuzails commented 5 years ago

Still get the long running request error log, but at least now messages are being processed. Thanks