I am using Amazon RDS (PostgreSQL) for DB management activities in WSO2 EI 6.4.0 docker container.

Database related operations are working fine. But intermittently facing below exception.

Caused by: java.net.UnknownHostException: yyyy.xxx.us-west-1.rds.amazonaws.com

Below is the stack trace:

[2024-03-25 04:30:08,007] [-1234] [] [pool-28-thread-16661] ERROR {org.apache.synapse.mediators.db.DBLookupMediator} -  SQL Exception occurred while executing statement : select column1,column2 from schema.tabel_name where task_name=? against DataSource : jdbc/DSETL
org.postgresql.util.PSQLException: The connection attempt failed.
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:354)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:263)
    at org.postgresql.Driver.makeConnection(Driver.java:444)
    at org.postgresql.Driver.connect(Driver.java:297)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:730)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:664)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:200)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128)
    at org.apache.synapse.mediators.db.DBLookupMediator.processStatement(DBLookupMediator.java:58)
    at org.apache.synapse.mediators.db.AbstractDBMediator.mediate(AbstractDBMediator.java:233)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:37)
    at org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:69)
    at org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:134)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:104)
    at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:148)
    at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:84)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
    at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:224)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.startup.tasks.MessageInjector.execute(MessageInjector.java:321)
    at org.wso2.carbon.mediation.ntask.NTaskAdapter.execute(NTaskAdapter.java:98)
    at org.wso2.carbon.ntask.core.impl.TaskQuartzJobAdapter.execute(TaskQuartzJobAdapter.java:67)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.UnknownHostException: yyyy.xxx.us-west-1.rds.amazonaws.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at org.postgresql.core.PGStream.createSocket(PGStream.java:243)
    at org.postgresql.core.PGStream.<init>(PGStream.java:98)
    at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:132)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:258)
    ... 39 more

Below are the steps followed to fix the issue:

Upgraded postgreSQL driver from 42.2.0 to 42.7.0 and
added below mentioned dependency in pom.xml file of CAR project and deployed the same.

<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.0</version>
</dependency>

However I'm still facing the same DB connectivity issue intermittently.

Can someone please suggest way to resolve this issue?

1

There are 1 best solutions below

1
Pranand Vathare On

First install postgres on your machine and check are you able connect from your machine to rds server. Later you can go ahead with wso2 mediators for connection/debugging.