View Issue Details

IDProjectCategoryView StatusLast Update
0006875SymmetricDS ProImprovementpublic2025-07-23 18:34
Reporterkdelorey Assigned To 
Prioritynormal 
Status confirmedResolutionopen 
Product Version3.15.0 
Target Version3.17.0 
Summary0006875: Improve MonitorService (Job) to support the HikariCP connection pool
DescriptionImprove MonitorService (Job) to support the HikariCP connection pool.

Currently, an exception is thrown in the com.jumpmind.symmetric.console.service.impl.MonitorService (Job) while casing the com.zaxxer.hikari.HikariDataSource to org.apache.commons.dbcp2.BasicDataSource

See Additional Information section.
Steps To Reproduce ?
Additional InformationFROM: Kevin D.
We are using the db.jndi.name option to configure the symmetric datasource for the corp instance, and everything is working great.

However, the MonitorService (Job) seems to be making an assumption about the data source and doing a cast that is not valid. So its every few seconds or so throwing the following:
2025-05-07 22:35:16.423 [SymmetricDS-job-16] ERROR Exception while executing job 'Monitor' - org.jumpmind.symmetric.job.AbstractJob.invoke(AbstractJob.java:21
7)
java.lang.ClassCastException: class com.zaxxer.hikari.HikariDataSource cannot be cast to class org.apache.commons.dbcp2.BasicDataSource (com.zaxxer.hikari.Hik
ariDataSource and org.apache.commons.dbcp2.BasicDataSource are in unnamed module of loader 'app')
    at com.jumpmind.symmetric.console.impl.fw.a(InsightTypeConnectionPool.java:35) ~[symmetric-pro-3.15.15.jar:3.15.15]
    at com.jumpmind.symmetric.console.service.impl.MonitorService.updateMonitor(MonitorService.java:258) ~[symmetric-pro-3.15.15.jar:3.15.15]
    at com.jumpmind.symmetric.console.service.impl.MonitorService.update(MonitorService.java:183) ~[symmetric-pro-3.15.15.jar:3.15.15]
    at com.jumpmind.symmetric.console.impl.fn.doJob(MonitorJob.java:67) ~[symmetric-pro-3.15.15.jar:3.15.15]
    at org.jumpmind.symmetric.job.AbstractJob.invoke(AbstractJob.java:202) [symmetric-client-3.15.15.jar:3.15.15]
    at org.jumpmind.symmetric.job.AbstractJob.run(AbstractJob.java:268) [symmetric-client-3.15.15.jar:3.15.15]
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-6.1.14.jar:6.1.14]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
    at java.lang.Thread.run(Unknown Source) [?:?]
Tagsperformance

Activities

pbelov

2025-05-08 19:53

manager   ~0002946

Curious - how to reproduce / test this ?

pbelov

2025-05-08 19:58

manager   ~0002947

What is the target DB engine type(s)?

kdelorey

2025-07-22 13:17

reporter   ~0003262

Using the JNDI option with the Hikari wrapper on Postgres -- so you should be able to reproduce this the same way by using Hikari on JNDI.

Issue History

Date Modified Username Field Change
2025-05-08 19:48 pbelov New Issue
2025-05-08 19:53 pbelov Status new => feedback
2025-05-08 19:53 pbelov Additional Information Updated View Revisions
2025-05-08 19:53 pbelov Note Added: 0002946
2025-05-08 19:57 pbelov Tag Attached: performance
2025-05-08 19:58 pbelov Reporter pbelov => kdelorey
2025-05-08 19:58 pbelov Note Added: 0002947
2025-07-09 17:49 pmarzullo Status feedback => confirmed
2025-07-09 17:49 pmarzullo Target Version => 3.17.0
2025-07-22 13:17 kdelorey Note Added: 0003262