Skip to content

Commit 5bab5b1

Browse files
committed
chore: add timstamp to connection id
1 parent dbd607d commit 5bab5b1

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
import java.util.concurrent.ConcurrentHashMap;
6262
import java.util.concurrent.Executor;
6363
import java.util.concurrent.TimeUnit;
64-
import java.util.concurrent.atomic.AtomicLong;
6564

6665
/**
6766
* An implementation of {@link java.sql.Connection} for establishing a connection with BigQuery and
@@ -74,7 +73,6 @@ public class BigQueryConnection extends BigQueryNoOpsConnection {
7473
private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString());
7574
String connectionClassName = this.toString();
7675
private final String connectionId;
77-
private static final AtomicLong connectionIdCounter = new AtomicLong(1);
7876
private static final String DEFAULT_JDBC_TOKEN_VALUE = "Google-BigQuery-JDBC-Driver";
7977
private static final String DEFAULT_VERSION = "0.0.0";
8078
private HeaderProvider headerProvider;
@@ -149,7 +147,7 @@ public class BigQueryConnection extends BigQueryNoOpsConnection {
149147
}
150148

151149
BigQueryConnection(String url, DataSource ds) throws IOException {
152-
this.connectionId = String.valueOf(connectionIdCounter.getAndIncrement());
150+
this.connectionId = BigQueryJdbcMdc.generateConnectionId();
153151
try (BigQueryJdbcMdc.MdcCloseable mdc =
154152
BigQueryJdbcMdc.registerInstance(this, this.connectionId)) {
155153
LOG.finest("++enter++");

java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcMdc.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.cloud.bigquery.jdbc;
1818

19+
import java.time.LocalDateTime;
20+
import java.time.format.DateTimeFormatter;
1921
import java.util.UUID;
2022
import java.util.concurrent.ConcurrentHashMap;
2123

@@ -34,14 +36,20 @@ class BigQueryJdbcMdc {
3436
private static final InheritableThreadLocal<String> currentConnectionId =
3537
new InheritableThreadLocal<>();
3638

39+
static String generateConnectionId() {
40+
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss"));
41+
String shortUuid = UUID.randomUUID().toString().substring(0, 8);
42+
return timestamp + "-" + shortUuid;
43+
}
44+
3745
static MdcCloseable registerInstance(BigQueryConnection connection, String id) {
3846
if (connection != null) {
3947
String cleanId =
4048
instanceIds.computeIfAbsent(
4149
connection,
4250
k -> {
43-
String suffix = (id != null && !id.isEmpty()) ? id : UUID.randomUUID().toString();
44-
return "JdbcConnection-" + suffix;
51+
String baseId = (id != null && !id.isEmpty()) ? id : generateConnectionId();
52+
return "JdbcConnection-" + baseId;
4553
});
4654

4755
currentConnectionId.set(cleanId);

0 commit comments

Comments
 (0)