2011-06-29 13 views
2

Oracle ADキューに接続するMDB(JBoss AS 6)を作成しようとしています。データソース経由でOracle AQに接続されたMDB

私が動作するように、次の例を得た:

@MessageDriven(name = "TestMdb", activationConfig = { 
    @ActivationConfigProperty(propertyName="destinationType", propertyValue = "javax.jms.Queue"), 
    @ActivationConfigProperty(propertyName="connectionFactoryProperties", propertyValue="jdbc_connect_string=jdbc:oracle:thin:[email protected]:1521:XXX,host=XXXX,user=XXXX,password=XXXX,port=XXXX,sid=XXXX,driver=XXXX"), 
    @ActivationConfigProperty(propertyName="destinationProperties", propertyValue="owner=XXXXX,name=jms_text_que"), 
    @ActivationConfigProperty(propertyName="userName", propertyValue="XXXX"), 
    @ActivationConfigProperty(propertyName="password", propertyValue="XXXX"), 
    @ActivationConfigProperty(propertyName="ConnectionFactoryClassName", propertyValue="oracle.jms.AQjmsConnectionFactory"), 
    @ActivationConfigProperty(propertyName="QueueConnectionFactoryClassName", propertyValue="oracle.jms.AQjmsQueueConnectionFactory") 
    }) 
@ResourceAdapter("XXXXXX-ear.ear#genericjmsra.rar") 
@TransactionManagement(TransactionManagementType.BEAN) 
public class TestMdb implements MessageListener { 

    public void onMessage(Message message) { 
    ... 
    } 
} 

問題は、私は(DBホスト、ユーザ名とパスワードを含む)コードに直接接続プロパティを指定する必要があるということです。 誰かがjndiルックアップからデータソースを使用する方法を知っていますか?

おかげ

答えて

1

MDB注釈構成の教科書の実装は環境やセキュリティ特定の値のハードコーディングを指示すること腹立たしいされます。 Javaでの注釈処理は、のような一定ではない値に潜入していないことを確認することについても奇妙に賢いです。String MyConfig = System.getProperty(....)

いずれにしても、MDB設定の一部またはすべてをXMLデプロイメント記述子に設定することができます。これは少し面倒です(ビルドとデプロイにはもう少し複雑ですが)。 JBoss XMLデプロイメント記述子には、システムプロパティを参照するトークンが$ {}のトークンに割り当てられているため、設定の観点からより管理しやすくなります。

+0

ありがとうございます。私が望んでいたことは、jdbcのURLと他のプロパティのデータソースjndi名インスタンスを指定する方法があることです。 –