You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Tim Gates <ti...@planetgates.com> on 2010/09/03 16:07:01 UTC

Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Hello All,
Thanks in advance for any help you can supply.

We are developing a system using ServiceMix 3.4 and are experiencing memory
leak symptoms when using the servicemix-cxf-bc component.  

Version Details:
- Using ServiceMix / Fuse ESB 3.4.0.5 (Have tested with Fuse ESB 3.4.0.6
with same results)
- Using servicemix-cxf-bc version 2009.01.0.6-fuse
- Using 1.6.2.2-fuse version of the Camel components
- We've tested on Windows XP, Windows 7 64, and AIX with the same results.

The Problem
We've created a simple test project that shows the symptoms. 
We are using a servicemix-cxf-bc consumer to accept a message off of a
ActiveMQ JMS queue.  The message is then processed in a servicemix-camel
route and sent to a file.
When testing this we use a camel route to place 1000 copies of a message
from a poller director into the queue via a loop.
We then test several times by placing a test message into the polling
directory.
Even allowing for time for garbage collection we are noticing that PS Old
Gen memory continues to grow.
After verifying this in JConsole we've profiled using JPofiler and notice
that the bulk of memory is being used by char[] that seems to be associated
with org.apache.cxf.phase.PhaseInterceptorChain$InterceptorHolder objects. 
I've noticed that every time another 1000 messages are sent the queue and
processed another 16000 InterceptorHolders are created and it appears that
they never go away.  

Is there any known issues regarding the CXF BC?  From internet searches I've
seen mentions on the forum of memory issues related to the CXF BC (and the
PhaseInterceptorChain), but they appear to have been fixed.  Are they fixed
in the 2009.01.0.6-fuse version?
Is there any cleanup that is required in the CXF BC that we may not be
doing?

Reproducing the symptoms:
I've uploaded our test project.  
http://servicemix.396122.n5.nabble.com/file/n2802248/my-pr.zip my-pr.zip 
It contains a servicemix-cxf-bc su, a servicemix-camel su and a service
assembly.  Also, there is a test directory that contains a sample message
(input.xml).  After building and deploying the project place the input.xml
message in the ///temp/myTest/input folder and 1000 messages will be sent to
the JMS queue that is associated with the CXF BC (myTestQueue).   

I can supply more detailed JProfiler information if required.

Thanks
Tim


For reference the CXF BC xbean is shown below:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
   xmlns:test="http://com.ventyx.soi.test"
   xmlns:TPA="http://ventyx.com/3PA"
   xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://servicemix.apache.org/cxfbc/1.0
http://servicemix.apache.org/schema/servicemix-cxfbc-3.3.1.14-fuse.xsd
   http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
   http://cxf.apache.org/transports/camel
http://cxf.apache.org/transports/camel.xsd">


   <cxfbc:consumer wsdl="classpath:service.wsdl"
      service="test:HelloWorldService"
      endpoint="HelloWorldPortIn"
      targetService="TPA:3PA_JMS_Receive_Service" 
      targetInterface="TPA:3PA_JMS_Receive_Interface"
      targetEndpoint="QueueEndpoint"
      useJBIWrapper="false"
      useSOAPEnvelope="false">

      <cxfbc:features>
         <bean class="org.apache.cxf.transport.jms.JMSConfigFeature">
            <property name="jmsConfig">
               <bean class="org.apache.cxf.transport.jms.JMSConfiguration">
                  <property name="concurrentConsumers">
                     <value>5</value>
                  </property>
                  <property name="connectionFactory">
                     <ref bean="myConnectionFactory" />
                  </property>
                  <property name="targetDestination">
                     <value>myTestQueue</value>
                  </property>
                  <property name="useJms11">
                     <value>false</value>
                  </property>
               </bean>
            </property>
         </bean>
      </cxfbc:features>
   </cxfbc:consumer>


   <bean id="myConnectionFactory"
      class="org.springframework.jms.connection.SingleConnectionFactory102">
      <property name="targetConnectionFactory">
         <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <property name="brokerURL" value="tcp://localhost:61616" />
         </bean>
      </property>
   </bean>

</beans>


We are using a simple HelloWorld.wsdl for our service definitions:


-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2802248.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

