Spring Boot / JDBC上的TKProf(Oracle事件10046)

时间:2019-01-21 17:33:37

标签: oracle spring-boot jdbc oracle10g spring-jdbc

我试图通过调用直接JDBC调用来开始oracle跟踪。我正在从Spring(boot / jdbc)获得连接。然后,我通过语句运行TKProf命令...执行查询并打印到日志。

下面的3条语句返回 false 。如果我通过Intellij的控制台使用相同的语句,则会得到预期的结果,并且* .trc文件已正确生成。

try (final Connection connection = DataSourceUtils.getConnection(dataSource)) {
        log.debug(query);
        final Long maxCount = findMaxCount();
        boolean traceIdSet = connection.createStatement().execute("ALTER SESSION SET TRACEFILE_IDENTIFIER = '" + traceId + "'");
        boolean traceEnabled = connection.createStatement().execute("ALTER SESSION SET EVENTS '10046 trace name context forever, level 8'");
        final PreparedStatement stmt = connection.prepareStatement(query);
        map(consumer, stmt.executeQuery(query));
        boolean traceIdOff = connection.createStatement().execute("ALTER SESSION SET EVENTS '10046 trace name context off'");
        log.debug("|" + traceIdSet + "|" + traceEnabled + "|" + traceIdOff + "| ____________________ DONE __________________________");
    } catch (SQLException e) {
        log.error("Error Performing the Query", e);
    }

它必须在我的配置中...我的意思是,Java瘦驱动程序可以做到这一点,因为我可以在IDE上实现它...所以我必须缺少其他东西,也许是Spring Boot约定,我应该改变。

请您帮忙,任何宝贵的意见。

谢谢!

1 个答案:

答案 0 :(得分:0)

我的糟糕,真正的问题是我没有从...得到正确的答复

  

从v $ diag_info中选择值

在找不到跟踪文件的地方,只有其他一些...

尽管有trc文件,所以Spring Boot / JDBC启用TKProf没有问题。