private void Queue_Notification(object sender, OracleAQMessageAvailableEventArgs e) { try { var converters = (from m in Queue.DequeueArray(e.AvailableMessages) let ni = m.Payload as OracleNotifyInfoConverter where ni != null select ni).ToList(); ProcessNotifyConverters(converters); } catch (Exception ex) { TraceSource.TraceEvent(TraceEventType.Error, 5138, "{0}: {1} {2}", e.QueueName, e.AvailableMessages, ex); } }
private void Queue_Notification(object sender, OracleAQMessageAvailableEventArgs e) { try { var converters = (from m in Queue.DequeueArray(e.AvailableMessages) let ni = m.Payload as OracleNotifyInfoConverter where ni != null select ni).ToList(); ProcessNotifyConverters(converters); } catch (Exception ex) { Logger.Error(e.QueueName + ": " + e.AvailableMessages + ex.ToString()); } }
private void button2_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.MY_JOBS_QUEUE", _connObj); _connObj.Open(); OracleTransaction _txn = _connObj.BeginTransaction(); _queueObj.DequeueOptions.Visibility = OracleAQVisibilityMode.OnCommit; _queueObj.DequeueOptions.Wait = 10; _queueObj.DequeueOptions.ProviderSpecificType = true; // Dequeue the messages – take note that you can specify the number of // messages you wish to retrieve from the queue OracleAQMessage[] _deqMsgs = _queueObj.DequeueArray(2); for (int i = 0; i < _deqMsgs.Length; i++) { // If you enqueued a byte array, the dequeued object is an // OracleBinary object. You can retrieve the byte array using the // OracleBinary.Value property OracleBinary _payload = (OracleBinary)_deqMsgs[i].Payload; MessageBox.Show("Dequeued Payload Data: " + ConvertFromByteArray(_payload.Value) + "\n" + "Dequeued Payload Hex: " + ConvertToHexString(_payload.Value) + "\n"); } _txn.Commit(); _queueObj.Dispose(); _connObj.Close(); _connObj.Dispose(); _connObj = null; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }