For Web 8.5 and DXA 2.2 (Java), web application intermittently showing log error "Unable to acquire JDBC Connection … Caused by: java.sql.SQLRecoverableException: IO Error: Socket read timed out"
000013821|10/16/2020 10:38 PM
Web 8.5, DXA 2.2 (Java)
- Web 8.5 (Oracle) customer has upgraded DXA 1.8 (Java) to DXA 2.2 (Java) - Content service logs periodically display error below.
ERROR ODataFunctionProcessorImpl - Unexpected exception when executing a function. javax.persistence.PersistenceException:
org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection …
Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Caused by: java.sql.SQLRecoverableException: IO Error: Socket read timed out … Caused by: oracle.net.ns.NetException: Socket read timed out
- At the time the errors display, Odata errors are seen in the web application
com.sdl.odata.client.api.exception.ODataClientRuntimeException: Unable to call OData service for "https://HOSTNAME:PORT_NUMBER/client/v4/content.svc" URL
and service query "/GetDynamicMetaFunctionImport(Url='http%2HOSTNAME_FILEPATH/BINARY_NAME.css',ItemType='BinaryMeta')" }
- Administrator sees that memory is not being released on application server, and is concerned this will lead to a degradation of service. - JVM heap gradually increases over time, for a span of about 3 days. * Eventually the committed heap exceeds the max limit, causing the application to crash. * Caching was consuming a significant amount of heap memory. * Memory was not being released after traffic slows down (unlike the CPU) and full garbage collection was not happening. - EHCache is enabled and set to 5 minutes.