2

with help [link]How to enqueue on Oracle AQ table on commit with Java and consume with a JMS client I am trying to achieve this -

declare
  msg SYS.AQ$_JMS_TEXT_MESSAGE;
  queue_options DBMS_AQ.ENQUEUE_OPTIONS_T;
  msg_props DBMS_AQ.MESSAGE_PROPERTIES_T;
  msg_id RAW(16);
begin
  msg_props.expiration := 12;
  msg_props.exception_queue := 'EVT_QUEUE_E';
  msg := SYS.AQ$_JMS_TEXT_MESSAGE.CONSTRUCT();
  msg.set_text('Hello World from PL/SQL Count 5');
  DBMS_AQ.ENQUEUE( queue_name => 'EVT_QUEUE'
                 , enqueue_options => queue_options
                 , message_properties => msg_props
                 , payload => msg
                 , msgid => msg_id);
  commit;
end;

here is the function that does enqueues the message with defalut message properties.

public static void sendMessage(String user, String queueName, String message) throws SQLException
    {
        try
        {
            QueueConnection qCon = getConnection();
            session = qCon.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
            qCon.start();
            Queue queue = ((AQjmsSession) session).getQueue(user, queueName);
            MessageProducer producer = session.createProducer(queue);
            //AQMessage
            TextMessage msg = session.createTextMessage(message);
            producer.setTimeToLive(1);  //expiration time
            producer.send(msg);
            System.out.println("Sent message = " + msg.getText());
            session.close();
            producer.close();
            qCon.close();
        }
        catch (JMSException e)
        {
            e.printStackTrace();
            return;
        }
    }

How can I pass exception queue to message properties??

Community
  • 1
  • 1
Bopsi
  • 2,090
  • 5
  • 36
  • 58

1 Answers1

0
msg.setStringProperty("JMS_OracleExcpQ","ExceptionQName");

References: https://docs.oracle.com/cd/E11882_01/server.112/e11013/jm_create.htm#ADQUE2927 http://docs.oracle.com/cd/E11882_01/server.112/e11013/jm_create.htm#ADQUE2877

Make sure queue_type is defined as exception queue when creating the queue. https://docs.oracle.com/cd/E11882_01/server.112/e11013/aq_admin.htm#ADQUE0803

Unreal user
  • 1,045
  • 2
  • 9
  • 13