Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Cannot use MariaDbPoolDataSource as Target Data Source #957

Closed
yakugama opened this issue Apr 9, 2024 · 2 comments
Closed

Cannot use MariaDbPoolDataSource as Target Data Source #957

yakugama opened this issue Apr 9, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@yakugama
Copy link

yakugama commented Apr 9, 2024

Describe the bug

Setting targetDataSourceClassName to 'org.mariadb.jdbc.MariaDbPoolDataSource' produces

java.sql.SQLException: Unexpected DataSource class. Expected class: org.mariadb.jdbc.MariaDbDataSource, actual class: org.mariadb.jdbc.MariaDbPoolDataSource.
 	at software.amazon.jdbc.targetdriverdialect.MariadbDriverHelper.prepareDataSource(MariadbDriverHelper.java:51)
 	at software.amazon.jdbc.targetdriverdialect.MariadbTargetDriverDialect.prepareDataSource(MariadbTargetDriverDialect.java:86)
 	at software.amazon.jdbc.DataSourceConnectionProvider.connect(DataSourceConnectionProvider.java:142)
 	at software.amazon.jdbc.plugin.DefaultConnectionPlugin.connectInternal(DefaultConnectionPlugin.java:203)
	at software.amazon.jdbc.plugin.DefaultConnectionPlugin.connect(DefaultConnectionPlugin.java:191)

MariadbTargetDriverDialect actually allows MariaDbPoolDataSource to be used, but in MariadbDriverHelper there is a check dataSource instanceof MariaDbDataSource, which is false for MariaDbPoolDataSource.

Expected Behavior

Wrapper works properly, returning a wrapped MariaDbPoolConnection

What plugins are used? What other connection properties were set?

default plugins, connection properties for user, password and jdbcUrl

Current Behavior

[2024-04-09 19:12:46.710] Caused by: java.sql.SQLException: Unexpected DataSource class. Expected class: org.mariadb.jdbc.MariaDbDataSource, actual class: org.mariadb.jdbc.MariaDbPoolDataSource.
[2024-04-09 19:12:46.710] 	at software.amazon.jdbc.targetdriverdialect.MariadbDriverHelper.prepareDataSource(MariadbDriverHelper.java:51)
[2024-04-09 19:12:46.710] 	at software.amazon.jdbc.targetdriverdialect.MariadbTargetDriverDialect.prepareDataSource(MariadbTargetDriverDialect.java:86)
[2024-04-09 19:12:46.711] 	at software.amazon.jdbc.DataSourceConnectionProvider.connect(DataSourceConnectionProvider.java:142)
[2024-04-09 19:12:46.711] 	at software.amazon.jdbc.plugin.DefaultConnectionPlugin.connectInternal(DefaultConnectionPlugin.java:203)
[2024-04-09 19:12:46.711] 	at software.amazon.jdbc.plugin.DefaultConnectionPlugin.connect(DefaultConnectionPlugin.java:191)
[2024-04-09 19:12:46.712] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$connect$6(ConnectionPluginManager.java:369)
[2024-04-09 19:12:46.712] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$0(ConnectionPluginManager.java:259)
[2024-04-09 19:12:46.712] 	at software.amazon.jdbc.ConnectionPluginManager.executeWithTelemetry(ConnectionPluginManager.java:236)
[2024-04-09 19:12:46.712] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$makePluginChainFunc$1(ConnectionPluginManager.java:259)
[2024-04-09 19:12:46.713] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$2(ConnectionPluginManager.java:264)
[2024-04-09 19:12:46.713] 	at software.amazon.jdbc.plugin.efm2.HostMonitoringConnectionPlugin.connectInternal(HostMonitoringConnectionPlugin.java:234)
[2024-04-09 19:12:46.713] 	at software.amazon.jdbc.plugin.efm2.HostMonitoringConnectionPlugin.connect(HostMonitoringConnectionPlugin.java:229)
[2024-04-09 19:12:46.713] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$connect$6(ConnectionPluginManager.java:369)
[2024-04-09 19:12:46.713] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$3(ConnectionPluginManager.java:263)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.executeWithTelemetry(ConnectionPluginManager.java:236)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$makePluginChainFunc$4(ConnectionPluginManager.java:263)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$2(ConnectionPluginManager.java:264)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.plugin.staledns.AuroraStaleDnsHelper.getVerifiedConnection(AuroraStaleDnsHelper.java:69)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.plugin.failover.FailoverConnectionPlugin.connectInternal(FailoverConnectionPlugin.java:777)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.plugin.failover.FailoverConnectionPlugin.connect(FailoverConnectionPlugin.java:770)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$connect$6(ConnectionPluginManager.java:369)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$3(ConnectionPluginManager.java:263)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.executeWithTelemetry(ConnectionPluginManager.java:236)
[2024-04-09 19:12:46.714] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$makePluginChainFunc$4(ConnectionPluginManager.java:263)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$2(ConnectionPluginManager.java:264)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.plugin.AuroraConnectionTrackerPlugin.connectInternal(AuroraConnectionTrackerPlugin.java:91)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.plugin.AuroraConnectionTrackerPlugin.connect(AuroraConnectionTrackerPlugin.java:84)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$connect$6(ConnectionPluginManager.java:369)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$null$3(ConnectionPluginManager.java:263)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.ConnectionPluginManager.executeWithTelemetry(ConnectionPluginManager.java:236)
[2024-04-09 19:12:46.715] 	at software.amazon.jdbc.ConnectionPluginManager.lambda$makePluginChainFunc$4(ConnectionPluginManager.java:263)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.ConnectionPluginManager.executeWithSubscribedPlugins(ConnectionPluginManager.java:226)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.ConnectionPluginManager.connect(ConnectionPluginManager.java:366)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.wrapper.ConnectionWrapper.init(ConnectionWrapper.java:160)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.wrapper.ConnectionWrapper.<init>(ConnectionWrapper.java:105)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.ds.AwsWrapperDataSource.createConnectionWrapper(AwsWrapperDataSource.java:255)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.ds.AwsWrapperDataSource.getConnection(AwsWrapperDataSource.java:210)
[2024-04-09 19:12:46.716] 	at software.amazon.jdbc.ds.AwsWrapperDataSource.getConnection(AwsWrapperDataSource.java:98)

Reproduction Steps

AwsWrapperDataSource ds = new AwsWrapperDataSource();
ds.setTargetDataSourceClassName(MariaDbPoolDataSource.class.getName());
ds.setUser("user");
ds.setPassword("password");
ds.setJdbcUrl("jdbc:mariadb://127.0.0.1:3306/myDb?dumpQueriesOnException=true&minPoolSize=20&maxPoolSize=20&useServerPrepStmts=true");
ds.getConnection();

Possible Solution

No response

Additional Information/Context

No response

The AWS Advanced JDBC Driver version used

2.3.5

JDK version used

Corretto-11.0.22.7.1

Operating System and version

Windows 10

@sergiyvamz
Copy link
Contributor

Hello @yakugama

Thanks for reaching out and raising this issue.

Fix #958 is available on our latest snapshot build.
Could you check it out and let us know if the issue still persists?

Thank you!

@karenc-bq karenc-bq added the pending release Resolution implemented, pending official release label Apr 11, 2024
@yakugama
Copy link
Author

Hi,
Thank you for the quick fix, it works now.

@hsuamz hsuamz removed the pending release Resolution implemented, pending official release label Jun 25, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants