public void Send(TransportMessage message, Address address)
        {
            var transactionManager = new OracleTransactionManager(this.ConnectionString);

            transactionManager.RunInTransaction(c =>
            {
                // Set the time from the source machine when the message was sent
                OracleAQQueue queue = new OracleAQQueue(address.Queue, c, OracleAQMessageType.Xml);
                queue.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
                using (var stream = new MemoryStream())
                {
                    this.SerializeToXml(message, stream);
                    OracleAQMessage aqMessage = new OracleAQMessage(Encoding.UTF8.GetString(stream.ToArray()));
                    aqMessage.Correlation = message.CorrelationId;
                    queue.Enqueue(aqMessage);
                }
            });
        }
 public void Init(Address address, bool transactional)
 {
     transactionManager = new OracleTransactionManager(ConnectionString);
     this.address = address;
 }
        private OracleTransactionManager GetTransactionManager()
        {
            if (null == transactionManager)
                transactionManager = new OracleTransactionManager(ConnectionString);

            return transactionManager;
        }