📄 exchangequeue.java
字号:
/*
* @author : Elangovan
* @version : 1.0
*
* Development Environment : Oracle9i JDeveloper
* Name of the File : ExchangeQueue.java
*
* Creation / Modification History
* Elangovan 19-Aug-2003 Created
*
*/
package oracle.otnsamples.ibfbs.admin.ejb;
import java.util.Date;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import javax.ejb.MessageDrivenBean;
import javax.ejb.MessageDrivenContext;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.naming.Context;
import javax.naming.InitialContext;
/**
* This Message Driven Bean provides asynchronous processing of trade orders.
* It is invoked when a message is posted on the Exchange queue. It extracts
* the trade details from the message and submits the job to the stock exchange.
*
* @see ExchangeBean.java
* @see Exchange.java
*/
public class ExchangeQueue
implements MessageDrivenBean, MessageListener {
private transient MessageDrivenContext messageContext;
// Handle to Exchange Service Home
private ExchangeHome exchangeHome = null;
/**
* Standard callback method, invoked by Container when this Message Driven Bean
* is created. Initializes Exchange Service.
*/
public void ejbCreate() {
try {
// Initialize context
Context ctx = new InitialContext();
// Initialize Exchange Service
exchangeHome = (ExchangeHome)ctx.lookup("Exchange");
} catch(Exception ex) {
System.err.println(" ExchangeQueue.ejbCreate: Error initializing ExchangeService "+
ex.toString());
}
}
/**
* This is the callback method that is invoked when a message is enqueued in
* ExchangeQueue. Extracts the trade details from the message and submits the
* trade job to the stock exchange(ExchangeService).
*
* @param message JMS message object with the trade details
*/
public void onMessage(Message message) {
try {
// Create an instance
Exchange exchange = exchangeHome.create();
// Format trade date
SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss a zzz");
ParsePosition pos = new ParsePosition(0);
Date tradeDate = formatter.parse(message.getStringProperty("tradeDate"), pos);
// Submit order to stock exchange
exchange.processOrder(message.getStringProperty("toAddress"),
message.getStringProperty("symbol"),
tradeDate,
message.getStringProperty("tradeType"),
new Integer(message.getIntProperty("qty")));
} catch(Exception ex) {
System.err.println(" ExchangeQueue.onMessage: Fatal Error sending Order : " +
ex.toString());
}
}
// Standard callback methods
public void setMessageDrivenContext(MessageDrivenContext context) {
messageContext = context;
}
public void ejbRemove() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -