Seguimiento de la conexión del cliente SAP HANA

Los archivos de seguimiento pueden ayudar al soporte de SAP a diagnosticar comportamientos inesperados.

El seguimiento se puede configurar mediante un ejecutable incluido con la instalación del cliente SAP HANA. SQLDBCuso de interfaz hdbsqldbc_cons, excepto ODBC, que usa hdbodbc_cons. Para JDBC, usar ngdbc.jar.

Los ajustes de la pista también se pueden configurar utilizando variables ambientales.


Paso 1: habilite el seguimiento

  1. Ingrese el siguiente comando para ver la configuración de seguimiento actual:

    hdbsqldbc_cons SHOW ALL
    

    hdbsqldbc_cons las utilidades se pueden encontrar en el sap/hdbclient carpeta.

  2. Para especificar la ubicación del archivo para el archivo de seguimiento y habilitar el seguimiento de instrucciones SQL, ingrese los siguientes comandos:

    hdbsqldbc_cons TRACE SQL ON LEVEL DEBUG
    mkdir c:temptraces
    hdbsqldbc_cons TRACE FILENAME c:temptracesSQLDBC-%p.txt
    
    hdbsqldbc_cons TRACE SQL ON LEVEL DEBUG
    mkdir /tmp/traces
    hdbsqldbc_cons TRACE FILENAME /tmp/traces/SQLDBC-%p.txt
    

    El ID de proceso de la aplicación de seguimiento será reemplazado por% p. La inclusión de% pa en el nombre del archivo garantiza que cada proceso pueda escribir su propio archivo de seguimiento.

    Categorías de seguimiento:

    • SQL
    • DEPURAR
    • PAQUETE
    • DISTRIBUCIÓN

    Niveles de seguimiento:

    • DEPURAR
    • INFO
    • ADVERTENCIA
    • ERROR
    • FATAL

    Para más información, ver Opciones de seguimiento y seguimiento de SQLDBC.

  3. Ejecute el siguiente comando para conectarse a HDBSQL y consultar sobre el estado. Dado que el seguimiento está habilitado, se genera un archivo de seguimiento y se puede utilizar para identificar qué sentencias SQL se llaman s.

    hdbsql -U User1UserKey "s"
    
  4. Busque y abra el archivo de seguimiento generado. Recuerde reemplazar #### para que coincida con el nombre del archivo de pista que desea abrir.

    cd c:temptraces
    dir SQLDBC*.txt /od
    notepad SQLDBC-####.txt
    
    cd /tmp/traces
    ls -lt
    pico SQLDBC-####.txt
    

    Reemplazar ID de proceso

    Tenga en cuenta que la configuración de seguimiento se muestra en la parte superior del archivo.

    libSQLDBCHDB 2.7.17.1607722875
    SYSTEM: Microsoft Windows / X64
    BUILD AT: 2020-12-21 18:56:04
    BRANCH: unknown
    APPLICATION: C:SAPhdbclienthdbsql.exe
    HOST: W-R90XC65K
    OS USER: dan
    CURRENT DIRECTORY: C:UsersdanHANAClientsTutorial
    TRACE FILE NAME: c:temptracesSQLDBC-35724.txt
    PROCESS ID: 35724
    TRACE FILE WRAP COUNT: 0
    
    ---
    Enabled Traces:
    
    SQL Trace: Level DEBUG
    Distribution Trace: Level DEBUG
    

    Si la configuración de seguimiento cambia mientras el seguimiento está habilitado, la sección Pistas habilitadas volverá a aparecer en el archivo de seguimiento.

    Si tiene problemas con el seguimiento de SQLDBC, consulte Solución de problemas de seguimiento de SQLDBC.

  5. Busque en el archivo de seguimiento y observe las sentencias SQL ejecutadas.

    ::EXECUTE WITH COMMIT SQLCURS_1 2020-12-28 07:11:09.717000 [0x000000000319c260]
    SQL COMMAND : SELECT VERSION FROM SYS.M_DATABASE
    ...
    ::EXECUTE WITH COMMIT SQLCURS_1 2020-12-28 07:11:09.729000 [0x000000000319c260]
    SQL COMMAND : SELECT B.HOST || ':' || SQL_PORT FROM PUBLIC.M_CONNECTIONS A JOIN SYS.M_SERVICES B   ON A.HOST = B.HOST and A.port = B.port   WHERE OWN = 'TRUE'
    
  6. Para desactivar el seguimiento de cada categoría, ejecute el siguiente comando:

    hdbsqldbc_cons TRACE OFF
    

Hecho

Inicie sesión para responder la pregunta

Paso 2: Configuración de seguimiento adicional

