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>


Reply With Quote