public Session(Connection connection, SessionInfo info, AcknowledgementMode acknowledgementMode)
 {
     this.connection          = connection;
     this.info                = info;
     this.acknowledgementMode = acknowledgementMode;
     this.AsyncSend           = connection.AsyncSend;
     this.requestTimeout      = connection.RequestTimeout;
     this.PrefetchSize        = 1000;
     this.transactionContext  = new TransactionContext(this);
     this.dispatchingThread   = new DispatchingThread(new DispatchingThread.DispatchFunction(DispatchAsyncMessages));
     this.dispatchingThread_ExceptionHandler = new DispatchingThread.ExceptionHandler(dispatchingThread_ExceptionListener);
 }