if (args.length != 2)
throw new Exception ("Usage: java JmsClient_ReservationProducer <CruiseID> <count>");
Integer cruiseID = new Integer (args[0]);
int count = new Integer (args[1]).intValue ();
Context jndiContext = getInitialContext ();
QueueConnectionFactory factory = (QueueConnectionFactory)jndiContext.lookup ("ConnectionFactory");
Queue reservationQueue = (Queue)jndiContext.lookup ("queue/titan-ReservationQueue");
Queue ticketQueue = (Queue)jndiContext.lookup ("queue/titan-TicketQueue");
QueueConnection connect = factory.createQueueConnection ();
QueueSession session = connect.createQueueSession (false,Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender (reservationQueue);
for (int i = 0; i < count; i++)
{
MapMessage message = session.createMapMessage ();
message.setJMSReplyTo (ticketQueue); // Used in ReservationProcessor to send Tickets back out
message.setStringProperty ("MessageFormat", "Version 3.4");
message.setInt ("CruiseID", cruiseID.intValue ());
message.setInt ("CustomerID", i%2 + 1); // either Customer 1 or 2, all we've got in database
message.setInt ("CabinID", i%10 + 100); // cabins 100-109 only
message.setDouble ("Price", (double)1000 + i);
// the card expires in about 30 days
//
Date expDate = new Date (System.currentTimeMillis () + 30*24*60*60*1000L);
message.setString ("CreditCardNum", "5549861006051975");
message.setLong ("CreditCardExpDate", expDate.getTime ());
message.setString ("CreditCardType", CreditCardDO.MASTER_CARD);
System.out.println ("Sending reservation message #"+i);
sender.send (message);
}
connect.close ();