{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[JSClientInformation]{span}{span:class=sWordList}[JSColumnObject]{span}{span:class=sWordList}[JSServer]{span}{span:class=sWordList}[JSTableObject]{span}{td}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[JSClientInformation]\[]{td}{td}[#getConnectedClients]\()
Returns an array of JSClientInformation elements describing the clients connected to the server.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getDataModelClonesFrom]\(name)
Retrieves a list with names of all database servers that have property DataModelCloneFrom equal to the parameter.{td}{tr}{tbody}{tbody}{tr}{td}[JSServer]{td}{td}[#getServer]\(serverName)
Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.{td}{tr}{tbody}{tbody}{tr}{td}[JSServer]{td}{td}[#getServer]\(serverName, mustBeEnabled)
Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.{td}{tr}{tbody}{tbody}{tr}{td}[JSServer]{td}{td}[#getServer]\(serverName, mustBeEnabled, mustBeValid)
Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getServerNames]\()
Retrieves a list with the names of all available database servers.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getServerNames]\(mustBeEnabled)
Retrieves a list with the names of all available database servers.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getServerNames]\(mustBeEnabled, mustBeValid)
Retrieves a list with the names of all available database servers.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getServerNames]\(mustBeEnabled, mustBeValid, sort)
Retrieves a list with the names of all available database servers.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getServerNames]\(mustBeEnabled, mustBeValid, sort, includeDuplicates)
Retrieves a list with the names of all available database servers.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isInMaintenanceMode]\()
Returns true if the server is in maintenance mode, false otherwise.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sendMessageToAllClients]\(message)
Sends a message to all connected clients.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sendMessageToClient]\(clientId, message)
Sends a message to a specific client, identified by its clientId.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setMaintenanceMode]\(maintenanceMode)
Puts the server into/out of maintenance mode, depending on the boolean parameter that is specified (if the parameter is true, then the server will be put into maintenance mode; if the parameter is false, then the server will be put out of maintenance mode).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#shutDownAllClients]\()
Shuts down all connected clients.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#shutDownClient]\(clientId)
Shuts down a specific client, identified by its clientId.{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getConnectedClients|class=node}{tr:id=name}{td}h6.getConnectedClients{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSClientInformation]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getConnectedClients{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getConnectedClients_des|text=|trigger=button}{sub-section}{sub-section:getConnectedClients_des|trigger=none|class=sIndent}Returns an array of JSClientInformation elements describing the clients connected to the server.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getConnectedClients_snc|text=|trigger=button}{sub-section}{sub-section:getConnectedClients_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getConnectedClients_prs|text=|trigger=button}{sub-section}{sub-section:getConnectedClients_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getConnectedClients_ret|text=|trigger=button}{sub-section}{sub-section:getConnectedClients_ret|trigger=none|class=sIndent}[JSClientInformation]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getConnectedClients_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getConnectedClients_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getConnectedClients_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getConnectedClients_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getConnectedClients_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getConnectedClients_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Returns an array of JSClientInformation elements describing the clients connected to the server.
var clients = plugins.maintenance.getConnectedClients();
application.output("There are " + clients.length + " connected clients.");
for (var i = 0; i < clients.length; i++)
	application.output("Client has clientId '" + clients[i].getClientId() + "' and has connected from host '" + clients[i].getHostAddress() + "'.");
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getDataModelClonesFrom|class=node}{tr:id=name}{td}h6.getDataModelClonesFrom{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getDataModelClonesFrom{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}{sub-section:getDataModelClonesFrom_des|text=|trigger=button}{sub-section}{sub-section:getDataModelClonesFrom_des|trigger=none|class=sIndent}Retrieves a list with names of all database servers that have property DataModelCloneFrom equal to the parameter.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getDataModelClonesFrom_snc|text=|trigger=button}{sub-section}{sub-section:getDataModelClonesFrom_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getDataModelClonesFrom_prs|text=|trigger=button}{sub-section}{sub-section:getDataModelClonesFrom_prs|trigger=none|class=sIndent}\{[String]} name
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getDataModelClonesFrom_ret|text=|trigger=button}{sub-section}{sub-section:getDataModelClonesFrom_ret|trigger=none|class=sIndent}[String]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getDataModelClonesFrom_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getDataModelClonesFrom_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getDataModelClonesFrom_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getDataModelClonesFrom_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getDataModelClonesFrom_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getDataModelClonesFrom_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves a list with names of all database servers that have property DataModelCloneFrom equal to the parameter.
var serverNames = plugins.maintenance.getDataModelClonesFrom('my_server');
for (var i=0; i<serverNames.length; i++)
	application.output("Process server " + i + ": " + serverNames[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServer-String|class=node}{tr:id=name}{td}h6.getServer{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSServer]{span}{span:id=iets|style=float: left; font-weight: bold;}getServer{span}{span:id=iets|style=float: left;}\(serverName){span}{td}{tr}{tr:id=des}{td}{sub-section:getServer-String_des|text=|trigger=button}{sub-section}{sub-section:getServer-String_des|trigger=none|class=sIndent}Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.
If the optional argument "mustBeEnabled" is set to true, then the JSServer instance is returned only if the server is active.
Similarly, if the "mustBeValid" optional argument is set to true, then the JSServer instance is returned only if the server is valid.
If the specified server is not found, or if it does not meet the requirements imposed by the optional arguments, then null is returned.
By default both optional arguments have the value false.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServer-String_snc|text=|trigger=button}{sub-section}{sub-section:getServer-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServer-String_prs|text=|trigger=button}{sub-section}{sub-section:getServer-String_prs|trigger=none|class=sIndent}\{[String]} serverName
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServer-String_ret|text=|trigger=button}{sub-section}{sub-section:getServer-String_ret|trigger=none|class=sIndent}[JSServer]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServer-String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServer-String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServer-String_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.
//If the optional argument "mustBeEnabled" is set to true, then the JSServer instance is returned only if the server is active.
//Similarly, if the "mustBeValid" optional argument is set to true, then the JSServer instance is returned only if the server is valid.
//If the specified server is not found, or if it does not meet the requirements imposed by the optional arguments, then null is returned.
//By default both optional arguments have the value false.
var server = plugins.maintenance.getServer("example_data");
if (server) {
	var tableNames = server.getTableNames();
	application.output("There are " + tableNames.length + " tables.");
	for (var i=0; i<tableNames.length; i++)
		application.output("Table " + i + ": " + tableNames[i]);
}
else {
	plugins.dialogs.showInfoDialog("Attention","Server 'example_data' cannot be found.","OK");
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServer-String_Boolean|class=node}{tr:id=name}{td}h6.getServer{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSServer]{span}{span:id=iets|style=float: left; font-weight: bold;}getServer{span}{span:id=iets|style=float: left;}\(serverName, mustBeEnabled){span}{td}{tr}{tr:id=des}{td}{sub-section:getServer-String_Boolean_des|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_des|trigger=none|class=sIndent}Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.
If the optional argument "mustBeEnabled" is set to true, then the JSServer instance is returned only if the server is active.
Similarly, if the "mustBeValid" optional argument is set to true, then the JSServer instance is returned only if the server is valid.
If the specified server is not found, or if it does not meet the requirements imposed by the optional arguments, then null is returned.
By default both optional arguments have the value false.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServer-String_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServer-String_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_prs|trigger=none|class=sIndent}\{[String]} serverName
\{[Boolean]} mustBeEnabled
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServer-String_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_ret|trigger=none|class=sIndent}[JSServer]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServer-String_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServer-String_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServer-String_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_Boolean_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.
//If the optional argument "mustBeEnabled" is set to true, then the JSServer instance is returned only if the server is active.
//Similarly, if the "mustBeValid" optional argument is set to true, then the JSServer instance is returned only if the server is valid.
//If the specified server is not found, or if it does not meet the requirements imposed by the optional arguments, then null is returned.
//By default both optional arguments have the value false.
var server = plugins.maintenance.getServer("example_data");
if (server) {
	var tableNames = server.getTableNames();
	application.output("There are " + tableNames.length + " tables.");
	for (var i=0; i<tableNames.length; i++)
		application.output("Table " + i + ": " + tableNames[i]);
}
else {
	plugins.dialogs.showInfoDialog("Attention","Server 'example_data' cannot be found.","OK");
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServer-String_Boolean_Boolean|class=node}{tr:id=name}{td}h6.getServer{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSServer]{span}{span:id=iets|style=float: left; font-weight: bold;}getServer{span}{span:id=iets|style=float: left;}\(serverName, mustBeEnabled, mustBeValid){span}{td}{tr}{tr:id=des}{td}{sub-section:getServer-String_Boolean_Boolean_des|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_Boolean_des|trigger=none|class=sIndent}Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.
If the optional argument "mustBeEnabled" is set to true, then the JSServer instance is returned only if the server is active.
Similarly, if the "mustBeValid" optional argument is set to true, then the JSServer instance is returned only if the server is valid.
If the specified server is not found, or if it does not meet the requirements imposed by the optional arguments, then null is returned.
By default both optional arguments have the value false.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServer-String_Boolean_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServer-String_Boolean_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_Boolean_prs|trigger=none|class=sIndent}\{[String]} serverName
\{[Boolean]} mustBeEnabled
\{[Boolean]} mustBeValid
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServer-String_Boolean_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:getServer-String_Boolean_Boolean_ret|trigger=none|class=sIndent}[JSServer]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServer-String_Boolean_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_Boolean_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServer-String_Boolean_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_Boolean_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServer-String_Boolean_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServer-String_Boolean_Boolean_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves an instance of JSServer corresponding to the server with the name specified through the "serverName" argument.
//If the optional argument "mustBeEnabled" is set to true, then the JSServer instance is returned only if the server is active.
//Similarly, if the "mustBeValid" optional argument is set to true, then the JSServer instance is returned only if the server is valid.
//If the specified server is not found, or if it does not meet the requirements imposed by the optional arguments, then null is returned.
//By default both optional arguments have the value false.
var server = plugins.maintenance.getServer("example_data");
if (server) {
	var tableNames = server.getTableNames();
	application.output("There are " + tableNames.length + " tables.");
	for (var i=0; i<tableNames.length; i++)
		application.output("Table " + i + ": " + tableNames[i]);
}
else {
	plugins.dialogs.showInfoDialog("Attention","Server 'example_data' cannot be found.","OK");
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerNames|class=node}{tr:id=name}{td}h6.getServerNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerNames{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getServerNames_des|text=|trigger=button}{sub-section}{sub-section:getServerNames_des|trigger=none|class=sIndent}Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
and "includeDuplicates" arguments have the value true.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServerNames_snc|text=|trigger=button}{sub-section}{sub-section:getServerNames_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getServerNames_prs|text=|trigger=button}{sub-section}{sub-section:getServerNames_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getServerNames_ret|text=|trigger=button}{sub-section}{sub-section:getServerNames_ret|trigger=none|class=sIndent}[String]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServerNames_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServerNames_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServerNames_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
//optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
//argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
//servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
//and "includeDuplicates" arguments have the value true.
var serverNames = plugins.maintenance.getServerNames();
application.output("There are " + serverNames.length + " servers.");
for (var i=0; i<serverNames.length; i++)
	application.output("Server " + i + ": " + serverNames[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerNames-Boolean|class=node}{tr:id=name}{td}h6.getServerNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerNames{span}{span:id=iets|style=float: left;}\(mustBeEnabled){span}{td}{tr}{tr:id=des}{td}{sub-section:getServerNames-Boolean_des|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_des|trigger=none|class=sIndent}Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
and "includeDuplicates" arguments have the value true.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServerNames-Boolean_snc|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServerNames-Boolean_prs|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_prs|trigger=none|class=sIndent}\{[Boolean]} mustBeEnabled
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServerNames-Boolean_ret|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_ret|trigger=none|class=sIndent}[String]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServerNames-Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServerNames-Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServerNames-Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
//optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
//argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
//servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
//and "includeDuplicates" arguments have the value true.
var serverNames = plugins.maintenance.getServerNames();
application.output("There are " + serverNames.length + " servers.");
for (var i=0; i<serverNames.length; i++)
	application.output("Server " + i + ": " + serverNames[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerNames-Boolean_Boolean|class=node}{tr:id=name}{td}h6.getServerNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerNames{span}{span:id=iets|style=float: left;}\(mustBeEnabled, mustBeValid){span}{td}{tr}{tr:id=des}{td}{sub-section:getServerNames-Boolean_Boolean_des|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_des|trigger=none|class=sIndent}Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
and "includeDuplicates" arguments have the value true.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServerNames-Boolean_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServerNames-Boolean_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_prs|trigger=none|class=sIndent}\{[Boolean]} mustBeEnabled
\{[Boolean]} mustBeValid
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServerNames-Boolean_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_ret|trigger=none|class=sIndent}[String]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServerNames-Boolean_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServerNames-Boolean_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServerNames-Boolean_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
//optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
//argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
//servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
//and "includeDuplicates" arguments have the value true.
var serverNames = plugins.maintenance.getServerNames();
application.output("There are " + serverNames.length + " servers.");
for (var i=0; i<serverNames.length; i++)
	application.output("Server " + i + ": " + serverNames[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerNames-Boolean_Boolean_Boolean|class=node}{tr:id=name}{td}h6.getServerNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerNames{span}{span:id=iets|style=float: left;}\(mustBeEnabled, mustBeValid, sort){span}{td}{tr}{tr:id=des}{td}{sub-section:getServerNames-Boolean_Boolean_Boolean_des|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_des|trigger=none|class=sIndent}Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
and "includeDuplicates" arguments have the value true.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_prs|trigger=none|class=sIndent}\{[Boolean]} mustBeEnabled
\{[Boolean]} mustBeValid
\{[Boolean]} sort
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_ret|trigger=none|class=sIndent}[String]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_Boolean_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
//optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
//argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
//servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
//and "includeDuplicates" arguments have the value true.
var serverNames = plugins.maintenance.getServerNames();
application.output("There are " + serverNames.length + " servers.");
for (var i=0; i<serverNames.length; i++)
	application.output("Server " + i + ": " + serverNames[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerNames-Boolean_Boolean_Boolean_Boolean|class=node}{tr:id=name}{td}h6.getServerNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerNames{span}{span:id=iets|style=float: left;}\(mustBeEnabled, mustBeValid, sort, includeDuplicates){span}{td}{tr}{tr:id=des}{td}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_des|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_des|trigger=none|class=sIndent}Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
