Announcement Announcement Module
Collapse
No announcement yet.
OutOfMemory Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • OutOfMemory

    I don't know why but this configuration is not very optimal.
    Any ideas, i need to have reliable delivery with about 20-30 messages per sec.
    When i do load testing it throws me Out of memory, with 1500mb memory for tomcat and default configuration for amq.
    I tried it with persistent delivery false but it is the same. When i exclude this contexts everything works perfect with the same load.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://www.springframework.org/schema/beans" xmlns:int="http://www.springframework.org/schema/integration"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:int-jms="http://www.springframework.org/schema/integration/jms"
    	xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    	    http://www.springframework.org/schema/context 
    	    http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/integration 
            http://www.springframework.org/schema/integration/spring-integration-2.1.xsd
            http://www.springframework.org/schema/integration/jms 
            http://www.springframework.org/schema/integration/jms/spring-integration-jms-2.1.xsd">
    
    	<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    		<property name="targetConnectionFactory">
    			<bean class="org.apache.activemq.ActiveMQConnectionFactory">
    				<property name="brokerURL" value="${jms.broker.url}" />
    				<property name="optimizeAcknowledge" value="true" /> 
                    <property name="useAsyncSend" value="true" />
    			</bean>
    		</property>
    		<property name="sessionCacheSize" value="10" />
    		<property name="cacheProducers" value="false" />
    	</bean>
    	
    	<import resource="classpath*:META-INF/integration-context-my-module.xml" />
    	
    </beans>
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://www.springframework.org/schema/beans" 
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:int="http://www.springframework.org/schema/integration"
    	xmlns:int-stream="http://www.springframework.org/schema/integration/stream"
    	xmlns:jms="http://www.springframework.org/schema/integration/jms"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    	    http://www.springframework.org/schema/context 
    	    http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/integration 
            http://www.springframework.org/schema/integration/spring-integration-2.1.xsd
            http://www.springframework.org/schema/integration/jms 
            http://www.springframework.org/schema/integration/jms/spring-integration-jms-2.1.xsd
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/integration/stream
            http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
    
    	<int:publishing-interceptor id="interceptor" default-channel="myInMemoryChannel">
        <int:method 
        	pattern="startMe" 
        	payload="#args.dto.id			+ ',' + #args.dto.name......+..+   
        />
    	</int:publishing-interceptor>
    
    	<aop:config>
            <aop:advisor advice-ref="interceptor" pointcut="bean(myBeanImpl)" />
    	</aop:config>
    
    	<bean id="myQueue" class="org.apache.activemq.command.ActiveMQQueue">
            <constructor-arg name="name" value="${jms.ny.queue.name}" />
    	</bean>
    
    	<int:channel id="myInMemoryChannel" />
        <int:channel id="filteredMyChannel" />
    	
    
    		
    	<int:filter 
    	    input-channel="myInMemoryChannel"
    		output-channel="filteredMyChannel" 
    		throw-exception-on-rejection="false"
    		expression="true"
            />
         
        <jms:outbound-channel-adapter channel="filteredMyChannel" destination="myQueue" delivery-persistent="true" explicit-qos-enabled="true" />
        
        <int-stream:stderr-channel-adapter channel="errorChannel" append-newline="true" />
    </beans>

  • #2
    What do you mean when you say: "When i exclude this contexts everything works perfect with the same load" ?
    Also, it may be helpful if you explain your use case in plain words. What exactly are you trying to accomplish?

    Comment

    Working...
    X