UCMDB and UD Practitioners Forum (Previously CMS)
cancel

uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Highlighted
arjunrv_88
Regular Contributor.

uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Hello all...,

I'm trying integrate SCCM 2012 with uCMDB 10.10 using the Out of the Box adapter in uCMDB.

But facing an issue when it tries to retrieve the data from SCCM where in it says, The server supports a maximum of 2100 parameters. But what i'm not able decipher is that the error is due to SCCM side SQL server or uCMDB  side.

When you try to google the error statement, the search results shows that the error is on SQL server side but which of the DB server is my question?.

If any of you had faced this issue before and knwo the workaround for this, kindly let me know.

Have pasted the entire error message below.

 

Failed running population. Destination ID: SCCMtoUCMDB, Failed during query: SCCM Nodes Population, all queries: [SCCM Nodes Population], finished queries: [].
ERROR: com.mercury.topaz.cmdb.shared.base.CmdbException: [ErrorCode [802] General Integration Error{SCCMtoUCMDB}]
appilog.framework.shared.manage.impl.MamResponseException: [ErrorCode [802] General Integration Error{SCCMtoUCMDB}]
CMDB Operation Internal Error: class com.mercury.topaz.cmdb.shared.fcmdb.dataAccess.exception.AdapterAccessGeneralException : java.sql.SQLException: [mercury][SQLServer JDBC Driver][SQLServer]The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request. : operation DataAccess Query: Retrieve By Pattern From Changes Source Adapter operation
at com.mercury.topaz.cmdb.shared.manage.operation.impl.AbstractCommonOperation.execute(AbstractCommonOperation.java:161)
at com.hp.ucmdb.dataAccess.manager.DataAccessAdapterManagerProbeImpl.executeOperation(DataAccessAdapterManagerProbeImpl.java:50)
at com.hp.ucmdb.discovery.probe.agents.probemgr.adapters.DataAccessAdaptersFacade.invokeOperation(DataAccessAdaptersFacade.java:392)
at com.hp.ucmdb.discovery.probe.services.dynamic.core.AdapterService.getChangesTopologyActionData(AdapterService.java:1072)
at com.hp.ucmdb.discovery.probe.services.dynamic.core.AdapterService.runQueriesOnChangesAdapter(AdapterService.java:791)
at com.hp.ucmdb.discovery.probe.services.dynamic.core.AdapterService.runQueries(AdapterService.java:365)
at com.hp.ucmdb.discovery.probe.services.dynamic.core.AdapterService.runDiscovery(AdapterService.java:199)
at com.hp.ucmdb.discovery.probe.services.dynamic.core.AdapterService.discover(AdapterService.java:150)
at com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter.launchTask(JobExecuter.java:1199)
at com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter$JobExecuterWorker.launch(JobExecuter.java:946)
at com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter$JobExecuterWorker.executeTask(JobExecuter.java:870)
at com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter$JobExecuterWorker.run(JobExecuter.java:733)
Caused by: appilog.framework.shared.manage.impl.MamResponseException: [ErrorCode [802] General Integration Error{SCCMtoUCMDB}]
CMDB Operation Internal Error: class com.mercury.topaz.cmdb.shared.fcmdb.dataAccess.exception.AdapterAccessGeneralException : java.sql.SQLException: [mercury][SQLServer JDBC Driver][SQLServer]The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request. : operation DataAccess Query: Retrieve By Pattern From Changes Source Adapter operation
at com.mercury.topaz.cmdb.shared.manage.operation.impl.AbstractCommonOperation$OperationExecuteFlowTrackingCommand.execute(AbstractCommonOperation.java:113)
at com.mercury.topaz.cmdb.shared.manage.operation.impl.AbstractCommonOperation$OperationExecuteFlowTrackingCommand.execute(AbstractCommonOperation.java:60)
at com.mercury.topaz.cmdb.shared.manage.flowmanagement.api.FlowManager.execute(FlowManager.java:227)
at com.mercury.topaz.cmdb.shared.manage.operation.flow.OperationInFlowDefaultExecutor.execute(OperationInFlowDefaultExecutor.java:23)
at com.mercury.topaz.cmdb.shared.manage.operation.impl.AbstractCommonOperation.execute(AbstractCommonOperation.java:159)
... 11 more
Caused by: com.mercury.topaz.cmdb.shared.fcmdb.dataAccess.exception.AdapterAccessGeneralException: [ErrorCode [802] General Integration Error{SCCMtoUCMDB}]
java.sql.SQLException: [mercury][SQLServer JDBC Driver][SQLServer]The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
at com.hp.ucmdb.dataAccess.exceptions.ExceptionConverter.createAdapterAccessGeneralException(ExceptionConverter.java:331)
at com.hp.ucmdb.dataAccess.exceptions.ExceptionConverter.createAdapterAccessException(ExceptionConverter.java:165)
at com.hp.ucmdb.dataAccess.exceptions.ExceptionConverter.createAdapterAccessException(ExceptionConverter.java:65)
at com.hp.ucmdb.dataAccess.operations.AbstractDataAccessAdapterOperation.createAdapterAccessException(AbstractDataAccessAdapterOperation.java:54)
at com.hp.ucmdb.dataAccess.operations.AbstractDataAccessAdapterOperation.doExecute(AbstractDataAccessAdapterOperation.java:39)
at com.mercury.topaz.cmdb.shared.manage.operation.impl.AbstractFrameworkOperation.commonExecute(AbstractFrameworkOperation.java:17)
at com.mercury.topaz.cmdb.shared.manage.operation.impl.AbstractCommonOperation$OperationExecuteFlowTrackingCommand.execute(AbstractCommonOperation.java:87)
... 15 more
Caused by: com.mercury.topaz.fcmdb.adapters.dbAdapter.dal.command.exception.FcmdbDalException: [ErrorCode [-2147483648] undefined error code]
java.sql.SQLException: [mercury][SQLServer JDBC Driver][SQLServer]The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
at com.mercury.topaz.fcmdb.adapters.dbAdapter.DBAdapter.getFullTopology(DBAdapter.java:1124)
at com.hp.ucmdb.dataAccess.operations.DataAccessAdapterQueryRetrieveByPatternFromChangesSource.getResult(DataAccessAdapterQueryRetrieveByPatternFromChangesSource.java:55)
at com.hp.ucmdb.dataAccess.operations.DataAccessAdapterQueryRetrieveByPatternFromChangesSource.doDataAccessQueryExecute(DataAccessAdapterQueryRetrieveByPatternFromChangesSource.java:44)
at com.hp.ucmdb.dataAccess.operations.AbstractDataAccessLifeCycleAdapterQuery.doLifeCycleExecute(AbstractDataAccessLifeCycleAdapterQuery.java:34)
at com.hp.ucmdb.dataAccess.operations.AbstractDataAccessLifeCycleAdapterOperation.doDataAccessExecute(AbstractDataAccessLifeCycleAdapterOperation.java:57)
at com.hp.ucmdb.dataAccess.operations.AbstractDataAccessAdapterOperation.dataAccessExecute(AbstractDataAccessAdapterOperation.java:59)
at com.hp.ucmdb.dataAccess.operations.AbstractDataAccessAdapterOperation.doExecute(AbstractDataAccessAdapterOperation.java:37)
... 17 more
Caused by: java.sql.SQLException: [mercury][SQLServer JDBC Driver][SQLServer]The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
at com.mercury.jdbc.sqlserverbase.ddcw.b(Unknown Source)
at com.mercury.jdbc.sqlserverbase.ddcw.a(Unknown Source)
at com.mercury.jdbc.sqlserverbase.ddcv.b(Unknown Source)
at com.mercury.jdbc.sqlserverbase.ddcv.a(Unknown Source)
at com.mercury.jdbc.sqlserver.tds.ddr.v(Unknown Source)
at com.mercury.jdbc.sqlserver.tds.ddr.a(Unknown Source)
at com.mercury.jdbc.sqlserver.tds.ddq.a(Unknown Source)
at com.mercury.jdbc.sqlserver.tds.ddr.a(Unknown Source)
at com.mercury.jdbc.sqlserver.dda3.m(Unknown Source)
at com.mercury.jdbc.sqlserverbase.dde7.e(Unknown Source)
at com.mercury.jdbc.sqlserverbase.dde7.a(Unknown Source)
at com.mercury.jdbc.sqlserverbase.ddd2.a(Unknown Source)
at com.mercury.jdbc.sqlserverbase.dde7.v(Unknown Source)
at com.mercury.jdbc.sqlserverbase.dde7.u(Unknown Source)
at com.mercury.jdbc.sqlserverbase.ddd2.executeQuery(Unknown Source)
at com.mercury.jdbc.sqlserverbase.ddd6.executeQuery(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.dal.FcmdbDalJPADAO.calculateSqlResult(FcmdbDalJPADAO.java:320)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.dal.FcmdbDalJPADAO.access$300(FcmdbDalJPADAO.java:85)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.dal.FcmdbDalJPADAO$TqlCalculatorWork.execute(FcmdbDalJPADAO.java:640)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.dal.FcmdbDalJPADAO.calculateSqlUsingNativeConnection(FcmdbDalJPADAO.java:268)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.dal.FcmdbDalJPADAO.getResultTopology(FcmdbDalJPADAO.java:260)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.tql.FcmdbTqlCalculator.calculateTqlUsingSql(FcmdbTqlCalculator.java:195)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.tql.FcmdbTqlCalculator.runTql(FcmdbTqlCalculator.java:151)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.tql.FcmdbTqlCalculator.getTopology(FcmdbTqlCalculator.java:91)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.DBAdapter.getInternalTopology(DBAdapter.java:717)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.DBAdapter.getTopologyCmdbFormat(DBAdapter.java:684)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.DBAdapter.getTopology(DBAdapter.java:625)
at com.hp.ucmdb.adapters.sccm.plugins.replication.SccmReplicationPlugin.getTopologyIdsForQuery(SccmReplicationPlugin.java:299)
at com.hp.ucmdb.adapters.sccm.plugins.replication.SccmReplicationPlugin.getFullTopology(SccmReplicationPlugin.java:61)
at com.mercury.topaz.fcmdb.adapters.dbAdapter.DBAdapter.getFullTopology(DBAdapter.java:1118)
... 23 more

10 REPLIES
eengstrom
Respected Contributor.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

The error message is being returned by SQL Server.

Erik

effectualsystems.com
arjunrv_88
Regular Contributor.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Hey Erik.. Yes the returned error is by Sequel server and not by the tool.

Its apparently the sql server limitation to support 2100 parameters . So I wanted to know if there was any workaround for this?!

eengstrom
Respected Contributor.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

I suggest you speak with your SQL Server Administrator.

effectualsystems.com
eengstrom
Respected Contributor.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

These kinds of questions are so basic and generic, it's incredibly difficult to even know where to answer.

 

Frankly, I answered your question you asked with the information you provided. But there's more to it and it hasn't got anything to do with SQL Server, but what you're trying to accomplish - you want to use the out of the box adapters and get your results. To do so you're going to have to learn how to modify the request, create a specific request and provide specific input to the out of the box adapter. Even then you'll probably run into more problems, but at least you'll have some results to learn with.

 

You're basically trying to get more than the downstream system wants to give you. Break the request up under 2100 requested items and you'll either succeed or run into another problem.

 

 

effectualsystems.com
Dima Gomel
HPE Expert

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

I'd suggest opening support case via HP SSO.

My guess  the integration is trying to send big chunk of data in one procedure.

Chunking of the data will most probably solve the problem.

There is also a chance the problem is some kind of loop in the code.

Regards
-Dmitry Gomel, PMP
If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
Click the Like button at the bottom to say 'Thanks'.
eengstrom
Respected Contributor.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Dima,

 

The error message is a confirmed limitation from the SQL Server side.

 

Erik

effectualsystems.com
jmontero
Respected Contributor.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Hi Guys,

 

The issue is that DB Adapter is trying to execute TQLs using a single SQL statement.

To solve the issue we showld change the parameter on the adapter to don't execute the TQLs using a single SQL statement.

 

Best regards,

 

Jason Montero
HP UCMDB Software Support
Hewlett-Packard

If you find this or any post resolves your issue, please be sure to mark it as an accepted solution."

Click the KUDOS star on the left to say 'Thanks'



CarlKlein
New Member.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Hi all,

 

I'm running into the same issue with the integration with HP Asset Manager in uCMDB 10.20 (which also uses the DBAdapter). @Jason, how can the adapter be configured to not use a single SQL statement while handling a TQL? Is this something that can be configured?

 

Thanks in advance.

 

Best regards,

 

Carl

EmilDutsov
New Member.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Same issue for 10.20 CP12 Update 2 and SCCM 2012

This solution works for me without any modification on the SQL server or TQL query.

In the SCCM adapter adapter.conf file change the runnig single TQL Query parameter to false.

performance.enable.single.sql=false

Cheers!
Emil Dutsov

ElchinMahmud
New Member.

Re: uCMDB 10.10CUP2and CP 13.3 Integration with Microsoft SCCM 2012

Fantastic!! This solved my issue.