Reputation: 67
I'm puzzled and need clever suggestions.
I have this Java 8 web application developed with Spring Boot which runs on an Apache Tomcat server, have a Postgresql database, and make use of a RabbitMq to handle requests made via a JS client, Swagger for the exposed REST API. The main purpose is to exploit common libs like docx4j and ApachePOI to read/write excel/word files on the system.
Everything works like a charm on a local installation. But moving to a different environment with a central server and multiple hosts (2-3 at least) accessing the client app, makes it troublesome.
The main problem seems related to Tomcat since there is the constant need to restart the main application many times. Also Tomcat process memory keeps growing. (All streams are properly closed after any use).
No errors are thrown or logged.
Already tried to force garbage collection (even if not recommended) where possible with no improvements. Already tried to change server (Wildfly) with no improvements. Tried on different OS environment with no changes.
Any ideas?
Thank you for your time.
-- EDIT
Added APR support to Tomcat for better performance, still nothing. I've found a possible bottleneck in a function which makes intese use of docx4j libs for document merging. But it occurs only in this Windows environment.
Upvotes: 0
Views: 222
Reputation: 67
I'll answer my own question.
All issues are related to application memory handling, not the environment. I have replicated the "troublesome" environment to a different machine and still getting errors. So it is the application itself.
Thank you all for your time.
Upvotes: 0