You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Eadno1 <el...@alphacsp.com> on 2009/05/19 15:43:44 UTC

PrefetchPolicy & more - all not working when embedding ActiveMQ into JBoss

I've been playing around with ActiveMQ for a while now, and
I'm trying...really hard...to configure it (Like they explain here -
http://activemq.apache.org/what-is-the-prefetch-limit-for.html)

it's all not working, and I've finally understood why, are least I
understand why, but 
solving it - I'm baffled!

so this is what I'm running against :
~~~~~~~~~~~~~~~~~~~~~~

broker-config.xml :

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
   
    http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<!-- START SNIPPET: xbean -->
<beans xmlns="http://activemq.apache.org/schema/core">

  <broker useJmx="true" brokerName="my.broker1">
  
<!-- put the following as the first child of the broker tag -->
<managementContext><!-- we'll use an existing one (JBoss) instead of
creating one -->
  <managementContext createConnector="false"/>
</managementContext>


	<!-- In ActiveMQ 4, you can setup destination policies. note: this xml
format may still change a bit -->
    <destinationPolicy>
      <policyMap><policyEntries>

          <policyEntry topic="FOO.>">
            <dispatchPolicy>
              <strictOrderDispatchPolicy />
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy />
            </subscriptionRecoveryPolicy>
          </policyEntry>

      </policyEntries></policyMap>
    </destinationPolicy>


	 <persistenceAdapter>
            <amqPersistenceAdapter syncOnWrite="false" directory="/data"
maxFileLength="20 mb"/>
        </persistenceAdapter>

	
  <!--  <persistenceAdapter>
      <journaledJDBC journalLogFiles="5" dataDirectory="/data" />-->
      <!-- To use a different datasource, use th following syntax : -->
       <!--  <journaledJDBC journalLogFiles="5" dataDirectory="../data"
dataSource="#postgres-ds"/>
      </persistenceAdapter>-->

    <transportConnectors>
      <!-- prefixing a connector with discovery: causes the connector to be
advertiesed over rendezvous -->
      <transportConnector name="my.broker1" uri="tcp://localhost:61615"/>
      <!--<transportConnector name="PrintServer.broker1"
uri="tcp://localhost:61615"/>-->
    </transportConnectors>

    <networkConnectors>
      <!-- by default just auto discover the other brokers -->
    <!--<networkConnector name="PrintServer.broker1"
uri="static://(tcp://localhost:61615)?jms.prefetchPolicy.all=30"/>-->
    <networkConnector name="my.broker1"
uri="static://(tcp://localhost:61615)?jms.prefetchPolicy.all"/>
      <!--
      <networkConnector
uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
      -->
    </networkConnectors>

  </broker>


</beans>

 The ra.xml :

...
  <resourceadapter>
       
<resourceadapter-class>org.apache.activemq.ra.ActiveMQResourceAdapter</resourceadapter-class>
        <config-property>
            <description>
              The URL to the ActiveMQ server that you want this connection
to connect to.  If using
              an embedded broker, this value should be 'vm://localhost'.
            </description>
            <config-property-name>ServerUrl</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
           
<!--<config-property-value>tcp://localhost:61615</config-property-value>-->
            <config-property-value>vm://localhost</config-property-value> 
        </config-property>
        <config-property>
            <description>The default user name that will be used to
establish connections to the ActiveMQ server.</description>
            <config-property-name>UserName</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>defaultUser</config-property-value>
        </config-property>
        <config-property>
            <description>The default password that will be used to log the
default user into the ActiveMQ server.</description>
            <config-property-name>Password</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            <config-property-value>defaultPassword</config-property-value>
        </config-property>
        <config-property>
            <description>The client id that will be set on the connection
that is established to the ActiveMQ server.</description>
            <config-property-name>Clientid</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
        </config-property>
        <config-property>
            <description>Boolean to configure if outbound connections should
reuse the inbound connection's session for sending messages.</description>
            <config-property-name>UseInboundSession</config-property-name>
            <config-property-type>java.lang.Boolean</config-property-type>
            <config-property-value>false</config-property-value>
        </config-property>

			  <!-- NOTE disable the following property if you do not wish to deploy
an embedded broker -->
        <config-property>
            <description>
              Sets the XML configuration file used to configure the embedded
ActiveMQ broker via 
              Spring if using embedded mode.
              
              BrokerXmlConfig is the filename which is assumed to be on the
