|
REQUIREMENT engine.runlevel |
| Type | NEW |
| Priority | HIGH |
| Status | CLOSED |
| Topic | XmlBlaster supports different run levels | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Des cription |
An xmlBlaster server instance has different states, we call it run levels as a gesture of honor
to the UNIX run levels.
Administration features:
<xmlBlaster>
<!-- A typical plugin which is loaded by client request -->
<plugin id='dispatchPriority'
className='org.xmlBlaster.util.dispatch.plugins.prio.PriorizedDispatchPlugin'
jar='/tmp/my.jar'>
<attribute id='config'>
<![CDATA[
<msgDispatch defaultStatus='64k' defaultAction='send'>
<onStatus oid='_bandwidth.status' content='64k' defaultAction='destroy'>
<action do='send' ifPriority='7-9'/>
<action do='queue' ifPriority='2-6'/>
</onStatus>
<onStatus oid='_bandwidth.status' content='2M'>
<action do='send' ifPriority='0-9'/>
</onStatus>
</msgDispatch>
]]>
</attribute>
</plugin>
<plugin id='queueCACHE' className='org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin'>
<attribute id='transientQueue'>queueRAM</attribute>
<attribute id='persistentQueue'>queueJDBC</attribute>
</plugin>
<plugin id='queueRAM' className='org.xmlBlaster.util.queue.ram.RamQueuePlugin'/>
<plugin id='storageCACHE' className='org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin'>
<attribute id='transientQueue'>storageRAM</attribute>
<attribute id='persistentQueue'>storageJDBC</attribute>
</plugin>
<plugin id='storageRAM' className='org.xmlBlaster.engine.msgstore.ram.MapPlugin'/>
<!-- and here the declarations which are specific to the given nodes -->
<node id='heron'>
<plugin id='SOCKET-admin' className='org.xmlBlaster.protocol.socket.SocketDriver'>
<attribute id='port'>69000</attribute>
</plugin>
<!-- /node/heron/plugin/SOCKET/attribute/port=6901 -->
<!-- /node/heron/plugin/SOCKET/action/LOAD/onStartupRunlevel=3 -->
<!-- /node/heron/plugin/SOCKET/action/LOAD/sequence=5 -->
<plugin id='SOCKET' className='org.xmlBlaster.protocol.socket.SocketDriver'>
<attribute id='port'>6901</attribute>
<action do='LOAD' onStartupRunlevel='3' sequence='5' onFail='resource.configuration.pluginFailed'/>
<action do='STOP' onShutdownRunlevel='2' sequence='4'/>
</plugin>
<plugin id='queueJDBC' className='org.xmlBlaster.util.queue.jdbc.JDBCQueueCommonTablePlugin'>
<attribute id='url'>jdbc:oracle:thin:@localhost:1521:noty</attribute>
<attribute id='user'>joe</attribute>
<attribute id='password'>secret</attribute>
<attribute id='connectionBusyTimeout'>90000</attribute>
<attribute id='maxWaitingThreads'>300</attribute>
</plugin>
<plugin id='storageJDBC' className='org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin'>
<attribute id='url'>jdbc:oracle:thin:@localhost:1521:noty</attribute>
<attribute id='user'>joe</attribute>
<attribute id='password'>secret</attribute>
<attribute id='connectionBusyTimeout'>90000</attribute>
<attribute id='maxWaitingThreads'>300</attribute>
</plugin>
</node> <!-- heron -->
<node id='avalon'>
...
<plugin id='queueJDBC' className='org.xmlBlaster.util.queue.jdbc.JDBCQueueCommonTablePlugin'>
<attribute id='url'>jdbc:oracle:thin:@localhost:1521:noty</attribute>
<attribute id='user'>joe</attribute>
<attribute id='password'>secret</attribute>
<attribute id='connectionBusyTimeout'>90000</attribute>
<attribute id='maxWaitingThreads'>300</attribute>
<attribute id='tableNamePrefix'>AVALON_</attribute>
</plugin>
...
</node>
</xmlBlaster>
If a plugin is defined directly under the xmlBlaster tag, then its definition affects all nodes. Definitions under a specific node are stronger (i.e. they will overwrite any definition found under xmlBlaster and affect only the node under which they are defined. If you don't want to load a plugin you simply don't put it in the xml tree. Alternatively you comment it out according to the xml syntax:
The plugin element:The plugin tag has the following attributes:
someName=someValue
and in the xmlBlasterPlugins.xml:
...
<attribute id='furtherAttribute'>${someName}</attribute>
...
then the attribute of 'furtheAttribute' will be 'someValue'.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Example any |
You can play with the run levels interactive on command line, start the server and type '?' when it is up to get the usage: java org.xmlBlaster.Main ... ---------------------------------------------------------- Following interactive keyboard input is recognized: Key: g Popup the control panel GUI. r <run level> Change to run level (0,3,6,9). d <file name> Dump internal state of xmlBlaster to file. q Quit xmlBlaster. ---------------------------------------------------------- r 3 [RunlevelManager] Change request from run level RUNNING to run level STANDBY ... [RunlevelManager] Successful shutdown to run level=CLEANUP. [CorbaDriver] POA and ORB are down, CORBA resources released. [RunlevelManager] Successful shutdown to run level=STANDBY. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Configure |
NOTE: Configuration parameters are specified on command line (-someValue 17) or in the
xmlBlaster.properties file (someValue=17). See requirement "util.property" for details. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| See API | org.xmlBlaster.engine.runlevel.RunlevelManager | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| See API | org.xmlBlaster.engine.runlevel.I_RunlevelListener | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| See REQ | engine.runlevel.howto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| See REQ | admin |
This page is generated from the requirement XML file xmlBlaster/doc/requirements/engine.runlevel.xml