Created
November 18, 2014 16:49
-
-
Save sachin-handiekar/c6e4166e278c88bf918b to your computer and use it in GitHub Desktop.
Oracle AQ Queue Browser
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<beans ...> | |
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> | |
<property name="connectionFactory" ref="oracleAqConnFactory" /> | |
<property name="defaultDestination" ref="destination" /> | |
</bean> | |
</beans> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.sachinhandiekar.oracle.aq; | |
import java.util.Enumeration; | |
import javax.jms.Destination; | |
import javax.jms.JMSException; | |
import javax.jms.Message; | |
import javax.jms.Queue; | |
import javax.jms.QueueBrowser; | |
import javax.jms.Session; | |
import oracle.jms.AQjmsAdtMessage; | |
import oracle.jms.AQjmsQueueBrowser; | |
import oracle.jms.AQjmsSession; | |
import oracle.sql.ORADataFactory; | |
import oracle.xdb.XMLType; | |
import org.springframework.jms.core.JmsTemplate; | |
import org.springframework.jms.core.SessionCallback; | |
public class OracleAQQueueBrowser { | |
private JmsTemplate jmsTemplate; | |
public void browseMessages() { | |
Integer count = (Integer) jmsTemplate.execute(new SessionCallback() { | |
public Object doInJms(Session session) throws JMSException { | |
int count = 0; | |
Queue queue = (Queue) jmsTemplate.getDefaultDestination(); | |
QueueBrowser browser = ((AQjmsSession) session).createBrowser(queue, null, XMLType.getORADataFactory(), | |
true); | |
Enumeration messages = browser.getEnumeration(); | |
while (messages.hasMoreElements()) { | |
count++; | |
Message message = (Message) messages.nextElement(); | |
displayMessage(message); | |
} | |
return new Integer(count); | |
} | |
private void displayMessage(Message message) { | |
try { | |
XMLType xmlMsg = (XMLType) ((AQjmsAdtMessage) message).getAdtPayload(); | |
System.out.println("Message ==> " + xmlMsg.getStringVal()); | |
System.out.println(); | |
} | |
catch (Exception e) { | |
e.printStackTrace(); | |
} | |
} | |
}, true); | |
System.out.println("Number of Messages : " + count); | |
} | |
public void setJmsTemplate(JmsTemplate jmsTemplate) { | |
this.jmsTemplate = jmsTemplate; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment