BMC Helix CMDB 21.05
BMC Helix CMDB 21.05
BMC Atrium Core includes the BMC Helix CMDB (CMDB) and Atrium Integrator. Use CMDB to store and manage the configuration items (CIs) that represent your IT environment. Use Atrium Integrator to transfer data between an external datastore and CMDB.
Learn what’s new or changed for BMC Helix CMDB 21.05, including new features, urgent issues, documentation updates, and fixes or patches.
Important
This section only includes information about changes since the most recent release of BMC Helix CMDB. If you are upgrading from a previous release, review the release notes for all applicable versions of the product. For example, if you are upgrading from version 7.6.04, review the release notes for versions 9.0, 9.1, 9.1.04, 18.05, 18.08, 19.02, 19.08, 19.11, 20.02, 20.08, and 21.02.
Tip
To stay informed of changes to this space, place a watch on this page.
Date | Title | Summary |
---|---|---|
September 15, 2021 | Starting with 21.05.02 patch, perform container deployment of BMC Helix Innovation Suite and service management applications. | |
July 28, 2021 | Patch 21.05.01 release includes updates and defect fixes for BMC Helix Innovation Studio and the service management applications. | |
June 23, 2021 | Enhancements available in this release:
|
As a developer or application programmer, develop interfaces and toolkits and customize CMDB. | ||||
Managing the Common Data Model Information and best practices for managing the Common Data Model. | ||||
As an administrator, configure the core CMDB components and archive the CMDB data, configure BMC Atrium Core Web Services, and manage the Product Catalog. | As an administrator, set up integrations with other BMC products or third-party software. |
Videos
The following table lists topics that contain videos that supplement or replace the text-based documentation.
Important
These videos are valid for BMC Helix CMDB version 21.05.
-
Accessing and navigating the CMDB Portal
This section provides answers to frequently asked questions (FAQs) about BMC CMDB components.
Set attribute permissions
How do I set attribute permissions using regular or computed groups?
Setting the attribute permissions is an optional step in the Class Manager user interface (UI) of BMC CMDB. If you do not set the permissions, the default permission groups are applied by BMC CMDB.
You cannot set attribute permission using regular or computed groups from the CMDB Portal because a validation in CMDB engine allows only dynamic groups or roles to be associated with attributes. You must use the CMDB Driver commands or CMDB APIs to set the attributes permissions for regular or computed groups.
However, you can use the following workaround to set the attribute permission to certain regular or computed groups:
Use the existing computed groups and extend them to cover the regular groups. .
For example, if you want users of Group A, which is a regular group to change the data of a specific attribute, then Group A can be added to the existing CMDB Data Change Group, which is a computed group by using the following qualifications in the AR Group form:
"Administrator" OR "CMDB Console Admin Group" OR "Asset Admin" OR "Request Catalog Manager" OR "Business Analyst" OR “Group A”
This method will regularize the CMDB permissions structure without changing the out-of-the-box permission model.
For information about modifying attribute permissions by using the CMDB Class Manager, see Creating-or-modifying-classes-by-using-Class-Manager .
For information about creating groups, see Creating groups .
For more information about regular, computed, and dynamic groups, see AR System: Regular, computed, and dynamic groups.
CMDB Search
What are the search options available for CIs?
The options available are Quick Search and Advanced Search. Quick Search is the basic search, which helps you search for CIs quickly, based on the parameters you specify. With Advanced Search, can use template queries or build your own custom query.
Can I search for CIs that are Marked As Deleted?
Yes, you can search for CIs that are Marked As Deleted, by performing the following steps:
- On the Search Widget, select Quick Search.
- Select the dataset and class.
- In the Attribute field, select MarkAsDelete.
- In the AttributeValue field, enter 1, to show all CIs that have the MarkAsDelete attribute set as True.
Is wildcard search supported?
Yes, Wildcard % is supported in search.
To search for a parameter type the string. By default, the wildcard character % is appended automatically to the end of the search string, while is the search is being run. The search returns all values starting with the search string you entered. For example, if you enter the string as Comp, the search returns values like Computer, Comp12, ComputerSystem, and so on.
However, if you want to search for CIs containing a particular string, you can place % anywhere in the search string to use as a wildcard. For example, %system returns results like ComputerSystem, Computer_System, AdminSystem, and so on.
View CI Updates
Why does the CI Updates page show zero CIs even though new CIs were added to the production dataset?
When a large number of CIs (example 50K) are added to the production dataset, it takes few minutes for the CI Updates page to reflect the changes. That is because at the backend while the CI information is getting updated, it takes time to update the CMDB Portal. Hence, sometimes even after adding CIs or updating CIs, you might see the added or edited number of CIs as zero on the page.
See, Viewing-updates-to-CIs.
CMDB Explorer
When I click the link of a CI to view its details, I get an 'Instance not Found' error. Why is this error shown?
This error is displayed if you click a CI's link to view its details, but the CI has already been deleted. However, you can still view the details of a deleted CI. An example of the Integrity page from which the link to the CI details can be accessed is shown in the following figure:
CMDB Explorer looks cluttered and I would like to view only certain CIs. Is there an option to achieve this in CMDB Explorer?
When large datasets are displayed on CMDB Explorer, the canvas may look cluttered with too many CIs. Use Group CIs, Filters, Remove CIs options to simplify the view. For more information to simplify the CMDB Explorer view, see Searching-and-viewing-CIs-and-relationships-in-CMDB-Explorer.
Perform the following steps to create a custom group.
- Click Drag Mode to switch to Select Mode.
- Hold your left mouse button on the canvas and draw your selection to include CIs that you want to group.
- Click Group Selected CIs. The Custom group is created.
- Click Drag Mode again.
However, there are restrictions for including a CI as part of a custom group, which are listed as follows:
a. You cannot add an already existing group of CIs to a custom group.
b. CIs that are children of another group cannot be added to a custom group.
Can I exclude specific types of CIs or relationships from being displayed in CMDB Explorer?
Yes, use the following options to manage the CIs that are displayed in CMDB Explorer:
- Filters to include or exclude.
- Remove CIs.
In the CMDB Portal, filtering is simplified and you can achieve the same results by checking only those classes and relationships that you want to view on the Explorer canvas. The Filtering options are as shown in the following figure.
When you create a filter, you can also determine whether that filter can be used by others or only by you.
If Is Global is ON, the filter is saved as a shared filter and is available to everyone. If Is Global is OFF , the filter is saved as a Personal filter and it is available only to you.
You can also use the Remove CIs option to exclude specific CIs from the Explorer canvas.
For more information, see Searching-and-viewing-CIs-and-relationships-in-CMDB-Explorer.
Can I collapse an expanded node?
No, you cannot collapse an expanded node. However, you can either group similar CIs or group CIs of your interest by creating a custom group. Use Drag Mode on CMDB Explorer to create a custom group.
- Click Drag Mode to switch to Select Mode.
- Hold your left mouse button on the canvas and draw your selection to include CIs that you want to group.
- Click Group Selected CIs. The Custom group is created.
- Click Drag Mode again.
BMC CMDB Reconciliation Engine FAQs
What is Reconciliation Engine?
Reconciliation Engine is a component installed with the BMC CMDB. The main function of the Reconciliation Engine is the creation of a production dataset that contains accurate data from all available sources. Data in the production dataset is then used by consuming applications.
For more information, see the following resources:
Resource | Link |
---|---|
Online documentation | |
BMC Communities Webinar | CMDB Portal Walkthrough - Webinar - 21 May 2021 |
BMC Communities Webinar | |
BMC Communities Webinar |
What should I do to prevent errors that might occur when running Reconciliation Engine jobs?
Before you run a Reconciliation job, perform the following:
- Perform CDM metadata diagnostics - Run the CDMChecker utility to:
- Detect invalid customization
- Detect CDM corruption
- For information about running this utility, see Troubleshooting-issues-when-using-the-CDMChecker-tool.
- For information about troubleshooting the errors, see Failed to execute the [excerpt-include] macro. Cause: [Error number 2 in 0: No wiki with id [confluencePage:page] could be found]. Click on this message for details.
org.xwiki.rendering.macro.MacroExecutionException: Failed to get document for reference [confluencePage:page:ac2105.Service-Management.IT-Service-Management.BMC-Helix-CMDB.ac2105.FAQs._ac_2NW_LinksLibrary v20.02.01]
at com.xwiki.macros.excerptinclude.internal.macro.ExcerptIncludeMacro.internalExecute(ExcerptIncludeMacro.java:130)
at productHelper.macros.BmcExcerptIncludeMacro.internalExecute(BmcExcerptIncludeMacro.java:27)
at productHelper.macros.BmcExcerptIncludeMacro.internalExecute(BmcExcerptIncludeMacro.java:18)
at com.xwiki.macros.AbstractProMacro.execute(AbstractProMacro.java:116)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:441)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:396)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInIsolatedExecutionContext(DocumentContentAsyncExecutor.java:365)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:267)
at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:112)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:290)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:67)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:123)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
at org.xwiki.rendering.internal.macro.display.DisplayMacro.execute(DisplayMacro.java:130)
at productHelper.macros.BmcDisplayMacro.execute(BmcDisplayMacro.java:43)
at productHelper.macros.BmcDisplayMacro.execute(BmcDisplayMacro.java:28)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:441)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.internal.macro.html.HTMLMacro.renderWikiSyntax(HTMLMacro.java:215)
at org.xwiki.rendering.internal.macro.html.HTMLMacro.execute(HTMLMacro.java:150)
at org.xwiki.rendering.internal.macro.html.HTMLMacro.execute(HTMLMacro.java:70)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:441)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.transform(AbstractBlockAsyncRenderer.java:76)
at org.xwiki.rendering.wikimacro.internal.DefaultWikiMacroRenderer.transform(DefaultWikiMacroRenderer.java:874)
at org.xwiki.rendering.wikimacro.internal.DefaultWikiMacroRenderer.transform(DefaultWikiMacroRenderer.java:860)
at org.xwiki.rendering.wikimacro.internal.DefaultWikiMacroRenderer.transform(DefaultWikiMacroRenderer.java:593)
at org.xwiki.rendering.wikimacro.internal.DefaultWikiMacroRenderer.execute(DefaultWikiMacroRenderer.java:408)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.rendering.wikimacro.internal.DefaultWikiMacro.execute(DefaultWikiMacro.java:129)
at org.xwiki.rendering.wikimacro.internal.DefaultWikiMacro.execute(DefaultWikiMacro.java:61)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:441)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:396)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:269)
at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:112)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:290)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:67)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:123)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:1412)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1548)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1498)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1467)
at com.xpn.xwiki.api.Document.displayDocument(Document.java:788)
at jdk.internal.reflect.GeneratedMethodAccessor574.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.xwiki.velocity.internal.directive.TryCatchDirective.render(TryCatchDirective.java:86)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor18423.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor18423.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:846)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:832)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:91)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:85)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2564)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:651)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: com.xpn.xwiki.XWikiException: Error number 3202 in 3: Exception while reading document [confluencePage:page:ac2105.Service-Management.IT-Service-Management.BMC-Helix-CMDB.ac2105.FAQs._ac_2NW_LinksLibrary v20.02.01()]
at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:1233)
at com.xpn.xwiki.store.XWikiCacheStore.loadXWikiDoc(XWikiCacheStore.java:399)
at com.xpn.xwiki.XWiki.getDocument(XWiki.java:2195)
at com.xpn.xwiki.XWiki.getDocument(XWiki.java:2257)
at com.xwiki.macros.excerptinclude.internal.macro.ExcerptIncludeMacro.internalExecute(ExcerptIncludeMacro.java:128)
... 232 more
Caused by: com.xpn.xwiki.XWikiException: Error number 2 in 0: No wiki with id [confluencePage:page] could be found
at com.xpn.xwiki.internal.store.hibernate.HibernateStore.beginTransaction(HibernateStore.java:854)
at com.xpn.xwiki.store.XWikiHibernateBaseStore.beginTransaction(XWikiHibernateBaseStore.java:576)
at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:1082)
... 236 more.
- Perform data diagnostics
- Run the cmdbdiag utility to check if data conforms with the model defined in BMC CMDB and correct it. For information about using this utility, see Verifying-your-data-model.
- Perform Reconciliation Engine-specific data diagnostics
- Run the Data Analyzer tool to check whether the data follows the RE-specific guidelines. BMC highly recommends you to run this tool before running any RE job. See Using-CMDB-Data-Analyzer-to-investigate-CMDB-data-issues.
- Perform manual checks for RE jobs
- Make sure that all the classes and attributes used in standard or custom rules of all the RE jobs exist in your CDM data model. If a certain job is imported in your CDM, the job might fail.
- Make sure that the data sets (source, target and precedence data set) referred in all the RE jobs also exist in the BMC_Dataset class.
- Check whether indexes are set
- During upgrade, for optimal RE performance, ensure that the out-of-the-box indexes set up on BMC.CORE:BMC_BaseElement and BMC.Core:BMC_BaseRelationship forms.Discrepancies, if any, are logged in the Atrium Installer log file. The following image displays an example message:
- During upgrade, for optimal RE performance, ensure that the out-of-the-box indexes set up on BMC.CORE:BMC_BaseElement and BMC.Core:BMC_BaseRelationship forms.Discrepancies, if any, are logged in the Atrium Installer log file. The following image displays an example message:
What are the best practices that need to be followed before starting reconciliation activity?
Watch the video on Reconciliation Engine best practices:
For more information about best practices for effective reconciliation process, see Reconciliation-best-practices.
Configure recommended settings
Ensure that the System-level settings and Job-level settings are configured as per the recommendations. See the following images for recommended settings:
System-level settings
Job-level settings
For more information, see Reconciliation-Engine-configuration-settings.
Under what conditions should the OOTB configuration settings be changed?
You should consider changing the default configuration settings in the following scenarios:
- If you are dealing with large volume of data, increase the value of the Definition Check Interval field.
- If you need specific log details, ensure that you change the log level to Debug. (Change the default log value only when you need and reset it back to default log level when you are done). Additionally, set the Maximum Job Log File Size value to 50000 KB.
- If the RE Job is not responding for a long period, set Job Idle Time value to the desired time other than the default value (0).
What are standard rules and when should standard rules be used?
Standard identification and precedence rules simplify the process of creating reconciliation jobs. Standard rules use defaults for Identify and Merge activities and automate the creation of reconciliation jobs.
The standard rules work with all classes in the Common Data Model (CDM) and BMC extensions. They identify each class using attributes that typically have unique values, and they merge based on precedence set for BMC datasets. Standard reconciliation jobs always use these standard rules, but you can also use standard rules when you create your own reconciliation job.
You must use standard rules:
- When configuration items are published into the CMDB or when the data is pulled from the CMDB.
- To uniquely identify attributes of the discovered configuration items.
What are custom rules and when should custom rules be used?
A set of rules that are created as per your specific business requirements and are not part of the standard rules are termed as custom rules. You can use custom rules for CI classes.
The following is an example scenario in which you might want to create custom rules:
If you have extended the Common Data Model by adding a new attribute, which is specific to your requirement and which might not be populated by any discovery tool. You might want to define custom rules to identify your assets based on this attribute.
For more information about using custom rules, see Configuring-reconciliation-identification-rules.
What are identification rules and precedence rules and how do I define them?
Standard identification and precedence rules simplify the process of creating reconciliation jobs. A reconciliation job is provided with a standard rule sets of identification and precedence rules.
These standard rules work with all classes in the Common Data Model (CDM) and BMC extensions. They identify each class using attributes that typically have unique values, and they merge based on precedences set for BMC datasets. Standard reconciliation jobs always use these standard rules, but you can also use them when you create a custom reconciliation job.
For more information, see Creating-a-standard-reconciliation-job.
How do I define precedence order?
Watch the following video:
For more information, see Creating-precedence-sets-and-associations-for-reconciliation-merge-activities .
What should I not do with my CMDB data?
- Do not set a Reconciliation Engine ID manually in any dataset.
- Do not manually delete data, which is marked as soft delete.
- Do not delete datasets manually. You must also need to clean up dataset references from Reconciliation Engine, Normalization Engine etc.
How should I use qualifications in Reconciliation Engine activity?
For most reconciliation activities, you can specify a qualification set for the purpose of restricting the instances that participate in an activity. Qualification sets, which are reusable between activities, are qualification rules that each select certain attribute values. Any instance that matches at least one qualification in a set can participate in an activity that specifies the qualification set.
For example, you might create a qualification set that selects instances that were discovered within the last 24 hours and have the domain "Frankfurt" if your company just opened a Frankfurt office and you are reconciling its discovered CIs for the first time.
- For more information, see Creating-qualification-rules-for-reconciliation-activities.
- For information about conventions to be used in qualification of Reconciliation Engine activity, see Qualification-conventions-for-reconciliation-activities.
What is a data analyzer tool in CMDB?
The CMDB Data Analyzer is a collection of tools that enable you to perform data analysis and also identify data inconsistencies in any CMDB dataset.
For more information, see Using-CMDB-Data-Analyzer-to-investigate-CMDB-data-issues .
What does reconcile only normalized CIs mean?
Normalization process helps maintain consistency and standardizes the CMDB data. Hence, as a best practice, we recommend that you must reconcile only those CIs that have been normalized or those that do not require normalization. To reconcile the appropriate CIs, enable the Process Normalized CIs Only option while creating a reconciliation job. For more information about normalization, see Managing-consistency-of-CMDB-data-by-using-normalization.
How do I reconcile manually created CIs?
To reconcile manually created CIs, perform the following steps:
- Create a custom job.
- Define the job for the classes in which you populate the data.
- Identify the CIs.
- Ensure that you adhere to the identification rules for the discovered jobs so that your CI matches with the discovered CIs.
- Ensure that you populate at least those columns/attributes correctly that are defined in the identification rules (This helps in correct identification of the CI with the existing CI)
- Set a lower precedence value for the manual dataset, but set a highest precedence to the manually edited columns/attributes of the dataset.
What are the possible causes of a partial merge? What do I do if CIs merge partially?
CIs are partially merged when the merge process fails due to data issues.
See the following flowchart that explains the checks to be performed if the CIs are partially merged:
How do I find duplicate CIs in the same dataset?
Run the CMDB Data Analyzer utility to find duplicate CIs. See Using-CMDB-Data-Analyzer-to-investigate-CMDB-data-issues.
How do I find same CI in multiple datasets?
Run Reconciliation Engine's (RE) Identification activity across multiple datasets. For example, open the BMC.CORE:BaseElement form and enter the RE ID value and search. If a CI having the same RE ID is found in multiple datasets, it means that the same CI exists in those datasets.
How do I find orphan CIs?
Run the CMDB Data Analyzer utility to find orphan CIs. See Using-CMDB-Data-Analyzer-to-investigate-CMDB-data-issues.
What are the most common failures in RE and why?
The following table lists the common RE issues and provides access to relevant resources and workaround to these issues.
Issue | Resolution |
---|---|
Duplicate CIs in discovery/source datasets. This error message is logged in the RE Job log. | |
ARERR[120092] The dataset ID and Reconciliation Identity combination is not unique. |
|
Multiple instances found in target dataset. This error message is logged in the RE Job log. |
|
ARERR[101049] Dataset <> does not exist. Aborting... Activity ended with error. | This error occurs when you delete or rename any dataset and it does not get updated on all required places such as precedence sets etc. Perform the following:
|
Cannot find the endpoint of relationship. | This error occurs if you manually modify a CI and fail to modify its relationship, causing data integrity issues. For more information, see Troubleshooting-reconciliation-based-on-error-messages. |
How to migrate RE jobs from one computer to another?
From BMC Helix CMDB version 21.02, migrate the reconciliation jobs by using the Reconciliation Job Export utility. For more information about the utility, see Exporting reconciliation job definitions.
What to do if RE process terminates or is unresponsive?
The Reconciliation Engine process terminates because:
- The AR System server or database is busy and is unable to process the requests coming from RE.
- The AR System server is either not responding or not reachable.
In the above scenarios, RE awaits for a response from the AR System server and then terminates itself.
For more information, see the Knowledge Article number 000224175.
The scheduled RE jobs are not running or are getting delayed. What do I do?
Perform the following:
- Check whether the job schedule is deleted or modified.
- Check if the job listed under Queued Jobs on the Manage Reconciliation page.
- Check whether the Application Pending form has an entry for that job.
- If there is no entry for that job, enable the AR API, SQL and Filter logs.
- If the entry exists, check the AR Dispatcher log.
- Check whether RE is registered with the AR Dispatcher.
- Check the number of entries in the Application Pending form.
- If there are many entries in the form and if you do not need them, delete those entries from the form.
- Check whether the RE job entry is in the Queued state in the RE job run. If yes, delete the entry from the Queued state.
- If you are using RE in a server group environment, ensure that the Reconciliation-Engine-Suspended flag is set to False (F). Note: You cannot set this value manually.
Changes to RE job, rules, or qualification sets are not reflecting in the CMDB Portal. What do I do?
Perform the following:
- Enable server-side logs.
Edit the log4j.properties file located in the <AR_Installation_Home>\midtier\WEB-INF\classes folder. Add the following lines:
log4j.rootLogger=DEBUG, atrium
log4j.appender.atrium=org.apache.log4j.RollingFileAppender
log4j.appender.atrium.File=C:/Program Files/BMC Software/ARSystem/midtier/logs/atrium-ui.log
log4j.appender.atrium.MaxFileSize=25MB
log4j.appender.atrium.MaxBackupIndex=10
log4j.appender.atrium.layout=org.apache.log4j.PatternLayout
log4j.appender.atrium.layout.ConversionPattern==%d[%t] %-5p %C{1} - %m%nand
log4j.logger.com.bmc.atrium=DEBUG
log4j.logger.com.bmc.bsm.atrium= DEBUG
log4j.logger.com.bmc.atrium.flex.ds= DEBUG- Edit the <AR_HOME>\ARSystem\midtier\WEB-INF\AtriumWidget\flex\services-config.xml file.
In the services-config.xml file, modify the logging level from Warn to Debug.
For example, change the following line:
<target class="flex.messaging.log.ConsoleTarget" level="WARN">
To
<target class="flex.messaging.log.ConsoleTarget" level=“DEBUG">
- Enable client-side logs.
For information about enabling client-side logs, see Enabling-API-and-web-services-logs.
How to create a RE job for multiple source datasets?
Support for Google Chrome version 80
I cannot enable the single sign-on experience using Google Chrome browser version 80 and later.
Recent versions of modern browsers are starting to enforce more privacy-preserving defaults and are changing the way cross-site cookies are handled.
Remedy Single Sign-On relies on cookies to enable your users to seamlessly access all integrated applications. As browsers implement changes to their default SameSite attributes, cross-site cookies will not be sent by default. As a result, your users will be prevented from accessing your applications.
To continue to use Remedy SSO with newer browser versions, you must do the following:
- Use the secure HTTPS protocol for all of your applications.
- Upgrade to Remedy SSO 20.02.
- Set the following configuration options in Remedy SSO:
- Enable Secured Cookie
- Use Cross Site Cookie
For instructions, see Configuring settings for Remedy SSO server.
Note: If you subscribe to Remedy SSO 20.08 and later releases (SaaS), no action is required. BMC will update your configuration.