classpath unless 
              a URL is specified. So a value of foo/bar.xml would be assumed
to be on the 
              classpath whereas file:dir/file.xml would use the file system. 
              Any valid URL string is supported.              
            </description>
            <config-property-name>BrokerXmlConfig</config-property-name>
            <config-property-type>java.lang.String</config-property-type>
            
<config-property-value>xbean:broker-config.xml</config-property-value>
           </config-property>

        <outbound-resourceadapter>
            <connection-definition>
               
<managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
               
<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
               
<connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
               
<connection-interface>javax.jms.Connection</connection-interface>
               
<connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
            </connection-definition>
            <connection-definition>
               
<managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
               
<connectionfactory-interface>javax.jms.QueueConnectionFactory</connectionfactory-interface>
               
<connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
               
<connection-interface>javax.jms.QueueConnection</connection-interface>
               
<connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
            </connection-definition>
            <connection-definition>
               
<managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
               
<connectionfactory-interface>javax.jms.TopicConnectionFactory</connectionfactory-interface>
               
<connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
               
<connection-interface>javax.jms.TopicConnection</connection-interface>
               
<connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
            </connection-definition>
            <transaction-support>XATransaction</transaction-support>
            <authentication-mechanism>
               
<authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
               
<credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
            </authentication-mechanism>
            <reauthentication-support>false</reauthentication-support>
        </outbound-resourceadapter>
        <inbound-resourceadapter>
            <messageadapter>
                <messagelistener>
                   
<messagelistener-type>javax.jms.MessageListener</messagelistener-type>
                    <activationspec>
                       
<activationspec-class>org.apache.activemq.ra.ActiveMQActivationSpec</activationspec-class>
                        
                        <required-config-property>
                           
<config-property-name>destination</config-property-name>
                        </required-config-property>
                        <required-config-property>
                           
<config-property-name>destinationType</config-property-name>
                        </required-config-property>
                        
                    </activationspec>
                </messagelistener>
            </messageadapter>
        </inbound-resourceadapter>
        <adminobject>
            <adminobject-interface>javax.jms.Queue</adminobject-interface>
           
<adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
            <config-property>
                <config-property-name>PhysicalName</config-property-name>
               
<config-property-type>java.lang.String</config-property-type>
            </config-property>
        </adminobject>
        <adminobject>
            <adminobject-interface>javax.jms.Topic</adminobject-interface>
           
<adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
            <config-property>
                <config-property-name>PhysicalName</config-property-name>
               
<config-property-type>java.lang.String</config-property-type>
            </config-property>
        </adminobject>
    </resourceadapter>
...

 and finally the activemq-jms-ds.xml  (only the MBeans part) : 

   <mbean code="org.jboss.resource.deployment.AdminObject"
name="activemq.queue:name=QueueSingle">
      <attribute name="JNDIName">activemq/queue/QueueSingle</attribute>
      <depends
optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
      <attribute name="Type">javax.jms.Queue</attribute>
      <attribute
name="Properties">PhysicalName=queue.QueueSingle</attribute>
   </mbean>
   
    <mbean code="org.jboss.resource.deployment.AdminObject"
name="activemq.queue:name=QueueExpress">
      <attribute name="JNDIName">activemq/queue/QueueExpress</attribute>
      <depends
optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
      <attribute name="Type">javax.jms.Queue</attribute>
      <attribute
name="Properties">PhysicalName=queue.QueueExpress</attribute>
   </mbean>
   
    <mbean code="org.jboss.resource.deployment.AdminObject"
name="activemq.queue:name=QueueLPR">
      <attribute name="JNDIName">activemq/queue/QueueLPR</attribute>
      <depends
optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
      <attribute name="Type">javax.jms.Queue</attribute>
      <attribute name="Properties">PhysicalName=queue.QueueLPR</attribute>
   </mbean>

   <mbean code="org.jboss.resource.deployment.AdminObject"
name="activemq.topic:name=inboundTopic">
      <attribute name="JNDIName">activemq/topic/inbound</attribute>
      <depends
optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
      <attribute name="Type">javax.jms.Topic</attribute>
      <attribute name="Properties">PhysicalName=topic.inbound</attribute>
   </mbean>
   
