org.mmbase.module.builders
Class MMServers
java.lang.Object
org.mmbase.util.functions.FunctionProvider
org.mmbase.module.core.MMTable
org.mmbase.module.core.MMObjectBuilder
org.mmbase.module.builders.MMServers
- All Implemented Interfaces:
- EventListener, NodeEventListener, RelationEventListener, StateConstants, MMBaseObserver
public class MMServers
- extends MMObjectBuilder
- implements MMBaseObserver, StateConstants
- Version:
- $Id: MMServers.java 45315 2011-02-18 20:23:11Z michiel $
- Author:
- vpro
- Javadoc:
- mmservers stands for MMBase servers. It is possible to run multiple mmbase servers on one database instance.
Every mmserver node represent a real MMBase server(think of it as a machine where one instance of MMBase is running).
On startup MMBase looks in the mmservers table and looks if he is listed in the list of mmservers,
if not MMBase create a new node containing imfornation about itselve(name/host/os/jdk). the mmservers builder has extra behaviour,
it can communicate with other servers(using multicast). The basic funtionality it provides however is sending information
about changes of node to other mmservers (Listen !! I just have changed node 123). This mechanisme makes it possible to keep
nodes caches in sync but also makes it possible to split tasks between machines. You could for example have a server that encodes video.
when a change to a certain node is made one of the servers (if wel configured) can start encoding the videos.
| Fields inherited from class org.mmbase.module.core.MMObjectBuilder |
AGE_PARAMETERS, broadCastChanges, DEFAULT_ALINEA, DEFAULT_EOL, description, descriptions, EVENT_TYPE_LOCAL, EVENT_TYPE_REMOTE, FIELD_NUMBER, FIELD_OBJECT_TYPE, FIELD_OWNER, fields, genericBlobCache, getFunctionsFunction, GUI_INDICATOR, GUI_PARAMETERS, guiFunction, infoFunction, internalVersion, nodeCache, oType, pluralNames, searchAge, singularNames, SYSTEM_OWNER, TEMPNODE_DEFAULT_SIZE, TMP_FIELD_EXISTS, TMP_FIELD_NUMBER, virtual, WRAP_PARAMETERS, wrapFunction |
| Methods inherited from class org.mmbase.module.core.MMObjectBuilder |
addEventListener, addField, addLocalObserver, addRemoteObserver, broadcastChanges, checkAddTmpField, clearBlobCache, commit, create, createAlias, createAlias, createIfNotExists, delete, equals, executeFunction, executeFunction, fieldLocalChanged, getAncestors, getBlobCache, getClassName, getConfigFile, getConfigResource, getDataTypeCollector, getDBState, getDBType, getDefaultTeaser, getDefaultUrl, getDescendants, getDescription, getDescription, getDescriptions, getEmptyNode, getField, getFieldNames, getFields, getFields, getFunction, getFunctionParameters, getFunctions, getGUIIndicator, getGUIIndicator, getGUIIndicator, getHTML, getInitParameter, getInitParameters, getInitParameters, getInternalVersion, getList, getLocaleGUIIndicator, getLocaleGUIIndicator, getMachineName, getMaintainer, getNewNode, getNewTmpNode, getNextField, getNextField, getNode, getNode, getNode, getNodeFromCache, getNodeGUIIndicator, getNumber, getObjectType, getObjectValue, getParentBuilder, getPluralName, getPluralName, getPluralNames, getRelations_main, getSearchAge, getShort, getShortedByte, getShortedInputStream, getShortedText, getSingularName, getSingularName, getSingularNames, getSmartPath, getTmpNode, getURLEncode, getVersion, getWAP, getXMLPath, hasField, hashCode, hashCode, hostname_function, insert, insert, isExtensionOf, isNodeCached, isNull, isVirtual, loadInitParameters, newFunctionInstance, nodeLocalChanged, nodeRemoteChanged, notify, notify, preCommit, process, removeEventListener, removeField, removeLocalObserver, removeNode, removeRelations, removeRemoteObserver, removeSyncNodes, replace, safeCache, sendFieldChangeSignal, setDefaults, setDescription, setDescriptions, setFields, setInitParameter, setMaintainer, setPluralNames, setSearchAge, setSingularNames, setUniqueValue, setUniqueValue, setValue, setValue, setVersion, setXMLPath, testValidData, toString, update, updateFields, wrap |
| Methods inherited from class org.mmbase.module.core.MMTable |
count, count, created, getFullTableName, getMMBase, getNode, getNodes, getNodes, getNodes, getNodeType, getStorageConnector, getTableName, search, searchVector, setMMBase, setTableName, size |
getUpTime
protected Function<Long> getUpTime
- Function uptime
- Since:
- MMBase-1.8
query
protected NodeSearchQuery query
MMServers
public MMServers()
init
public boolean init()
- Description copied from class:
MMObjectBuilder
- Initializes this builder
The property 'mmb' needs to be set for the builder before this method can be called.
The method retrieves data from the TypeDef builder, or adds data to that builder if the
current builder is not yet registered.
- Overrides:
init in class MMObjectBuilder
- Returns:
- true if init was completed, false if uncompleted.
- See Also:
MMObjectBuilder.create()
start
protected void start()
- Starts the thread for the task scheduler
- Since:
- MMBase-1.7
shutdown
public void shutdown()
- Description copied from class:
MMObjectBuilder
- clean all acquired resources, because system is shutting down
- Overrides:
shutdown in class MMObjectBuilder
getValue
public Object getValue(MMObjectNode node,
String field)
- Description copied from class:
MMObjectBuilder
- Provides additional functionality when obtaining field values.
This method is called whenever a Node of the builder's type fails at evaluating a getValue() request
(generally when a fieldname is supplied that doesn't exist).
It allows the system to add 'functions' to be included with a field name, such as 'html(body)' or 'time(lastmodified)'.
This method will parse the fieldname, determining functions and calling the
MMObjectBuilder.executeFunction(MMObjectNode, String, java.util.List) method to handle it.
Functions in fieldnames can be given in the format 'functionname(fieldname)'. An old format allows 'functionname_fieldname' instead,
though this only applies to the text functions 'short', 'html', and 'wap'.
Functions can be nested, i.e. 'html(shorted(body))'.
Derived builders should override this method only if they want to provide virtual fieldnames. To provide additonal functions,
call FunctionProvider.addFunction(org.mmbase.util.functions.Function)
instead. See also the source code for ExampleBuilder.
- Overrides:
getValue in class MMObjectBuilder
- Parameters:
node - the node whos efields are queriesfield - the fieldname that is requested
- Returns:
- the result of the 'function', or null if no valid functions could be determined.
- Javadoc:
getMMServerNodes
public List<MMObjectNode> getMMServerNodes()
throws SearchQueryException
- Returns all the nodes from the builder without loading it in the nodes cache of MMBase.
- Returns:
- The nodes.
- Throws:
SearchQueryException - when something fails on database level.
setCheckService
public void setCheckService(String name)
- Javadoc:
getMMServerProperty
public String getMMServerProperty(String mmserver,
String key)
- Javadoc:
getMMServerNode
public MMObjectNode getMMServerNode(String name)
- Javadoc:
getMMServerNode
public MMObjectNode getMMServerNode(String name,
String host)
- Since:
- MMBase-1.8.3
getIntervalTime
public long getIntervalTime()
- Returns:
- Returns the intervalTime in ms.
equals
public boolean equals(MMObjectNode o1,
MMObjectNode o2)
- MMServer object are field by field equals.
- Overrides:
equals in class MMObjectBuilder
toString
public String toString(MMObjectNode n)
- Description copied from class:
MMObjectBuilder
- Implements for MMObjectNode
- Overrides:
toString in class MMObjectBuilder
getActiveServers
public List<MMObjectNode> getActiveServers()
- Returns:
- List of MMObjectNodes representing active servers, which are not this server.
MMBase2 Core 2.0-SNAPSHOT - 2013-05-29T22:08