2011-12-23 5 views
0

Java에서 소비자 코드와 함께 Oracle AQ를 사용하고 있습니다.대기열이 일단 제거되면 소모되지 않습니까?

큐가 여전히 데이터베이스에 남아있는 이유는 무엇입니까? 큐를 사용하면 큐가 제거되도록하기 위해 어떤 호출을해야합니까?

QueueConnection myqueue = getConnection(); 
    Session session = myqueue.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE); 
    myqueue.start(); 

    queue = ((AQjmsSession) session).getQueue("demo", "myqueue"); 
    MessageConsumer consumer = session.createConsumer(queue);  
    TextMessage msg = (TextMessage) consumer.receive(); 
    System.out.println("message" + msg.getText()); 

    consumer.close(); 
    session.close(); 
    myqueue.close(); 

고마워요!

답변

1

아마도 내가 틀렸지 만 소비되는 큐가 아니라 소비되는 큐로 들어오는 메시지입니다. 대기열은 단지 테이블 일뿐입니다. 생산자 또는 소비자가 존재하지 않을 것이라고 확신하면 명시 적으로 "MY TABLE"을 삭제할 수 있습니다.

관련 문제