4 Replies Latest reply on May 11, 2011 3:29 AM by llwang0455

    servicemix-cxf-bc.xsd

    llwang0455

      Hi,all,

      I have a question about the cxf-bc xsd file, where can I get this file?

      I tried the url http://servicemix.apache.org/cxfse/1.0/servicemix-cxf-bc.xsd,

      but the url can not be opened.

        • 1. Re: servicemix-cxf-bc.xsd
          ffang

          Hi,

           

          It's in servicemix-cxf-bc.jar, we use spring.schemas to add local URI map to point to local xsd files, so that you needn't download the schema files remotely.

           

          Freeman

          • 2. Re: servicemix-cxf-bc.xsd
            llwang0455

            Oh,got it! Thanks for your reply!

            By the way, would you please give me an attach of your "Why ESB server hang after runing for a while?" at your blog? I really need it ,however, I can't open the blog url for some reasons. Thanks again!

            • 3. Re: servicemix-cxf-bc.xsd
              ffang

              Ok, paste the content of that blog here.

               

              Why ESB server hang after runing for a while?

               

              A frequently asked question on FuseSource[1] forum or Apache Servicemix[2] mailling list is they encounter an issue that ESB server just hangafter running a while, can't handle incoming request anymore. This issue could be caused for two major reason

              1. customer working flow isn't correct, not all MEPs are handled correctly, especially when use sendSync, but some MessageExchange never end up with DONE/ERROR, this will cause thread lock, and threads would be used up in this case so that can't hanle incoming request anymore.

              2. Too many cocurrent client request message cause threadpool used up, customer usually face this problem when they do performance/load test.The solution is quite straightforward for different cases,

              for case1. correct your working flow, ensure that all MEPs are handled correctly, use send but not sendSync as much as possible.

              for case2. configure threadpool[3] for the performance test component, ensure the threadpool big enough for your performance/load test.

               

              I saw several cases that customer use cxfbc:consumer endpoint as facade to handle performance/load test request, the typical test flow could be

              cxfbc:consumer==>servicemix-camel

              cxfbc:consumer==>cxfse

              cxfbc:consumer==>servicemix-bean

              cxfbc:consumer==>cxfbc:provider

              Previously By default cxfbc:consumer endpoint use sendSync(this is a block mehtod,waiting for response message) to send message to NMR, this can cause deadlock for cocurrent request with default threadpool configuration, so if you wanna support heavy cocurrent request better,  you need add synchronous="false" attribute to cxfbc:consumer endpoint, this will leverage CXF continuation API and use send(this is a non-block method) method to send message to NMR. Since servicemix-cxf-bc-2010.02, synchronous="false" is the default value, which means the default behavior of cxfbc is asynchronously.

               

              Btw, to configure threadpool for NMR and each component in SMX4 is different with it in SMX3[3]. In SMX4, we leverage OSGi Configuration admin service to configure properties, so customer need edit a file named org.apache.servicemix.nmr.cfg in $SMX_HOME/etc folder to configure threadpool for nmr, and edit a file named org.apache.servicemix.components.component-name(like cxfbc).cfg in $SMX_HOME/etc folder for each component.

              http://fusesource.com/

              http://servicemix.apache.org/home.html

              http://servicemix.apache.org/thread-pools.html

               

               

              Freeman

              • 4. Re: servicemix-cxf-bc.xsd
                llwang0455

                Thanks for your fast reply, I will read it right now!