Я пытаюсь запустить трассировку оракула, вызывая прямые вызовы JDBC. Я получаю соединение с Spring (boot/jdbc). Затем я запускаю команды TKProf с помощью операторов... выполняю запрос и печатаю в журнал.
3 оператора ниже возвращают ложный. Если я использую те же операторы через консоль 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, которое я должен изменить .
Не могли бы вы помочь, любой вклад ценен.
Спасибо!
Следующим шагом будет избавление от прокси-соединения и вызов оператора ALTER с реальным соединением с Oracle. См. получить таргетконнектион
Спасибо вам обоим... Я попробую getTargetConneciton и отпишусь.
Тоже не работал. пых.





Моя беда, настоящая проблема заключалась в том, что я не получил должного ответа от...
SELECT value FROM v$diag_info
Где я не мог найти файл трассировки, а только некоторые другие...
Тем не менее файлы trc на месте, так что нет проблем с Spring Boot/JDBC для включения TKProf.
Ложь — это правильно; из документов возвращает "true, если первый результат является объектом ResultSet; false, если это количество обновлений или результатов нет". Нет результатов от
alter. Действительно ли выполняется запрос и уверены ли вы, что ищете файл трассировки в правильном месте?