so it does work, but when JBoss starts - it somehow tries to configure the
Queue with
the XML configurations and it says - it's already registered!!!
what the ?!@#!

The only way that I can see MY queue (in jconsole) and not "localhost" queue
- is
to remove the <networkConnector> ( more so - not setting the connection to
the same
broker defined in the <transportConnector>.
but my Queue isn't getting the configuration (nor does the localhost).

So I don't know what I'm doing wrong !!!

anyone who can share some info on the subject will be more then appreciated
:)

E.D :working:


-- 
View this message in context: http://www.nabble.com/PrefetchPolicy---more---all-not-working-when-embedding-ActiveMQ-into-JBoss-tp23616711p23616711.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: PrefetchPolicy & more - all not working when embedding ActiveMQ into JBoss

Posted by Eadno1 <el...@alphacsp.com>.
I assume your assumption is correct, or there's away to embed a broker to
Jboss
and the broker will be considered internal???

I did realize that 2 Brokers were created, actually they appear to override
each other
so only the latter get used from my EJBs & only one is shown in jconsole.

second - it says when using embedded broker you have to use the vm://...
option ( anyways I tried
using the tcp:// and it didn't work )

Is there a way to set the prefetchPolicy to a vm:// broker ??? (when placed
in the <transportConnector> it throws exception and when trying using in the
<networkConnector> it doesn't work, each I assume it
doesn't suppose to work like that)


Gary Tully wrote:
> 
> A network bridge has its own prefetch attribute. I think this will
> override
> any url parameter.
> 
> It looks like you may have two embedded brokers started here, one from the
> ra.xml xml config and one from the "vm://" connection url. Either add
> create=false&waitForStart=5000 to the vm://.. url (so that it won't create
> an embedded broker) or use the tcp variant that matches the
> transportConnector in activemq.xml.
> 
> I imagine/assume the intention is to have one embedded broker network with
> an external broker.
> 
> 
> 2009/5/19 Eadno1 <el...@alphacsp.com>
> 
>>
>> I've been playing around with ActiveMQ for a while now, and
>> I'm trying...really hard...to configure it (Like they explain here -
>> http://activemq.apache.org/what-is-the-prefetch-limit-for.html)
>>
>> it's all not working, and I've finally understood why, are least I
>> understand why, but
>> solving it - I'm baffled!
>>
>> so this is what I'm running against :
>> ~~~~~~~~~~~~~~~~~~~~~~
>>
>> broker-config.xml :
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!--
>>    Licensed to the Apache Software Foundation (ASF) under one or more
>>    contributor license agreements.  See the NOTICE file distributed with
>>    this work for additional information regarding copyright ownership.
>>    The ASF licenses this file to You under the Apache License, Version
>> 2.0
>>    (the "License"); you may not use this file except in compliance with
>>    the License.  You may obtain a copy of the License at
>>
>>    http://www.apache.org/licenses/LICENSE-2.0
>>
>>    Unless required by applicable law or agreed to in writing, software
>>    distributed under the License is distributed on an "AS IS" BASIS,
>>    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>>    See the License for the specific language governing permissions and
>>    limitations under the License.
>> -->
>> <!-- START SNIPPET: xbean -->
>> <beans xmlns="http://activemq.apache.org/schema/core">
>>
>>  <broker useJmx="true" brokerName="my.broker1">
>>
>> <!-- put the following as the first child of the broker tag -->
>> <managementContext><!-- we'll use an existing one (JBoss) instead of
>> creating one -->
>>  <managementContext createConnector="false"/>
>> </managementContext>
>>
>>
>>        <!-- In ActiveMQ 4, you can setup destination policies. note: this
>> xml
>> format may still change a bit -->
>>    <destinationPolicy>
>>      <policyMap><policyEntries>
>>
>>          <policyEntry topic="FOO.>">
>>            <dispatchPolicy>
>>              <strictOrderDispatchPolicy />
>>            </dispatchPolicy>
>>            <subscriptionRecoveryPolicy>
>>              <lastImageSubscriptionRecoveryPolicy />
>>            </subscriptionRecoveryPolicy>
>>          </policyEntry>
>>
>>      </policyEntries></policyMap>
>>    </destinationPolicy>
>>
>>
>>         <persistenceAdapter>
>>            <amqPersistenceAdapter syncOnWrite="false" directory="/data"
>> maxFileLength="20 mb"/>
>>        </persistenceAdapter>
>>
>>
>>  <!--  <persistenceAdapter>
>>      <journaledJDBC journalLogFiles="5" dataDirectory="/data" />-->
>>      <!-- To use a different datasource, use th following syntax : -->
>>       <!--  <journaledJDBC journalLogFiles="5" dataDirectory="../data"
>> dataSource="#postgres-ds"/>
>>      </persistenceAdapter>-->
>>
>>    <transportConnectors>
>>      <!-- prefixing a connector with discovery: causes the connector to
>> be
>> advertiesed over rendezvous -->
>>      <transportConnector name="my.broker1" uri="tcp://localhost:61615"/>
>>      <!--<transportConnector name="PrintServer.broker1"
>> uri="tcp://localhost:61615"/>-->
>>    </transportConnectors>
>>
>>    <networkConnectors>
>>      <!-- by default just auto discover the other brokers -->
>>    <!--<networkConnector name="PrintServer.broker1"
>> uri="static://(tcp://localhost:61615)?jms.prefetchPolicy.all=30"/>-->
>>    <networkConnector name="my.broker1"
>> uri="static://(tcp://localhost:61615)?jms.prefetchPolicy.all"/>
>>      <!--
>>      <networkConnector
>> uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
>>      -->
>>    </networkConnectors>
>>
>>  </broker>
>>
>>
>> </beans>
>>
>>  The ra.xml :
>>
>> ...
>>  <resourceadapter>
>>
>>
>> <resourceadapter-class>org.apache.activemq.ra.ActiveMQResourceAdapter</resourceadapter-class>
>>        <config-property>
>>            <description>
>>              The URL to the ActiveMQ server that you want this connection
>> to connect to.  If using
>>              an embedded broker, this value should be 'vm://localhost'.
>>            </description>
>>            <config-property-name>ServerUrl</config-property-name>
>>            <config-property-type>java.lang.String</config-property-type>
>>
>> <!--<config-property-value>tcp://localhost:61615</config-property-value>-->
>>            <config-property-value>vm://localhost</config-property-value>
>>        </config-property>
>>        <config-property>
>>            <description>The default user name that will be used to
>> establish connections to the ActiveMQ server.</description>
>>            <config-property-name>UserName</config-property-name>
>>            <config-property-type>java.lang.String</config-property-type>
>>            <config-property-value>defaultUser</config-property-value>
>>        </config-property>
>>        <config-property>
>>            <description>The default password that will be used to log the
>> default user into the ActiveMQ server.</description>
>>            <config-property-name>Password</config-property-name>
>>            <config-property-type>java.lang.String</config-property-type>
>>            <config-property-value>defaultPassword</config-property-value>
>>        </config-property>
>>        <config-property>
>>            <description>The client id that will be set on the connection
>> that is established to the ActiveMQ server.</description>
>>            <config-property-name>Clientid</config-property-name>
>>            <config-property-type>java.lang.String</config-property-type>
>>        </config-property>
>>        <config-property>
>>            <description>Boolean to configure if outbound connections
>> should
>> reuse the inbound connection's session for sending
>> messages.</description>
>>            <config-property-name>UseInboundSession</config-property-name>
>>            <config-property-type>java.lang.Boolean</config-property-type>
>>            <config-property-value>false</config-property-value>
>>        </config-property>
>>
>>                          <!-- NOTE disable the following property if you
>> do
>> not wish to deploy
>> an embedded broker -->
>>        <config-property>
>>            <description>
>>              Sets the XML configuration file used to configure the
>> embedded
>> ActiveMQ broker via
>>              Spring if using embedded mode.
>>
>>              BrokerXmlConfig is the filename which is assumed to be on
>> the
>> classpath unless
>>              a URL is specified. So a value of foo/bar.xml would be
>> assumed
>> to be on the
>>              classpath whereas file:dir/file.xml would use the file
>> system.
>>              Any valid URL string is supported.
>>            </description>
>>            <config-property-name>BrokerXmlConfig</config-property-name>
>>            <config-property-type>java.lang.String</config-property-type>
>>
>> <config-property-value>xbean:broker-config.xml</config-property-value>
>>           </config-property>
>>
>>        <outbound-resourceadapter>
>>            <connection-definition>
>>
>>
>> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>>
>>
>> <connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
>>
>>
>> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>>
>> <connection-interface>javax.jms.Connection</connection-interface>
>>
>>
>> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>>            </connection-definition>
>>            <connection-definition>
>>
>>
>> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>>
>>
>> <connectionfactory-interface>javax.jms.QueueConnectionFactory</connectionfactory-interface>
>>
>>
>> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>>
>> <connection-interface>javax.jms.QueueConnection</connection-interface>
>>
>>
>> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>>            </connection-definition>
>>            <connection-definition>
>>
>>
>> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>>
>>
>> <connectionfactory-interface>javax.jms.TopicConnectionFactory</connectionfactory-interface>
>>
>>
>> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>>
>> <connection-interface>javax.jms.TopicConnection</connection-interface>
>>
>>
>> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>>            </connection-definition>
>>            <transaction-support>XATransaction</transaction-support>
>>            <authentication-mechanism>
>>
>>
>> <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
>>
>>
>> <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
>>            </authentication-mechanism>
>>            <reauthentication-support>false</reauthentication-support>
>>        </outbound-resourceadapter>
>>        <inbound-resourceadapter>
>>            <messageadapter>
>>                <messagelistener>
>>
>> <messagelistener-type>javax.jms.MessageListener</messagelistener-type>
>>                    <activationspec>
>>
>>
>> <activationspec-class>org.apache.activemq.ra.ActiveMQActivationSpec</activationspec-class>
>>
>>                        <required-config-property>
>>
>> <config-property-name>destination</config-property-name>
>>                        </required-config-property>
>>                        <required-config-property>
>>
>> <config-property-name>destinationType</config-property-name>
>>                        </required-config-property>
>>
>>                    </activationspec>
>>                </messagelistener>
>>            </messageadapter>
>>        </inbound-resourceadapter>
>>        <adminobject>
>>            <adminobject-interface>javax.jms.Queue</adminobject-interface>
>>
>>
>> <adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
>>            <config-property>
>>                <config-property-name>PhysicalName</config-property-name>
>>
>> <config-property-type>java.lang.String</config-property-type>
>>            </config-property>
>>        </adminobject>
>>        <adminobject>
>>            <adminobject-interface>javax.jms.Topic</adminobject-interface>
>>
>>
>> <adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
>>            <config-property>
>>                <config-property-name>PhysicalName</config-property-name>
>>
>> <config-property-type>java.lang.String</config-property-type>
>>            </config-property>
>>        </adminobject>
>>    </resourceadapter>
>> ...
>>
>>  and finally the activemq-jms-ds.xml  (only the MBeans part) :
>>
>>   <mbean code="org.jboss.resource.deployment.AdminObject"
>> name="activemq.queue:name=QueueSingle">
>>      <attribute name="JNDIName">activemq/queue/QueueSingle</attribute>
>>      <depends
>>
>> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>>      <attribute name="Type">javax.jms.Queue</attribute>
>>      <attribute
>> name="Properties">PhysicalName=queue.QueueSingle</attribute>
>>   </mbean>
>>
>>    <mbean code="org.jboss.resource.deployment.AdminObject"
>> name="activemq.queue:name=QueueExpress">
>>      <attribute name="JNDIName">activemq/queue/QueueExpress</attribute>
>>      <depends
>>
>> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>>      <attribute name="Type">javax.jms.Queue</attribute>
>>      <attribute
>> name="Properties">PhysicalName=queue.QueueExpress</attribute>
>>   </mbean>
>>
>>    <mbean code="org.jboss.resource.deployment.AdminObject"
>> name="activemq.queue:name=QueueLPR">
>>      <attribute name="JNDIName">activemq/queue/QueueLPR</attribute>
>>      <depends
>>
>> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>>      <attribute name="Type">javax.jms.Queue</attribute>
>>      <attribute name="Properties">PhysicalName=queue.QueueLPR</attribute>
>>   </mbean>
>>
>>   <mbean code="org.jboss.resource.deployment.AdminObject"
>> name="activemq.topic:name=inboundTopic">
>>      <attribute name="JNDIName">activemq/topic/inbound</attribute>
>>      <depends
>>
>> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>>      <attribute name="Type">javax.jms.Topic</attribute>
>>      <attribute name="Properties">PhysicalName=topic.inbound</attribute>
>>   </mbean>
>>
>> so it does work, but when JBoss starts - it somehow tries to configure
>> the
>> Queue with
>> the XML configurations and it says - it's already registered!!!
>> what the ?!@#!
>>
>> The only way that I can see MY queue (in jconsole) and not "localhost"
>> queue
>> - is
>> to remove the <networkConnector> ( more so - not setting the connection
>> to
>> the same
>> broker defined in the <transportConnector>.
>> but my Queue isn't getting the configuration (nor does the localhost).
>>
>> So I don't know what I'm doing wrong !!!
>>
>> anyone who can share some info on the subject will be more then
>> appreciated
>> :)
>>
>> E.D :working:
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/PrefetchPolicy---more---all-not-working-when-embedding-ActiveMQ-into-JBoss-tp23616711p23616711.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> http://blog.garytully.com
> 
> Open Source SOA
> http://FUSESource.com
> 
> 

