public ISession CreateSession(AcknowledgementMode acknowledgementMode) { CheckClosedOrFailed(); CreateNmsConnection(); NmsSession session = new NmsSession(this, SessionIdGenerator.GenerateId(), acknowledgementMode) { SessionInfo = { requestTimeout = ConnectionInfo.requestTimeout } }; try { session.Begin().ConfigureAwait(false).GetAwaiter().GetResult(); sessions.TryAdd(session.SessionInfo.Id, session); if (started) { session.Start(); } return(session); } catch (NMSException) { throw; } catch (Exception ex) { throw ExceptionSupport.Wrap(ex, "Failed to establish amqp Session."); } }
public async Task <ISession> CreateSessionAsync(AcknowledgementMode acknowledgementMode) { CheckClosedOrFailed(); await CreateNmsConnectionAsync().Await(); NmsSession session = new NmsSession(this, GetNextSessionId(), acknowledgementMode); try { await session.Begin().Await(); sessions.TryAdd(session.SessionInfo.Id, session); if (started) { session.Start(); } return(session); } catch (NMSException) { throw; } catch (Exception ex) { throw ExceptionSupport.Wrap(ex, "Failed to establish amqp Session."); } }