The key point is it should be removed no matter it's onway or twoway.
The original fix based on the code that we already remove if it's  
twoway, so fix is only need handle the oneway case.
The one Tim changes which is merge my fix based on old release code is  
also correct IMH,
As normally only oneway message will go into
> if (exchange.getStatus() == ExchangeStatus.DONE ) {
and remove message and then return, so it only get removed once.

For twoway message, the status is ACTIVE in the method.

Freeman
On 2010-9-10, at 上午11:39, timtgo266 wrote:

>
> Hi, I was researching this very problem and happened on this  
> conversation. I
> noticed a difference between the original fix and the one here.   The
> difference changes the logic in that the original fix only removes the
> message from the exchange if it is one way, whereas, the code below  
> would
> remove it for all ExchangeStatus.Done messages and also attempt to  
> remove it
> twice when it is one way.
>
>
> if (exchange.getStatus() == ExchangeStatus.DONE ) {
>           Message message = messages.remove(exchange.getExchangeId());
> //should this be messages.get()???
>
> -- 
> View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2834474.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


-- 
Freeman Fang

------------------------
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org


Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by timtgo266 <ti...@huntel.net>.
Hi, I was researching this very problem and happened on this conversation. I
noticed a difference between the original fix and the one here.   The
difference changes the logic in that the original fix only removes the
message from the exchange if it is one way, whereas, the code below would
remove it for all ExchangeStatus.Done messages and also attempt to remove it
twice when it is one way.  


 if (exchange.getStatus() == ExchangeStatus.DONE ) { 
           Message message = messages.remove(exchange.getExchangeId());
//should this be messages.get()???
      
-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2834474.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Freeman Fang <fr...@gmail.com>.
On 2010-9-8, at 下午11:52, Tim Gates wrote:

>
> Hey Freeman,
> Doh!  Wasn't paying attention to that upper if statement.  I've  
> changed it
> and it appears to be freeing up memory much better :-).  Thanks for  
> your
> help.
> How would we go about getting this back into the code for  
> 2009.01.0.5-fuse?
> Is there a way to submit the change so that it's included in any  
> patches
> related to SMX 3.4.X?  I'm assuming we should build and deliver the
> compenent ourselves until a patch in 3.4 is made available that  
> contains a
> fix.  Is this correct?

Hi,

We(fuse team) will sync the fix from apache to fuse, and the fix  
should be picked up by next fuse esb release.

Freeman
>
> Thanks bunches for your help.
>
> Cheers,
> Tim
>
>
> Here is the new process method:
>    public void process(MessageExchange exchange) throws Exception {
> 	//Added by TGG
> 	if (exchange.getStatus() == ExchangeStatus.DONE ) {
> 	   Message message = messages.remove(exchange.getExchangeId());
>                boolean oneway = message.getExchange().get(
>                 
> BindingOperationInfo.class).getOperationInfo().isOneWay();
> 	   if(oneway){
> 	   //ensure remove message if oneway to avoid memory leak
> 	      messages.remove(exchange.getExchangeId());
> 	  }
> 	  return;
> 	}
>             /// End of Added by TGG
>        if (exchange.getStatus() != ExchangeStatus.ACTIVE) {
>            return;
>        }
>        Message message = messages.remove(exchange.getExchangeId());
>        synchronized (message.getInterceptorChain()) {
>            boolean oneway = message.getExchange().get(
>
> BindingOperationInfo.class).getOperationInfo().isOneWay();
>            if (!isSynchronous() && !oneway) {
>                ContinuationProvider continuationProvider =
> (ContinuationProvider) message
>                        .get(ContinuationProvider.class.getName());
>                Continuation continuation =
> continuationProvider.getContinuation();
>                if (continuation.isPending()) {
>                    continuation.resume();
>                    isSTFlow = false;
>                } else {
>                    isSTFlow = true;
>                }
>            }
>            if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>                exchange.setStatus(ExchangeStatus.DONE);
>                message.getExchange().get(ComponentContext.class)
>                    .getDeliveryChannel().send(exchange);
>            }
>       }
>
> -- 
> View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2808131.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


-- 
Freeman Fang

------------------------
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org


Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Tim Gates <ti...@planetgates.com>.
Hey Freeman,
Doh!  Wasn't paying attention to that upper if statement.  I've changed it
and it appears to be freeing up memory much better :-).  Thanks for your
help.
How would we go about getting this back into the code for 2009.01.0.5-fuse? 
Is there a way to submit the change so that it's included in any patches
related to SMX 3.4.X?  I'm assuming we should build and deliver the
compenent ourselves until a patch in 3.4 is made available that contains a
fix.  Is this correct?

Thanks bunches for your help.

Cheers,
Tim


Here is the new process method:
    public void process(MessageExchange exchange) throws Exception {
	//Added by TGG
	if (exchange.getStatus() == ExchangeStatus.DONE ) {
	   Message message = messages.remove(exchange.getExchangeId());
                boolean oneway = message.getExchange().get(
                BindingOperationInfo.class).getOperationInfo().isOneWay();
	   if(oneway){
	   //ensure remove message if oneway to avoid memory leak
	      messages.remove(exchange.getExchangeId());
	  }
	  return;
	}
             /// End of Added by TGG
        if (exchange.getStatus() != ExchangeStatus.ACTIVE) {
            return;
        }
        Message message = messages.remove(exchange.getExchangeId());
        synchronized (message.getInterceptorChain()) {
            boolean oneway = message.getExchange().get(
                   
BindingOperationInfo.class).getOperationInfo().isOneWay();
            if (!isSynchronous() && !oneway) {
                ContinuationProvider continuationProvider =
(ContinuationProvider) message
                        .get(ContinuationProvider.class.getName());
                Continuation continuation =
continuationProvider.getContinuation();
                if (continuation.isPending()) {
                    continuation.resume();
                    isSTFlow = false;
                } else {
                    isSTFlow = true;
                }
            }
            if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
                exchange.setStatus(ExchangeStatus.DONE);
                message.getExchange().get(ComponentContext.class)
                    .getDeliveryChannel().send(exchange);
            }
       }

-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2808131.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

You should ensure put new added code
//ensure remove message if oneway to avoid memory leak
messages.remove(exchange.getExchangeId());
at very begining of process method.
With your current change the new code never get invoked.
Freeman
On 2010-9-8, at 下午10:09, Tim Gates wrote:

>
> Hello Freeman,
> I took a look at the changes you made to the trunk version of the
> servicemix-cxf-bc and tried to apply the same fix to the version of
> servicemix-cxf-bc (2009.01.0.5-fuse).  The code looked quite  
> different than
> what existed in your fix, but I tried to apply the fix anyway.  After
> testing it appears the memory leak symptoms are still occuring with  
> the
> modified version of the 2009.01.0.5-fuse servicemix-cxf-bc.
>
> Either I did not apply the patch (see below) to the code properly or  
> there
> appears to be a different issue in the 2009.01.0.5-fuse version.
>
> I'm going to continue to use JProfiler to try and locate the source  
> of what
> is consuming memory.  I'll let you know any results I find.
>
> Also, since this is a Fuse version of the component is this the  
> correct
> forum I should be asking questions?  Or should I post this same  
> issue on the
> Fuse Forum?  Doesn't matter one way or another to me, but want to  
> make sure
> I'm following the proper procedure.
>
> Thanks,
> Tim
>
> The process method in the 2009.01.0.5-fuse version of  
> CxfBCConsumer.java now
> looks like:
>
>    public void process(MessageExchange exchange) throws Exception {
>        if (exchange.getStatus() != ExchangeStatus.ACTIVE) {
>            return;
>        }
>        Message message = messages.remove(exchange.getExchangeId());
>        synchronized (message.getInterceptorChain()) {
>            boolean oneway = message.getExchange().get(
>
> BindingOperationInfo.class).getOperationInfo().isOneWay();
>            if (!isSynchronous() && !oneway) {
>                ContinuationProvider continuationProvider =
> (ContinuationProvider) message
>                        .get(ContinuationProvider.class.getName());
>                Continuation continuation =
> continuationProvider.getContinuation();
>                if (continuation.isPending()) {
>                    continuation.resume();
>                    isSTFlow = false;
>                } else {
>                    isSTFlow = true;
>                }
>            }
>            if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>                exchange.setStatus(ExchangeStatus.DONE);
>                message.getExchange().get(ComponentContext.class)
>                    .getDeliveryChannel().send(exchange);
>            }
>            if (message == null) {
>                return;
>            }
> 	//Added by  
> TGG ///////////////////////////////////////////////////////
> 	if (exchange.getStatus() == ExchangeStatus.DONE && oneway) {
>                //ensure remove message if oneway to avoid memory leak
>                messages.remove(exchange.getExchangeId());
>            }
> 	//End of added by TGG
> ///////////////////////////////////////////////////////
>       }
> -- 
> View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2807945.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


-- 
Freeman Fang

------------------------
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org


Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Tim Gates <ti...@planetgates.com>.
Hello Freeman,
I took a look at the changes you made to the trunk version of the
servicemix-cxf-bc and tried to apply the same fix to the version of
servicemix-cxf-bc (2009.01.0.5-fuse).  The code looked quite different than
what existed in your fix, but I tried to apply the fix anyway.  After
testing it appears the memory leak symptoms are still occuring with the
modified version of the 2009.01.0.5-fuse servicemix-cxf-bc.

Either I did not apply the patch (see below) to the code properly or there
appears to be a different issue in the 2009.01.0.5-fuse version.

I'm going to continue to use JProfiler to try and locate the source of what
is consuming memory.  I'll let you know any results I find.  

Also, since this is a Fuse version of the component is this the correct
forum I should be asking questions?  Or should I post this same issue on the
Fuse Forum?  Doesn't matter one way or another to me, but want to make sure
I'm following the proper procedure.

Thanks,
Tim

The process method in the 2009.01.0.5-fuse version of CxfBCConsumer.java now
looks like:

    public void process(MessageExchange exchange) throws Exception {
        if (exchange.getStatus() != ExchangeStatus.ACTIVE) {
            return;
        }
        Message message = messages.remove(exchange.getExchangeId());
        synchronized (message.getInterceptorChain()) {
            boolean oneway = message.getExchange().get(
                   
BindingOperationInfo.class).getOperationInfo().isOneWay();
            if (!isSynchronous() && !oneway) {
                ContinuationProvider continuationProvider =
(ContinuationProvider) message
                        .get(ContinuationProvider.class.getName());
                Continuation continuation =
continuationProvider.getContinuation();
                if (continuation.isPending()) {
                    continuation.resume();
                    isSTFlow = false;
                } else {
                    isSTFlow = true;
                }
            }
            if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
                exchange.setStatus(ExchangeStatus.DONE);
                message.getExchange().get(ComponentContext.class)
                    .getDeliveryChannel().send(exchange);
            }
            if (message == null) {
                return;
            }
	//Added by TGG ///////////////////////////////////////////////////////
	if (exchange.getStatus() == ExchangeStatus.DONE && oneway) {
                //ensure remove message if oneway to avoid memory leak
                messages.remove(exchange.getExchangeId());
            }
	//End of added by TGG
///////////////////////////////////////////////////////
       }
-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2807945.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Tim Gates <ti...@planetgates.com>.
Hello Freeman,
Thank you for such a quick turnaround.  You just might have saved our bacon
:-)  We'll give it a try this coming week.