Aquí hay algunas opciones de seguimiento adicionales.

  1. El ajuste FLUSH, cuando se enciende, puede reducir la actividad de E / S. Si está investigando un accidente, debe estar encendido para asegurarse de que se registre toda la información de seguimiento.

    hdbsqldbc_cons TRACE FLUSH ON
    
  2. En los casos en que hdbsqldbc_cons no es accesible, tal vez porque se instaló un controlador directamente usando npm o pip, la configuración de seguimiento se puede establecer usando variables ambientales.

    set HDB_SQLDBC_TRACEFILE=c:temptracesSQLDBC-%p.txt
    set HDB_SQLDBC_TRACEOPTS=SQL=DEBUG,FLUSH
    
    export HDB_SQLDBC_TRACEFILE=/tmp/traces/SQLDBC-%p.txt
    export HDB_SQLDBC_TRACEOPTS=SQL=DEBUG,FLUSH
    

    La configuración de seguimiento en las variables ambientales tiene prioridad sobre las utilizadas hdbsqldbc_cons.

    Los valores cambiantes del entorno se pueden ver y eliminar con los siguientes comandos. Los primeros y últimos comandos muestran dónde se establece la variable de entorno. El orden intermedio elimina el valor de la variable de entorno.

    set HDB_SQLDBC_TRACEFILE
    set HDB_SQLDBC_TRACEFILE=
    set HDB_SQLDBC_TRACEFILE
    
    set HDB_SQLDBC_TRACEOPTS
    set HDB_SQLDBC_TRACEOPTS=
    set HDB_SQLDBC_TRACEOPTS
    
    printenv | grep HDB_SQLDBC_TRACE
    unset HDB_SQLDBC_TRACEFILE
    unset HDB_SQLDBC_TRACEOPTS
    printenv | grep HDB_SQLDBC_TRACE
    

    Valores variables ambientales

  3. A partir de la versión 2.7, la información de seguimiento se puede dirigir a stdout o stderr. Aquí están algunos ejemplos.

    hdbsql -U User1UserKey -Z traceFile=stdout -Z traceOptions=sql=warning "SELECT * FROM HOTEL.CUSTOMER"
    
    set HDB_SQLDBC_TRACEOPTS=SQL=WARN
    set HDB_SQLDBC_TRACEFILE=stdout
    hdbsql -U User1UserKey "SELECT * FROM HOTEL.CUSTOMER"
    set HDB_SQLDBC_TRACEOPTS=
    set HDB_SQLDBC_TRACEFILE=
    

Hecho

Inicie sesión para responder la pregunta

Paso 3: rastrear la conexión JDBC

Se debe instalar Java para completar los siguientes pasos. Para comprobar si está instalado, ejecute los siguientes comandos:

java -version
javac -version
  1. Para mostrar la configuración de seguimiento de JDBC actual, ejecute el siguiente comando:

    java -jar c:saphdbclientngdbc.jar SHOW
    

    Alternativamente, la configuración de seguimiento se puede ver y configurar mediante una GUI.

    java -jar c:saphdbclientngdbc.jar
    

    GUI del controlador JDBC

  2. Active el seguimiento de las declaraciones SQL y use la GUI o los comandos siguientes:

    java -jar c:saphdbclientngdbc.jar TRACE ON
    java -jar c:saphdbclientngdbc.jar TRACE FILENAME c:temptracesjdbctrace
    java -jar c:saphdbclientngdbc.jar TRACE API ON
    

    Las diversas palabras clave de la opción de línea de comando se pueden encontrar en Opciones de seguimiento y seguimiento de JDBC.

  3. Complete una consulta que generará un archivo de seguimiento.

    java -jar c:saphdbclientngdbc.jar -k User1UserKey -o encrypt=True -o validatecertificate=false -c "SELECT * FROM HOTEL.CUSTOMER"
    
  4. Examine el archivo de la pista.

    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><PRE><PLAINTEXT>
    Java version:   11
    ClassLoader:    jdk.internal.loader.ClassLoaders$AppClassLoader@30946e09
    Process ID:     7984
    Driver version: package com.sap.db.jdbc, Java Platform API Specification, version 1.8, SAP HANA JDBC Driver, SAP SE, 2.7.9-e7d7d91fad7f2973ba232a4bff888b86d102c42b
    
    Trace configuration:
      Levels:                                       API
      Show plain-text client-side encrypted values: Disabled
      Show timestamps:                              Disabled
      Show elapsed times:                           Disabled
      Trace file size:                              Unlimited
      Stop on error:                                Disabled
    
    ---- Thread 1060b431 main
    com.sap.db.jdbc.Driver@2ac273d3.connect("jdbc:sap://localhost:30015", {encrypt=True, key=***, validatecertificate=false})
    => com.sap.db.jdbc.HanaConnectionClean@78a2da20[ID:203274]
    com.sap.db.jdbc.HanaConnectionClean@78a2da20[ID:203274].createStatement()
    => com.sap.db.jdbc.HanaStatement@47d9a273
    com.sap.db.jdbc.HanaStatement@47d9a273.execute("SELECT * FROM HOTEL.CUSTOMER")
    
  5. Finalmente, la información de seguimiento se puede enviar a stdout o stderr Como se muestra abajo.

    java -jar c:saphdbclientngdbc.jar -k User1UserKey -o traceFile=stdout -o traceOptions=CONNECTIONS -c "SELECT * FROM HOTEL.CUSTOMER"
    

¡Felicitaciones, ahora ha configurado el seguimiento con las interfaces del cliente SAP HANA!


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *