weblogicとmqの統合.


weblogic:8.1 sp2
MQ:5.3
要旨:weblogicとMQを統合することは非常に価値のある応用です.この論文では,weblogicのForeign JMSサーバを用いてJNDI,MDB構成を構成し,MQを用いて提供する
JMSADMINは、MQのjndiを構成する.それほど詳しくはないが、やはり読者自身が小さな努力をしなければならない.
キーワード:jms,Weblogic foreign JMS Server,JNDI,JMSAdmin
開始:
1、WeblogicとMQをインストールします(くだらない話).
2、JMSAdminの設定(mqインストールディレクトリの下のjava/bin/ディレクトリに拡張子がないファイル)
uncommentの下の2行、同時にあなたの機械の上で相応のディレクトリCを建てます:/JNDI-Directory


INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory 

PROVIDER_URL=file:/C:/JNDI-Directory    
以上の構成は、ファイルjndiの使用に適しています.
3、mqのjndiを配置する
次にjmsadminを使用してmqのjndiを構成します.
次はjmsadminを使用するコマンドの例です.
実はibmのウェブサイトに行ってグラフィックインタフェースの東をダウンロードすることができて、これらのコマンドを覚えなくてもいいです.
これはJMSADMINGUIと呼ばれています


def qcf(ivtQCF); 
def q(ivtQ); qu(SYSTEM.DEFAULT.LOCAL.QUEUE); 
def tcf(ivtTCF); 
def t(ivtT); topic(MQJMS/PSIVT/Information); 
あるいは、IVTSETUPスクリプトを実行して、使用可能なJNDI構成を完了することができます.
4、WeblogicのForeign JMSServerの以下の属性を配置する.

JNDI Initial Context Factory->com.sun.jndi.fscontext.RefFSContextFactory 
JNDI Connection URL->file:/C:/JNDI-Directory     
5、Foreign JMS Connection Factoriesの構成
コード:

Local JNDI Name:mqqcf( weblogic     QueueConnectionFactory JNDI   ); 
Remote JNDI Name:ivtQCF(     jmsadmin    jndi   ); 
6、構成foreign JMS destination


Local JNDI Name: MQQUEUE 
Remote JNDI Name: ivtQ 
	
同上.
7、MDB配置


<?xml version="1.0"?> 
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> 
<!-- This ejb-jar.xml file defines a message-driven bean called "SimpleMDB". It uses container-managed transactions, because "transaction-type" is "Container" and "trans-attribute" is "Required". --> 
<ejb-jar> 
   <enterprise-beans> 
      <message-driven> 
         <ejb-name>ReceiveMessageMDB</ejb-name> 
         <ejb-class>com.rm.mdb.ReceiveMessageBean</ejb-class> 
         <transaction-type>Container</transaction-type> 
         <message-driven-destination> 
         <!-- In WebLogic Server 6.0, this next parameter is named "jms-destination-type" --> 
         <destination-type>javax.jms.Queue</destination-type> 
         </message-driven-destination> 
      </message-driven> 
   </enterprise-beans> 
   <assembly-descriptor> 
      <container-transaction> 
         <method> 
            <ejb-name>ReceiveMessageMDB</ejb-name> 
            <method-name>*</method-name> 
         </method> 
         <trans-attribute>NotSupported</trans-attribute> 
      </container-transaction> 
   </assembly-descriptor> 
</ejb-jar>	

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN' 'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'> 
<weblogic-ejb-jar> 
<weblogic-enterprise-bean> 
<ejb-name>ReceiveMessageMDB</ejb-name> 
<message-driven-descriptor> 
<pool> 
<max-beans-in-free-pool>8</max-beans-in-free-pool> 
<initial-beans-in-free-pool>1</initial-beans-in-free-pool> 
</pool> 
<destination-jndi-name>MQQUEUE</destination-jndi-name> 
<initial-context-factory> weblogic.jndi.WLInitialContextFactory </initial-context-factory> 
<provider-url>t3://localhost:7001</provider-url> 
<connection-factory-jndi-name>MQQCF</connection-factory-jndi-name> 
</message-driven-descriptor> 
</weblogic-enterprise-bean> 
</weblogic-ejb-jar> 
	
注意:
ejb-jar.xmlのNotSupportedの場合
Requiredの場合はXAQueConnectionFactoryを使用する必要があります.