Cheers,
Tim

-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2805309.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

There is an issue for InOnly message, create SMXCOMP-797[1] to track  
it, the fix is on the way.
Thanks for pointing out this issue and the great testcase :-)

[1]https://issues.apache.org/activemq/browse/SMXCOMP-797

Freeman
On 2010-9-4, at 上午9:02, Tim Gates wrote:

>
> Hello Freeman,
> I believe the issue I saw mentioned was here:
> https://issues.apache.org/jira/browse/CXF-2211
>
> But I don't know that it's related to our problem.  None of the  
> issues I had
> seen from internet searchs seemed to exactly match our situation,  
> but a few
> seemed to reference PhaseInterceptorChain in stack traces.
>
> Thanks for taking a look.
>
> Cheers,
> Tim
>
> -- 
> View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2803129.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


-- 
Freeman Fang

------------------------
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org


Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Tim Gates <ti...@planetgates.com>.
Hello Freeman,
I believe the issue I saw mentioned was here:
https://issues.apache.org/jira/browse/CXF-2211

But I don't know that it's related to our problem.  None of the issues I had
seen from internet searchs seemed to exactly match our situation, but a few
seemed to reference PhaseInterceptorChain in stack traces.  

Thanks for taking a look.

Cheers,
Tim

-- 
View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2803129.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Re: Experiencing memory leak symptoms using servicemix-cxf-bc in SMX 3.4

