in qldbdriver/qldbdriver.go [225:237]
func (driver *QLDBDriver) getSession(ctx context.Context) (*session, error) {
driver.logger.logf(LogDebug, "Getting session. Existing sessions available: %v", len(driver.sessionPool))
isPermitAcquired := driver.semaphore.tryAcquire()
if isPermitAcquired {
if len(driver.sessionPool) > 0 {
session := <-driver.sessionPool
driver.logger.log(LogDebug, "Reusing session from pool.")
return session, nil
}
return driver.createSession(ctx)
}
return nil, &qldbDriverError{"MaxConcurrentTransactions limit exceeded."}
}