본문으로 건너뛰기

DB, SQL

데이터베이스 및 SQL 성능 데이터 수집을 위한 자바(Java) 에이전트의 다양한 옵션을 안내합니다. DBCP, Hikari, Tomcat 등 다양한 DB 연결 풀(Connection Pool) 정보 추적 및 SQL 실행 세부 사항을 기록할 수 있습니다. 또한, SQL 파라미터 정보 기록, DB 연결 누수 추적 등 성능 최적화에 필수적인 정보 수집 옵션을 제공합니다.

  • dbcp_pool_enabled Boolean

    기본값 true

    JMX를 사용하지 않고 DBCP의 DB Connection 정보를 추적하기 위해 사용합니다.

  • hikari_pool_enabled Boolean

    기본값 false

    JMX를 사용하지 않고 hikari pool의 DB Connection 정보를 추적하기 위해 사용합니다.

  • tomcat_ds_enabled Boolean

    기본값 false

    JMX를 사용해 Tomcat DB Connection Pool 정보를 추적하는 기능을 활성화합니다.

  • tomcat_pool_enabled Boolean

    기본값 true

    JMX를 사용하지 않고 Tomcat DB Connection Pool 정보를 추적하는 기능을 활성화합니다.

  • weblogic_ds_enabled Boolean

    기본값 false

    JMX를 사용해 Weblogic DB Connection Pool 정보를 추적하는 기능을 활성화합니다.

  • weblogic_pool_enabled Boolean

    기본값 true

    JMX를 사용하지 않고 Weblogic DB Connection Pool 정보를 추적하는 기능을 활성화합니다.

  • jeus_pool_enabled Boolean

    기본값 true

    JMX를 사용하지 않고 JEUS DB Connection Pool 정보를 추적하는 기능을 활성화합니다.

  • profile_connection_open_enabled Boolean

    기본값 true

    트레이스 내역에 DBConnection 오픈 정보를 기록합니다.

  • trace_dbc_close_enabled Boolean Java Agent v2.2.3 or later

    기본값 false

    profile_connection_open_enabled의 값이 true인 경우에만 동작합니다. 트레이스 내역에 DBConnection 클로즈 정보를 기록합니다.

    노트

    Java 에이전트 2.2.3 버전 이전에서는 profile_dbc_close 옵션명을 사용하세요.

  • profile_sql_param_enabled Boolean

    기본값 false

    트레이스 내역에 SQL 파라미터 정보를 기록할 때 사용합니다. 파라미터는 별도 보안 키를 입력해야 조회할 수 있습니다.

    노트
    • Java 에이전트 2.2.2 버전 이전: 보안 키는 WAS 서버 ${WHATAP_AGENT_HOME}/paramkey.txt 파일 내에 6자리로 작성합니다. paramkey.txt 파일이 존재하지 않는 경우 랜덤 값으로 자동 생성합니다.

    • Java 에이전트 2.2.2 버전 이후: 보안 키는 WAS 서버 ${WHATAP_AGENT_HOME}/security.conf 파일 내에 paramkey 키값을 확인하세요. security.conf 파일이 존재하지 않을 경우 paramkey 키값을 WHATAP으로 자동 생성합니다.

    • 보안키 설정 파일에 대한 자세한 내용은 다음 문서를 참조하세요.

  • profile_sql_resource_enabled Boolean

    기본값 false

    트레이스에서 SQL을 수집할 때 해당 스텝에서 사용한 CPU와 메모리 사용량을 추적합니다.

  • profile_update_count Boolean

    기본값 false

    executeUpdate() 메소드를 통해 SQL UPDATE 문을 수행한 경우 UPDATE 건수를 수집합니다.

  • custom_pool_classes String

    pre-define되지 않는 별도의 Connection Pool을 사용하는 경우 해당 클래스 명을 설정합니다.

  • ds_update_interval MiliSeconds

    기본값 5000

    DB Connection 정보 Count 간격을 설정합니다.

  • profile_position_sql Boolean

    기본값 false

    SQL을 수행하는 시점의 StackTrace를 기록합니다.

  • profile_sql_param_length Int

    기본값 40

    SQL 파라미터의 길이를 설정합니다.

    노트

    최대값은 128이며 그 이상의 값을 입력하더라도 파라미터는 128까지 저장합니다.

  • trace_dbc_leak_enabled Boolean

    기본값 false

    DBConnection Leak을 추적하는 기능을 활성화합니다.

    주의

    Connection Wrapper를 사용해 Leak을 추적하기에 운영 서비스에 영향을 미칠 수 있으므로 반드시 테스트 후 적용하세요.

  • trace_dbc_leak_fullstack_enabled Boolean

    기본값 false

    DBConnection Leak이 감지되는 경우 해당 시점 StackTrace를 수집합니다.

    주의

    피크 타임(Peak Time)에는 가급적 적용하지 마세요. 옵션을 적용하면 CPU 사용량이 다소 증가할 수 있습니다. 문제 해결 용도로만 한시적으로 적용할 것을 권고합니다.

  • trace_sql_normalize_enabled Boolean

    기본값 true

    SQL 문에서 리터럴 부분을 추출해 SQL 문을 정규화하는 기능을 활성화합니다.

  • profile_error_jdbc_fetch_max Int

    기본값 10000

    SQL Fetch Count(ResultSet.next() 호출 건 수)가 설정한 값을 초과하면 TOO_MANY_RECORDS 에러로 처리합니다. 0으로 설정하면 에러 처리하지 않습니다.

  • profile_error_sql_time_max Int

    기본값 30000

    SQL 수행 시간이 설정한 값을 초과하면 SLOW_SQL 에러로 처리합니다. 0으로 설정하는 경우 에러 처리를 하지 않습니다.

  • hook_connection_open_patterns String

    DB Connection Open 시 호출하는 메소드를 등록합니다. 미리 설정하지 않은 Connection Pool의 getConnection을 등록하는 것이 일반적입니다.

    Example
    hook_connection_open_patterns=mypool.ConPool.getConnection
  • hook_jdbc_con_classes String

    미등록한 JDBC Connection 클래스를 지정합니다.

    Example
    hook_jdbc_con_classes=mypool.ConPool
  • hook_jdbc_pstmt_classes String

    미등록한 jdbc PreparedStatement 클래스를 설정합니다. 생성자 파라미터에 SQL 문자열이 전달되는 구조여야 한다는 것을 주의하세요.

    Example
    hook_jdbc_pstmt_classes=org.apache.derby.impl.jdbc.EmbedPreparedStatement
  • hook_jdbc_cstmt_classes String

    미등록한 jdbc CallableStatement 클래스를 설정합니다.

    Example
    hook_jdbc_cstmt_classes=org.apache.derby.impl.jdbc.EmbedCallableStatement
  • hook_jdbc_stmt_classes String

    미등록한 JDBC Statement 클래스를 설정합니다.

    Example
    hook_jdbc_stmt_classes=org.apache.derby.impl.jdbc.EmbedStatement
  • hook_jdbc_rs_classes String

    미등록한 JDBC ResultSet 클래스를 설정합니다.

    Example
    hook_jdbc_rs_classes=org.apache.derby.impl.jdbc.EmbedResultSet
  • hook_jdbc_wrapping_driver_patterns String

    DB2 드라이버처럼 난독 처리한 JDBC 드라이버는 hook_jdbc_xxx 옵션으로 직접 BCI가 어렵습니다. 이런 경우 Wrapper 방식으로 SQL를 추적할 수 있습니다. 이때 Driver.connect를 설정해 추적합니다.

  • debug_dbc_stack_enabled Boolean

    기본값 false

    DB Connection 시점의 StackTrace를 트레이스에 저장합니다. 애플리케이션에서 사용하는 Connection Pool 정보를 얻기 위해 사용합니다.

  • ignore_sql_hash_set String Java Agent v2.2.4 or later

    해당 옵션에 입력한 SQL 해시값과 일치하는 SQL 문은 무시하도록 설정할 수 있습니다.