HCL Commerce Version 9.1.8.0 or later

Paramètre JDBC_MONITOR_ENABLED

JDBC Monitor (Java Database Connectivity) est un outil de débogage qui vous permet d'examiner les SQL exécutés dans n'importe quelle application à des fins de performances et d'identification et de résolution des problèmes. Ce document fournit les étapes d'installation de JDBC Monitor.

About this task

L'installation du paramètre JDBC Monitor Enabled implique deux étapes clés :
  • Activez l'agent Java.
  • Activez le niveau de trace approprié pour le démarrage de la journalisation.

Procedure

  1. Activez l'agent Java.
    Note: L'agent Java peut également être activé dans la charte Helm.
    • Ajoutez la variable d'environnement JDBC_MONITOR_ENABLED au déploiement.
      - env:
      name: JDBC_MONITOR_ENABLED
      value: "true"
    • Ou définissez l'entrée dans Vault :
      ${VAULT_URL}/${TENANT}/${ENVIRONMENT}/${ENVTYPE}/jdbcMonitorEnable/ts-app
      value: true
  2. Utilisez l'enregistreur pour activer JDBC Monitor.
    • JDBC Monitor est contrôlé avec un enregistreur :
      com.hcl.commerce.monitor.jdbc.JDBCMonitor=level
      • fine : Texte de la requête et durée d'exécution
      • finer : fine + valeurs de marqueur de paramètre
      • finest : finer + pile Java
    • Pour vous connecter au démarrage, utilisez la variable d'environnement TRACE_SPEC :
      - env:
      name: TRACE_SPEC
      value: com.hcl.commerce.monitor.jdbc.JDBCMonitor=fine
    • Ou l'entrée de Vault correspondante :
      ${VAULT_URL}/${TENANT}/${ENVIRONMENT}/${ENVTYPE}/traceSpecification/ts-app
    • Dans l'environnement d'exécution, la commande run-engine set-dynamic-trace-specification peut être utilisée :
      run set-dynamic-trace-specification com.hcl.commerce.monitor.jdbc.JDBCMonitor=fine
      << reproduce the issue >>
      run set-dynamic-trace-specification *=info

Example

Exemples d'entrées de journal :
  • Précis
    [7/8/21 16:06:13:860 GMT] 000000eb JDBCMonitor 1 com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement executeQuery "WSJdbcPreparedStatement executeQuery":
    { "durationMs":0.77,"query":"SELECT T1.ORDIADJUST_ID, T1.ORDADJUST_ID, T1.ORDERITEMS_ID, T1.AMOUNT, T1.OPTCOUNTER FROM ORDIADJUST T1 WHERE (T1.ORDERITEMS_ID = ?)"}
  • Plus précis
    [7/8/21 16:07:21:488 GMT] 000000eb JDBCMonitor 2 com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement executeQuery "WSJdbcPreparedStatement executeQuery":{ "durationMs":0.63,"query":"select NAME,VALUE,TYPE from ORDITEMEXTATTR where ORDERITEMS_ID=? ","parameters":
    {"1":"15007"}
  • Le plus précis
    [7/8/21 16:09:00:360 GMT] 00000103 JDBCMonitor 3 com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement executeQuery "WSJdbcPreparedStatement executeQuery":{ "durationMs":1.18,"query":"select PX_RWDOPTION_ID, PX_PROMOTION_ID,ORDERS_ID, RWDCHOICE, RWDSPEC, OPTCOUNTER from PX_RWDOPTION where ORDERS_ID=? ORDER BY PX_RWDOPTION_ID","parameters":"
    {"1":"4023252"} ","stack":"["java.lang.Thread.getStackTrace(Thread.java:1164)","com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:778)","com.ibm.commerce.base.helpers.BaseJDBCHelper.executeQuery(BaseJDBCHelper.java:408)..."