Author: reschke
Date: Fri Apr 1 11:49:12 2016
New Revision: 1737349
URL: http://svn.apache.org/viewvc?rev=1737349&view=rev
Log:
OAK-4156: RDBConnectionHandler: add logging when getting the connection takes
long
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java?rev=1737349&r1=1737348&r2=1737349&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
Fri Apr 1 11:49:12 2016
@@ -19,9 +19,7 @@ package org.apache.jackrabbit.oak.plugin
import java.io.Closeable;
import java.io.IOException;
import java.sql.Connection;
-import java.sql.ResultSet;
import java.sql.SQLException;
-import java.sql.Statement;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -59,7 +57,7 @@ public class RDBConnectionHandler implem
* Obtain a {@link Connection} suitable for read-only operations.
*/
public @Nonnull Connection getROConnection() throws SQLException {
- Connection c = getDataSource().getConnection();
+ Connection c = getConnection();
c.setAutoCommit(false);
setReadOnly(c, true);
return c;
@@ -69,7 +67,7 @@ public class RDBConnectionHandler implem
* Obtain a {@link Connection} suitable for read-write operations.
*/
public @Nonnull Connection getRWConnection() throws SQLException {
- Connection c = getDataSource().getConnection();
+ Connection c = getConnection();
c.setAutoCommit(false);
setReadOnly(c, false);
return c;
@@ -143,6 +141,19 @@ public class RDBConnectionHandler implem
return result;
}
+ @Nonnull
+ private Connection getConnection() throws IllegalStateException,
SQLException {
+ long ts = System.currentTimeMillis();
+ Connection c = getDataSource().getConnection();
+ if (LOG.isDebugEnabled()) {
+ long elapsed = System.currentTimeMillis() - ts;
+ if (elapsed >= 100) {
+ LOG.debug("Obtaining a new connection from " + this.ds + "
took " + elapsed + "ms");
+ }
+ }
+ return c;
+ }
+
// workaround for broken connection wrappers
// see https://issues.apache.org/jira/browse/OAK-2918