Skip to content

Commit 535737c

Browse files
committed
Check connectionID
1 parent 50211a2 commit 535737c

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

ojdbc-provider-observability/src/test/java/oracle/jdbc/provider/observability/ObservabilityTraceEventListenerTest.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import jdk.jfr.consumer.RecordedEvent;
3434
import jdk.jfr.consumer.RecordingFile;
3535
import oracle.jdbc.DatabaseFunction;
36+
import oracle.jdbc.driver.OracleConnection;
3637
import oracle.jdbc.provider.TestProperties;
3738
import oracle.jdbc.provider.observability.configuration.ObservabilityConfiguration;
3839

@@ -70,11 +71,13 @@ public void JFRTraceTest(boolean sensitiveDataEnabled) throws Exception {
7071
ObservabilityConfiguration.getInstance().setEnabledTracers("JFR");
7172
ObservabilityConfiguration.getInstance().setSensitiveDataEnabled(sensitiveDataEnabled);
7273
Configuration configuration = Configuration.getConfiguration("default");
74+
String connectionId = null;
7375
try (Recording recording = new Recording(configuration)) {
7476
recording.start();
7577
try (Connection connection = DriverManager.getConnection(url, userName, password);
7678
Statement statement = connection.createStatement();
7779
ResultSet resultSet = statement.executeQuery("SELECT 'OK' FROM DUAL")) {
80+
connectionId = ((OracleConnection)connection).getNetConnectionId();
7881
while (resultSet.next()) {
7982
assertEquals("OK", resultSet.getString(1));
8083
}
@@ -88,7 +91,7 @@ public void JFRTraceTest(boolean sensitiveDataEnabled) throws Exception {
8891
if (event.getEventType().getCategoryNames().contains("Round trips")) {
8992
switch (event.getEventType().getName()) {
9093
case SESSION_KEY:
91-
assertNotNull(event.getString("connectionID"));
94+
assertEquals(connectionId, event.getString("connectionID"));
9295
assertNotNull(event.getString("databaseOperation"));
9396
// assertNull(event.getString("tenant"));
9497
assertNull(event.getString("sqlID"));
@@ -97,7 +100,7 @@ public void JFRTraceTest(boolean sensitiveDataEnabled) throws Exception {
97100
assertEquals(sensitiveDataEnabled, event.getString("databaseUser") != null);
98101
break;
99102
case AUTH_CALL:
100-
assertNotNull(event.getString("connectionID"));
103+
assertEquals(connectionId, event.getString("connectionID"));
101104
assertNotNull(event.getString("databaseOperation"));
102105
// assertNull(event.getString("tenant"));
103106
assertNull(event.getString("sqlID"));
@@ -107,7 +110,7 @@ public void JFRTraceTest(boolean sensitiveDataEnabled) throws Exception {
107110

108111
break;
109112
case EXECUTE_QUERY:
110-
assertNotNull(event.getString("connectionID"));
113+
assertEquals(connectionId, event.getString("connectionID"));
111114
assertNotNull(event.getString("databaseOperation"));
112115
// assertNotNull(event.getString("tenant"));
113116
assertNotNull(event.getString("sqlID"));
@@ -116,7 +119,7 @@ public void JFRTraceTest(boolean sensitiveDataEnabled) throws Exception {
116119
assertEquals(sensitiveDataEnabled, event.getString("databaseUser") != null);
117120
break;
118121
case LOGOFF:
119-
assertNotNull(event.getString("connectionID"));
122+
assertEquals(connectionId, event.getString("connectionID"));
120123
assertNotNull(event.getString("databaseOperation"));
121124
// assertNotNull(event.getString("tenant"));
122125
assertNull(event.getString("sqlID"));
@@ -141,10 +144,11 @@ public void OTELTraceTest(boolean sensitiveDataEnabled) throws Exception {
141144
ObservabilityConfiguration.getInstance().setEnabledTracers("OTEL");
142145
ObservabilityConfiguration.getInstance().setSensitiveDataEnabled(sensitiveDataEnabled);
143146
String otelUrl = url + "?oracle.jdbc.provider.traceEventListener=observability-trace-event-listener-provider";
147+
String connectionId = null;
144148
try (Connection connection = DriverManager.getConnection(otelUrl, userName, password);
145149
Statement statement = connection.createStatement();
146150
ResultSet resultSet = statement.executeQuery("SELECT 'OK' FROM DUAL")) {
147-
151+
connectionId = ((OracleConnection)connection).getNetConnectionId();
148152
while (resultSet.next()) {
149153
assertEquals("OK", resultSet.getString(1));
150154
}
@@ -157,6 +161,7 @@ public void OTELTraceTest(boolean sensitiveDataEnabled) throws Exception {
157161
Mockito.verify(spanBuilder, atLeastOnce()).startSpan();
158162
Mockito.verify(spanBuilder, Mockito.atLeast(4)).setAttribute("thread.id", Thread.currentThread().getId());
159163
Mockito.verify(spanBuilder, Mockito.atLeast(4)).setAttribute("thread.name", Thread.currentThread().getName());
164+
Mockito.verify(spanBuilder, Mockito.atLeast(1)).setAttribute("Connection ID", connectionId);
160165
Mockito.verify(spanBuilder, Mockito.times(1)).setAttribute("Database Operation", DatabaseFunction.SESSION_KEY.getDescription());
161166
Mockito.verify(spanBuilder, Mockito.times(1)).setAttribute("Database Operation", DatabaseFunction.AUTH_CALL.getDescription());
162167
Mockito.verify(spanBuilder, Mockito.times(1)).setAttribute("Database Operation", DatabaseFunction.EXECUTE_QUERY.getDescription());

0 commit comments

Comments
 (0)