Administration

JMX Interfaces

All Sophora components support JMX. The JMX interface provides information about each component's state and allows for administrative actions.

Sophora Server

Configuration

Monitoring has to be enabled in the sophora.properties file before you can access the information as described here. The following snippet from the sophora.properties file shows how to activate JMX monitoring with access control:

sophora.rmi.servicePort=1198
sophora.rmi.registryPort=1199
 
sophora.jmx.enabled=true
sophora.jmx.username=admin
sophora.jmx.password=admin

With this configuration, the Sophora Server can be accessed using the following JMX connection string:

service:jmx:rmi://<HOST>:1198/jndi/rmi://<HOST>:1199/server

The following image shows the connection settings dialog from VisualVM:

+++
+++ (Image: subshell/CC BY)

Available MBeans

Note, that some Beans are only available if the corresponding feature is active in the respective Sophora server.

com.subshell.sophora

AccessManager
JMX-Attribute/JMX-MethodDescriptionPossible ValuesModifiable via JMX
CheckForIncorrectLoginsControls, whether incorrect login requests are counted. Too many incorrect login requests lead to the locking of accounts, depending on the server configuration parameter sophora.authenticate.incorrectLoginCount.true/falseYes
EnableUserLoginWhen set to false, non-admin users cannot log in to this server. Users who are logged in already remain logged in.true/falseYes

ConfigurationHashes

There are configuration hashes for multiple types of configuration documents that can be found via JMX. However, the scheme is the same for all of these types. Therefore, the table below lists a few attributes as Feature[...]. For this attributes, you can substitute Feature with the following: Cnd, DefaultChildNodeConfiguration, DefaultPropertyConfiguration, DocumentProposalSection, FormFieldGroup, NodeTypeConfiguration, Role, StructureNodeDocument, StructureNode, SystemDocument, User.

JMX-Attribute/JMX-MethodDescriptionPossible ValuesModifiable via JMX
FeatureHashHash, calculated for all available documents of this feature.a StringNo
FeatureHashEntriesAll entries that were used to calculate the FeatureHash.Map<String, String> of each document's name and hash.No
FeaturesAreInSyncWithMasterInforms, whether this server's hash value is equal to the Sophora Primary Server's hash value of this feature, and therefore, if the configuration of this feature is in sync with the Sophora Primary Server.TRUE, FALSE, UNKNOWN, NOT_CONSIDEREDNo
HasSameConfigurationAsMasterInforms, whether this server has the same configuration as its Sophora Primary Server.TRUE, FALSE, UNKNOWN, NOT_CONSIDEREDNo
ContentManager
JMX-Attribute/JMX-MethodDescriptionPossible ValuesModifiable via JMX
ApiVersionVersion of the Sophora API used in this server.Sophora API version numbersNo
Call StatisticsStatistics about method calls in the ContentManager.No
CreateDocumentVersion
WithoutStateCheckCount
The same as getMethodCount("createDocumentVersionWithoutStateCheck").Positive integersNo
CreateDocumentVersion
WithoutStateCheckDuration
The same as getMethodDuration("createDocumentVersionWithoutStateCheck").Positive integersNo
CurrentLoadSystem load average during the last minute. The calculation is depending on the operating system.Positive floating point numbersNo
DocumentTypeStatisticsNumber of documents in the repository per type. Documents that are marked as deleted are included.No
LockedDocumentCountThe number of currently locked documents.Positive integersNo
LoggedInUsersA list of all users that are currently logged in.String array of user namesNo
NumberOfActiveRequestsThe number of current requests to the ContentManager.Positive integersNo
ProfilerSummaryStatistic for every API call concerning the ContentManager.No
PublishDocumentCountThe number of publishing events during the last minute (getMethodCount("publishDocument")).Positive integersNo
PublishDocumentDurationThe average duration of publishing events during the last minute (in ms) (getMethodDuration("publishDocument")).Positive integersNo
ReadAnywhereAvailableInforms, if this server is available in a ReadAnywhere cluster.true/falseYes, via toggleReadAnywhereStatus()
ReplicationModeCurrent replication mode of this Sophora server.NONE, MASTER, SLAVE, STAGINGSLAVEYes, for servers started in cluster mode.
SaveDocumentWithout
PermissionCheckCount
The same as getMethodCount("saveDocumentWithoutPermissionCheck").Positive integersNo
SaveDocumentWithout
PermissionCheckDuration
The same as getMethodDuration("saveDocumentWithoutPermissionCheck").Positive integersNo
SaveSophoraDocumentCountThe same as getMethodCount("saveSophoraDocument").Positive integersNo
SaveSophoraDocumentDurationThe same as getMethodDuration("saveSophoraDocument").Positive integersNo
ServerIdUnique ID of this Sophora server.UUIDNo
ServerVersionVersion number of this Sophora server.Sophora Server version numbersNo
StartDateStartup date and time of this server.Date in format yyyy-MM-dd
HH:mm:ss.SSS
No
ThrottleLoadLimitThreshold to decide on whether to throttle background tasks or not. See also the Throttle Mode documentation.Positive floating point numbers.Yes
ThrottleModeInforms whether the Sophora server is under high load, causing the server to go into throttle mode.1 if the load is high, 0 otherwise.No
resetInvertibleBloomFilters()Erases and again initializes invertible bloom filters, if they are activated.
syncDocuments(String)Synchronizes the documents that are given via their UUIDs to all staging and replication Sophora Replica Servers. Returns an error, if the server this method is called on is not in replication mode MASTER. Multiple UUIDs can be separated with a comma, semicolon or tab.
sendDocumentChangeEvents(String)Sends document changed events for the documents specified by the given UUIDs. Multiple UUIDs can be separated with a comma, semicolon or tab.
getMethodCount(String)Returns the number of method calls to the ContentManager of the given method during the last minute.
getMethodDuration(String)Returns the average duration of method calls to the ContentManager of the given method during the last minute.
removeAllServers()Removes all Sophora Replica Servers that were previously connected to this server.
DeletedDocumentsWorker
JMX-Attribute/JMX-MethodDescriptionPossible ValuesModifiable via JMX
BlockSizeNumber of documents that are collected for removal in each run.Positive integersYes
MinimumAgeInDaysNumber indication how long ago a document's deletion has to be before it is considered by the DeletedDocumentsWorkerPositive integersYes
CronExpressionThe Cron Expression to trigger the DeletedDocumentsWorkerValid Cron ExpressionYes
startDeletingDocuments()Enables the worker if it has been switched off
stopDeletingDocuments()Disables the worker.
isDeletingDocuments()Informs, whether the worker is currently enabled.
triggerDeletedDocumentsWorker()Run the DeletedDocumentsWorker one time
LifeCycle
JMX-Attribute/JMX-MethodDescriptionPossible ValuesModifiable via JMX
InitializingTrue, if the server is currently starting, false otherwise.true/falseNo
ReadyThere are 3 criteria:
1. the server can accept client connections
2. the synchronization is finished
3. the staging has not been stopped after the synchronization
To be considered as ready, all servers have to fulfill 1. Servers in mode Sophora Replica Server have to fulfill 2 in addition, staging Sophora Replica Servers have to additionally fulfill criteria 2 and 3.
true/falseNo
StartStaging()Starts the staging, if it is enabled1, if the staging is already running
2, if the staging was started
3, if staging is not enabled
z
StopStaging()Stops the staging.1, if the staging was not started
2, if the staging was stopped
3, if staging is not enabled

Last modified on 10/16/20

The content of this page is licensed under the CC BY 4.0 License. Code samples are licensed under the MIT License.

Icon