Skip to content
This repository was archived by the owner on Mar 23, 2026. It is now read-only.

Commit 1b139c3

Browse files
committed
feat(jdbc): enable gRPC Keep-Alive for Storage Read API
1 parent 0966b14 commit 1b139c3

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import com.google.api.gax.core.CredentialsProvider;
2020
import com.google.api.gax.core.FixedCredentialsProvider;
21+
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
2122
import com.google.api.gax.retrying.RetrySettings;
2223
import com.google.api.gax.rpc.FixedHeaderProvider;
2324
import com.google.api.gax.rpc.HeaderProvider;
@@ -1053,10 +1054,23 @@ private BigQueryReadClient getBigQueryReadClientConnection() throws IOException
10531054
if (this.universeDomain != null) {
10541055
bigQueryReadSettings.setUniverseDomain(this.universeDomain);
10551056
}
1056-
if (this.transportChannelProvider != null) {
1057-
bigQueryReadSettings.setTransportChannelProvider(this.transportChannelProvider);
1057+
TransportChannelProvider activeProvider = this.transportChannelProvider;
1058+
if (activeProvider == null) {
1059+
activeProvider = BigQueryReadSettings.defaultGrpcTransportProviderBuilder().build();
1060+
}
1061+
1062+
if (activeProvider instanceof InstantiatingGrpcChannelProvider) {
1063+
activeProvider =
1064+
((InstantiatingGrpcChannelProvider) activeProvider)
1065+
.toBuilder()
1066+
.setKeepAliveTime(org.threeten.bp.Duration.ofSeconds(10))
1067+
.setKeepAliveTimeout(org.threeten.bp.Duration.ofSeconds(5))
1068+
.setKeepAliveWithoutCalls(true)
1069+
.build();
10581070
}
10591071

1072+
bigQueryReadSettings.setTransportChannelProvider(activeProvider);
1073+
10601074
return BigQueryReadClient.create(bigQueryReadSettings.build());
10611075
}
10621076

0 commit comments

Comments
 (0)