View Revisions: Issue #6875

Summary 0006875: Improve MonitorService (Job) to support the HikariCP connection pool
Revision 2025-05-08 19:53 by pbelov
Additional Information FROM: 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) [?:?]
Revision 2025-05-08 19:48 by pbelov
Additional Information Figured I'd just bring this up, not sure if there is anything actionable yet. 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) [?:?]