来自Spring的Redshift连接花费的时间太长

时间:2018-12-07 01:40:20

标签: java spring amazon-redshift

我面临一个奇怪的问题,Spring应用程序使用Camel库监听ActiveMQ并在Redshift数据库中执行一些DB操作。

列出了要在事务中运行的使用者。

当接收到一条消息时,ActiveMQ会启动一个Transaction并发送给Spring侦听器,该侦听器的方法带有@Transactional注释。此方法需要Redshift连接并执行一些操作。

我观察到的是,方法调用本身需要很长时间。我在方法中的第一条语句中有一条日志语句,它在调用此方法的最后一条语句大约15-20分钟后输出。

以下是日志:(注意时间。尝试在22:42进行交易,但只能在22:58之前建立连接)

2018-12-06 22:42:43.619 DEBUG 6 --- [xport.redshift]] o.s.j.d.DataSourceTransactionManager     : Creating new transaction with name [com.blss.retailServices.dataExportRouter.controllers.impl.RedShiftDataExportControllerImpl.exportSaleTransaction]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; ''
...
...
2018-12-06 22:58:31.013 DEBUG 6 --- [xport.redshift]] o.s.j.d.DataSourceTransactionManager     : Acquired Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@13163c3c]]] for JDBC transaction
2018-12-06 22:58:31.017 DEBUG 6 --- [xport.redshift]] o.s.j.d.DataSourceTransactionManager     : Switching JDBC Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@13163c3c]]] to manual commit
2018-12-06 22:58:32.679 DEBUG 6 --- [xport.redshift]] o.s.j.d.DataSourceTransactionManager     : Initiating transaction commit
2018-12-06 22:58:32.679 DEBUG 6 --- [xport.redshift]] o.s.j.d.DataSourceTransactionManager     : Committing JDBC transaction on Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@13163c3c]]]
2018-12-06 22:58:33.200 DEBUG 6 --- [xport.redshift]] o.s.j.d.DataSourceTransactionManager     : Releasing JDBC Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@13163c3c]]] after transaction
2018-12-06 22:58:33.200 DEBUG 6 --- [xport.redshift]] o.s.jdbc.datasource.DataSourceUtils      : Returning JDBC Connection to DataSource

什么会导致此问题?

我看过数据库连接池,它具有maxActive = 100,在数据库启动时应该不会耗尽,并且队列中只有一条消息。

0 个答案:

没有答案