-- 
View this message in context: http://www.nabble.com/PrefetchPolicy---more---all-not-working-when-embedding-ActiveMQ-into-JBoss-tp23616711p23617818.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: PrefetchPolicy & more - all not working when embedding ActiveMQ into JBoss

Posted by Gary Tully <ga...@gmail.com>.
A network bridge has its own prefetch attribute. I think this will override
any url parameter.

It looks like you may have two embedded brokers started here, one from the
ra.xml xml config and one from the "vm://" connection url. Either add
create=false&waitForStart=5000 to the vm://.. url (so that it won't create
an embedded broker) or use the tcp variant that matches the
transportConnector in activemq.xml.

I imagine/assume the intention is to have one embedded broker network with
an external broker.


2009/5/19 Eadno1 <el...@alphacsp.com>

>
> I've been playing around with ActiveMQ for a while now, and
> I'm trying...really hard...to configure it (Like they explain here -
> http://activemq.apache.org/what-is-the-prefetch-limit-for.html)
>
> it's all not working, and I've finally understood why, are least I
> understand why, but
> solving it - I'm baffled!
>
> so this is what I'm running against :
> ~~~~~~~~~~~~~~~~~~~~~~
>
> broker-config.xml :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>    Licensed to the Apache Software Foundation (ASF) under one or more
>    contributor license agreements.  See the NOTICE file distributed with
>    this work for additional information regarding copyright ownership.
>    The ASF licenses this file to You under the Apache License, Version 2.0
>    (the "License"); you may not use this file except in compliance with
>    the License.  You may obtain a copy of the License at
>
>    http://www.apache.org/licenses/LICENSE-2.0
>
>    Unless required by applicable law or agreed to in writing, software
>    distributed under the License is distributed on an "AS IS" BASIS,
>    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>    See the License for the specific language governing permissions and
>    limitations under the License.
> -->
> <!-- START SNIPPET: xbean -->
> <beans xmlns="http://activemq.apache.org/schema/core">
>
>  <broker useJmx="true" brokerName="my.broker1">
>
> <!-- put the following as the first child of the broker tag -->
> <managementContext><!-- we'll use an existing one (JBoss) instead of
> creating one -->
>  <managementContext createConnector="false"/>
> </managementContext>
>
>
>        <!-- In ActiveMQ 4, you can setup destination policies. note: this
> xml
> format may still change a bit -->
>    <destinationPolicy>
>      <policyMap><policyEntries>
>
>          <policyEntry topic="FOO.>">
>            <dispatchPolicy>
>              <strictOrderDispatchPolicy />
>            </dispatchPolicy>
>            <subscriptionRecoveryPolicy>
>              <lastImageSubscriptionRecoveryPolicy />
>            </subscriptionRecoveryPolicy>
>          </policyEntry>
>
>      </policyEntries></policyMap>
>    </destinationPolicy>
>
>
>         <persistenceAdapter>
>            <amqPersistenceAdapter syncOnWrite="false" directory="/data"
> maxFileLength="20 mb"/>
>        </persistenceAdapter>
>
>
>  <!--  <persistenceAdapter>
>      <journaledJDBC journalLogFiles="5" dataDirectory="/data" />-->
>      <!-- To use a different datasource, use th following syntax : -->
>       <!--  <journaledJDBC journalLogFiles="5" dataDirectory="../data"
> dataSource="#postgres-ds"/>
>      </persistenceAdapter>-->
>
>    <transportConnectors>
>      <!-- prefixing a connector with discovery: causes the connector to be
> advertiesed over rendezvous -->
>      <transportConnector name="my.broker1" uri="tcp://localhost:61615"/>
>      <!--<transportConnector name="PrintServer.broker1"
> uri="tcp://localhost:61615"/>-->
>    </transportConnectors>
>
>    <networkConnectors>
>      <!-- by default just auto discover the other brokers -->
>    <!--<networkConnector name="PrintServer.broker1"
> uri="static://(tcp://localhost:61615)?jms.prefetchPolicy.all=30"/>-->
>    <networkConnector name="my.broker1"
> uri="static://(tcp://localhost:61615)?jms.prefetchPolicy.all"/>
>      <!--
>      <networkConnector
> uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
>      -->
>    </networkConnectors>
>
>  </broker>
>
>
> </beans>
>
>  The ra.xml :
>
> ...
>  <resourceadapter>
>
>
> <resourceadapter-class>org.apache.activemq.ra.ActiveMQResourceAdapter</resourceadapter-class>
>        <config-property>
>            <description>
>              The URL to the ActiveMQ server that you want this connection
> to connect to.  If using
>              an embedded broker, this value should be 'vm://localhost'.
>            </description>
>            <config-property-name>ServerUrl</config-property-name>
>            <config-property-type>java.lang.String</config-property-type>
>
> <!--<config-property-value>tcp://localhost:61615</config-property-value>-->
>            <config-property-value>vm://localhost</config-property-value>
>        </config-property>
>        <config-property>
>            <description>The default user name that will be used to
> establish connections to the ActiveMQ server.</description>
>            <config-property-name>UserName</config-property-name>
>            <config-property-type>java.lang.String</config-property-type>
>            <config-property-value>defaultUser</config-property-value>
>        </config-property>
>        <config-property>
>            <description>The default password that will be used to log the
> default user into the ActiveMQ server.</description>
>            <config-property-name>Password</config-property-name>
>            <config-property-type>java.lang.String</config-property-type>
>            <config-property-value>defaultPassword</config-property-value>
>        </config-property>
>        <config-property>
>            <description>The client id that will be set on the connection
> that is established to the ActiveMQ server.</description>
>            <config-property-name>Clientid</config-property-name>
>            <config-property-type>java.lang.String</config-property-type>
>        </config-property>
>        <config-property>
>            <description>Boolean to configure if outbound connections should
> reuse the inbound connection's session for sending messages.</description>
>            <config-property-name>UseInboundSession</config-property-name>
>            <config-property-type>java.lang.Boolean</config-property-type>
>            <config-property-value>false</config-property-value>
>        </config-property>
>
>                          <!-- NOTE disable the following property if you do
> not wish to deploy
> an embedded broker -->
>        <config-property>
>            <description>
>              Sets the XML configuration file used to configure the embedded
> ActiveMQ broker via
>              Spring if using embedded mode.
>
>              BrokerXmlConfig is the filename which is assumed to be on the
> classpath unless
>              a URL is specified. So a value of foo/bar.xml would be assumed
> to be on the
>              classpath whereas file:dir/file.xml would use the file system.
>              Any valid URL string is supported.
>            </description>
>            <config-property-name>BrokerXmlConfig</config-property-name>
>            <config-property-type>java.lang.String</config-property-type>
>
> <config-property-value>xbean:broker-config.xml</config-property-value>
>           </config-property>
>
>        <outbound-resourceadapter>
>            <connection-definition>
>
>
> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>
>
> <connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
>
>
> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>
> <connection-interface>javax.jms.Connection</connection-interface>
>
>
> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>            </connection-definition>
>            <connection-definition>
>
>
> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>
>
> <connectionfactory-interface>javax.jms.QueueConnectionFactory</connectionfactory-interface>
>
>
> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>
> <connection-interface>javax.jms.QueueConnection</connection-interface>
>
>
> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>            </connection-definition>
>            <connection-definition>
>
>
> <managedconnectionfactory-class>org.apache.activemq.ra.ActiveMQManagedConnectionFactory</managedconnectionfactory-class>
>
>
> <connectionfactory-interface>javax.jms.TopicConnectionFactory</connectionfactory-interface>
>
>
> <connectionfactory-impl-class>org.apache.activemq.ra.ActiveMQConnectionFactory</connectionfactory-impl-class>
>
> <connection-interface>javax.jms.TopicConnection</connection-interface>
>
>
> <connection-impl-class>org.apache.activemq.ra.ManagedConnectionProxy</connection-impl-class>
>            </connection-definition>
>            <transaction-support>XATransaction</transaction-support>
>            <authentication-mechanism>
>
>
> <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
>
>
> <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
>            </authentication-mechanism>
>            <reauthentication-support>false</reauthentication-support>
>        </outbound-resourceadapter>
>        <inbound-resourceadapter>
>            <messageadapter>
>                <messagelistener>
>
> <messagelistener-type>javax.jms.MessageListener</messagelistener-type>
>                    <activationspec>
>
>
> <activationspec-class>org.apache.activemq.ra.ActiveMQActivationSpec</activationspec-class>
>
>                        <required-config-property>
>
> <config-property-name>destination</config-property-name>
>                        </required-config-property>
>                        <required-config-property>
>
> <config-property-name>destinationType</config-property-name>
>                        </required-config-property>
>
>                    </activationspec>
>                </messagelistener>
>            </messageadapter>
>        </inbound-resourceadapter>
>        <adminobject>
>            <adminobject-interface>javax.jms.Queue</adminobject-interface>
>
>
> <adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
>            <config-property>
>                <config-property-name>PhysicalName</config-property-name>
>
> <config-property-type>java.lang.String</config-property-type>
>            </config-property>
>        </adminobject>
>        <adminobject>
>            <adminobject-interface>javax.jms.Topic</adminobject-interface>
>
>
> <adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
>            <config-property>
>                <config-property-name>PhysicalName</config-property-name>
>
> <config-property-type>java.lang.String</config-property-type>
>            </config-property>
>        </adminobject>
>    </resourceadapter>
> ...
>
>  and finally the activemq-jms-ds.xml  (only the MBeans part) :
>
>   <mbean code="org.jboss.resource.deployment.AdminObject"
> name="activemq.queue:name=QueueSingle">
>      <attribute name="JNDIName">activemq/queue/QueueSingle</attribute>
>      <depends
>
> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>      <attribute name="Type">javax.jms.Queue</attribute>
>      <attribute
> name="Properties">PhysicalName=queue.QueueSingle</attribute>
>   </mbean>
>
>    <mbean code="org.jboss.resource.deployment.AdminObject"
> name="activemq.queue:name=QueueExpress">
>      <attribute name="JNDIName">activemq/queue/QueueExpress</attribute>
>      <depends
>
> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>      <attribute name="Type">javax.jms.Queue</attribute>
>      <attribute
> name="Properties">PhysicalName=queue.QueueExpress</attribute>
>   </mbean>
>
>    <mbean code="org.jboss.resource.deployment.AdminObject"
> name="activemq.queue:name=QueueLPR">
>      <attribute name="JNDIName">activemq/queue/QueueLPR</attribute>
>      <depends
>
> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>      <attribute name="Type">javax.jms.Queue</attribute>
>      <attribute name="Properties">PhysicalName=queue.QueueLPR</attribute>
>   </mbean>
>
>   <mbean code="org.jboss.resource.deployment.AdminObject"
> name="activemq.topic:name=inboundTopic">
>      <attribute name="JNDIName">activemq/topic/inbound</attribute>
>      <depends
>
> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
>      <attribute name="Type">javax.jms.Topic</attribute>
>      <attribute name="Properties">PhysicalName=topic.inbound</attribute>
>   </mbean>
>
> so it does work, but when JBoss starts - it somehow tries to configure the
> Queue with
> the XML configurations and it says - it's already registered!!!
> what the ?!@#!
>
> The only way that I can see MY queue (in jconsole) and not "localhost"
> queue
> - is
> to remove the <networkConnector> ( more so - not setting the connection to
> the same
> broker defined in the <transportConnector>.
> but my Queue isn't getting the configuration (nor does the localhost).
>
> So I don't know what I'm doing wrong !!!
>
> anyone who can share some info on the subject will be more then appreciated
> :)
>
> E.D :working:
>
>
> --
> View this message in context:
> http://www.nabble.com/PrefetchPolicy---more---all-not-working-when-embedding-ActiveMQ-into-JBoss-tp23616711p23616711.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 
http://blog.garytully.com

Open Source SOA
http://FUSESource.com