NewDbTool.bat fail with timeout errors

  • KM02952326
  • 15-Sep-2017
  • 19-Jul-2018

Summary

When run NewDbTool.bat it fail with timeout errors.

Error

When running NewDbTool.bat it may fail with timeout errors. In newDbTool.log we can see errors like:

 

D:\hp\UCMDB\UCMDBServer\tools\dbscripts>newDbTool.bat consistency --preview

Thu 08/03/2017 15:58:17.96
Running db tool with the following parameters: consistency --preview
2017-08-03 15:58:20,135  INFO   [main] - Running tool: consistency [preview mode = true customerId=1]
2017-08-03 15:58:21,976  INFO   [main] - DB TYPE = SQLServer
2017-08-03 15:58:21,976  INFO   [main] - DB NAME = ucmdb_cmdb
2017-08-03 15:58:21,976  INFO   [main] - DB HOST = srvomucmdb
2017-08-03 15:58:21,976  INFO   [main] - DB PORT = 1433
2017-08-03 15:58:21,976  INFO   [main] - DB USER = ucmdb10
2017-08-03 15:58:23,770  INFO   [main] - Analyzing CIs that exist in the root table and don't exist in any concrete CDM
table
2017-08-03 15:58:35,751  INFO   [main] - Finished - found records [ 0 ]
2017-08-03 15:58:35,751  INFO   [main] - Analyzing relations that exist in root table and don't exist in concrete CDM ta
bles
2017-08-03 15:58:36,812  INFO   [main] - Finished - found records [ 0 ]
2017-08-03 15:58:36,812  INFO   [main] - Analyzing data that exist in concrete CDM tables but don't exist in ROOT table
2017-08-03 15:58:37,919  INFO   [main] - Analyzing CIs:
2017-08-03 15:58:44,378  INFO   [main] - Analyzing Relations:
2017-08-03 15:58:45,283  INFO   [main] - Finished - found totally [ 0 ] objects
2017-08-03 15:58:45,298  INFO   [main] - Analyzing data that exist in list attributes table and doesn't exist in root
2017-08-03 15:58:45,548  INFO   [main] - Finished. Found ids : [ 0 ]
2017-08-03 15:58:45,548  INFO   [main] - Analyzing broken relations whose end1/end2 doesn't exist in the root table
2017-08-03 15:58:49,682  INFO   [main] - Count By Type:
2017-08-03 15:58:49,682  INFO   [main] - dependency                                         5
2017-08-03 15:58:49,682  INFO   [main] - composition                                        2
2017-08-03 15:58:49,682  INFO   [main] - Finished - found records [ 7 ]
2017-08-03 15:58:49,682  INFO   [main] - Analyzing broken relations whose end1/end2 doesn't exist in any of concrete CDM
 tables
2017-08-03 16:08:49,774  ERROR  [main] - Failed to run the db tool : [task: consistency, previewMode: preview]
com.mercury.topaz.cmdb.server.manage.dal.CmdbDalException: [ErrorCode [-2147483648] undefined error code]
SQL error executing statement
                SELECT L.CMDB_ID, L.A_ROOT_CLASS, L.END1_ID, L.END2_ID
                  FROM LINK_1 L
                 WHERE NOT EXISTS (SELECT C.CMDB_ID
                                     FROM OBJECT_1 C
                                    WHERE C.CMDB_ID = L.END1_ID)
                       OR
                       NOT EXISTS (SELECT C.CMDB_ID
                                     FROM OBJECT_1 C
                                    WHERE C.CMDB_ID = L.END2_ID)


        at com.mercury.topaz.cmdb.server.manage.dal.jdbc_template.JDBCTemplate.executeQuery(JDBCTemplate.java:630)
        at com.mercury.topaz.cmdb.server.manage.dal.jdbc_template.JDBCTemplate.executeQuery(JDBCTemplate.java:569)
        at com.mercury.topaz.cmdb.server.manage.dal.jdbc_template.JDBCTemplate.executeQuery(JDBCTemplate.java:525)
        at com.mercury.topaz.cmdb.server.manage.dal.jdbc_template.JDBCTemplate$executeQuery$0.call(Unknown Source)
        at com.hp.ucmdb.dbtool.data.access.dao.GroovyDalDaoSupport.execSqlQuery(GroovyDalDaoSupport.groovy:50)
        at com.hp.ucmdb.dbtool.data.access.dao.GroovyDalDaoSupport.execSqlQuery(GroovyDalDaoSupport.groovy)
        at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrap.invoke(PogoMetaMethodSit
e.java:190)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
        at com.hp.ucmdb.dbtool.data.access.dao.consistency.preview.DbToolConsistencyPreviewDaoImpl.getLinksWithInvalidEn
