我试图通过调用直接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约定,我应该改变。
请您帮忙,任何宝贵的意见。
谢谢!
答案 0 :(得分:0)
我的糟糕,真正的问题是我没有从...得到正确的答复
从v $ diag_info中选择值
在找不到跟踪文件的地方,只有其他一些...
尽管有trc文件,所以Spring Boot / JDBC启用TKProf没有问题。