  
  
管理员向导 
介绍 
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. 编写  
 
  |