As per SSL/TLS Configuration HOW-TO:
To define a Java (JSSE) connector, regardless of whether the APR library is loaded or not, use ONE of the following:
<!-- Define a HTTP/1.1 Connector on port 8443, JSSE NIO implementation -->
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" .../>
<!-- Define a HTTP/1.1 ...
For anyone else who stumbles upon this: The key (pun not intended) is to import your certificate using the same alias as the one you used to originally create they keystore (along with its private key) when you ran 'keytool -genkey-alias myalias ...' -- this is how Tomcat ties the private key with your new certificate when it is imported.
Basically, like ...
I'd recommend installing fail2ban and have that automatically block IPs for a (hour/day/week/month - take your pick) after 3 authentication failures in a row. You should be able to get fail2ban to trigger of 401 responses in Tomcat's access log.
Generally, you'd use a profiler for this. There are several available.
My personal choice would be YourKit Java Profiler but keep in mind that is mainly because they give free licenses to open source developers so it is the one I am most familiar / comfortable with.
Java Allocated Heap and Windows Working Set are not the same thing exactly.
Your 1.5 GB difference is because of how memory gets addressed on Windows. To explain this, here are the facts that I think are most relevant:
'xmx' is 6 GB
You are on Windows
"Limit" in your graph is 5.3 GB.
You only see this after the server has been running for days
On Windows, ...
The relevant part of what you posted is:
Free memory: 162.31 MB
Your code probably did generate 162 MB worth of objects in 15 seconds.
Also, you say that you have an “OutOfMemoryError” but don’t list Insufficient Heap Space as the actual reason you had it, so yes, it is very possible that other processes used memory before the JVM could get it.