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=someValueand 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