You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by marcin80 <mt...@gmail.com> on 2010/02/05 16:40:48 UTC

message store

Hi,

I'm using ActiveMQ 5.2 (FuseESB 4).
I have durable queue whitch contains about 3000 messages (via jconsole). But
when I try to browse queue using activemq web console I can see only 600
messages. 

My broker's configuration is:

 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="default"
dataDirectory="${servicemix.base}/data/activemq/default"
useShutdownHook="false">

        <!-- Destination specific policies using destination names or
wildcards -->
        <destinationPolicy>
            <policyMap>
                <policyEntries>
                    <policyEntry queue=">" memoryLimit="40mb"/>
                    <policyEntry topic=">" memoryLimit="40mb">
                        <subscriptionRecoveryPolicy>
                            <lastImageSubscriptionRecoveryPolicy/>
                        </subscriptionRecoveryPolicy>
                    </policyEntry>
                </policyEntries>
            </policyMap>
        </destinationPolicy>

        <!-- Use the following to configure how ActiveMQ is exposed in JMX
-->
        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>

        <!-- The store and forward broker networks ActiveMQ will listen to
-->
        <networkConnectors>
            <!-- by default just auto discover the other brokers -->
            <!--
            <networkConnector name="default-nc"
uri="multicast://default?group=uom"/>
            -->
            <!-- Example of a static configuration:
            <networkConnector name="host1 and host2"
uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
            -->
        </networkConnectors>

        <persistenceAdapter>
            <amqPersistenceAdapter syncOnWrite="false"
directory="${servicemix.base}/data/activemq/default" maxFileLength="40 mb"/>
        </persistenceAdapter>

        <!-- Use the following if you wish to configure the journal with
JDBC -->
        <!--
        <persistenceAdapter>
            <journaledJDBC dataDirectory="${activemq.base}/data"
dataSource="#postgres-ds"/>
        </persistenceAdapter>
        -->

        <!-- Or if you want to use pure JDBC without a journal -->
        <!--
        <persistenceAdapter>
            <jdbcPersistenceAdapter dataSource="#postgres-ds"/>
        </persistenceAdapter>
        -->

        <!--  The maximum about of space the broker will use before slowing
down producers -->
        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="40 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="1 gb" name="foo"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="100 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>


        <!-- The transport connectors ActiveMQ will listen to -->
        <transportConnectors>
            <transportConnector name="openwire"
uri="tcp://localhost:61616"/>
<!--discoveryUri="multicast://default?group=uom"/>-->
            <transportConnector name="stomp" uri="stomp://localhost:61613"/>
        </transportConnectors>

    </broker>

    <bean id="activemqConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
    </bean>

    <bean id="pooledConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactoryBean">
        <property name="maxConnections" value="8" />
        <property name="maximumActive" value="500" />
        <property name="transactionManager" ref="transactionManager" />
        <property name="connectionFactory" ref="activemqConnectionFactory"
/>
        <property name="resourceName" value="activemq.default" />
    </bean>

    <bean id="resourceManager"
class="org.apache.activemq.pool.ActiveMQResourceManager"
init-method="recoverResource">
          <property name="transactionManager" ref="transactionManager" />
          <property name="connectionFactory" ref="activemqConnectionFactory"
/>
          <property name="resourceName" value="activemq.default" />
    </bean>

    <osgi:reference id="transactionManager"
interface="javax.transaction.TransactionManager" />

    <osgi:service ref="pooledConnectionFactory">
        <osgi:interfaces>
            <value>javax.jms.ConnectionFactory</value>
        </osgi:interfaces>
        <osgi:service-properties>
            <entry key="name" value="default"/>
        </osgi:service-properties>
    </osgi:service>


How can I resolve this problem?

Cheers,
Marcin
-- 
View this message in context: http://old.nabble.com/message-store-tp27469568p27469568.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: message store

Posted by Gary Tully <ga...@gmail.com>.
You may need to tune the maxBrowsePage size destination policy option. This
is a limit on the amount of messages that the broker will bring into memory
for a jms browser. Typically the broker will page in 200 messages at a time
and 2*200 for a browser. The intention is to limit the impact of browsing on
regular consumers w.r.t to memory usage.
My guess is that you are hitting this limit, assuming that the web console
is using a queue browser under the hood. I did not check that btw.

On 5 February 2010 15:40, marcin80 <mt...@gmail.com> wrote:

