@@ -151,6 +151,7 @@ public class SpannerOptions extends ServiceOptions<Spanner, SpannerOptions> {
151151 private final InstanceAdminStubSettings instanceAdminStubSettings ;
152152 private final DatabaseAdminStubSettings databaseAdminStubSettings ;
153153 private final Duration partitionedDmlTimeout ;
154+ private final boolean grpcGcpExtensionEnabled ;
154155 private final GcpManagedChannelOptions grpcGcpOptions ;
155156 private final boolean autoThrottleAdministrativeRequests ;
156157 private final RetrySettings retryAdministrativeRequestsSettings ;
@@ -797,6 +798,7 @@ protected SpannerOptions(Builder builder) {
797798 throw SpannerExceptionFactory .newSpannerException (e );
798799 }
799800 partitionedDmlTimeout = builder .partitionedDmlTimeout ;
801+ grpcGcpExtensionEnabled = builder .grpcGcpExtensionEnabled ;
800802 grpcGcpOptions = builder .grpcGcpOptions ;
801803 autoThrottleAdministrativeRequests = builder .autoThrottleAdministrativeRequests ;
802804 retryAdministrativeRequestsSettings = builder .retryAdministrativeRequestsSettings ;
@@ -1023,6 +1025,7 @@ public static class Builder
10231025 private DatabaseAdminStubSettings .Builder databaseAdminStubSettingsBuilder =
10241026 DatabaseAdminStubSettings .newBuilder ();
10251027 private Duration partitionedDmlTimeout = Duration .ofHours (2L );
1028+ private boolean grpcGcpExtensionEnabled = true ;
10261029 private GcpManagedChannelOptions grpcGcpOptions ;
10271030 private RetrySettings retryAdministrativeRequestsSettings =
10281031 DEFAULT_ADMIN_REQUESTS_LIMIT_EXCEEDED_RETRY_SETTINGS ;
@@ -1094,6 +1097,7 @@ protected Builder() {
10941097 this .instanceAdminStubSettingsBuilder = options .instanceAdminStubSettings .toBuilder ();
10951098 this .databaseAdminStubSettingsBuilder = options .databaseAdminStubSettings .toBuilder ();
10961099 this .partitionedDmlTimeout = options .partitionedDmlTimeout ;
1100+ this .grpcGcpExtensionEnabled = options .grpcGcpExtensionEnabled ;
10971101 this .grpcGcpOptions = options .grpcGcpOptions ;
10981102 this .autoThrottleAdministrativeRequests = options .autoThrottleAdministrativeRequests ;
10991103 this .retryAdministrativeRequestsSettings = options .retryAdministrativeRequestsSettings ;
@@ -1569,12 +1573,14 @@ public Builder enableGrpcGcpExtension() {
15691573 * Multiplexed sessions are not supported for gRPC-GCP.
15701574 */
15711575 public Builder enableGrpcGcpExtension (GcpManagedChannelOptions options ) {
1576+ this .grpcGcpExtensionEnabled = true ;
15721577 this .grpcGcpOptions = options ;
15731578 return this ;
15741579 }
15751580
1576- /** Disables gRPC-GCP extension. */
1581+ /** Disables gRPC-GCP extension and uses GAX channel pool instead . */
15771582 public Builder disableGrpcGcpExtension () {
1583+ this .grpcGcpExtensionEnabled = false ;
15781584 return this ;
15791585 }
15801586
@@ -1787,7 +1793,8 @@ public SpannerOptions build() {
17871793 credentials = environment .getDefaultExperimentalHostCredentials ();
17881794 }
17891795 if (this .numChannels == null ) {
1790- this .numChannels = GRPC_GCP_ENABLED_DEFAULT_CHANNELS ;
1796+ this .numChannels =
1797+ this .grpcGcpExtensionEnabled ? GRPC_GCP_ENABLED_DEFAULT_CHANNELS : DEFAULT_CHANNELS ;
17911798 }
17921799
17931800 synchronized (lock ) {
@@ -1982,7 +1989,7 @@ public Duration getPartitionedDmlTimeoutDuration() {
19821989 }
19831990
19841991 public boolean isGrpcGcpExtensionEnabled () {
1985- return true ;
1992+ return grpcGcpExtensionEnabled ;
19861993 }
19871994
19881995 public GcpManagedChannelOptions getGrpcGcpOptions () {
0 commit comments