First the QName deserialization problem is due to incompatible versions
of the QName class, at least between JDK 1.4 and 5.  This may be
a bid problem in your case.

On 12/22/06, estrnod <[EMAIL PROTECTED]> wrote:


1)  Am I right to expect the transactions (messages) to be routed to other
installations of this configuration on the same subnet?

I would think they should.  You can first check that remote endpoints
are properly
discovered by increasing the log level of the jms flow to debug.
You should see some messages:
  [container]: adding remote endpoint: [endpoint]


2)  Should I be able to see MBeans for all the queues for all started
installations when using jconsole to view
"service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"
(or "service:jmx:rmi:///jndi/rmi://localhost:1092/jmxrmi", setup this way to
prevent an error "ObjID already in use"), or just the local queues and then
connections for the other installations?  (Does JMX even matter for
ServiceMix routing to clustered nodes?)

You should only see the queues for remote endpoints
once the flow has send a message to it.


3)  I found the following possibly very relevant posting on the "ServiceMix
- Dev" list:
http://www.nabble.com/-jira--Updated%3A-%28SM-344%29-Improve-clustering-by-allowing-implicit-endpoint-selection-to-be-done-by-the-flow-tf1358361s12049.html#a3638632
- was this ever addressed? (The JIRA posting's status is still "Open".)

So I assume the problem is that you have the same service defined on several
instances of servicemix, but messages are always routed to the local
one, right ?
There are two different cases here:
 * is the same JBI endpoint is activated on a remote servicemix instance,
   they will be considered a single endpoint wrt to implicit endpoint selection
 * if you have different endoints names for a single service, be it
local or remote,
   they will be considered as different endpoints.
So now, before the exchange is given to the flow, a target endpoint is selected.
The default policy is to choose the first endpoint found for the
selected service.
The exchange will  be sent to a queue which name is the service/endpoint name.
If your endpoints are clustered (remote endpoints have the same name),
then load balancing should occur.  Note that it may appear that ActiveMQ is
optimized and will prefer routing to a local consumer instead of a remote one
(i don't remember how to customize this behavior).
If the endpoints have different names, you may want to change the policy
used to choose an endpoint to a random policy to avoid always choosing
the same endpoint (which may be local).

This JIRA is about doing load balancing before the endpoint is selected.
This has not been implemented yet, but you would still have the same kind
of problems (though the different behaviors between same endpoint names
vs different endpoint names would not happen).


4)  If the improvement in (3) is not done, what else should I be doing to
cause the behavior that I am seeking?

Thanks for any light that anyone can shed on this problem.

- Ellen



--
View this message in context: 
http://www.nabble.com/Endpoint-Determination-Made-By-Flow-in-a-Clustered-Environment--tf2868246s12049.html#a8016723
Sent from the ServiceMix - User mailing list archive at Nabble.com.




--
Cheers,
Guillaume Nodet

Reply via email to