d1OrEnd2ByCDM(DbToolConsistencyPreviewDaoImpl.groovy:221)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.mercury.topaz.cmdb.server.manage.dal.dao.DaoFactory$TransactionProxy$ProxyDalAbstractCommand.perform(DaoF
actory.java:155)
        at com.mercury.topaz.cmdb.server.manage.dal.DalAbstractCommand$FlowControlDalCommandExecutor.execute(DalAbstract
Command.java:36)
        at com.mercury.topaz.cmdb.shared.manage.flowmanagement.api.FlowManager.execute(FlowManager.java:227)
        at com.mercury.topaz.cmdb.shared.manage.flowmanagement.api.FlowManager.execute(FlowManager.java:222)
        at com.mercury.topaz.cmdb.server.manage.dal.DalAbstractCommand.execute(DalAbstractCommand.java:54)
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalJdbcDAO$CmdbDalDeadlockRetriable.performAction(CmdbDalJdbcDAO
.java:120)
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalJdbcDAO$CmdbDalDeadlockRetriable.performAction(CmdbDalJdbcDAO
.java:105)
        at com.mercury.topaz.cmdb.shared.util.retry.impl.DefaultRetriableExecutorImpl.doExecute(DefaultRetriableExecutor
Impl.java:37)
        at com.mercury.topaz.cmdb.shared.util.retry.impl.AbstractRetriableExecutor.execute(AbstractRetriableExecutor.jav
a:37)
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalJdbcDAO.executeQuery(CmdbDalJdbcDAO.java:61)
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalJdbcDAO.executeQuery(CmdbDalJdbcDAO.java:53)
        at com.mercury.topaz.cmdb.server.manage.dal.dao.DaoFactory$TransactionProxy.invoke(DaoFactory.java:135)
        at com.sun.proxy.$Proxy26.getLinksWithInvalidEnd1OrEnd2ByCDM(Unknown Source)
        at com.hp.ucmdb.dbtool.data.access.dao.consistency.preview.DbToolConsistencyPreviewDao$getLinksWithInvalidEnd1Or
End2ByCDM$4.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
        at com.hp.ucmdb.dbtool.processors.consistency.PreviewModeProcessorHelper.examineBrokenLinksByCDMTable(PreviewMod
eProcessorHelper.groovy:113)
        at com.hp.ucmdb.dbtool.processors.consistency.PreviewModeProcessorHelper$examineBrokenLinksByCDMTable$5.callCurr
ent(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
        at com.hp.ucmdb.dbtool.processors.consistency.PreviewModeProcessorHelper.executeConsistencyChecks(PreviewModePro
cessorHelper.groovy:33)
        at com.hp.ucmdb.dbtool.processors.consistency.PreviewModeProcessorHelper$executeConsistencyChecks.call(Unknown S
ource)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at com.hp.ucmdb.dbtool.processors.consistency.ConsistencyDbToolProcessor.runPreviewMode(ConsistencyDbToolProcess
or.groovy:30)
        at com.hp.ucmdb.dbtool.processors.GenericDbToolProcessor.execute(GenericDbToolProcessor.groovy:34)
        at com.hp.ucmdb.dbtool.processors.Processor$execute.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:80)
        at com.hp.ucmdb.dbtool.main.DbToolRunner.runDbTool(DbToolRunner.groovy:22)
        at com.hp.ucmdb.dbtool.main.DbTool.main(DbTool.java:12)
Caused by: com.mercury.topaz.cmdb.server.manage.dal.CmdbDalException: [ErrorCode [-2147483648] undefined error code]
Can't execute prepared statement [
                SELECT L.CMDB_ID, L.A_ROOT_CLASS, L.END1_ID, L.END2_ID
                  FROM LINK_1 L
                 WHERE NOT EXISTS (SELECT C.CMDB_ID
                                     FROM OBJECT_1 C
                                    WHERE C.CMDB_ID = L.END1_ID)
                       OR
                       NOT EXISTS (SELECT C.CMDB_ID
                                     FROM OBJECT_1 C
                                    WHERE C.CMDB_ID = L.END2_ID)

             ], due to exception: java.sql.SQLTimeoutException: [mercury][SQLServer JDBC Driver]Execution timeout expire
d.
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalPreparedStatementImpl.executeQuery(CmdbDalPreparedStatementIm
pl.java:365)
        at com.mercury.topaz.cmdb.server.manage.dal.jdbc_template.JDBCTemplate.executeQuery(JDBCTemplate.java:624)
        ... 54 more
Caused by: java.sql.SQLTimeoutException: [mercury][SQLServer JDBC Driver]Execution timeout expired.
        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.sqlserverbase.dde7.a(Unknown Source)
        at com.mercury.jdbc.sqlserverbase.dde7.v(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.cmdb.server.manage.dal.CmdbDalPreparedStatementImpl$FlowControlQueryExecuter.execute(CmdbDa
lPreparedStatementImpl.java:604)
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalPreparedStatementImpl$FlowControlQueryExecuter.execute(CmdbDa
lPreparedStatementImpl.java:596)
        at com.mercury.topaz.cmdb.shared.manage.flowmanagement.api.FlowManager.execute(FlowManager.java:227)
        at com.mercury.topaz.cmdb.server.manage.dal.CmdbDalPreparedStatementImpl.executeQuery(CmdbDalPreparedStatementIm
pl.java:356)
        ... 55 more
Thu 08/03/2017 16:08:49.89
 

Cause

SQL Timeout Exception

Fix

Note: Make sure that there are no extra spaces at the end of each line in jdbc.properties.

 

jdbc.properties file creation procedure

1. create the file <UCMDBServer>\conf\jdbc.properties
2. Add into the file:

For MSSQL
SQLServer=ddmssql
ddmssql.QueryTimeout=3600
 
 
For ORACLE
Oracle=ddoracle
ddoracle.QueryTimeout=3600

The timeout is in seconds.