@@ -906,7 +906,7 @@ class Database extends common.GrpcServiceObject {
906906 'Database.createBatchTransaction' ,
907907 this . _traceConfig ,
908908 span => {
909- this . pool_ . getSession ( ( err , session ) => {
909+ this . sessionFactory_ . getSession ( ( err , session ) => {
910910 if ( err ) {
911911 setSpanError ( span , err ) ;
912912 span . end ( ) ;
@@ -2285,26 +2285,28 @@ class Database extends common.GrpcServiceObject {
22852285 transactionTag : options . requestOptions ?. transactionTag ,
22862286 } ,
22872287 span => {
2288- this . pool_ . getSession ( ( err , session , transaction ) => {
2289- if ( ! err ) {
2290- if ( options . requestOptions ) {
2291- transaction ! . requestOptions = Object . assign (
2292- transaction ! . requestOptions || { } ,
2293- options . requestOptions ,
2288+ this . sessionFactory_ . getSessionForReadWrite (
2289+ ( err , session , transaction ) => {
2290+ if ( ! err ) {
2291+ if ( options . requestOptions ) {
2292+ transaction ! . requestOptions = Object . assign (
2293+ transaction ! . requestOptions || { } ,
2294+ options . requestOptions ,
2295+ ) ;
2296+ }
2297+ transaction ?. setReadWriteTransactionOptions (
2298+ options as RunTransactionOptions ,
22942299 ) ;
2300+ span . addEvent ( 'Using Session' , { 'session.id' : session ?. id } ) ;
2301+ transaction ! . _observabilityOptions = this . _observabilityOptions ;
2302+ this . _releaseOnEnd ( session ! , transaction ! , span ) ;
2303+ } else {
2304+ setSpanError ( span , err ) ;
22952305 }
2296- transaction ?. setReadWriteTransactionOptions (
2297- options as RunTransactionOptions ,
2298- ) ;
2299- span . addEvent ( 'Using Session' , { 'session.id' : session ?. id } ) ;
2300- transaction ! . _observabilityOptions = this . _observabilityOptions ;
2301- this . _releaseOnEnd ( session ! , transaction ! , span ) ;
2302- } else {
2303- setSpanError ( span , err ) ;
2304- }
2305- span . end ( ) ;
2306- cb ! ( err as grpc . ServiceError | null , transaction ) ;
2307- } ) ;
2306+ span . end ( ) ;
2307+ cb ! ( err as grpc . ServiceError | null , transaction ) ;
2308+ } ,
2309+ ) ;
23082310 } ,
23092311 ) ;
23102312 }
@@ -2525,8 +2527,8 @@ class Database extends common.GrpcServiceObject {
25252527 config : RequestConfig ,
25262528 callback ?: PoolRequestCallback ,
25272529 ) : void | Promise < Session > {
2528- const pool = this . pool_ ;
2529- pool . getSession ( ( err , session ) => {
2530+ const sessionFactory_ = this . sessionFactory_ ;
2531+ sessionFactory_ . getSessionForReadWrite ( ( err , session ) => {
25302532 if ( err ) {
25312533 callback ! ( err as ServiceError , null ) ;
25322534 return ;
@@ -2536,7 +2538,7 @@ class Database extends common.GrpcServiceObject {
25362538 span . addEvent ( 'Using Session' , { 'session.id' : session ?. id } ) ;
25372539 config . reqOpts . session = session ! . formattedName_ ;
25382540 this . request < Session > ( config , ( err , ...args ) => {
2539- pool . release ( session ! ) ;
2541+ sessionFactory_ . release ( session ! ) ;
25402542 callback ! ( err , ...args ) ;
25412543 } ) ;
25422544 } ) ;
@@ -2553,7 +2555,7 @@ class Database extends common.GrpcServiceObject {
25532555 makePooledStreamingRequest_ ( config : RequestConfig ) : Readable {
25542556 // eslint-disable-next-line @typescript-eslint/no-this-alias
25552557 const self = this ;
2556- const pool = this . pool_ ;
2558+ const sessionFactory_ = this . sessionFactory_ ;
25572559 let requestStream : CancelableDuplex ;
25582560 let session : Session | null ;
25592561 const waitForSessionStream = streamEvents ( through . obj ( ) ) ;
@@ -2569,12 +2571,12 @@ class Database extends common.GrpcServiceObject {
25692571 }
25702572 function releaseSession ( ) {
25712573 if ( session ) {
2572- pool . release ( session ) ;
2574+ sessionFactory_ . release ( session ) ;
25732575 session = null ;
25742576 }
25752577 }
25762578 waitForSessionStream . on ( 'reading' , ( ) => {
2577- pool . getSession ( ( err , session_ ) => {
2579+ sessionFactory_ . getSession ( ( err , session_ ) => {
25782580 const span = getActiveOrNoopSpan ( ) ;
25792581 if ( err ) {
25802582 setSpanError ( span , err as ServiceError ) ;
@@ -3339,64 +3341,66 @@ class Database extends common.GrpcServiceObject {
33393341 transactionTag : options . requestOptions ?. transactionTag ,
33403342 } ,
33413343 span => {
3342- this . pool_ . getSession ( ( err , session ?, transaction ?) => {
3343- if ( err ) {
3344- setSpanError ( span , err ) ;
3345- }
3344+ this . sessionFactory_ . getSessionForReadWrite (
3345+ ( err , session ?, transaction ?) => {
3346+ if ( err ) {
3347+ setSpanError ( span , err ) ;
3348+ }
33463349
3347- if ( err && isSessionNotFoundError ( err as grpc . ServiceError ) ) {
3348- span . addEvent ( 'No session available' , {
3349- 'session.id' : session ?. id ,
3350- } ) ;
3351- span . end ( ) ;
3352- this . runTransaction ( options , runFn ! ) ;
3353- return ;
3354- }
3350+ if ( err && isSessionNotFoundError ( err as grpc . ServiceError ) ) {
3351+ span . addEvent ( 'No session available' , {
3352+ 'session.id' : session ?. id ,
3353+ } ) ;
3354+ span . end ( ) ;
3355+ this . runTransaction ( options , runFn ! ) ;
3356+ return ;
3357+ }
33553358
3356- if ( err ) {
3357- span . end ( ) ;
3358- runFn ! ( err as grpc . ServiceError ) ;
3359- return ;
3360- }
3359+ if ( err ) {
3360+ span . end ( ) ;
3361+ runFn ! ( err as grpc . ServiceError ) ;
3362+ return ;
3363+ }
33613364
3362- transaction ! . _observabilityOptions = this . _observabilityOptions ;
3365+ transaction ! . _observabilityOptions = this . _observabilityOptions ;
33633366
3364- transaction ! . requestOptions = Object . assign (
3365- transaction ! . requestOptions || { } ,
3366- options . requestOptions ,
3367- ) ;
3367+ transaction ! . requestOptions = Object . assign (
3368+ transaction ! . requestOptions || { } ,
3369+ options . requestOptions ,
3370+ ) ;
33683371
3369- transaction ! . setReadWriteTransactionOptions (
3370- options as RunTransactionOptions ,
3371- ) ;
3372+ transaction ! . setReadWriteTransactionOptions (
3373+ options as RunTransactionOptions ,
3374+ ) ;
33723375
3373- const release = ( ) => {
3374- this . pool_ . release ( session ! ) ;
3375- span . end ( ) ;
3376- } ;
3376+ const release = ( ) => {
3377+ this . sessionFactory_ . release ( session ! ) ;
3378+ span . end ( ) ;
3379+ } ;
33773380
3378- const runner = new TransactionRunner (
3379- session ! ,
3380- transaction ! ,
3381- runFn ! ,
3382- options ,
3383- ) ;
3381+ const runner = new TransactionRunner (
3382+ session ! ,
3383+ transaction ! ,
3384+ runFn ! ,
3385+ options ,
3386+ ) ;
33843387
3385- runner . run ( ) . then ( release , err => {
3386- setSpanError ( span , err ! ) ;
3388+ runner . run ( ) . then ( release , err => {
3389+ setSpanError ( span , err ! ) ;
33873390
3388- if ( isSessionNotFoundError ( err ) ) {
3389- span . addEvent ( 'No session available' , {
3390- 'session.id' : session ?. id ,
3391- } ) ;
3392- release ( ) ;
3393- this . runTransaction ( options , runFn ! ) ;
3394- } else {
3395- setImmediate ( runFn ! , err ) ;
3396- release ( ) ;
3397- }
3398- } ) ;
3399- } ) ;
3391+ if ( isSessionNotFoundError ( err ) ) {
3392+ span . addEvent ( 'No session available' , {
3393+ 'session.id' : session ?. id ,
3394+ } ) ;
3395+ release ( ) ;
3396+ this . runTransaction ( options , runFn ! ) ;
3397+ } else {
3398+ setImmediate ( runFn ! , err ) ;
3399+ release ( ) ;
3400+ }
3401+ } ) ;
3402+ } ,
3403+ ) ;
34003404 } ,
34013405 ) ;
34023406 }
@@ -3481,7 +3485,9 @@ class Database extends common.GrpcServiceObject {
34813485 : { } ;
34823486
34833487 let sessionId = '' ;
3484- const getSession = this . pool_ . getSession . bind ( this . pool_ ) ;
3488+ const getSession = this . sessionFactory_ . getSessionForReadWrite . bind (
3489+ this . sessionFactory_ ,
3490+ ) ;
34853491
34863492 return startTrace (
34873493 'Database.runTransactionAsync' ,
@@ -3519,7 +3525,7 @@ class Database extends common.GrpcServiceObject {
35193525 throw e ;
35203526 } finally {
35213527 span . end ( ) ;
3522- this . pool_ . release ( session ) ;
3528+ this . sessionFactory_ . release ( session ) ;
35233529 }
35243530 } catch ( e ) {
35253531 if ( isSessionNotFoundError ( e as ServiceError ) ) {
@@ -3607,7 +3613,7 @@ class Database extends common.GrpcServiceObject {
36073613 transactionTag : options ?. requestOptions ?. transactionTag ,
36083614 } ,
36093615 span => {
3610- this . pool_ . getSession ( ( err , session ) => {
3616+ this . sessionFactory_ . getSessionForReadWrite ( ( err , session ) => {
36113617 if ( err ) {
36123618 proxyStream . destroy ( err ) ;
36133619 setSpanError ( span , err ) ;
@@ -3669,7 +3675,7 @@ class Database extends common.GrpcServiceObject {
36693675 } )
36703676 . once ( 'end' , ( ) => {
36713677 span . end ( ) ;
3672- this . pool_ . release ( session ! ) ;
3678+ this . sessionFactory_ . release ( session ! ) ;
36733679 } )
36743680 . pipe ( proxyStream ) ;
36753681 } ) ;
0 commit comments