0

Message Broker を使用しようとしていますが、いくつか質問があります。

1 メッセージ ブローカにキューを作成し、ESB のプロキシ サービスを使用してメッセージ ブローカに新しいメッセージを追加できました。ただし、アプリケーション サーバーでこのキューをリッスンしようとすると、コードでキュー接続ファクトリを取得できませんでした。このブログhttp://pzf.fremantle.org/2011/04/introduction-to-wso2-message-broker_05.htmlをフォローすると、キューからメッセージを取得できます。しかし、コードでメッセージ ブローカーへの接続を作成するべきではないと思います。アプリケーション サーバーから接続を取得する必要があります。したがって、JMSListener 属性のコメントを外すと、以下で確認できます。このコードでここからキューを取得しようとすると

Context initCtx = new InitialContext();
initCtx.lookup("myQueueConnectionFactory");

javax.naming.NameNotFoundException: Name myQueueConnectionFactory is not bound in this Context exception を取得しています。アプリケーション サーバーから接続を取得するための提案はありますか。

    <parameter locked="false" name="myTopicConnectionFactory">
        <parameter locked="false" name="java.naming.factory.initial">org.apache.qpid.jndi.PropertiesFileInitialContextFactory</parameter>
        <parameter locked="false" name="java.naming.provider.url">repository/conf/jndi.properties</parameter>
        <parameter locked="false" name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
        <parameter locked="false" name="transport.jms.ConnectionFactoryType">topic</parameter>
    </parameter>


    <parameter locked="false" name="myQueueConnectionFactory">
        <parameter locked="false" name="java.naming.factory.initial">org.apache.qpid.jndi.PropertiesFileInitialContextFactory</parameter>
        <parameter locked="false" name="java.naming.provider.url">repository/conf/jndi.properties</parameter>
        <parameter locked="false" name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
        <parameter locked="false" name="transport.jms.ConnectionFactoryType">queue</parameter>
    </parameter>

    <parameter name="default" locked="false">
        <parameter name="java.naming.factory.initial" locked="false">org.apache.qpid.jndi.PropertiesFileInitialContextFactory</parameter>
        <parameter name="java.naming.provider.url" locked="false">resources/jndi.properties</parameter>
        <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
        <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    </parameter>

2 メッセージ ブローカがキュー アイテムをサブスクライバに送信する回数。たとえば、メッセージ ブローカーがアイテムをサブスクライバーに送信し、サブスクライバーが何らかの理由でジョブを完了できないとします。そのため、アイテムはメッセージ ブローカ キューから削除されません。このアイテムをサブスクライバーに再度送信するタイミングと、このアイテムを送信サブスクライバーに送信する回数。

ありがとう、

4

1 に答える 1

0

ESB を使用してメッセージをキューに保存する場合、以下に示すように、エンドポイント uri 構成から ConnectionFactory を指定する必要があります。

    <address uri="jms:/myQueueName?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:5672&amp;transport.jms.DestinationType=queue&amp;java.naming.provider.url=repository/conf/jndi.properties" statistics="enable"/>
于 2013-06-19T07:36:44.033 に答える