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:
Available MBeans
JMX-Bean | JMX-Attribute or JMX-Method | Description |
---|---|---|
com.subshell.sophora:name= | CheckForIncorrectLogins | Controls, if incorrect login requests are counted. To many incorrect login requests lead to the locking of accounts. |
EnableUserLogin | When set to false, normal users (users without the admin flag in any role) can not login to the server. Users who are already logged in remain on the server. | |
com.subshell.sophora:name= | AddingToQueue | Documents are added to the archive worker queue, when set to true. |
Archiving | The worker is enabled, when set to true. | |
CheckAllDocumentsForOldVersions | If true will actively search for documents that need to be processed | |
CurrentDocumentUuid | The uuid of the current document | |
Delay | Delay in ms between the archiving of versions | |
DeleteOldVersionsAfterDays | Versions in the archive repository which are older than this value are deleted | |
DocumentsWithManyVersionsInArchive | A CSV formatted list of documents that have a very large number of versions in the archive repository. | |
DocumentsWithManyVersionsInMainRepository | A CSV formatted list of documents that have a very large number of versions in the main repository. | |
MaxVersionsToRetain | number of versions remaining in the main repository | |
PreserveNumberOfVersionsInArchiveRepository | The number of versions that should not be removed from the archive. | |
Queue | UUID of documents waiting to be processed by the archive worker | |
QueueSize | Number of documents in the queue | |
RemainingVersionsInBatchOfCurrentDocument | Remaining number of versions of the current document | |
TotalVersionsInBatchOfCurrentDocument | Number of versions of the current document | |
VersionsBatchSize | maximum number of versions processed in one operation | |
createNewDocumentForVersions(UUID) | Distributes the versions in the archive across another document to reduce the number of versions per node in the archive. | |
addToQueue(UUID, int) | Adds the document with the UUID to the ArchiveWorker queue with the specified number of versions to keep in the repository. | |
addToQueue(UUID) | Adds the document with the UUID to the ArchiveWorker queue. | |
startArchival() | Starts the archival of documents. | |
stopArchival() | Stops the archival of documents. | |
getVersionHistorySizeInMainRepositry(UUID) | Returns the number of versions the document with the given UUID has in the main repository. | |
getVersionHistorySizeInArchiveRepository(UUID) | Returns the number of versions the document with the given UUID has in the archive repository. | |
clearQueue() | Clears the ArchiveWorker's queue. | |
startAddingToQueue() | Starts adding documents to the queue. | |
stopAddingToQueue() | Stops adding documents to the queue. | |
com.subshell.sophora:name= | ApiVersion | Version of the Sophora api in the server |
DocumentTypeStatistics | Number of documents in the repository per type (document which are marked as deleted are included) | |
LockedDocumentCount | Number of currently locked documents | |
LoggedInUsers | List of currently logged in users | |
ProfilerSummary | Statistic for every api call. | |
ReplicationMode | Mode in which the server was started (NONE, MASTER, SLAVE STAGINGSLAVE) | |
ServerVersion | Version of the server software | |
com.subshell.sophora:name= | BlockSize | Number of documents that are collected for removal in each run |
DeletingDocuments | The deleted worker is enabled when set to true. Note: The DeletedDocumentsWorker will only be actually active on Sophora Primary Servers. | |
MinimumAgeDays | Number of days before a document in the trash is removed completely | |
com.subshell.sophora:name= | stop() | shut down the server |
stopStaging() | Only applicable on Staging Servers: disconnects the Staging Server from the Sophora Primary Server. The Staging Servers do not receive documents from the Sophora Primary Server. | |
startStaging() | Only applicable on Staging Servers: reconnects the Staging Server with the Sophora Primary Server. A sync request is send to the Sophora Primary Server. | |
startArchival() / stopArchival() | Start and stop the archive worker. | |
com.subshell.sophora:name= | DocumentChangeListenerScripts | Information about all server scripts of type DocumentChangeListener |
EventScripts | Information about all server scripts of type EventScript | |
RegisteredScriptsCount | Number of server scripts | |
TimingActionScripts | Information about all server scripts of type TimingAction | |
ValidationScripts | Information about all server scripts of type ValidationScript | |
com.subshell.sophora:moduleName= | AutoOfflineJobRepeatInterval | Repeat interval in milliseconds for the job which put documents automatically offline |
AutoPublishJobRepeatInterval | Repeat interval in milliseconds for the job which publish documents automatically | |
DeletedDocumentsWorkerJobCronExpression | Cron expression which controls the execution of the deleted document worker | |
DocumentTimingActionsJobCronExpression | Cron expression which controls the execution of timing action scripts | |
net.sf.ehcache:type= | Configuration of the EHCache | |
org.apache.activemq:BrokerName= | JMS-Broker (only applicable in Sophora Primary Server) | |
MemoryPercentUsage | Amount of used memory | |
org.apache.activemq:BrokerName= | Information about all currently connected staging Staging Servers | |
org.apache.activemq:BrokerName= | Information about all configured replication queues |
Scripting
The Scripting bean shows information about registered Server scripts. This is an MXBean, i.e., information about scripts is returned as open data types from the javax.management.openmbean
package.
Attributes of the Scripting bean
Name | Type | Description |
---|---|---|
DocumentChangeListenerScripts | CompositeData array | Information about IScriptDocumentChangeListener scripts. |
EventScripts | CompositeData array | Information about IEventScript scripts. |
RegisteredScriptsCount | int | Number of registered scripts. |
TimingActionScripts | CompositeData array | Information about ITimingActionScript scripts. |
ValidationScripts | CompositeData array | Information about IValidationScript scripts. |
The node of each script contains the following attributes:
Name | Type | Description | Script type |
---|---|---|---|
name | String | Name of the script | All |
scriptDocumentUuid | String | UUID of the document with the script source. | All |
scriptDocumentId | String | Sophora-ID of the document with the script source. | All |
type | String | Type of the script. | All |
executions | CompositeData array | List of script executions. | All except IValidationScript . |
lastExecution | CompositeData array | The most recent execution of the script. | All except IValidationScript . |
The node about a script execution contains the following attributes:
Name | Type | Description | Script type |
---|---|---|---|
startDate | String | The time and date when the script execution started. | All |
durationMs | long | The duration of the script execution in milliseconds. | All |
exceptionTrace | String | The stack trace of any exception that occurred during the script execution. | All |
processedEvent | String | A string representation of the processed event. | IEventScript |
changedDocumentUuid | String | The UUID of the changed document | IScriptDocumentChangeListener |
stateChange | String | The state change of the document. | IScriptDocumentChangeListener |
processedDocumentUuid | String | The UUID of the processed document. | ITimingActionScript |
Delivery-Tomcat
JMX-Bean | JMX-Attribute or JMX-Method | Description |
---|---|---|
com.subshell.sophora:name= | Size | Current queue size. Cache entries are stored in the asynchronous cache registry before they are stored in the derby cache database. |
com.subshell.sophora:name= | getCacheFileEntriesByContentKey() | Get all registered files related to a document uuid, a structure node uuid or cache key |
getCacheFileEntryCountByContentKey() | Get number of files related to a document uuid, a structure node uuid or cache key | |
getCacheFileEntriesByResource() | Get all registered files related to a resource, e.g. jsp file. | |
getCacheFileEntriyCountByResource() | Get number of files related to a resource, e.g. jsp file. | |
getContentKeysWithMostDependencies() | Get the content keys (document uuid, structure node uuid or cache key) which are related to the largest numbers of cached files | |
getResourceWithMostDependencies() | Get the resources which are related to the largest numbers of cached files | |
com.subshell.sophora:name= | DbCleanupEnabled | Controls the job which removes entries from the cache database which no longer exist |
FilesystemCleanupEnabled | Controls the job which removes files from the htdocs cache which are not registered in the cache database | |
com.subshell.sophora:name= | AvgDurationPerMinute | Average duration in milliseconds of all generations in the last 60 seconds |
GenerationsPerMinute | Number of generations in the last 60 seconds | |
MaxDurationInMinute | Maximum duration in milliseconds of all generations in the last 60 seconds | |
MinDurationInMinute | Minimum duration in milliseconds of all generations in the last 60 seconds | |
com.subshell.sophora:name= | Size | Number of entries in the pre-generation queue |
SizePriorityMap | Number of entries in the pre-generation queue by priority | |
com.subshell.sophora:name= | Size | Number of entries in the removal queue |
SizePriorityMap | Number of entries in the removal queue by priority | |
com.subshell.sophora:name= | Limit | Limits which controls the priority of removal jobs |
com.subshell.sophora:name= | AllIgnoredSophoraIds | List of sophora ids which are currently ignored. Requesting an url which a Sophora id from this list results in a 404 error |
com.subshell.sophora:name= | Controls different periodic jobs in the delivery |
Importer
JMX-Bean | JMX-Attribute or JMX-Method | Description |
---|---|---|
com.subshell.sophora. | AverageImportDuration* | Average duration in milliseconds for different time ranges (5 minutes, 1 hour, 6 hours) and different types of imports (all, failed, successful). The following Attributes/Operations are available: double getAverageImportDurationByTimeAnd Success(int calendarField, int amount, boolean successfulImports, boolean failedImports); double getAverageImportDurationByCountAnd Success(int count, boolean successfulImports, boolean failedImports); double getAverageImportDurationByTime (int calendarField, int amount); double getAverageImportDurationByCount (int count); double getAverageImportDurationOfLastTenImports(); double getAverageImportDurationInLastFiveMinutes(); double getAverageImportDurationInLastHour(); double getAverageImportDurationInLast6Hours(); double getAverageImportDurationOfSuccesfulImports ByTime (int calendarField, int amount); double getAverageImportDurationOfSuccesfulImports ByCount(int count); double getAverageImportDurationOfSuccesfulImports OfLastTenImports(); double getAverageImportDurationOfSuccesfulImports InLastFiveMinutes(); double getAverageImportDurationOfSuccesfulImports InLastHour(); double getAverageImportDurationOfSuccesfulImports InLast6Hours(); double getAverageImportDurationOfFailedImports ByTime(int calendarField, int amount); double getAverageImportDurationOfFailedImports ByCount(int count); double getAverageImportDurationOfFailedImports OfLastTenImports(); double getAverageImportDurationOfFailedImports InLastFiveMinutes(); double getAverageImportDurationOfFailedImports InLastHour(); double getAverageImportDurationOfFailedImports InLast6Hours(); int calendarField is the int value of the related calendar unit in the java class java.util.Calendar (Calendar.HOUR_OF_DAY for example). |
FailedImportsInLastHour | List of failed imports in the last 60 minutes | |
ImportsInLastHour | List of imports in the last 60 minutes | |
SuccesfulImportsInLastHour | List of successful import in the last 60 minutes | |
LastTenFailedImports | List of 10 last failed imports | |
LastTenImports | List of 10 last imports | |
NumberOfFailedImportsIn* | Number of failed imports in 5 minutes and 1 hour | |
NumberOfImportsIn* | Number of imports in 5 minutes and 1 hour | |
NumberOfSuccesfulImportsInLast* | Number of successful imports in 5 minutes and 1 hour | |
ImporterInstanceDisplayName | Display name for this importer instance | |
ImporterName | Name of the importer |