JBoss AS6 的服务状态说明
来源:互联网 发布:手机淘宝申请售后 编辑:程序博客网 时间:2024/05/29 07:48
(本文源代码版本为JBoss-AS-Final 6.1.0)
JBoss 的服务状态定义在 LifecycleState 类中。
一共有八个状态:INSTANCIATED, PRE_INIT, INITIALIZED, IDLE, STARTING, STARTED, STOPPING, STOPPED
下面分别解释:
一、INSTANCIATED
一个服务最原始的状态,只有一次。进入其他状态后,再也不会回到这个状态。
这个状态是在 AbstractServer的构造方法的最后一行被设置的。
this.state = LifecycleState.INSTANCIATED;
在构造方法之后,执行的是initialize()方法,因此,这个状态下,服务还没有初始化。
在很多JBoss的错误中,经常看到这个状态。
这个词的字面意思很容易让人理解为:实例化的,其实他的意思是:你的服务还在 最原始 的状态,没有被启动!
二、PRE_INIT
初始化之前的准备状态: pre-initialize,在AbstractServer执行 initialize()方法时,设置状态为 PRE_INIT。这种状态只有一次。
这个状态设置完后,开始调用doInitialize()方法。
在 INSTANCIATED ------> PRE_INIT 之间,完成了 configuration是否为空的判断,此时的configuration是一个刚刚实例化的 BasicJBossASServerConfig 对象。
与 INSTANCIATED 不同的是,设置PRE_INIT状态使用了
this.setState(LifecycleState.PRE_INIT);
里面除了设置state状态,还触发了生命周期变化事件:
this.state = state; final Set<LifecycleEventHandler> handlers = this.getHandlersForEvent(state); for (final LifecycleEventHandler handler : handlers) { handler.handleEvent(state); }
final LifecycleEventHandler startHandler = new KernelStartEventLifecycleEventHandler(this);final LifecycleEventHandler stopHandler = new KernelStopEventLifecycleEventHandler(this);this.registerEventHandler(startHandler, LifecycleState.STARTED);this.registerEventHandler(stopHandler, LifecycleState.STOPPING);
三、INITIALIZED
初始化完成,AbstractServer及其子类的doInitialize()方法全部执行完毕,回到initialize()后将 PRE_INIT 状态变为 INITIALIZED。这种状态只有一次。
也是使用
this.setState(LifecycleState.INITIALIZED);
四、IDLE
空闲状态,表示还没有启动或者正在等待启动。最初这个状态是紧跟着INITIALIZED状态设置的:
this.setState(LifecycleState.INITIALIZED); this.setState(LifecycleState.IDLE);
this.setState(LifecycleState.STOPPED); this.setState(LifecycleState.IDLE);
五、STARTING
正在启动过程中,还没有启动完毕。
在 AbstractServer的 StartServerTask 中设置了STARTING状态:
setState(LifecycleState.STARTING);
六、STARTED
启动完成,处于服务的状态。
这个状态是在 AbstractServer的 StartServerTask完成了 doStart()等方法之后,在最后设置的。
同时,也触发了 KernelStartEventLifecycleEventHandler 事件处理!
这是一个并行的处理机制。
STARTED可以转换为 STOPPING。
七、STOPPING
正在停止,还没有完成。
同时,也触发了 KernelStopEventLifecycleEventHandler 事件处理!
这个状态会转换到 STOPPED。
八、STOPPED
停止完毕。然后转换到IDLE状态。
以上状态只有 INSTANCIATED ,IDLE ,STARTED和 STOPPED状态是稳定的,我们经常看到的只有这个4个稳定的状态。
其他状态在程序执行过程中会转变为稳定状态,因此这些不稳定状态我们是无法获取到的。
- JBoss AS6 的服务状态说明
- 查看VNC服务连接状态的说明
- Jboss AS6 单个Jboss部署多个项目
- jboss的目录说明
- JBoss AS6 + JRockit 6 + Mission Control 4.1 整合
- 无状态的EJB(JBoss)
- JBOSS服务的启动、停止
- windows下JBOSS的安装配置说明
- 把jboss安装成windows的服务!
- 谈JBoss的技术架构与服务
- 把jboss安装成windows的服务!
- JBoss做成Redhat Linux的系统服务
- 外部无法访问Jboss服务的解决方案
- 局域网访问jboss服务的设置方法
- AS4,AS5,AS6支持NTFS格式的实现和思考
- ajax 的status状态说明
- SOCKET CLOSE_WAIT状态的说明
- SOCKET CLOSE_WAIT状态的说明
- 反应堆模式(二):非阻塞式IO应用
- Oracle Apps R12 Show Blank Page
- javascript隐藏导航菜单栏和关闭页面
- ACM的数学知识体系
- 使用命令行复制文件夹
- JBoss AS6 的服务状态说明
- 专访创视微总经理王建忠:逃开总局政策,做变种盒子
- hdu 1053Entropy
- 在glibc中加入strlcpy()函数
- PHP编译时错误解决:Don't know how to define struct flock on this system, set --enable-opcache=no
- 如何决定Web应用线程池大小
- 真正的爱是关掉WiFi
- stack(括号,表达式)
- 解决MSSQL 2008不能用IP登录的问题