Hi,

the Threaddump is quit large
http://www.nabble.com/file/p19664362/Threaddump.txt Threaddump.txt .

Greetings

stephan



Freeman Fang wrote:
> 
> Hi,
> 
> Would you please dump thread stack trace when the process hang?
> 
> Regards
> Freeman
> 
> Crimor wrote:
>> Hi,
>>
>> I have a cxfse-su Orderservice which should send a message to an cxfbc-su
>> CRMService. This works fine on low traffic but if on high traffic it
>> seems
>> that the sendSync hangs up.
>>
>>
>> So I started an JMeter load tests and I take only 3 users which cause 500
>> request and everything works fine but if I increase the users to > 4 it
>> seems that the sendsync hangs up. Without the sendSync and both services
>> testet separately  the cxf OrderService and cxf CRMService works fine
>> within
>> 50 users performing 1000 requests. 
>>
>> Flow:
>>
>> client ---> cxfbc-su OrderService --> cxfse-su OrderService
>> ---sendSync-->
>> cxfbc-su CRMService ---> cxfse-su CRMService --- reponse to --> cxfse-su
>> OrderService --response to -> client
>>
>>
>> CXF-BC CRMSERVICE xbean.xml
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <beans
>>   xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
>>   xmlns:order="http://test.net/crmservice/v1/";>
>>
>>   <!-- Loads the  configuration-->
>>   <bean
>>    
>> class="xxx.xxx.xxxx.common.util.spring.StagePropertiesPlaceholderConfigurer"/>
>>
>>   <cxfbc:consumer
>>     wsdl="classpath:crmService.wsdl"
>>     targetService="order:CRMService"
>>     targetInterface="order:crmServicePort"
>>     timeout="${xxx.components.cxf-bc.timeout}" 
>>     locationURI="${xxx.components.crm.service.soapurl}"/>
>>
>> </beans>
>>
>>
>> The CXF OrderService send method:
>>
>> protected Source sendMessage(Source xmlMessage, QName serviceName, QName
>> interfaceName, QName operationName)
>>         throws AdFusionException {
>>
>>     ServiceMixClient client = new ServiceMixClientFacade(context);
>>     NormalizedMessage message = null;
>>     InOut exchange = null;
>>     try {
>>       exchange = client.createInOutExchange();
>>       message = exchange.getInMessage();
>>       message.setContent(xmlMessage);
>>
>>       exchange.setService(serviceName);
>>       exchange.setInterfaceName(interfaceName);
>>       exchange.setOperation(operationName);
>>       // sending the message
>>       client.sendSync(exchange);
>>     } catch (MessagingException e) {
>>       StringBuilder sb = new StringBuilder();
>>       logger.error("sendMessage() - " + sb.toString(), e);
>>       throw new AdFusionException(sb.toString(), e);
>>     }
>>     // retrieving the answer
>>     // logger.info("sendMessage() - exchange: " + exchange);
>>     // logger.info("sendMessage() - exchange.getOutMessage(): " +
>> exchange.getOutMessage());
>>
>>     Source source = getContentFromMessage(exchange);
>>
>>     try {
>>       client.done(exchange);
>>     } catch (MessagingException e) {
>>       String msg = "Error setting status of response to
>> ExchangeStatus.DONE";
>>       logger.error("sendMessage() - " + msg + ": " + e.getMessage());
>>     } finally {
>>       try {
>>         client.close();
>>       } catch (JBIException e) {
>>         String msg = "Error closing client";
>>         logger.error("sendMessage() - " + msg + ": " + e.getMessage());
>>       }
>>     }
>>
>>     if (source == null) {
>>       throw new AdFusionException("Source could not be retrieved from
>> exchange.");
>>     }
>>     return source;
>>   }
>>
>>   private StringSource getContentFromMessage(InOut exchange) {
>>     Source source = null;
>>     if (exchange != null) {
>>       if (exchange.getFault() != null) {
>>         Fault fault = exchange.getFault();
>>         logger.debug("getContentFromMessage() - retrieving fault: " +
>> fault);
>>         source = fault.getContent();
>>       } else {
>>         if (exchange.getOutMessage() != null) {
>>           NormalizedMessage message = exchange.getOutMessage();
>>           logger.debug("getContentFromMessage() - retrieving message: " +
>> message);
>>           source = message.getContent();
>>         } else {
>>           logger
>>                 .error("getContentFromMessage() - The CRM System did not
>> answer, exchange.getOutMessage() and exchange.getFault() is null. Please
>> check the CRM Log files.");
>>           AdfError adfError =
>> errorHandler.getById(AdfErrorCode.NO_CRM_ANSWER);
>>           throw new AdFusionException(AdfErrorCode.NO_CRM_ANSWER,
>> adfError);
>>         }
>>       }
>>     } else {
>>       logger.error("getContentFromMessage() - exchange was null");
>>     }
>>     String resource = jbiWrapper.sourceToString(source, false, false);
>>     StringSource stringSource = new StringSource(resource);
>>     logger.debug("getContentFromMessage() - Returned source: " +
>> resource);
>>     return stringSource;
>>   }
>>
>> May you can help me?
>>
>> Greetings 
>> Stephan
>>
>>   
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/sendSync-hangs-on-Loadtest.-tp19643829p19664362.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to