Indika,

This explains all of it, and you should have send this explanation earlier
once you did the changes :-) I was trying to figure out the value addition
of the changes and now it is very clear.

Thanks for the explanation.

Thanks,
Ruwan

On Wed, Nov 12, 2008 at 5:50 PM, indika kumara <[EMAIL PROTECTED]>wrote:

> Hi Hiranya
>
> First thing, now endpoint can be at four states. Previously, only
> there were two states. I can't draw state diagram and just try to
> describe how state transition works.
>
> Following are the four states
>
> [1] Active      - I think, word is self descriptive
>
> [2] TimeOut     - With new endpoint enhancements, there is a feature that
> you can retry on failure of endpoint invocation. This behavior can be
> configured at endpoint level through synapse endpoint API.
> You can configure what are the error codes that should retry, retry
> delay, number of retry, etc... Configuration section is called
> 'markForSuspension'. If any errors (not only for timeout) that have
> been defined within ''markForSuspension' is occurred and if it is need
> to retry (positive retry count), endpoint is moved to 'TimeOut' State
> …Of course, name is not self descriptive. Endpoint in this state is
> moved to 'Suspended" state, if endpoint invocation will not be
> successful even in retries. If any retry got success, endpoint is
> moved to 'Active' state.
>
> [3] Suspended – There is a new configuration section, called
> 'suspendOnFailure' where defines error codes and some other
> parameters. If any of these errors is occurred during endpoint
> invocation, it is moved in to 'Suspended' state. It can only be active
> after, suspended duration is over.
>
> [4] Switch off - This is state endpoint is moved to maintenance.
> State change between any states to 'Switch off' only can be through
> manually through JMX based API we have provided. Endpoint which is in
> 'Switch off' state can only be moved to 'Active' state and it too can
> only be done through JMX.
>
>
> Now there is no method for 'isActive' …But there is a one
> readyToSend() that can be used for that. For a leaf endpoint, it
> returns true, if it is in active state or timeout state with remaining
> reties. For node endpoint, it is deepened on type of endpoint.
>
> There is no method called 'setActive' as we have multiple states. You
> can change states ... please   Look at 'AddressEndpoint' and
> 'EndpointContext .
>
> API may not reflect these. I may nice to move state change API into
> extended life cycle management interface –Endpoint Lifecycle
> Management and accessing separate behavior through separate API (Like
> JDK I/O 'Closable' interface) and separate leaf and node endpoint
> functionality into separate interface and base classes.
>
> I have't look at Dynamic Endpoint code ...
>
> BTW, Following shows a snapshot of a new endpoint configuration. To
> get know about meaning of error code please refer SynapseConstants
> class
>
>  <syn:endpoint name="one">
>               <syn:address uri="some loaction">
>                   <syn:suspendOnFailure>
>                       <syn:initialDuration>5</syn:initialDuration>
>                       <syn:progressionFactor>1.0</syn:progressionFactor>
>                       <syn:maximumDuration>10000</syn:maximumDuration>
>                   </syn:suspendOnFailure>
>                   <syn:markForSuspension>
>                       <syn:errorCodes>101504,101505</syn:errorCodes>
>
> <syn:retriesBeforeSuspension>5</syn:retriesBeforeSuspension>
>                       <syn:retryDelay>10</syn:retryDelay>
>                   </syn:markForSuspension>
>               </syn:address>
>           </syn:endpoint>
>
> Thanks
> Indika
>
> On Wed, Nov 12, 2008 at 3:23 PM, Hiranya Jayathilaka
> <[EMAIL PROTECTED]> wrote:
> > Hi Folks,
> >
> > I'm attempting to rectify the issues in the dynamic load balance code.
> When
> > going through the commit history I noticed that some of the methods in
> the
> > Endpoint interface have been removed recently. For example methods like
> > isActive and setActive are no longer available in the Endpoint interface.
> I
> > believe these are required by the dynamic load balance code. Were they
> > removed intentionally? If yes where is this functionality now?
> >
> > Thanks
> >
> > Best Regards,
> > Hiranya
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Ruwan Linton
http://wso2.org - "Oxygenating the Web Services Platform"
http://ruwansblog.blogspot.com/

Reply via email to