Ek het 'n Java-webtoepassing wat in glassfish ontplooi is. Hierdie toepassing is in wisselwerking met Mariadb-bediener. Skielik hou die toepassing op om te werk. Ek gaan die app.log en glassfish-bedienerlogboek na en ek het die volgende resultate:

app.log

Could not open JDBC Connection for transaction; nested exception is java.sql.SQLNonTransientConnectionException: Could not send query: Last packet not finished

bediener.log

### The error may exist in file [/opt/glassfish3/glassfish/domains/domain1/applications/exampleApp/WEB-INF/class/model/xml/ParameterMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT NOW();
### Cause: java.sql.SQLNonTransientConnectionException: Could not send query: Last packet not finished
; SQL []; Could not send query: Last packet not finished; nested exception is java.sql.SQLNonTransientConnectionException: Could not send query: Last packet not finished|#]

Die toepassing herhaal dieselfde databasisbewerkings elke 5 minute.

Ek het probeer om die toepassing per glasvis te herlaai, maar dit het nie gewerk nie. Die enigste manier is om die bediener te herbegin en dit werk maar nie vir lank nie.

Wat gebeur vir hierdie saak? of Wat kan ek doen?

answer

Ek het die antwoord gekry. Wat ek gedoen het, is om wait_timeout-parameter in server.cnf te verander. Die waarde was 30 en ek het verander na sy verstekwaarde 28800. Dit kan laer as 28800 gestel word, maar dit is 'n ander probleem. Wat gebeur het, was dat die java-toepassing elke 5 minute verskeie invoegbewerkings uitgevoer het, sodat die verbinding deur Mariadb-bediener gesluit is as gevolg van wait_timeout. Ek wonder die DB-verbinding was enkelvoudig en die toepassing het nie bevestig of die verbinding gesluit is nie.