Oracle AQ 다중 소비자 대기열에 연결하는 클라이언트 응용 프로그램이 있습니다. OracleAQQueue.Listen을 사용하여 대기열에서 새 메시지를 수신합니다. API docs은 다중 소비자 대기열에 Listen 메서드를 사용할 수 있음을 보여줍니다. 대기열을 청취하는 코드가 아래에 나와 있습니다.다중 소비자 대기열에서 ODP.NET OracleAQQueue.Listen 사용
string consumerName = "APPINST1";
using (OracleConnection con = new OracleConnection(connectionString))
{
con.Open();
OracleAQQueue queue = new OracleAQQueue("MY_Q");
queue.MessageType = OracleAQMessageType.Udt;
queue.UdtTypeName = "MY_Q_MSG";
queue.DequeueOptions.DeliveryMode = OracleAQMessageDeliveryMode.Persistent;
queue.Connection = con;
Console.WriteLine("Listening for messages...");
queue.Listen(new string[] { consumerName });
}
제가하는 데 문제는 내가 queue.Listen()를 호출 코드의 라인에, 내가 오라클 예외 얻을 수 있습니다 :이 특정 오류에 대한 조언을 위해 인터넷 검색을
ORA-25295: Subscriber is not allowed to dequeue buffered messages
을 너무 도움이되지 않았습니다. 구독자를 제거하고 큐에 여러 번 추가하여 아무 쓸모가 없습니다. 내 생각 엔 Listen을 호출하기 전에 일부 속성을 올바르게 설정하지 않고 있지만 문제를 파악할 수 없습니다.
아이디어가 있으십니까?