If the tcp client sends <message type="tcp"><text>hallo</text></message> then
the tcp bc/ the tcpserver get the message.
If the tcp client sends <message type="http"><text>hallo</text></message>
then the http bc/ the http server get the message. 
I read this out of the message using xpatch in my .drl file:

package org.apache.servicemix.drools
 
import org.apache.servicemix.drools.model.Exchange;

global org.apache.servicemix.drools.model.JbiHelper jbi;

rule "tcphttp:http"
        when
                me : Exchange( status == Exchange.ACTIVE, inmsg : in != null );
                eval( inmsg.xpath("/message/@type = \"http\""))
        then
                
System.out.println("!!!!!!!!!!!!!!!!!!!!!http!!!!!!!!!!!!!!!!!!!!!!! ");
                jbi.route( "service:http://knapp.com/tcphttp/dhttp_provider"; );
end

rule "tcphttp:tcp"
        when
                me : Exchange( status == Exchange.ACTIVE, inmsg : in != null );
                eval( inmsg.xpath("/message/@type = \"tcp\""));
        then
                
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!tcp!!!!!!!!!!!!!!!!!! ");
                jbi.route( "service:http://knapp.com/tcphttp/dtcp_provider"; );
end



Gert Vanthienen wrote:
> 
> L.S.,
> 
> Strange... the Drools JBIHelper routeTo() is waiting for something 
> though.  Perhaps it's another rule trying to send something that gets 
> stuck.  Once you're out of Drools components threads, everything will 
> stop.  Perhaps Ulhas is onto something with the remark about the Jetty 
> in the HTTP component.  I see the diagram also mentions the HTTP BC.  
> How is the message being send to that endpoint?
> 
> Regards,
> 
> Gert
> 
> gigeril wrote:
>> But why should it not come back to the drools endpoint?? It gets back to
>> my
>> client!! To define it a little bit cleaner:
>>
>> TCP Client sends the Message <message
>> type=\"tcp\"><text>hallo</text></message>
>> The TCP BC takes it and route the message to the TCP Provider Endpoint
>> because the value of the property "type" is tcp. Then the TCP Provider
>> Component takes it and sends it to the TCP Server. The TCP Server takes
>> the
>> "hallo" out of the message, replace it with "blaaba" and sends it back.
>> Then
>> I print the response that the client gets and I see the correct message
>> <message type=\"tcp\"><text>blaaba</text></message>.
>>
>> So the whole message flow works but only for 23 Messages. I can'T follow
>> you
>> if you say that the drools endpoint doesn't get a response from any of
>> the
>> binding component.
>>
>>
>>
>>
>>
>> Gert Vanthienen wrote:
>>   
>>> L.S.,
>>>
>>> That would be because the InOut message exchange never gets back to the 
>>> drools endpoint.  What are you sending it to?  Is it possible that the 
>>> target component somehow fails to send the correct response back?
>>>
>>> Regards,
>>>
>>> Gert
>>>
>>> gigeril wrote:
>>>     
>>>> If I send my 23 Message and then look into servicemix with jconsole I
>>>> see
>>>> 16
>>>> drools Threads are waiting for exchange:
>>>>
>>>> Name: pool-flow.seda.servicemix-drools-thread-1
>>>> State: WAITING on [EMAIL PROTECTED]
>>>> Total blocked: 0  Total waited: 2
>>>>
>>>> Stack trace: 
>>>> java.lang.Object.wait(Native Method)
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.waitForExchange(DeliveryChannelImpl.java:699)
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:472)
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>>> org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:102)
>>>> org.apache.servicemix.drools.model.JbiHelper.routeTo(JbiHelper.java:151)
>>>> org.apache.servicemix.drools.model.JbiHelper.route(JbiHelper.java:109)
>>>> org.apache.servicemix.drools.Rule_tcphttp_http_0.consequence(Rule_tcphttp_http_0.java:14)
>>>> org.apache.servicemix.drools.Rule_tcphttp_http_0ConsequenceInvoker.evaluate(Rule_tcphttp_http_0ConsequenceInvoker.java:20)
>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:554)
>>>>    - locked [EMAIL PROTECTED]
>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:518)
>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:475)
>>>>    - locked [EMAIL PROTECTED]
>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:439)
>>>>    - locked [EMAIL PROTECTED]
>>>> org.apache.servicemix.drools.DroolsEndpoint.drools(DroolsEndpoint.java:183)
>>>> org.apache.servicemix.drools.DroolsEndpoint.process(DroolsEndpoint.java:177)
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:597)
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:548)
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:502)
>>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>>> java.lang.Thread.run(Thread.java:619)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> gigeril wrote:
>>>>   
>>>>       
>>>>> But if it is going back trough the drools endpoint why is the sendsync
>>>>> thread in the drools endpoint still opened ? 
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Gert Vanthienen wrote:
>>>>>     
>>>>>         
>>>>>> L.S.,
>>>>>>
>>>>>> It is going back through the Drools component.  If you look at the 
>>>>>> JBIHelper, you'll find code like this:
>>>>>>         getChannel().sendSync(newMe);
>>>>>>         if (newMe.getStatus() == ExchangeStatus.DONE) {
>>>>>>             me.setStatus(ExchangeStatus.DONE);
>>>>>>             getChannel().send(me);
>>>>>>       ...
>>>>>>
>>>>>> In the snippet above, the newMe is the Exchange being sent from the
>>>>>> the 
>>>>>> Drools helper.  After it returns (using sendSync), the exchange that 
>>>>>> came into the drools endpoint is being answered (just with DONE here, 
>>>>>> but there are other paths the code that return message content and 
>>>>>> faults). 
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Gert
>>>>>>
>>>>>> gigeril wrote:
>>>>>>       
>>>>>>           
>>>>>>> I don't unterstand the message flow trough servicemix when using
>>>>>>> drools
>>>>>>> component. If I am sending a request (INOUT Pattern), and this
>>>>>>> request
>>>>>>> passes the drools endpoint and get forwarded to the TCP or HTTP
>>>>>>> Endpoint
>>>>>>> how
>>>>>>> does the response get back to my client? Over the drools endpoint or
>>>>>>> does
>>>>>>> the http/tcp endpoint send it to the tcp consumer directly??
>>>>>>>
>>>>>>> I think that it sends it directly but the drools endpoint also waits
>>>>>>> for
>>>>>>> the
>>>>>>> response and so it is waiting and waiting and no sendSync answer is
>>>>>>> send
>>>>>>> to
>>>>>>> it because it was already send to the consumer Endpoint.
>>>>>>>
>>>>>>> I ask this, because I always get the right response to my client.
>>>>>>>
>>>>>>> What can I do avoid this issue?
>>>>>>>
>>>>>>> btw.: I am using apache-servicemix-3.3-20080721.213539-7. 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Gert Vanthienen wrote:
>>>>>>>   
>>>>>>>         
>>>>>>>             
>>>>>>>> Andrea,
>>>>>>>>
>>>>>>>> Actually, I was just looking at applying that.  If the code in your
>>>>>>>> last 
>>>>>>>> comment goes into the routeTo method, isn't this a step back from
>>>>>>>> where 
>>>>>>>> we were?  It uses send() instead of sendSync(), but I no longer see
>>>>>>>> any 
>>>>>>>> possibility of handling an InOut or RobustInOnly with a Fault
>>>>>>>> message, 
>>>>>>>> or am I missing something there?
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>> Gert
>>>>>>>>
>>>>>>>> Andrea Zoppello wrote:
>>>>>>>>     
>>>>>>>>           
>>>>>>>>               
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I had the same problem, take a look to mine last comment on
>>>>>>>>> https://issues.apache.org/activemq/browse/SM-1248
>>>>>>>>>
>>>>>>>>> Andrea
>>>>>>>>> gigeril ha scritto:
>>>>>>>>>       
>>>>>>>>>             
>>>>>>>>>                 
>>>>>>>>>> Hi @ all.
>>>>>>>>>> I've following following setup of Servicemix:
>>>>>>>>>>                                                          
>>>>>>>>>>                                                                    
>>>>>>>>>> TCP Client -----> TCP BC-->drools BC ------> TCP BC ---> TCP
>>>>>>>>>> Server
>>>>>>>>>>                                                          
>>>>>>>>>> |____>HTTP 
>>>>>>>>>> BC -->
>>>>>>>>>> HTTP Server
>>>>>>>>>>
>>>>>>>>>> If I connect (target Service) my own written TCP BC to the HTTP
>>>>>>>>>> BC
>>>>>>>>>> or 
>>>>>>>>>> the
>>>>>>>>>> TCP BC it works fine (sync, async, Pattern: Inout, InOnly).
>>>>>>>>>> I get a problem if the drools engine get into the message chain.
>>>>>>>>>> Then 
>>>>>>>>>> I only
>>>>>>>>>> can send 23 Messages (always 23!!) until my tcp client reports me
>>>>>>>>>> a
>>>>>>>>>> connection timeout and the connectors get stuck. I can only press 
>>>>>>>>>> STRG+C in
>>>>>>>>>> the Servicemix Console Window to restart Servicemix and send 23 
>>>>>>>>>> Messages.
>>>>>>>>>> This sending of this 23 Messages work fine. They take the way I 
>>>>>>>>>> defined in
>>>>>>>>>> my .drl where it depends on the message content if it is send to
>>>>>>>>>> the 
>>>>>>>>>> tcp or
>>>>>>>>>> the http server. I also get the response back to the client.
>>>>>>>>>>
>>>>>>>>>> This is the output when I press STRG+C. This whole stacktrace is 
>>>>>>>>>> printed out
>>>>>>>>>> 23 times.
>>>>>>>>>>
>>>>>>>>>> INFO  - ServiceAssemblyLifeCycle       - Shutting down service
>>>>>>>>>> assembly:
>>>>>>>>>> droolsrouter-sa
>>>>>>>>>> INFO  - ServiceUnitLifeCycle           - Shutting down service
>>>>>>>>>> unit:
>>>>>>>>>> droolsrouter-su
>>>>>>>>>> INFO  - ServiceUnitLifeCycle           - Shutting down service
>>>>>>>>>> unit:
>>>>>>>>>> httpprovider-su
>>>>>>>>>> INFO  - ServiceUnitLifeCycle           - Shutting down service
>>>>>>>>>> unit:
>>>>>>>>>> tcpconsumer-su
>>>>>>>>>> INFO  - ServiceUnitLifeCycle           - Shutting down service
>>>>>>>>>> unit:
>>>>>>>>>> tcpprovider-su
>>>>>>>>>> INFO  - JBIContainer                   - ServiceMix JBI Container
>>>>>>>>>> (ServiceMix) stopped
>>>>>>>>>> [Fatal Error] :1:89: Content is not allowed in trailing section.
>>>>>>>>>> ERROR - DroolsComponent                - Error processing
>>>>>>>>>> exchange 
>>>>>>>>>> InOut[
>>>>>>>>>>   id: ID:10.22.20.113-11b93600c6f-4:0
>>>>>>>>>>   status: Active
>>>>>>>>>>   role: provider
>>>>>>>>>>   service: {http://knapp.com/tcphttp}myRouter
>>>>>>>>>>   endpoint: myRouter
>>>>>>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><message
>>>>>>>>>> type="http"><text>hallo</text></message>
>>>>>>>>>>   out: Unable to display: org.xml.sax.SAXParseException: Content
>>>>>>>>>> is
>>>>>>>>>> not
>>>>>>>>>> allowed in trailing section.
>>>>>>>>>> ]
>>>>>>>>>> org.drools.spi.ConsequenceException: 
>>>>>>>>>> javax.jbi.messaging.MessagingException:
>>>>>>>>>> java.lang.InterruptedException
>>>>>>>>>>         at
>>>>>>>>>> org.drools.base.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:13
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>> )
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:558)
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:518)
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:475)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:439)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.DroolsEndpoint.drools(DroolsEndpoint.java:183)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.DroolsEndpoint.process(DroolsEndpoint.java:177)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:597)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:548)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:502)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at java.lang.Thread.run(Thread.java:619)
>>>>>>>>>> Caused by: javax.jbi.messaging.MessagingException:
>>>>>>>>>> java.lang.InterruptedException
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:498)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:102)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.model.JbiHelper.routeTo(JbiHelper.java:151)
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.model.JbiHelper.route(JbiHelper.java:109)
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.Rule_tcphttp_http_0.consequence(Rule_tcphttp_http_0.java:14)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.Rule_tcphttp_http_0ConsequenceInvoker.evaluate(Rule_tcphttp_http_0ConsequenceInv
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>> oker.java:20)
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:554)
>>>>>>>>>>         ... 16 more
>>>>>>>>>> Caused by: java.lang.InterruptedException
>>>>>>>>>>         at java.lang.Object.wait(Native Method)
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.waitForExchange(DeliveryChannelImpl.java:699)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:472)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         ... 23 more
>>>>>>>>>> ERROR - DroolsComponent                - Error setting exchange 
>>>>>>>>>> status to
>>>>>>>>>> ERROR
>>>>>>>>>> java.lang.IllegalStateException: component is not owner when
>>>>>>>>>> trying 
>>>>>>>>>> to set
>>>>>>>>>> error: org.drools.spi.ConsequenceException: j
>>>>>>>>>> avax.jbi.messaging.MessagingException:
>>>>>>>>>> java.lang.InterruptedException
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setError(MessageExchangeImpl.java:264)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:516)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at java.lang.Thread.run(Thread.java:619)
>>>>>>>>>> Caused by: org.drools.spi.ConsequenceException:
>>>>>>>>>> javax.jbi.messaging.MessagingException:
>>>>>>>>>> java.lang.InterruptedException
>>>>>>>>>>         at
>>>>>>>>>> org.drools.base.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:13
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>> )
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:558)
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:518)
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:475)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:439)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.DroolsEndpoint.drools(DroolsEndpoint.java:183)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.DroolsEndpoint.process(DroolsEndpoint.java:177)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:597)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:548)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:502)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         ... 8 more
>>>>>>>>>> Caused by: javax.jbi.messaging.MessagingException:
>>>>>>>>>> java.lang.InterruptedException
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:498)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:102)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.model.JbiHelper.routeTo(JbiHelper.java:151)
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.model.JbiHelper.route(JbiHelper.java:109)
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.Rule_tcphttp_http_0.consequence(Rule_tcphttp_http_0.java:14)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.drools.Rule_tcphttp_http_0ConsequenceInvoker.evaluate(Rule_tcphttp_http_0ConsequenceInv
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>> oker.java:20)
>>>>>>>>>>         at
>>>>>>>>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:554)
>>>>>>>>>>         ... 16 more
>>>>>>>>>> Caused by: java.lang.InterruptedException
>>>>>>>>>>         at java.lang.Object.wait(Native Method)
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.waitForExchange(DeliveryChannelImpl.java:699)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:472)
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>         ... 23 more
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> So my rule.drl looks like:
>>>>>>>>>>
>>>>>>>>>> package org.apache.servicemix.drools
>>>>>>>>>>  
>>>>>>>>>> import org.apache.servicemix.drools.model.Exchange;
>>>>>>>>>>
>>>>>>>>>> global org.apache.servicemix.drools.model.JbiHelper jbi;
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>> rule "tcphttp:http"
>>>>>>>>>>     when
>>>>>>>>>>         me : Exchange( status == Exchange.ACTIVE, inmsg : in !=
>>>>>>>>>> null
>>>>>>>>>> );
>>>>>>>>>>         eval( inmsg.xpath("/message/@type = \"http\""))
>>>>>>>>>>     then
>>>>>>>>>>         
>>>>>>>>>> System.out.println("!!!!!!!!!!!!!!!!!!!!!http!!!!!!!!!!!!!!!!!!!!!!!
>>>>>>>>>> ");
>>>>>>>>>>         jbi.route(
>>>>>>>>>> "service:http://knapp.com/tcphttp/dhttp_provider";
>>>>>>>>>> );
>>>>>>>>>> end
>>>>>>>>>>
>>>>>>>>>> rule "tcphttp:tcp"
>>>>>>>>>>     when
>>>>>>>>>>         me : Exchange( status == Exchange.ACTIVE, inmsg : in !=
>>>>>>>>>> null
>>>>>>>>>> );
>>>>>>>>>>         eval( inmsg.xpath("/message/@type = \"tcp\""));
>>>>>>>>>>     then
>>>>>>>>>>         
>>>>>>>>>> System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!tcp!!!!!!!!!!!!!!!!!!
>>>>>>>>>> ");
>>>>>>>>>>         jbi.route(
>>>>>>>>>> "service:http://knapp.com/tcphttp/dtcp_provider";
>>>>>>>>>> );
>>>>>>>>>> end
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> My xbean.xml for the drools su:
>>>>>>>>>>
>>>>>>>>>> <beans xmlns:drools="http://servicemix.apache.org/drools/1.0";
>>>>>>>>>>        xmlns:tcphttp="http://knapp.com/tcphttp";
>>>>>>>>>>        xmlns="http://www.springframework.org/schema/beans";
>>>>>>>>>>       
>>>>>>>>>> xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance";
>>>>>>>>>>       
>>>>>>>>>> xsi:schemaLocation="http://servicemix.apache.org/drools/1.0
>>>>>>>>>> http://servicemix.apache.org/schema/servicemix-drools-3.2.2.xsd
>>>>>>>>>>        http://www.springframework.org/schema/beans
>>>>>>>>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd";>
>>>>>>>>>>
>>>>>>>>>>   <drools:endpoint service="tcphttp:myRouter"
>>>>>>>>>>                    endpoint="myRouter"
>>>>>>>>>>                    ruleBaseResource="classpath:rule.drl"
>>>>>>>>>>                    namespaceContext="#nsContext" />
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>   <drools:namespace-context id="nsContext">
>>>>>>>>>>     <drools:namespaces>
>>>>>>>>>>       <drools:namespace
>>>>>>>>>> prefix="tcphttp">http://knapp.com/tcphttp</drools:namespace>
>>>>>>>>>>     </drools:namespaces>
>>>>>>>>>>   </drools:namespace-context>
>>>>>>>>>>
>>>>>>>>>> </beans>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>   
>>>>>>>>>>         
>>>>>>>>>>               
>>>>>>>>>>                   
>>>>>>>>>       
>>>>>>>>>             
>>>>>>>>>                 
>>>>>>>> -----
>>>>>>>> ---
>>>>>>>> Gert Vanthienen
>>>>>>>> http://www.anova.be
>>>>>>>>
>>>>>>>>     
>>>>>>>>           
>>>>>>>>               
>>>>>>>   
>>>>>>>         
>>>>>>>             
>>>>>> -----
>>>>>> ---
>>>>>> Gert Vanthienen
>>>>>> http://www.anova.be
>>>>>>
>>>>>>       
>>>>>>           
>>>>>     
>>>>>         
>>>>   
>>>>       
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://www.anova.be
>>>
>>>     
>>
>>   
> 
> 
> 
> -----
> ---
> Gert Vanthienen
> http://www.anova.be
> 

-- 
View this message in context: 
http://www.nabble.com/Drools-BindingComponent-get-Stuck-after-sending-23-Messages----tp18833113p18848713.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to