doBegin
Takes a connection, opens the session over it, begins the transaction, and binds the session to the thread.
A transaction that could not get its connection is reported the way OctaviusTemplate reports a block that could not: as the driver's exception, an InitializationException, with CONNECTION_UNAVAILABLE where the pool had none free - not as Spring's CannotCreateTransactionException, which an @ExceptionHandler for the driver's exception does not catch. Nothing in Spring's transaction handling keys off that type; a failure to begin is handled as any runtime exception. An Error leaves as it was thrown.