You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Steve Shabino (JIRA)" <ji...@apache.org> on 2008/05/10 00:06:43 UTC

[jira] Created: (AMQ-1716) Hard to set SystemUsage params via Spring

Hard to set SystemUsage params via Spring
-----------------------------------------

                 Key: AMQ-1716
                 URL: https://issues.apache.org/activemq/browse/AMQ-1716
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.1.0
            Reporter: Steve Shabino
            Priority: Minor


I expected to be able to configure system usage parameters via Spring like this:

{code:title=Expected Spring SystemUsage Bean Definition}

<bean id="systemUsage"
	class="org.apache.activemq.usage.SystemUsage">
	<property name="memoryUsage">
		<bean class="org.apache.activemq.usage.MemoryUsage">
			<property name="limit" value="100000000" />
		</bean>
	</property>
	<property name="storeUsage">
		<bean class="org.apache.activemq.usage.StoreUsage">
			<property name="limit" value="50000000" />
		</bean>
	</property>
	<property name="tempUsage">
		<bean class="org.apache.activemq.usage.TempUsage">
			<property name="limit" value="100000000" />
		</bean>
	</property>
</bean>

<bean id="myBroker"
		class="org.apache.activemq.broker.BrokerService" init-method="start"
		destroy-method="stop">
		<property name="systemUsage" ref="systemUsage" />
		<stuff missing here/>
</bean>
{code}

However, this does not work because the StorageUsage and TempUsage are never bound to the persistenceAdapter or tempDataStore.

This is the workaround I had to use:

{code:title=Required Spring SystemUsage Bean Definition}

	<bean id="persistenceAdapter"
		class="org.apache.activemq.store.amq.AMQPersistenceAdapter">
		<property name="syncOnWrite" value="false" />
		<property name="directory" value="file:c:\mqdata" />
	</bean>

	<bean id="tempDataStore"
		class="org.apache.activemq.kaha.StoreFactory" factory-method="open">
		<constructor-arg type="java.io.File">
			<value>file:c:\mqtemp</value>
		</constructor-arg>
		<constructor-arg type="java.lang.String">
			<value>rw</value>
		</constructor-arg>
	</bean>
	
	<bean id="systemUsage"
		class="org.apache.activemq.usage.SystemUsage">
	<constructor-arg type="java.lang.String"
			value="localABSystemUsage" />
	<constructor-arg
			type="org.apache.activemq.store.PersistenceAdapter"
			ref="persistenceAdapter" />
	<constructor-arg type="org.apache.activemq.kaha.Store"
			ref="tempDataStore" />
	<property name="memoryUsage">
		<bean class="org.apache.activemq.usage.MemoryUsage">
			<property name="limit" value="100000000" />
		</bean>
	</property>
	<property name="storeUsage">
		<bean class="org.apache.activemq.usage.StoreUsage">
			<property name="limit" value="50000000" />
		</bean>
	</property>
	<property name="tempUsage">
		<bean class="org.apache.activemq.usage.TempUsage">
			<property name="limit" value="100000000" />
		</bean>
	</property>
</bean>

<bean id="myBroker"
		class="org.apache.activemq.broker.BrokerService" init-method="start"
		destroy-method="stop">

		<property name="systemUsage" ref="systemUsage" />
		<property name="persistenceAdapter" ref="persistenceAdapter" />
		<property name="tempDataStore" ref="tempDataStore" />

		<stuff missing here/>
		
	</bean>

{code}

One problem with this work-around is that old temp files are never purged as they would be if I simply configured the temp directory via the BrokerService interface.  It would be nice to have a more straight-forward means of configuring the BrokerService via Spring.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-1716) Hard to set SystemUsage params via Spring

Posted by "Steve Shabino (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Shabino resolved AMQ-1716.
--------------------------------

    Resolution: Won't Fix

I realized that I could use the xbean-spring tools successfully.  Silly me.

> Hard to set SystemUsage params via Spring
> -----------------------------------------
>
>                 Key: AMQ-1716
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1716
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>            Reporter: Steve Shabino
>            Priority: Minor
>
> I expected to be able to configure system usage parameters via Spring like this:
> {code:title=Expected Spring SystemUsage Bean Definition}
> <bean id="systemUsage"
> 	class="org.apache.activemq.usage.SystemUsage">
> 	<property name="memoryUsage">
> 		<bean class="org.apache.activemq.usage.MemoryUsage">
> 			<property name="limit" value="100000000" />
> 		</bean>
> 	</property>
> 	<property name="storeUsage">
> 		<bean class="org.apache.activemq.usage.StoreUsage">
> 			<property name="limit" value="50000000" />
> 		</bean>
> 	</property>
> 	<property name="tempUsage">
> 		<bean class="org.apache.activemq.usage.TempUsage">
> 			<property name="limit" value="100000000" />
> 		</bean>
> 	</property>
> </bean>
> <bean id="myBroker"
> 		class="org.apache.activemq.broker.BrokerService" init-method="start"
> 		destroy-method="stop">
> 		<property name="systemUsage" ref="systemUsage" />
> 		<stuff missing here/>
> </bean>
> {code}
> However, this does not work because the StorageUsage and TempUsage are never bound to the persistenceAdapter or tempDataStore.
> This is the workaround I had to use:
> {code:title=Required Spring SystemUsage Bean Definition}
> 	<bean id="persistenceAdapter"
> 		class="org.apache.activemq.store.amq.AMQPersistenceAdapter">
> 		<property name="syncOnWrite" value="false" />
> 		<property name="directory" value="file:c:\mqdata" />
> 	</bean>
> 	<bean id="tempDataStore"
> 		class="org.apache.activemq.kaha.StoreFactory" factory-method="open">
> 		<constructor-arg type="java.io.File">
> 			<value>file:c:\mqtemp</value>
> 		</constructor-arg>
> 		<constructor-arg type="java.lang.String">
> 			<value>rw</value>
> 		</constructor-arg>
> 	</bean>
> 	
> 	<bean id="systemUsage"
> 		class="org.apache.activemq.usage.SystemUsage">
> 	<constructor-arg type="java.lang.String"
> 			value="localABSystemUsage" />
> 	<constructor-arg
> 			type="org.apache.activemq.store.PersistenceAdapter"
> 			ref="persistenceAdapter" />
> 	<constructor-arg type="org.apache.activemq.kaha.Store"
> 			ref="tempDataStore" />
> 	<property name="memoryUsage">
> 		<bean class="org.apache.activemq.usage.MemoryUsage">
> 			<property name="limit" value="100000000" />
> 		</bean>
> 	</property>
> 	<property name="storeUsage">
> 		<bean class="org.apache.activemq.usage.StoreUsage">
> 			<property name="limit" value="50000000" />
> 		</bean>
> 	</property>
> 	<property name="tempUsage">
> 		<bean class="org.apache.activemq.usage.TempUsage">
> 			<property name="limit" value="100000000" />
> 		</bean>
> 	</property>
> </bean>
> <bean id="myBroker"
> 		class="org.apache.activemq.broker.BrokerService" init-method="start"
> 		destroy-method="stop">
> 		<property name="systemUsage" ref="systemUsage" />
> 		<property name="persistenceAdapter" ref="persistenceAdapter" />
> 		<property name="tempDataStore" ref="tempDataStore" />
> 		<stuff missing here/>
> 		
> 	</bean>
> {code}
> One problem with this work-around is that old temp files are never purged as they would be if I simply configured the temp directory via the BrokerService interface.  It would be nice to have a more straight-forward means of configuring the BrokerService via Spring.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.