Summary
Question
Overview
Packaging of hotfix files was improved to enable easy deployment and management.
The JMX method showAllBinariesApplied allows you to easily view and track all information about the hotfixes you deployed, and the JMX method viewSystemInformation allows you to view IDs of hotfixes applied in addition to other system information.
Answer
When you deploy hotfixes, you are actually deploying each of them separately in a different folder under the classes folder. Path examples for different hotfix types are as follows:
Server side hotfix type | Path format |
---|---|
Server backend | <UCMDB_Install_Dir>/classes/HF_QCCR1HXXXXX/com/hp/ucmdb/ |
UI - Server | <UCMDB_Install_Dir>/deploy/ucmdb-ui/WEB-INF/classes/HF_QCCR1HXXXXX/com/hp |
UI - Applet | <UCMDB_Install_Dir>/deploy/ucmdb-ui/static/appletPatches/YYYY_MM_DD_QCCR1HXXXXX.jar |
The hotfix folder name where the classes are loaded follows the format of HF_QCCR1H<ID>. If the hotfix folder name does not start with the HF_ prefix, the classes for the hotfix will not be loaded.
The logging binaries follow this format: HF_LOGGING.
For applet logs, the logging filename format is an exception, which follows the format YYYY_MM_DD_QCCR1H<id>.
UI - Server and Server backend hotfixes have the Readme file directly inside the hotfix folder. For example, for HF_QCCR1H101112, the readme file is located in the folder ..\HF_QCCR1H101112/Readme_QCCR1H101112.txt, as shown in the screenshot below. If it has a different name and/or placed in a different location it will not be read.
For applet hotfixes, the readme file will not be read, because it is not an executable.
After deployment, the hotfixes are loaded at server startup, and messages similar to the following are added to the startup.log file:
-
Before jetty starts:
Loading extra classpath C:\UCMDB\UCMDBServer\bin\..\
-
After the server is up:
[Controller] - Hotfixes Applied: QCCR1H12313 QCCR1H11244 QCCR1H23211 LOGGING QCCR1H102233 QCCR1H101112 QCCR1H1121233
-
Warning if there are duplicate files for different hotfixes:
[Controller] - The server has binaries/hotfixes applied which overlap. Contact Micro Focus engineers to make sure there is no inconsistency. Invoke Jmx showAllBinariesApplied to check the classes
Note
- Hotfixes are loaded at UCMDB server startup. If a new hotfix is deployed, it will not be displayed until the UCMDB server restarts.
-
Every hotfix has a unique QCCR ID, which will be added to the hotfix folder name after the HF_ prefix.
-
The recommended approach for hotfix deployment is manual deployment. UCMDB administrators should manually unzip the hotfix files to the UCMDB server machine and deploy the hotfix files. For high availability (HA) deployments, this should be done on each UCMDB server.
Another approach may be to use the copyClassesFolderToOtherServers JMX method. Depending on network latency, this approach can take longer, also some classes might be lost.
-
When multiple hotfixes are deployed, class files from hotfixes will be loaded in the sequential order of QCCR IDs of the hotfixes. For example, if hotfixes HF_QCCR1H101112 and HF_QCCR1H123122 are deployed, the class files from HF_QCCR1H101112 will be loaded first. This is important to know in the corner case when a class file is deployed on the server side by two hotfixes.
How to deploy server backend and UI - Server hotfixes
- Stop the UCMDB server.
-
Extract classes.zip.
-
Copy the classes folder of the zip into the following directory, depending on the hotfix type:
Hotfix type Target folder Server backend <UCMDB_Install_Dir>/ UI - Server <UCMDB_Install_Dir>/deploy/ucmdb-ui/WEB-INF/ If there already exists a classes folder, back up the folder first, and then copy the classes folder of the zip into the above folder to replace the existing one.
After deployment, the hotfix path looks like the following:
Hotfix type Path example Server backend <UCMDB_Install_Dir>/classes/HF_QCCR1HXXXXX/com/hp/ucmdb/ UI - Server <UCMDB_Install_Dir>/deploy/ucmdb-ui/WEB-INF/classes/HF_QCCR1HXXXXX/com/hp - For HA deployments, repeat step 2 and step 3 on each UCMDB server.
-
Restart the UCMDB server(s).
-
Check server startup log or invoke JMX method showAllBinariesApplied to make sure the binary/hotfix was properly deployed.
How to deploy applet hotfixes
- Stop the UCMDB server.
-
Extract appletPatches.zip.
-
Copy the appletPatches folder of the zip into the following directory: <UCMDB_Install_Dir>\deploy\ucmdb-ui\static
If there already exists an appletPatches folder, back up the folder first, and then copy the appletPatches folder of the zip into the above folder to replace the existing one.
After deployment, the hotfix path looks like the following:
<UCMDB_Install_Dir>/deploy/ucmdb-ui/static/appletPatches/YYYY_MM_DD_QCCR1HXXXXX.jar
- For HA deployments, repeat step 2 and step 3 on each UCMDB server.
-
Restart the UCMDB server(s).
-
Check server startup log or invoke JMX method showAllBinariesApplied to make sure the binary/hotfix was properly deployed.
How to view and track hotfixes deployed on UCMDB Server
To view and track hotfixes deployed on UCMDB server,
- On the UCMDB server, launch the Web browser and enter the following address: https://localhost:8443/jmx-console
-
Enter the JMX console authentication credentials (Login name = sysadmin).
-
Locate the following operations in the UCMDB:service=Server Services category:
- To view IDs of hotfixes applied only, locate the viewSystemInformation operation.
- To view and track detailed information about hotfixes deployed, locate the showAllBinariesApplied operation.
-
Click Invoke.
- The result page of the viewSystemInformation operation displays the system information of the UCMDB server, including the IDs of hotfixes deployed on the server. This is also saved in the supportability JMX general category output.
-
The result page of the showAllBinariesApplied operation displays detailed information about the hotfixes deployed, including hotfix type (server backend, UI server, or applet), readme file, if there're any overlapping files, and if there are any wrongly placed files.