Chathura Ekanayake wrote:
Hi Steve and all,
What are the functionalities you would expect from the management interface.
I have currently implemeted the functionalities provided by the Axis2
admin page so that those tasks can be performed using APIs. Below are
some functionalities I have implemented so far;
Getting list of serviceGroups, services, operations, modules and transports
Getting and editing parameters at all levels (e.g. service parameters,
global parameters)
Getting engaged modules at various levels (e.g. global, service)
Engage modules globally
Engage modules to services
Engage modules to operations
And I am using Apache commons.modeler package for JMX. Therefore,
clients can access the management interface using a
MBeanServerConnection object and using methods like invoke
and getAttribute with the method or attribute name as a parameter. Is
this good enough?
Yes it is. What is useful is to have some good attributes to monitor, like
-current load
-load by endpoint
And statistics
-number of requests
-number of failed requests
-number of successful requests
-operation to reset the counters
and any other statistics that are easy to gather and easy to present.
That way a management tool can define health as "load<some value" and
#of failed requests below a certain threshold. alerting people (ideally
not us developers) when things start to fail. This is important for web
services, because
-there's no easy way to browse to the page to check it works
-if you are part of a chain, you want to find and fix a problem before
people upstream do it.
And when using the WS interface, the client is just a web services
client, using Axis2, .NET or any other technology.
What specific feathers should the management interface support to use it
with SmartFrog?
ah, that's a good question.
Right now I have a deployment of Jetty+Axis2 in our own JVM
What I'm doing there is just declaring the servlet engine and servlet
bindings of Axis
Axis2Servlet extends Servlet {
name "AxisServlet";
className "org.apache.axis2.transport.http.AxisServlet";
pathSpec "/services/*";
}
Axis2ServletContext extends ServletContext {
}
Somewhere later on I bring up jetty and bind the servlet inside the
servlet context. Because jetty isnt hosting JSP pages, I can't make
happy.jsp my liveness check for system health, so I do something else (I
forget what).
What I would like is an easy way to declare endpoints themselves,
without having to create archive files and service group XML entries and
things like that, and pass configuration data down to them.
-steve