You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Stephen Pietrowicz <sr...@ncsa.uiuc.edu> on 2009/03/19 20:50:27 UTC

Strange -Dactivemq.base behavior

Hi,

I'm trying to change the location of -Dactivemq.base.   In the activemq
script, you can do this by setting the environment variable ACTIVEMQ_BASE to
something besides the default, which is $ACTIVEMQ_HOME.

I set ACTIVEMQ_BASE=/tmp, and ran activemq with a simplified version of the
conf/activemq.xml file.   I verified (by looking at "ps") that
-Dactivemq.base=/tmp when activemq executes.   I set it to /tmp so the files
for /tmp/data will go there.  (Just for this test).

When I do this, it appears that not only does it not put data into /tmp as
requested, but it creates an actual directory called "${activemq.base}" in
the current working directory.   It puts the "data" directory below that,
along with all the usual subdirectories below "data".

Any ideas what I'm doing wrong, or is this a bug?   Here is the simple.xml
file I'm using:

<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.apache.org/schema/core"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd   
  http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">

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

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

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

        <!--  The maximum about of space the broker will use before slowing
down producers -->
        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <!-- SRP - up memory usages from 20 mb to 512 mb-->
                    <memoryUsage limit="512 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"
/>
        </transportConnectors>

    </broker>

</beans>

-- 
View this message in context: http://www.nabble.com/Strange--Dactivemq.base-behavior-tp22608067p22608067.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Strange -Dactivemq.base behavior

Posted by Dejan Bosanac <de...@nighttale.net>.
Hi,

you need to define PropertyPlaceholderConfigurer in your xml file, in order
to use system properties. Something like

<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

will do the trick.

Cheers
--
Dejan Bosanac

Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Thu, Mar 19, 2009 at 8:50 PM, Stephen Pietrowicz <sr...@ncsa.uiuc.edu>wrote:

>
> Hi,
>
> I'm trying to change the location of -Dactivemq.base.   In the activemq
> script, you can do this by setting the environment variable ACTIVEMQ_BASE
> to
> something besides the default, which is $ACTIVEMQ_HOME.
>
> I set ACTIVEMQ_BASE=/tmp, and ran activemq with a simplified version of the
> conf/activemq.xml file.   I verified (by looking at "ps") that
> -Dactivemq.base=/tmp when activemq executes.   I set it to /tmp so the
> files
> for /tmp/data will go there.  (Just for this test).
>
> When I do this, it appears that not only does it not put data into /tmp as
> requested, but it creates an actual directory called "${activemq.base}" in
> the current working directory.   It puts the "data" directory below that,
> along with all the usual subdirectories below "data".
>
> Any ideas what I'm doing wrong, or is this a bug?   Here is the simple.xml
> file I'm using:
>
> <beans
>  xmlns="http://www.springframework.org/schema/beans"
>  xmlns:amq="http://activemq.apache.org/schema/core"
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>  http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd
>  http://activemq.apache.org/camel/schema/spring
> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>
>    <broker xmlns="http://activemq.apache.org/schema/core"
> brokerName="localhost" dataDirectory="${activemq.base}/data">
>
>        <!-- Destination specific policies using destination names or
> wildcards -->
>        <destinationPolicy>
>            <policyMap>
>                <policyEntries>
>                    <policyEntry queue=">" memoryLimit="5mb"/>
>                    <policyEntry topic=">" memoryLimit="5mb">
>                    </policyEntry>
>                </policyEntries>
>            </policyMap>
>        </destinationPolicy>
>
>        <persistenceAdapter>
>            <amqPersistenceAdapter syncOnWrite="false"
> directory="${activemq.base}/data" maxFileLength="20 mb"/>
>        </persistenceAdapter>
>
>        <!--  The maximum about of space the broker will use before slowing
> down producers -->
>        <systemUsage>
>            <systemUsage>
>                <memoryUsage>
>                    <!-- SRP - up memory usages from 20 mb to 512 mb-->
>                    <memoryUsage limit="512 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"
> />
>        </transportConnectors>
>
>    </broker>
>
> </beans>
>
> --
> View this message in context:
> http://www.nabble.com/Strange--Dactivemq.base-behavior-tp22608067p22608067.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>