Posted by Freeman Fang <fr...@gmail.com>.
On 2010-9-3, at 下午10:07, Tim Gates wrote:

>
> Hello All,
> Thanks in advance for any help you can supply.
>
> We are developing a system using ServiceMix 3.4 and are experiencing  
> memory
> leak symptoms when using the servicemix-cxf-bc component.
>
> Version Details:
> - Using ServiceMix / Fuse ESB 3.4.0.5 (Have tested with Fuse ESB  
> 3.4.0.6
> with same results)
> - Using servicemix-cxf-bc version 2009.01.0.6-fuse
> - Using 1.6.2.2-fuse version of the Camel components
> - We've tested on Windows XP, Windows 7 64, and AIX with the same  
> results.
>
> The Problem
> We've created a simple test project that shows the symptoms.
> We are using a servicemix-cxf-bc consumer to accept a message off of a
> ActiveMQ JMS queue.  The message is then processed in a servicemix- 
> camel
> route and sent to a file.
> When testing this we use a camel route to place 1000 copies of a  
> message
> from a poller director into the queue via a loop.
> We then test several times by placing a test message into the polling
> directory.
> Even allowing for time for garbage collection we are noticing that  
> PS Old
> Gen memory continues to grow.
> After verifying this in JConsole we've profiled using JPofiler and  
> notice
> that the bulk of memory is being used by char[] that seems to be  
> associated
> with org.apache.cxf.phase.PhaseInterceptorChain$InterceptorHolder  
> objects.
> I've noticed that every time another 1000 messages are sent the  
> queue and
> processed another 16000 InterceptorHolders are created and it  
> appears that
> they never go away.
>
> Is there any known issues regarding the CXF BC?  From internet  
> searches I've
> seen mentions on the forum of memory issues related to the CXF BC  
> (and the
> PhaseInterceptorChain), but they appear to have been fixed.  Are  
> they fixed
> in the 2009.01.0.6-fuse version?
Hi,

