[jira] Commented: (SM-625) Failed unit test (servicemix-core) : org.apache.servicemix.jbi.nmr.flow.MultipleFlowsTest

2007-10-15 Thread Oleg Zhurakousky (JIRA)

[ 
https://issues.apache.org/activemq/browse/SM-625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40378
 ] 

Oleg Zhurakousky commented on SM-625:
-

You're right; there is no way of knowing if an Endpoint exists anywhere in the 
cluster. But I think the question I am raising is: Would it be a good idea to 
give a requester a benefit of the doubt. In other words if you ask for 
something and I don't see it right away, I'll make an attempt and take some 
time to look for it before I give you a definitive NO. 
In this situation we are at the mercy of network, its speed and configuration 
(something we can't control from SM) and I think the least we could do is to 
give networking components to do what it is supposed to do and either come up 
with an endpoint or with message stating a potential reason why endpoint was 
not found. 

Here is a sample code representing what I am talking about.

int retries = 0;
while (endpoints.length  1 || retries  5){
   endpoints = resolveAvailableEndpoints(context, exchange);
   Thread.sleep(500);
   retries++;
}

Most of the time if Endpoint is there the loop will exit right away. It will 
only execute retry logic if array is empty. 

P.S. I am purposely trying to be a devils advocate here. I am not sure I 
completely agree with this solution and mainly doing it to facilitate the 
discussion since one thing I definitely agree. . . it is a part of the bigger 
issue. 
Meanwhile I'll be digging. . . .
Also, as far as fixing the test, I can definitely wrap the sendMessages(..) 
call in the retry logic instead of relying on Thread.sleep(..) but would it 
really solve a bigger problem. . .


 Failed unit test (servicemix-core) : 
 org.apache.servicemix.jbi.nmr.flow.MultipleFlowsTest
 -

 Key: SM-625
 URL: https://issues.apache.org/activemq/browse/SM-625
 Project: ServiceMix
  Issue Type: Sub-task
  Components: servicemix-core
Affects Versions: 3.0
Reporter: Fritz Oconer
 Fix For: 3.2




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Issue Comment Edited: (SM-625) Failed unit test (servicemix-core) : org.apache.servicemix.jbi.nmr.flow.MultipleFlowsTest

2007-10-15 Thread Oleg Zhurakousky (JIRA)

[ 
https://issues.apache.org/activemq/browse/SM-625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40378
 ] 

ozhurakousky edited comment on SM-625 at 10/15/07 5:38 AM:
---

You're right; there is no way of knowing if an Endpoint exists anywhere in the 
cluster. But I think the question I am raising is: Would it be a good idea to 
give a requester a benefit of the doubt. In other words if you ask for 
something and I don't see it right away, I'll make an attempt and take some 
time to look for it before I give you a definitive NO. 
In this situation we are at the mercy of network, its speed and configuration 
(something we can't control from SM) and I think the least we could do is to 
give networking components to do what it is supposed to do and either come up 
with an endpoint or with message stating a potential reason why endpoint was 
not found. 

Here is a sample code representing what I am talking about.
{code}
int retries = 0;
while (endpoints.length  1 || retries  5){
   endpoints = resolveAvailableEndpoints(context, exchange);
   Thread.sleep(500);
   retries++;
}
{/code}
Most of the time if Endpoint is there the loop will exit right away. It will 
only execute retry logic if array is empty. 

P.S. I am purposely trying to be a devils advocate here. I am not sure I 
completely agree with this solution and mainly doing it to facilitate the 
discussion since one thing I definitely agree. . . it is a part of the bigger 
issue. 
Meanwhile I'll be digging. . . .
Also, as far as fixing the test, I can definitely wrap the sendMessages(..) 
call in the retry logic instead of relying on Thread.sleep(..) but would it 
really solve a bigger problem. . .


  was (Author: ozhurakousky):
You're right; there is no way of knowing if an Endpoint exists anywhere in 
the cluster. But I think the question I am raising is: Would it be a good idea 
to give a requester a benefit of the doubt. In other words if you ask for 
something and I don't see it right away, I'll make an attempt and take some 
time to look for it before I give you a definitive NO. 
In this situation we are at the mercy of network, its speed and configuration 
(something we can't control from SM) and I think the least we could do is to 
give networking components to do what it is supposed to do and either come up 
with an endpoint or with message stating a potential reason why endpoint was 
not found. 

Here is a sample code representing what I am talking about.

int retries = 0;
while (endpoints.length  1 || retries  5){
   endpoints = resolveAvailableEndpoints(context, exchange);
   Thread.sleep(500);
   retries++;
}

Most of the time if Endpoint is there the loop will exit right away. It will 
only execute retry logic if array is empty. 

P.S. I am purposely trying to be a devils advocate here. I am not sure I 
completely agree with this solution and mainly doing it to facilitate the 
discussion since one thing I definitely agree. . . it is a part of the bigger 
issue. 
Meanwhile I'll be digging. . . .
Also, as far as fixing the test, I can definitely wrap the sendMessages(..) 
call in the retry logic instead of relying on Thread.sleep(..) but would it 
really solve a bigger problem. . .

  
 Failed unit test (servicemix-core) : 
 org.apache.servicemix.jbi.nmr.flow.MultipleFlowsTest
 -

 Key: SM-625
 URL: https://issues.apache.org/activemq/browse/SM-625
 Project: ServiceMix
  Issue Type: Sub-task
  Components: servicemix-core
Affects Versions: 3.0
Reporter: Fritz Oconer
 Fix For: 3.2




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



ServiceMix Bean issues with send()

2007-10-15 Thread Andreas Schaefer (2)

Hi

I try to figure out what is going wrong with the ServiceMix Bean  
component when used with an asynchronous message exchange (send()).  
There is a good chance to I do not understand how the message  
exchange should work. This is what I tried:


- Bean SU 1 sends an In-Out ME to another Bean SU 2 with send() on  
the Delivery Channel
- B SU 2 handles the message and puts in an Out normalized message  
and then sends the ME back with send() on its Delivery Channel


What I see is that the Delivery Channel is sending the Mirror ME  
which is nearly the same but just has the opposite role (here  
consumer). This means that the message is sent back to the Consumer  
Bean Endpoint because that is the address set in the Mirror ME.


Is my assumption right that when a message is read from the NMR that  
it goes through the Provider endpoint and when the message is sent  
back that it then goes first through the Consumer endpoint of the  
same service or should it go to the Consumer endpoint of the calling  
service?
If the consumer endpoint of he SAME service is called then who is  
responsible on sending the message back to the calling service (B SU  
1) and is there a way to do this automatically (meaning with having  
to code anything in the Bean SUs)?


Thank you

Andreas Schaefer
CEO of Madplanet.com Inc.
[EMAIL PROTECTED]




PGP.sig
Description: This is a digitally signed message part


[jira] Created: (SM-1107) Deploy endpoints and listeners through the lwcontainer

2007-10-15 Thread Guillaume Nodet (JIRA)
Deploy endpoints and listeners through the lwcontainer
--

 Key: SM-1107
 URL: https://issues.apache.org/activemq/browse/SM-1107
 Project: ServiceMix
  Issue Type: New Feature
  Components: servicemix-lwcontainer
Reporter: Guillaume Nodet
Assignee: Guillaume Nodet
 Fix For: 3.2




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Re: ServiceMix Bean issues with send()

2007-10-15 Thread Guillaume Nodet
On 10/16/07, Andreas Schaefer (2) [EMAIL PROTECTED] wrote:
 Hi

 I try to figure out what is going wrong with the ServiceMix Bean component
 when used with an asynchronous message exchange (send()). There is a good
 chance to I do not understand how the message exchange should work. This is
 what I tried:

 - Bean SU 1 sends an In-Out ME to another Bean SU 2 with send() on the
 Delivery Channel
 - B SU 2 handles the message and puts in an Out normalized message and then
 sends the ME back with send() on its Delivery Channel

 What I see is that the Delivery Channel is sending the Mirror ME which is
 nearly the same but just has the opposite role (here consumer). This means
 that the message is sent back to the Consumer Bean Endpoint because that is
 the address set in the Mirror ME.

Yeah.  The thing is that in JBI, an exchange is sent from a component
to an endpoint.  In an InOut mep, the provider will send the exchange
with the out message inside, the nmr will route it to the consumer
component, which will dispatch it to the consumer endpoint.  The
endpoint processes the response and need to send back the exchange
with a DONE status.  The mirror stuff is used internally.


 Is my assumption right that when a message is read from the NMR that it goes
 through the Provider endpoint and when the message is sent back that it then
 goes first through the Consumer endpoint of the same service or should it go
 to the Consumer endpoint of the calling service?

I don't understand what is the difference you make between Consumer
endpoint of the same service and  Consumer endpoint of the calling
service ? Do you mean the POJO instance ?

 If the consumer endpoint of he SAME service is called then who is
 responsible on sending the message back to the calling service (B SU 1) and
 is there a way to do this automatically (meaning with having to code
 anything in the Bean SUs)?


If you don't implement MessageExchangeListener and you want to use
InOut asynchronously, then you need to use the @Callback annotation
and the Destination.

Else, I think the problem is that the component does not track that a
given endpoint acts as a consumer and send an exchange, so that it can
not route it back to the endpoint.  This would require wrapping the
DeliveryChannel or simply overriding the sendConsumerExchange method
from the component.  All exchanges sent from endpoints could be
tracked, but we still don't have any way to call the bean, unless it
has a @Callback.

Can you post your beans, because servicemix-bean has different ways of
writing a bean, so...

 Thank you


 Andreas Schaefer
 CEO of Madplanet.com Inc.
 [EMAIL PROTECTED]





-- 
Cheers,
Guillaume Nodet

Blog: http://gnodet.blogspot.com/


[jira] Commented: (SM-1097) Remote shell console based on GShell

2007-10-15 Thread Guillaume Nodet (JIRA)

[ 
https://issues.apache.org/activemq/browse/SM-1097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40388
 ] 

Guillaume Nodet commented on SM-1097:
-

GShell integration has been moved to ServiceMix 4.0 branch. 
https://svn.apache.org/repos/asf/incubator/servicemix/branches/servicemix-4.0/gshell

 Remote shell console based on GShell
 

 Key: SM-1097
 URL: https://issues.apache.org/activemq/browse/SM-1097
 Project: ServiceMix
  Issue Type: New Feature
Reporter: Guillaume Nodet
 Fix For: 4.0


 Work is in progress at
 http://svn.apache.org/repos/asf/incubator/servicemix/branches/osgi/gshell/

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.