General information about using the InvocationServlet
The InvocationServlet offers a simple way to issue commands for the application server.
The call is performed schematically in a browser as follows:
Calling the InvocationServlet
https://<FQDN des ServerNamens>:<Portnummer der Installation>/invocation/InvocationServlet?job=<JobToDo>
After the application server was contacted, it is necessary for a user abbreviation (in capital letters) and the affiliated password are transferred.
FQDN from the server name
At this point, the full qualified domain name of the server must be entered.
Port number from the installation
The JBoss application server can be defined for different port ranges.
The port range can be viewed in the application server in the file standalone.conf.bat under the name JBOSS_PORT_RANGE.
For our examples, we assume that in
standalone.conf.bat you will find
Now the “installation port number”is calculated in our examples as follows:
(JBOSS_PORT_RANGE * 1000) + 8443 = 18443
This call can be used to check if the application server has started and the application is accessible.
Call via a web browser by entering the URL
Example for the simple job "isApplicationDeployed"
I the application is not yet on the deployed application server, you will receive an error message stating that the site is not available. Otherwise you will receive a confirmation page
Job name: isApplicationDeployed
Job done OK
It must be considered that this message is successful once the InvocationServlet has started. It is therefore not yet certain that the main application has already started completely; this may result in small delays.
Deleting non-system and customizing data (cleanTables)
The data that was not defined as system or customizing data should be removed from a system. All movement and internal data will therefore be deleted.
The system may not be identified as a production system in the PropertyMapper (see Security Entry in PropertyMapper).
The entry with the id = ‘/de/cursor/jevi/server/system/TableController$!!$HandleAsCustomizingTable’/de/cursor/jevi/server/system/TableController$!!$HandleAsCustomizingTable’ must be checked in the PropertyMapper.
In this entry additional tables can be stored. These tables are evaluated as tables with the content type Content: Customizing.
If the data quantity is very large, the entry with the id = ‘/de/cursor/jevi/server/business/businesslogic/TransactionWrapper$!!$TimeOutCleanTables’/de/cursor/jevi/server/business/businesslogic/TransactionWrapper$!!$TimeOutCleanTables’ must be checked or adjusted in the PropertyMapper.
In this entry, the transaction duration can be extended. If the entry is not present, the transaction duration amounts to 3600 sec (1h).
A valid system administrator must be configured in the CRM system.
A data backup exists.
No more users are logged into the system
Definition system administrator
A system administrator must
be able to configure all areas of the application
have at least read rights for all fields from the application.
This applies to the TECH_USER during the delivery of the CRM system.
Only system and customizing data is available in the system.
Postcondition (in case of error)
If an error occurs, no changes are made to the data
Under ORACLE, the database can be locked again so that a new attempt results in the failure java.sql.SQLException: ORA-00054: Resource occupied and requirement with NOWAIT specified or timeout expired
running. In this case, you either have to wait long enough or the Oracle instance must be restarted.
An employee from CURSOR Software AG or other trained people with a login as:
System administration in the production system exclusively before the production process.
System administrators in the test system.
System administrators in the consolidation system.
The only way to start is currently via the InvocationServlet.
Call via a web browser by entering the URL
You must log on to the application server with a system administrator user.
The website is created at the runtime of the action. If the system is still identified as “productive”, this results in the following output
The files mentioned are included in the scope of delivery in the tools\LuceneIndex directory.
Configuration of the file
The result can be found in the log file
Configuration of this function
Defining entities that should not be emptied
If a C2 entity is flagged with Contains Customizing, this entity is not cleared.
Through the admin console, a new entry can be created in the Customizing - Advanced Settings (application parameters) with the ID /de/cursor/jevi/server/system/TableController$!!$HandleAsCustomizingTable.
A list of entities can be entered as a value, which are defined as tables with customizing content. The separator is $!!$.
The existence of the entities in the system is verified, and you must ensure that they are case sensitive.
C2TEST1$!!$C2TEST2 defines the two tables C2TEST1 and C2TEST2 as tables with Customizing contents
Only tables should be considered that have Content: Internal or Content: Movement Data saved as the content type (see below regarding the content type). The tables from the personal environment are an exception to this; they are already treated separately.
The entities saved in this entry are observed as tables from the content type Content: Customizing and treated correspondingly.
Removal of the deletion lock
A PropertyMapper entry exists in the delivery with
id = '/de/cursor/jevi/server/system/SystemInfo$!!$Systemtype'. This entry has the value ‘production system ’production system’ and should prevent the function from being accidentally executed on the system.
If this value is changed on one of the others with an SQL Editor, this system is no longer viewed as “productive” and this may be followed by emptying.
UPDATE PropertyMapper SET propertyValue = 'test system' where id = '/de/cursor/jevi/server/system/SystemInfo$!!$Systemtype'
The server cache from the application server must be emptied after changing configuration data via SQL.
Change transaction time
PropertyMapper entry with
id = '/de/cursor/jevi/server/business/businesslogic/TransactionWrapper$!!$TimeOutCleanTables’
Example (ORACLE syntax) for the logging of the PropertyMapper entry with
id = '/de/cursor/jevi/server/business/businesslogic/TransactionWrapper$!!$TimeOutCleanTables’:
INSERT INTO PropertyMapper (Pk, id,
propertytype, property, principal, propertyvalue,
CustLayer, Active, MassData, OfflineData, WFInstanceId, RightPk, CreateUser, UpdateUser, CreateDate, UpdateDate)
'SYSTEM', '', '', '3600',
'CN', 1, 0, 0, '#EMPTY-KEY#', 'RIGHTTEMPLATE', 'TECH_USER', 'TECH_USER', sysdate, sysdate)
The transaction time can be entered in the PropertyValue field for emptying data. The standard value for this entry amounts to 3600 sec (= 1h) if it does not exist.
The server cache must be emptied after transmitting the SQL statement to allow the setting to be activated.
Which data will be deleted?
All tables that have content classified as movement data or internal data are emptied (exception due to technical reasons: the table EmployeeLog).
All of the link tables belonging to these tables are emptied.
A special treatment is carried out for the tables from the personal environment.
This includes the tables:
Address, ContactPerson, Customer, Employee, Person, Telecom, rCoPeAd, rCuAd und rEmAd
These tables are only partially emptied. All datasets with a personal dataset that fulfills one of the following conditions remain in the system:
The personal dataset belongs to the system owner (defined via the PropertyMapper id = ‘SYSTEMOWNER’
Te personal dataset has an active employee role (an active dataset in the Employee table)
Al entries from the PropertyManager are deleted with the PropertyType = “USER”.
Information about the content type from the tables can be found in the client in the directory
<installation directory>\jboss\conf in the file
It is recommended to import this csv file in Excel (tabulator is the separator) and obtain the rows via a filter that started with the text Content:.
With this call, the data indexing can be triggered in the UnindexedEntity. Normally this start is performed via the “Refresh search index” timer and should no longer be necessary.
Example for the simple job "indexUnindexed"
With this call, the optimization function of the Lucene library can be started. This function, however, is still necessary in the rarest of cases; it is a relic from former releases of the Lucene library.
Example for the simple job “optimizedIndexes"
Calling Lucene indexing of all entities
With this call, the indexing of the entities can be started. If the call is performed without further parameters, all entities will be indexed (analog to the click on the “Create All” button in the admin console under the area Search - Juhuuu).
Example for the job "createIndex"
Calling Lucene indexing of certain entities
The job can still be extended by the tables parameter. Entity names can then be specified separated by commas, which are added to the Lucene indexing.
Example for the “createIndex” job with the tables parameter
In the output from this example, you can see which entities are being indexed. All incorrect table names will be ignored (here isApplicationDeployed).
Result from the example call
Job name: createIndex?tables=activity,customer,contactperson,isApplicationDeployed
create new Lucene index for Customer
create new Lucene index for Activity
create new Lucene index for ContactPerson
Job done OK
With this call, the emptying of the application server cache is triggered.
Example for the simple job “clearCaches"
With this call, the emptying of the groups and rights caches from the application server is triggered.
Example for the simple job "clearGroupsAndRightsCache"
This call is analog to clicking on the “Clear internal document backups” button in the admin console under the area Document integration - Manage document directories.
Old internal backup copies are deleted from the history directories of the document management.
Example for the job "deleteOldHistory"
With this call, you receive a simple overview of the currently configured field and action rights from the application.
Example for the job "getRightFunction"
Field rights default
edit.keys.permissionAdmin, FachAdmin rights for function rights
logonToEachLayer.permission Login in all layers
With this function, you can output the rights groups and user codes that are set to a certain dataset.
Note: With the tool wget the call cannot be done correctly, because the & is not processed correctly. However, with the batch InvocationServlet.bat the correct URL can be generated and executed via a browser.
The table and pk parameters must be transferred.
Example for the job "getRightForPKFunction"