Highlighted
Honored Contributor.
Honored Contributor.
290 views

TqlException : Properties condition exceeded maximum variables allowed

Hi 

I am getting an error when adding conditions on TQL query for Node CIType. The requirement is to select the list of nodes with specific IP addresses. so the PrimaryIPAddress attribute is selected as attribute where condition is applied and list of such condition exceeded the defined max limit. 

My question is there any workaround to select the list of nodes under such TQL. 

Error: Properties condition exceeded maximum variables allowed! number of vars: 64 maximum vars allowed :50

Caused by: [ERROR CODE- 122] appilog.common.system.exceptions.AppilogException: com.mercury.topaz.cmdb.shared.base.CmdbException: [ErrorCode [122] Properties condition exceeded maximum variables allowed]
appilog.framework.shared.manage.impl.MamResponseException: [ErrorCode [122] Properties condition exceeded maximum variables allowed]
CMDB Operation Internal Error: class com.mercury.topaz.cmdb.shared.base.CmdbException : com.mercury.topaz.cmdb.shared.tql.exception.TqlException: [ErrorCode [122] Properties condition exceeded maximum variables allowed]
Pattern:Update_DC Server Zone is not valid: com.mercury.topaz.cmdb.shared.tql.exception.TqlValidationException: [ErrorCode [122] Properties condition exceeded maximum variables allowed]
Properties condition exceeded maximum variables allowed! number of vars: 64 maximum vars allowed :50 : operation appilog.common.foldering.impl.AuthorizedFoldersFacadeImpl$AuthorizedUpdateDefinition : class com.mercury.topaz.cmdb.shared.base.CmdbException :
CMDB Internal Error: Error while handling request: {request: ID='46bc175e32e400b1a24e5b492f932bd5' Message='General CMDB request' Operation='appilog.common.foldering.impl.AuthorizedFoldersFacadeImpl$AuthorizedUpdateDefinition@7e020e2c' Customer ID='1, id name: Default Client'
Context='CMDB Context: Customer id = '1, id name: Default Client' , User ID = '911' , Caller Application = 'UCMDB-UI,loggedInUser:{admin###UCMDB}''}
at appilog.common.interfaces.mamserver.AbstractMamServerProxy.executeOperation(AbstractMamServerProxy.java:128)

 

Thanks & Regards,

Rohit S

Labels (1)
Tags (1)
0 Likes
5 Replies
Highlighted
Honored Contributor.
Honored Contributor.

Re: TqlException : Properties condition exceeded maximum variables allowed

The error is written in error.log

Error: Properties condition exceeded maximum variables allowed! number of vars: 64 maximum vars allowed :50

Highlighted
Acclaimed Contributor.. Acclaimed Contributor..
Acclaimed Contributor..

Re: TqlException : Properties condition exceeded maximum variables allowed

I would suggest using "In" or "In ignore case" operator with a list of IPs devided by comma. 

Please check attached screenshot as an example.

Regards
-Dmitry Gomel, PMP
Click the Like button at the bottom to say 'Thanks'.
0 Likes
Highlighted
Honored Contributor.
Honored Contributor.

Re: TqlException : Properties condition exceeded maximum variables allowed

That's good workaround but if I 64 IP Ranges each of /24 IP Subnet (or 255 IP Address in each IP range)

Will In condition can handle 16320 (i.e. 64*255) ?

 

Thanks & Regards,

Rohit S

0 Likes
Highlighted
Valued Contributor.. Valued Contributor..
Valued Contributor..

Re: TqlException : Properties condition exceeded maximum variables allowed

1. The maximum number of conditions can be changed, but I cannot remember the name of the setting. But this will not solve your problem.

2. You can use the IN operator instead. The maximum number of expressions is specific to the database vendor and UCMDB implementation: i.e. oracle can handle 1500 expressions in one IN condition, but you can have multiple IN conditions in conjuction with an OR. There is no limit if an IN subquery is used, but if one of these methods is used, depends on the UCMDB implementation.

3. To circumvent this problem you can serialize it by writing a custom discovery job. In my opinion this is right way to go (not only because of the limitation).

 

Kevin Woldt

0 Likes
Highlighted
Honored Contributor.
Honored Contributor.

Re: TqlException : Properties condition exceeded maximum variables allowed

Thanks for the reply.

We are using an Oracle Database for uCMDB application.

As you mentioned, one condtion can accomodate 1500 values with IN operator

We will give a try to accomodate 16000+ IP Address in TQL condition with 11 conditions

.Thanks & Regards,

Rohit S

 

The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.