Em nossa loja, temos um ambiente não homogêneo e fazemos Java em caixas diferentes - principalmente Mac OSX, eu no Linux e uma caixa do Windows. Quando se trata de depurar consultas JPQL e seu resultado SQL, é necessário ler SQL simples . Eu encontrei uma possibilidade ao usar o _general_log_ no msql e deixar o servidor fazer o log de consultas. Como sou um desenvolvedor preguiçoso, pensei em uma abordagem mais rápida para obter resultados diretos .
Na minha caixa do Linux, simplesmente strace -p $CATALINAsPID -f -q - s 9999 - e sendto
e deixo minha consulta executar. sendto
é a chamada do sistema que contém o SQL simples .
Eu queria fazer o mesmo para o Mac OSX e encontrei dtruss
(um fassade para o dtrace ?), O que faz coisas semelhantes strace
. Então, tentei reduzi-lo para sendto
(analógico para Linux) - mas sem sucesso.
Como o dtruss funciona, respectivamente: como faço para rastrear o SQL simples ?