axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rajith Attapattu" <rajit...@gmail.com>
Subject Re: [axis2] Pinging capability to services deployed in Axs2
Date Mon, 12 Feb 2007 22:42:13 GMT
Sorry for jumping in the middle. but I have a few questions, just to get my
self upto speed with the issue.

If I have understood correctly the difference btw an operation level and
service level ping is that.
If the service class or  the script is loading properly then a service level
ping is deemed successful.
And for operational level, the service author determines how deeper their
are willing to go.
Is this correct ???

For example if my service talks to a backend service(s) to execute the
operation, as a service author I can decide to actually ping the backend
service(s) as part of my ping operation or else to use a more light weight
approach to say my operation is working as desired.

This can cause serious performance implications if not managed properly and
as Dennis and Paul pointed out the benifit from such a ping may not be
worthwhile the cost. But allowing the service author to implement the ping
method and make a decesion on the level of "deepness" they are willing to go
seems like the right way to go.

>If all the MRs returns true then status of the service is "up". If one
>of MRs return false, the the status of the service will be "down"
I think the status of each operation as thilian pointed out is more useful
than just a blanket yes/no.
However I do recognize that providing the status of individual operations is
more complex.

Regards,

Rajith

On 2/12/07, Sameera Madushan <sameera.madushan@gmail.com> wrote:
>
> I have an on going prototype development of the ping module, but it is
> not yet submitted as a patch. It satisfies following requirements as
> they were discussed in this thread.
>
> The ping module supports only the service level ping requests. Once a
> service level ping request is received, it will invoke the ping
> methods of the all the MessageReceivers which handle the operations
> defined in the service and this module assumes that the
> MessageReceiver interface is extended. Consider the following sample
> code.
>
>                 boolean status = true;
>                 Iterator iterator = axisService.getOperations();
>
>                 while (iterator.hasNext() && status) {
>                     axisOperation = (AxisOperation) iterator.next();
>                     msgReceiver = (AbstractMessageReceiver)
>
> axisOperation.getMessageReceiver();
>                     status = msgReceiver.ping();
>                 }
>
> If all the MRs returns true then status of the service is "up". If one
> of MRs return false, the the status of the service will be "down"
> (say). Or else we can send the status of each operation as proposed by
> thilina.
>
> In most of the times single MR handles several web service operations.
> Therefore Using the above approache,  the ping method of a single MR
> can be invoked several times. This is an extra overhead.
>
> One solution to overcome this problem is to cache MR on which the ping
> method is invoked. AFA I think the second option is to send the
> operation name as a parameter to the ping method.
>
> These are just my opinions.
>
> Sameera
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Mime
View raw message