Exemple #1
0
        //TODO: think about moving this just before transaction commit so Oracle can be switched to in memory queue
        //TODO: which doesn't need to be persisted. invalid notify should only result in more processing
        public void Notify(OracleNotifyInfoConverter[] notifiers, string target)
        {
            if (notifiers == null || notifiers.Length == 0)
            {
                return;
            }
            var msgs   = new OracleAQMessage[notifiers.Length];
            var sender = new OracleAQAgent(target);

            for (int i = 0; i < msgs.Length; i++)
            {
                msgs[i] = new OracleAQMessage(notifiers[i])
                {
                    SenderId = sender, Recipients = Recipients
                }
            }
            ;
            Queue.Value.EnqueueArray(msgs);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            string _connstring = "Data Source=localhost/NEWDB;User Id=EDZEHOO;Password=PASS123;";

            try
            {
                OracleConnection _connObj = new OracleConnection(_connstring);
                // Create a new queue object
                OracleAQQueue _queueObj = new OracleAQQueue("EDZEHOO.JobsQueue", _connObj);
                _connObj.Open();
                OracleTransaction _txn = _connObj.BeginTransaction();
                // Set payload type
                _queueObj.MessageType = OracleAQMessageType.Raw;
                // Create a new message object
                OracleAQMessage _msg = new OracleAQMessage();
                String          Data = "HELLO, HOW ARE YOU!";
                _msg.Payload = ConvertToByteArray(Data);
                // Enqueue the message
                _queueObj.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
                // Register the subscriber at the message-level using the
                // OracleAQMessage.Recipients property
                OracleAQAgent[] agent = new OracleAQAgent[1];
                agent[0]        = new OracleAQAgent("RONFRICKE");
                _msg.Recipients = agent;
                _msg.SenderId   = new OracleAQAgent("EDZEHOO");
                _queueObj.Enqueue(_msg);
                // Display the payload data that was enqueued
                MessageBox.Show("Payload Data : " + Data + "\n" +
                                "Payload Hex value : " + ConvertToHexString((byte[])_msg.Payload) + "\n" +
                                "Message ID : " + ConvertToHexString(_msg.MessageId));
                _txn.Commit();
                _queueObj.Dispose();
                _connObj.Close();
                _connObj.Dispose();
                _connObj = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
 //TODO: think about moving this just before transaction commit so Oracle can be switched to in memory queue
 //TODO: which doesn't need to be persisted. invalid notify should only result in more processing
 public void Notify(OracleNotifyInfoConverter[] notifiers, string target)
 {
     if (notifiers == null || notifiers.Length == 0)
         return;
     var msgs = new OracleAQMessage[notifiers.Length];
     var sender = new OracleAQAgent(target);
     for (int i = 0; i < msgs.Length; i++)
         msgs[i] = new OracleAQMessage(notifiers[i]) { SenderId = sender, Recipients = Recipients };
     Queue.Value.EnqueueArray(msgs);
 }