⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exchangequeue.java

📁 Oracle的J2EE Sample
💻 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 + -