>
> Hi,
>
> I'm using ActiveMQ 5.2 (FuseESB 4).
> I have durable queue whitch contains about 3000 messages (via jconsole).
> But
> when I try to browse queue using activemq web console I can see only 600
> messages.
>
> My broker's configuration is:
>
>  <broker xmlns="http://activemq.apache.org/schema/core"
> brokerName="default"
> dataDirectory="${servicemix.base}/data/activemq/default"
> useShutdownHook="false">
>
>        <!-- Destination specific policies using destination names or
> wildcards -->
>        <destinationPolicy>
>            <policyMap>
>                <policyEntries>
>                    <policyEntry queue=">" memoryLimit="40mb"/>
>                    <policyEntry topic=">" memoryLimit="40mb">
>                        <subscriptionRecoveryPolicy>
>                            <lastImageSubscriptionRecoveryPolicy/>
>                        </subscriptionRecoveryPolicy>
>                    </policyEntry>
>                </policyEntries>
>            </policyMap>
>        </destinationPolicy>
>
>        <!-- Use the following to configure how ActiveMQ is exposed in JMX
> -->
>        <managementContext>
>            <managementContext createConnector="false"/>
>        </managementContext>
>
>        <!-- The store and forward broker networks ActiveMQ will listen to
> -->
>        <networkConnectors>
>            <!-- by default just auto discover the other brokers -->
>            <!--
>            <networkConnector name="default-nc"
> uri="multicast://default?group=uom"/>
>            -->
>            <!-- Example of a static configuration:
>            <networkConnector name="host1 and host2"
> uri="static://(tcp://host1:61616,tcp://host2:61616)"/>
>            -->
>        </networkConnectors>
>
>        <persistenceAdapter>
>            <amqPersistenceAdapter syncOnWrite="false"
> directory="${servicemix.base}/data/activemq/default" maxFileLength="40
> mb"/>
>        </persistenceAdapter>
>
>        <!-- Use the following if you wish to configure the journal with
> JDBC -->
>        <!--
>        <persistenceAdapter>
>            <journaledJDBC dataDirectory="${activemq.base}/data"
> dataSource="#postgres-ds"/>
>        </persistenceAdapter>
>        -->
>
>        <!-- Or if you want to use pure JDBC without a journal -->
>        <!--
>        <persistenceAdapter>
>            <jdbcPersistenceAdapter dataSource="#postgres-ds"/>
>        </persistenceAdapter>
>        -->
>
>        <!--  The maximum about of space the broker will use before slowing
> down producers -->
>        <systemUsage>
>            <systemUsage>
>                <memoryUsage>
>                    <memoryUsage limit="40 mb"/>
>                </memoryUsage>
>                <storeUsage>
>                    <storeUsage limit="1 gb" name="foo"/>
>                </storeUsage>
>                <tempUsage>
>                    <tempUsage limit="100 mb"/>
>                </tempUsage>
>            </systemUsage>
>        </systemUsage>
>
>
>        <!-- The transport connectors ActiveMQ will listen to -->
>        <transportConnectors>
>            <transportConnector name="openwire"
> uri="tcp://localhost:61616"/>
> <!--discoveryUri="multicast://default?group=uom"/>-->
>            <transportConnector name="stomp" uri="stomp://localhost:61613"/>
>        </transportConnectors>
>
>    </broker>
>
>    <bean id="activemqConnectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>        <property name="brokerURL" value="tcp://localhost:61616" />
>    </bean>
>
>    <bean id="pooledConnectionFactory"
> class="org.apache.activemq.pool.PooledConnectionFactoryBean">
>        <property name="maxConnections" value="8" />
>        <property name="maximumActive" value="500" />
>        <property name="transactionManager" ref="transactionManager" />
>        <property name="connectionFactory" ref="activemqConnectionFactory"
> />
>        <property name="resourceName" value="activemq.default" />
>    </bean>
>
>    <bean id="resourceManager"
> class="org.apache.activemq.pool.ActiveMQResourceManager"
> init-method="recoverResource">
>          <property name="transactionManager" ref="transactionManager" />
>          <property name="connectionFactory" ref="activemqConnectionFactory"
> />
>          <property name="resourceName" value="activemq.default" />
>    </bean>
>
>    <osgi:reference id="transactionManager"
> interface="javax.transaction.TransactionManager" />
>
>    <osgi:service ref="pooledConnectionFactory">
>        <osgi:interfaces>
>            <value>javax.jms.ConnectionFactory</value>
>        </osgi:interfaces>
>        <osgi:service-properties>
>            <entry key="name" value="default"/>
>        </osgi:service-properties>
>    </osgi:service>
>
>
> How can I resolve this problem?
>
> Cheers,
> Marcin
> --
> View this message in context:
> http://old.nabble.com/message-store-tp27469568p27469568.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com