Could you point me the jira number you mentioned here?

Freeman
> Is there any cleanup that is required in the CXF BC that we may not be
> doing?
>
> Reproducing the symptoms:
> I've uploaded our test project.
> http://servicemix.396122.n5.nabble.com/file/n2802248/my-pr.zip my- 
> pr.zip
> It contains a servicemix-cxf-bc su, a servicemix-camel su and a  
> service
> assembly.  Also, there is a test directory that contains a sample  
> message
> (input.xml).  After building and deploying the project place the  
> input.xml
> message in the ///temp/myTest/input folder and 1000 messages will be  
> sent to
> the JMS queue that is associated with the CXF BC (myTestQueue).
>
> I can supply more detailed JProfiler information if required.
>
> Thanks
> Tim
>
>
> For reference the CXF BC xbean is shown below:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans"
>   xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
>   xmlns:test="http://com.ventyx.soi.test"
>   xmlns:TPA="http://ventyx.com/3PA"
>   xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://servicemix.apache.org/cxfbc/1.0
> http://servicemix.apache.org/schema/servicemix-cxfbc-3.3.1.14-fuse.xsd
>   http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>   http://cxf.apache.org/transports/camel
> http://cxf.apache.org/transports/camel.xsd">
>
>
>   <cxfbc:consumer wsdl="classpath:service.wsdl"
>      service="test:HelloWorldService"
>      endpoint="HelloWorldPortIn"
>      targetService="TPA:3PA_JMS_Receive_Service"
>      targetInterface="TPA:3PA_JMS_Receive_Interface"
>      targetEndpoint="QueueEndpoint"
>      useJBIWrapper="false"
>      useSOAPEnvelope="false">
>
>      <cxfbc:features>
>         <bean class="org.apache.cxf.transport.jms.JMSConfigFeature">
>            <property name="jmsConfig">
>               <bean  
> class="org.apache.cxf.transport.jms.JMSConfiguration">
>                  <property name="concurrentConsumers">
>                     <value>5</value>
>                  </property>
>                  <property name="connectionFactory">
>                     <ref bean="myConnectionFactory" />
>                  </property>
>                  <property name="targetDestination">
>                     <value>myTestQueue</value>
>                  </property>
>                  <property name="useJms11">
>                     <value>false</value>
>                  </property>
>               </bean>
>            </property>
>         </bean>
>      </cxfbc:features>
>   </cxfbc:consumer>
>
>
>   <bean id="myConnectionFactory"
>       
> class="org.springframework.jms.connection.SingleConnectionFactory102">
>      <property name="targetConnectionFactory">
>         <bean class="org.apache.activemq.ActiveMQConnectionFactory">
>            <property name="brokerURL" value="tcp://localhost:61616" />
>         </bean>
>      </property>
>   </bean>
>
> </beans>
>
>
> We are using a simple HelloWorld.wsdl for our service definitions:
>
>
> -- 
> View this message in context: http://servicemix.396122.n5.nabble.com/Experiencing-memory-leak-symptoms-using-servicemix-cxf-bc-in-SMX-3-4-tp2802248p2802248.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.


-- 
Freeman Fang

------------------------
blog: http://freemanfang.blogspot.com
twitter: http://twitter.com/freemanfang
Open Source SOA: http://fusesource.com
Apache Servicemix:http://servicemix.apache.org
Apache Cxf: http://cxf.apache.org
Apache Karaf: http://karaf.apache.org
Apache Felix: http://felix.apache.org