and "includeDuplicates" arguments have the value true.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_prs|trigger=none|class=sIndent}\{[Boolean]} mustBeEnabled
\{[Boolean]} mustBeValid
\{[Boolean]} sort
\{[Boolean]} includeDuplicates
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_ret|trigger=none|class=sIndent}[String]\[]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getServerNames-Boolean_Boolean_Boolean_Boolean_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Retrieves a list with the names of all available database servers. The returned list will contain only enabled servers if the "mustBeEnabled"
//optional argument is set to true. The list will contain only valid servers if the "mustBeValid" argument is set to true. If the "sort" optional
//argument is set to true, then the list will be sorted alphabetically. If the "includeDuplicates" optional argument is set to false, then duplicate
//servers will appear only once in the list. By default, the "mustBeEnabled" and the "mustBeValid" arguments have the value false, while the "sort"
//and "includeDuplicates" arguments have the value true.
var serverNames = plugins.maintenance.getServerNames();
application.output("There are " + serverNames.length + " servers.");
for (var i=0; i<serverNames.length; i++)
	application.output("Server " + i + ": " + serverNames[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isInMaintenanceMode|class=node}{tr:id=name}{td}h6.isInMaintenanceMode{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}isInMaintenanceMode{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:isInMaintenanceMode_des|text=|trigger=button}{sub-section}{sub-section:isInMaintenanceMode_des|trigger=none|class=sIndent}Returns true if the server is in maintenance mode, false otherwise.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:isInMaintenanceMode_snc|text=|trigger=button}{sub-section}{sub-section:isInMaintenanceMode_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:isInMaintenanceMode_prs|text=|trigger=button}{sub-section}{sub-section:isInMaintenanceMode_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:isInMaintenanceMode_ret|text=|trigger=button}{sub-section}{sub-section:isInMaintenanceMode_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:isInMaintenanceMode_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:isInMaintenanceMode_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:isInMaintenanceMode_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:isInMaintenanceMode_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:isInMaintenanceMode_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:isInMaintenanceMode_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Returns true if the server is in maintenance mode, false otherwise.
if (plugins.maintenance.isInMaintenanceMode())
	application.output("Server is in maintenance mode.");
else
	application.output("Server is not in maintenance mode.");
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sendMessageToAllClients|class=node}{tr:id=name}{td}h6.sendMessageToAllClients{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}sendMessageToAllClients{span}{span:id=iets|style=float: left;}\(message){span}{td}{tr}{tr:id=des}{td}{sub-section:sendMessageToAllClients_des|text=|trigger=button}{sub-section}{sub-section:sendMessageToAllClients_des|trigger=none|class=sIndent}Sends a message to all connected clients.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:sendMessageToAllClients_snc|text=|trigger=button}{sub-section}{sub-section:sendMessageToAllClients_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:sendMessageToAllClients_prs|text=|trigger=button}{sub-section}{sub-section:sendMessageToAllClients_prs|trigger=none|class=sIndent}\{[String]} message
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:sendMessageToAllClients_ret|text=|trigger=button}{sub-section}{sub-section:sendMessageToAllClients_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:sendMessageToAllClients_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sendMessageToAllClients_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:sendMessageToAllClients_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sendMessageToAllClients_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:sendMessageToAllClients_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sendMessageToAllClients_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Sends a message to all connected clients.
plugins.maintenance.sendMessageToAllClients("Hello, all clients!");
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sendMessageToClient|class=node}{tr:id=name}{td}h6.sendMessageToClient{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}sendMessageToClient{span}{span:id=iets|style=float: left;}\(clientId, message){span}{td}{tr}{tr:id=des}{td}{sub-section:sendMessageToClient_des|text=|trigger=button}{sub-section}{sub-section:sendMessageToClient_des|trigger=none|class=sIndent}Sends a message to a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:sendMessageToClient_snc|text=|trigger=button}{sub-section}{sub-section:sendMessageToClient_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:sendMessageToClient_prs|text=|trigger=button}{sub-section}{sub-section:sendMessageToClient_prs|trigger=none|class=sIndent}\{[String]} clientId
\{[String]} message
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:sendMessageToClient_ret|text=|trigger=button}{sub-section}{sub-section:sendMessageToClient_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:sendMessageToClient_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sendMessageToClient_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:sendMessageToClient_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sendMessageToClient_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:sendMessageToClient_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sendMessageToClient_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Sends a message to a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method.
var clients = plugins.maintenance.getConnectedClients();
for (var i=0; i<clients.length; i++)
	plugins.maintenance.sendMessageToClient(clients[i].getClientId(), "Hello, client " + clients[i].getClientId() + "!");
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setMaintenanceMode|class=node}{tr:id=name}{td}h6.setMaintenanceMode{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setMaintenanceMode{span}{span:id=iets|style=float: left;}\(maintenanceMode){span}{td}{tr}{tr:id=des}{td}{sub-section:setMaintenanceMode_des|text=|trigger=button}{sub-section}{sub-section:setMaintenanceMode_des|trigger=none|class=sIndent}Puts the server into/out of maintenance mode, depending on the boolean parameter that is specified (if the parameter is true, then the server will be put into maintenance mode; if the parameter is false, then the server will be put out of maintenance mode).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setMaintenanceMode_snc|text=|trigger=button}{sub-section}{sub-section:setMaintenanceMode_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setMaintenanceMode_prs|text=|trigger=button}{sub-section}{sub-section:setMaintenanceMode_prs|trigger=none|class=sIndent}\{[Boolean]} maintenanceMode
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:setMaintenanceMode_ret|text=|trigger=button}{sub-section}{sub-section:setMaintenanceMode_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:setMaintenanceMode_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:setMaintenanceMode_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:setMaintenanceMode_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:setMaintenanceMode_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setMaintenanceMode_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:setMaintenanceMode_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Puts the server into/out of maintenance mode, depending on the boolean parameter that is specified (if the parameter is true, then the server will be put into maintenance mode; if the parameter is false, then the server will be put out of maintenance mode).
plugins.maintenance.setMaintenanceMode(!plugins.maintenance.isInMaintenanceMode());
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=shutDownAllClients|class=node}{tr:id=name}{td}h6.shutDownAllClients{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}shutDownAllClients{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:shutDownAllClients_des|text=|trigger=button}{sub-section}{sub-section:shutDownAllClients_des|trigger=none|class=sIndent}Shuts down all connected clients. This method returns immediately, it does not wait until the client shuts down.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:shutDownAllClients_snc|text=|trigger=button}{sub-section}{sub-section:shutDownAllClients_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:shutDownAllClients_prs|text=|trigger=button}{sub-section}{sub-section:shutDownAllClients_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:shutDownAllClients_ret|text=|trigger=button}{sub-section}{sub-section:shutDownAllClients_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:shutDownAllClients_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:shutDownAllClients_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:shutDownAllClients_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:shutDownAllClients_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:shutDownAllClients_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:shutDownAllClients_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Shuts down all connected clients. This method returns immediately, it does not wait until the client shuts down.
plugins.maintenance.shutDownAllClients();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=shutDownClient|class=node}{tr:id=name}{td}h6.shutDownClient{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}shutDownClient{span}{span:id=iets|style=float: left;}\(clientId){span}{td}{tr}{tr:id=des}{td}{sub-section:shutDownClient_des|text=|trigger=button}{sub-section}{sub-section:shutDownClient_des|trigger=none|class=sIndent}Shuts down a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method. This method returns immediately, it does not wait until the client shuts down.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:shutDownClient_snc|text=|trigger=button}{sub-section}{sub-section:shutDownClient_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:shutDownClient_prs|text=|trigger=button}{sub-section}{sub-section:shutDownClient_prs|trigger=none|class=sIndent}\{[String]} clientId
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:shutDownClient_ret|text=|trigger=button}{sub-section}{sub-section:shutDownClient_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:shutDownClient_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:shutDownClient_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:shutDownClient_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:shutDownClient_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:shutDownClient_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:shutDownClient_sam|trigger=none}{code:language=javascript}
// WARNING: maintenance plugin is only meant to run during solution import using before or after import hook(so not from Smart/Web client)
//Shuts down a specific client, identified by its clientId. The clientIds are retrieved by calling the getConnectedClients method. This method returns immediately, it does not wait until the client shuts down.
var clients = plugins.maintenance.getConnectedClients();
for (var i=0; i<clients.length; i++)
	plugins.maintenance.shutDownClient(clients[i].getClientId());
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}