SdbTraceOption

指定 traceOn 监控参数。

包括指定模块、断点、线程号、函数以及线程类型等参数。

语法

SdbTraceOption() [.components( [,component2…] )]
         [.breakPoints( [,breakPoint2…] )]
         [.tids( [,tid2…] )]
         [.functionNames( [,functionName2…] )]
         [.threadTypes( [,threadType2…] )]

SdbTraceOption() [.components( [ , , … ] )]
         [.breakPoints( [ , , … ] )]
         [ .tids( [ , , … ] )]
         [.functionNames( [ , , … ] )]
         [.threadTypes( [ , , … ] )]

方法

components()

模块方法

参数名参数类型默认值描述是否必填
conponentstring / string array所有模块指定模块

conponent 参数的可选值如下表:

可选值描述
authAuthentication
bpsBufferPool Services
catCatalog Services
clsCluster Services
dpsData Protection Services
migMigration Services
msgMessaging Services
netNetwork Services
ossOperating System Services
pdProblem Determination
rtnRunTime
sqlSQL Parser
toolsTools
barBackup And Recovery
clientClient
coordCoord Services
dmsData Management Services
ixmIndex Management Services
monMonitoring Services
mthMethods Services
optOptimizer
pmdProcess Model
restRESTful Services
sptScripting
utilUtilities

breakPoints()

断点方法

参数名参数类型默认值描述是否必填
breakPointstring / string array—-于函数处打断点进行跟踪

tids()

线程方法

参数名参数类型默认值描述是否必填
tidint / int array所有线程指定线程

functionNames()

函数方法

参数名参数类型默认值描述是否必填
functionNamestring / string array—-指定函数名

threadTypes()

线程类型方法

参数名参数类型默认值描述是否必填
threadTypestring / string array—-指定线类型

threadType 参数的可选值详见线程类型

Note:

  1. SdbTraceOption 可同时连续指定多个方法,其中模块方法的参数和函数方法的参数是并集关系,线程类型方法的参数和线程方法的参数也是并集关系;

  2. 当同时不指定 components 方法和 functionNames 方法,默认监控所有模块,但是如果指定 functionNames 方法,不指定 components 方法,则监控指定的函数;

  3. 以上各个方法中的参数最多只能指定 10 个参数。

返回值

返回自身,类型为 SdbTraceOption。

错误

常见错误可参考错误码

示例

  • 开启监控程序

    1. > db = new Sdb( "localhost", 50000 )
    2. > var option = new SdbTraceOption().components( "dms", "rtn" ).breakPoints( "_coordCMDEval::execute", "_dmsStorageUnit::insertRecord" ).tids( [ 15923, 35712 ] ).threadTypes( "RestListener", "LogWriter" ).functionNames( "_coordCMDEval::execute", "_dmsStorageUnit::insertRecord" )
    3. > db.traceOn( 1000, option )
  • 以上 SdbTraceOption 各个方法的参数还可以以字符串数组的形式给出

    1. > db = new Sdb( "localhost", 50000 )
    2. > var option = new SdbTraceOption().components( [ "dms", "rtn" ] ).breakPoints( [ "_coordCMDEval::execute", "_dmsStorageUnit::insertRecord" ] ).tids( [ 15923, 35712 ] ).threadTypes( [ "RestListener", "LogWriter" ] ).functionNames( [ "_coordCMDEval::execute", "_dmsStorageUnit::insertRecord" ] )
    3. > db.traceOn( 1000, option )
  • 对于方法中存在多个参数的情况,可以通过多次调用该方法指定参数

    1. > db = new Sdb( "localhost", 50000 )
    2. > var option = new SdbTraceOption().components( [ "dms", "rtn" ] ).components( [ "dps", "cls" ] ).components( "pd" )
    3. > db.traceOn( 1000, option )