From a328a3bafc502751c387a9ba9d0dbd6f059ee79f Mon Sep 17 00:00:00 2001 From: qxo <49526356@qq.com> Date: Sat, 10 Aug 2019 22:46:17 +0800 Subject: [PATCH] jdbc-commons:reduce unnecessary call ThreadLocal with ContextManager#stopSpan(span) (#3244) --- .../apm/plugin/jdbc/trace/CallableStatementTracing.java | 5 ++--- .../apm/plugin/jdbc/trace/PreparedStatementTracing.java | 5 ++--- .../apache/skywalking/apm/plugin/jdbc/ConnectionTracing.java | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/CallableStatementTracing.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/CallableStatementTracing.java index d71f3f6a9..f9face33d 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/CallableStatementTracing.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/CallableStatementTracing.java @@ -36,8 +36,8 @@ public class CallableStatementTracing { public static R execute(java.sql.CallableStatement realStatement, ConnectionInfo connectInfo, String method, String sql, Executable exec) throws SQLException { + AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/CallableStatement/" + method, connectInfo.getDatabasePeer()); try { - AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/CallableStatement/" + method, connectInfo.getDatabasePeer()); Tags.DB_TYPE.set(span, "sql"); SpanLayer.asDB(span); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); @@ -45,12 +45,11 @@ public class CallableStatementTracing { span.setComponent(connectInfo.getComponent()); return exec.exe(realStatement, sql); } catch (SQLException e) { - AbstractSpan span = ContextManager.activeSpan(); span.errorOccurred(); span.log(e); throw e; } finally { - ContextManager.stopSpan(); + ContextManager.stopSpan(span); } } diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/PreparedStatementTracing.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/PreparedStatementTracing.java index 318ecf224..e53582901 100644 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/PreparedStatementTracing.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/main/java/org/apache/skywalking/apm/plugin/jdbc/trace/PreparedStatementTracing.java @@ -36,8 +36,8 @@ public class PreparedStatementTracing { public static R execute(java.sql.PreparedStatement realStatement, ConnectionInfo connectInfo, String method, String sql, Executable exec) throws SQLException { + final AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/PreparedStatement/" + method, connectInfo.getDatabasePeer()); try { - AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/PreparedStatement/" + method, connectInfo.getDatabasePeer()); Tags.DB_TYPE.set(span, "sql"); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); @@ -46,12 +46,11 @@ public class PreparedStatementTracing { SpanLayer.asDB(span); return exec.exe(realStatement, sql); } catch (SQLException e) { - AbstractSpan span = ContextManager.activeSpan(); span.errorOccurred(); span.log(e); throw e; } finally { - ContextManager.stopSpan(); + ContextManager.stopSpan(span); } } diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/ConnectionTracing.java b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/ConnectionTracing.java index 3ec0b75ee..2185e90f2 100755 --- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/ConnectionTracing.java +++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/src/test/java/org/apache/skywalking/apm/plugin/jdbc/ConnectionTracing.java @@ -31,8 +31,8 @@ public class ConnectionTracing { public static R execute(java.sql.Connection realConnection, ConnectionInfo connectInfo, String method, String sql, Executable exec) throws SQLException { + AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/Connection/" + method, connectInfo.getDatabasePeer()); try { - AbstractSpan span = ContextManager.createExitSpan(connectInfo.getDBType() + "/JDBI/Connection/" + method, connectInfo.getDatabasePeer()); Tags.DB_TYPE.set(span, "sql"); Tags.DB_INSTANCE.set(span, connectInfo.getDatabaseName()); Tags.DB_STATEMENT.set(span, sql); @@ -40,12 +40,11 @@ public class ConnectionTracing { SpanLayer.asDB(span); return exec.exe(realConnection, sql); } catch (SQLException e) { - AbstractSpan span = ContextManager.activeSpan(); span.errorOccurred(); span.log(e); throw e; } finally { - ContextManager.stopSpan(); + ContextManager.stopSpan(span); } }