O'Reilly - Java Message Service
O'Reilly - Java Message Service
O'Reilly - Java Message Service
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
} catch (java.lang.RuntimeException rte){<br />
rte.printStackTrace( );<br />
}<br />
}<br />
private void autoBuy (javax.jms.<strong>Message</strong> message){<br />
try {<br />
Stream<strong>Message</strong> strmMsg = (Stream<strong>Message</strong>)message;<br />
String dealDesc = strmMsg.readString( );<br />
String itemDesc = strmMsg.readString( );<br />
float oldPrice = strmMsg.readFloat( );<br />
float newPrice = strmMsg.readFloat( );<br />
System.out.println("Received Hot Buy: "+dealDesc);<br />
// If price reduction is greater than 10 percent, buy<br />
if (newPrice == 0 || oldPrice / newPrice > 1.1) {<br />
int count = (int)(java.lang.Math.random( )*(double)1000);<br />
System.out.println("\nBuying " + count +" "+ itemDesc);<br />
Text<strong>Message</strong> textMsg = tSession.createText<strong>Message</strong>( );<br />
textMsg.setText(count + " " + itemDesc );<br />
textMsg.setIntProperty("QTY", count);<br />
textMsg.setJMSCorrelationID(uname);<br />
Queue buyQueue = (Queue)message.getJMSReplyTo( );<br />
qSender = qSession.createSender(buyQueue);<br />
qSender.send( textMsg,<br />
javax.jms.DeliveryMode.PERSISTENT,<br />
javax.jms.<strong>Message</strong>.DEFAULT_PRIORITY,<br />
1800000);<br />
} else {<br />
System.out.println ("\nBad Deal. Not buying");<br />
}<br />
} catch (javax.jms.JMSException jmse){<br />
jmse.printStackTrace( );<br />
}<br />
}<br />
private void exit(String s){<br />
try {<br />
if ( s != null &&<br />
s.equalsIgnoreCase("unsubscribe"))<br />
{<br />
tsubscriber.close( );<br />
tSession.unsubscribe("Hot Deals Subscription");<br />
}<br />
tConnect.close( );<br />
qConnect.close( );<br />
} catch (javax.jms.JMSException jmse){<br />
jmse.printStackTrace( );<br />
}<br />
System.exit(0);<br />
}<br />
public static void main(String argv[]) {<br />
String broker, username, password;<br />
if (argv.length == 3){<br />
broker = argv[0];<br />
username = argv[1];<br />
password = argv[2];<br />
} else {<br />
System.out.println("Invalid arguments. Should be: ");<br />
System.out.println<br />
("java QRetailer broker username password");<br />
return;<br />
}<br />
QRetailer retailer = new QRetailer(broker, username, password);<br />
<strong>Java</strong> <strong>Message</strong> <strong>Service</strong><br />
73