23.07.2013 Views

O'Reilly - Java Message Service

O'Reilly - Java Message Service

O'Reilly - Java Message Service

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!