Submitters of #1308 and #1631 take note. HikariCP will no longer evict connections due to encountering ``SQLTimeoutException``. If you need to "restore" this behavior consult the pool properties ``exceptionOverride`` or ``exceptionOverrideClassName``.
When autoCommit is false, if setReadOnly is called after some queries, then closing the connection leads to dirty (transaction opened) connection being reused.
thredName should not have whitespace
In most logging layout.ConversionPattern whitespace was a field separator,
so if the thredName with whitespace, then the fields was not fixed it's not friendly for logging sort , ie: sort -rnk $N
Before this commit, exceptionOverrideClass may be loaded by different ClassLoader, and two instances are created but only the latter one is used. This commit make sure the class will only loaded once and only one instance is created.
Fix GH-2124
Fix GH-2171
* Don't try to cast metric registry before it is checked for null
* Simplify the condition check
* Use previously obtained object instead of calling the same getter one more time
---------
Co-authored-by: Alexander Sinuskin <Alexander.Sinuskin.ext@deutsche-boerse.com>
TRANSACTION_LAST_COMMITTED - This allows a readonly user to access a row and read the last commited data while Informix has an open lock against the data.
Unlike TRANSACTION_READ_UNCOMMITTED which would also accomplish the same but would end up allowing dirty reads. This would lead to us reading data that's potentially either rolledback or never actually commited.
TRANSACTION_CURSOR_STABILITY - Cursor stability will place a lock on a row as it's fetched which ensures that the data doesn't change while the program reads the data.
Documentation for cursor stability can be found here https://www.ibm.com/docs/en/informix-servers/12.10?topic=level-informix-cursor-stability-isolation
Documentation on Informix transaction isolation levels are here https://www.ibm.com/docs/en/informix-servers/12.10?topic=database-informix-environment-variables-informix-jdbc-driver
Co-authored-by: Liam Sorsby <liam.sorsby@skybettingandgaming.com>
Previously, this matches implementation was ignoring the `name` passed
in and instead comparing the *literal* `"testMetricWait.pool.Wait"` to
the dynamically-created
`MetricRegistry.name("testMetricWait", "pool", "Wait")`.
This commit updates the matches implementation to instead compare the
`name` passed in.
This brings it in line with the other implementations in the same file.