Avalon phoenix文档之管理员向导

类别:Java 点击:0 评论:0 推荐:

管理员向导

介绍

Avalon 是一个服务器框架(Framework),它提供了或将要为中心行政部门、服务池、及时市场行情提供服务。该框架为凑合服务组件和创建应用服务器定义了一套标准的方法。

目标人群

本文档将以管理员的角度阐述管理Avalon Phenix的核心。

启动和停止

    应用脚本

    你可以用以下命令启动Phoenix:>bin/run.[bat|sh]

    在Windows环境下,不包括NT,你需要首先设置PHOENIX_HOME环境变量。在UNIX环境下,你可以用phoenix.sh脚本停止Phoenix:>phoenix.sh stop

    phoenix.sh脚本接收以下命令:start、stop、run、restart、check。

    在Windows中,按下CONTROL-C将使phoenix彻底关闭。

    使用Java Service Wrapper

    另外一个开始/关闭Phoenix的选择就是利用Java Service Wrapper 的支持构建一个新的Phoenix。

    使用Java Service Wrapper的主要益处是可以将Phoenix做为一个NT的服务。它能够检测JVM是否冻结或者垮台并立即重新启动应用程序。

    要用Java Service Wrapper建造Phoenix,请下载并检查它的最新版本。然后,在源程序的根目录下创建或者编辑ant.properties,像如下所示:

 

# ${base.path} points to the root of the Phoenix source tree

wrapper.home=${base.path}/wrapper_linux_3.0.0

wrapper.jar=${wrapper.home}/lib/wrapper.jar

 

# If you're using Linux/Solaris:

wrapper.exe=${wrapper.home}/bin/wrapper

wrapper.dll=${wrapper.home}/lib/libwrapper.so

 

# If you're using Windows:

wrapper.exe=${wrapper.home}/bin/Wrapper.exe

wrapper.dll=${wrapper.home}/lib/Wrapper.dll

 

然后像一般工程一样build。

若想使用指令,则将当前路径移动之bin目录,然后键入:>wrapper

wrapper的配置文件通常命名为conf/wrapper.conf。

使用JMX

JMX概述

Phoenix是和JMX(Java Management Extensions)紧密结合的。请参看 JMX 信息

如何使你的block成为一个MBean

事实上这很简单。假设你想暴露来自WebServer block的接口,WebServer block在Block 配置人员中有描述。你仅需要做两件事.

    首先,创建一个MBean 接口,可以如下所示:

package examplecomp.block;

public interface WebServerMBean {

    void mountWar(String contextName, URL pathToWar);

    void unMountWar(String contextName);

}

注意MBean的接口和WebServer的接口是一样的。在大多数情况下都是这样的。

现在编写WebServerBlock实现WebServerMBean

package examplecomp.block;

/**

 * TODO: describe PhoenixXDoclet setup.

 * @phoenix:mx name="examplecomp.block.WebServerMBean"

 */

public class WebServerBlock

    extends AbstractLoggable

    implements WebServer, WebServerMBean, Startable, Configurable, Initializable {

    // ...

}

使用Http适应器

MX4J Http 适应器允许使用任何浏览器访问运行的Phoenix服务器。

使用RMI适应器

如果你想写一个代理程序管理phoenix程序,你可以使用MX4J RMI适应器。本节主要重复一下MX4J文档中的可用信息。Phoenix使用JRMP RMI适应器。

请确保在kernal.xml中MX4J RMI适应器有效。

<component role="org.apache.avalon.phoenix.interfaces.SystemManager"

class="org.apache.avalon.phoenix.components.manager.MX4JSystemManager"

            logger="manager" >

<enable-rmi-adaptor>true</enable-rmi-adaptor>

[other enabled adaptors]

</component>

请在你的classpath中设置mx4j-jmx.jar、mx4j-tools.jar和jini.properties路径,假设你想关闭phoenix。创建下面的类:

import mx4j.connector.rmi.jrmp.JRMPConnector;

import mx4j.connector.RemoteMBeanServer;

import javax.management.ObjectName;

 

public class JrmpShutdown {

 

    public static void main(String[] args) throws Exception

    {

        // Create a JRMPConnector

        JRMPConnector connector = new JRMPConnector();

 

        // Pass in the adaptor's JNDI name, no properties

        String jndiName = "jrmp";

        connector.connect(jndiName, null);

 

        // Get the remote MBeanServer from the connector

        // And use it as if it is an MBeanServer

        RemoteMBeanServer server = connector.getRemoteMBeanServer();

 

        ObjectName objName = new ObjectName("Phoenix:component=Embeddor,topic=Embeddor");

        server.invoke(objName, "shutdown", new Object[0], new String[0]);

    }

}

编译并运行――很快!服务器便停止了。

解决疑问

Phoenix启动后很快停止并没有报任何错误信息。

确保在app文件夹内有一个sar文件。如果没有任何服务在运行Phoenix会很快退出。事实上你可以通过JMX不配置任何应用来停止Phoenix服务(尽管这种方式十分奇特)。

David W. 编写

本文地址:http://com.8s8s.com/it/it17101.htm