Existem várias maneiras de obter saída de rastreamento.
Entretanto, a maneira mais fácil de obter saída de rastreamento é utilizando o
atributo traceFile na URL no ij.
O exemplo a seguir mostra o envio de todo o rastreamento para o arquivo
trace.out, a partir de uma sessão ij.
ij>connect 'jdbc:derby://localhost:1527/meubanco;
create=true;traceFile=trace.out;user=user1;password=secret4me';
Implementação do rastreamento do ClientDataSource
Para coletar dados de rastreamento ao obter conexões usando
ClientDataSource, pode ser empregado um dos três métodos a seguir:
- Utilizar o método setLogWriter(java.io.PrintWriter) de
ClientDataSource, e definir PrintWriter com um valor não nulo.
- Utilizar o método setTraceFile(String filename) de ClientDataSource.
- Utilizar o método setTraceDirectory(String dirname) de
ClientDataSource para rastrear cada fluxo de conexão em seu próprio arquivo,
em programas que possuem várias conexões.
Implementação do rastreamento do DriverManager
Quando se obtém conexões utilizando o DriverManager, pode
ser empregada uma das duas opções a seguir para habilitar a coleta de
informações de rastreamento:
- Utilizar o método setLogWriter(java.io.PrintWriter) de
DriverManager, e definir PrintWriter como um
valor não nulo.
- Utilizar o atributo da URL traceFile ou
traceDirectory para definir uma destas propriedades, antes de
criar a conexão com o método DriverManager.getConnection().
Alteração do nível de rastreamento padrão
O nível de rastreamento padrão é ClientDataSource.TRACE_ALL.
O nível de rastreamento pode ser escolhido chamando o método
setTraceLevel(int level), ou definindo o atributo da URL
traceLevel:
String url = "jdbc:derby://meuhospedeiro.meudominio.com:1528/meubanco" +
";traceFile=/u/user1/trace.out" +
";traceLevel=" +
org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS;
DriverManager.getConnection(url,"user1","secret4me");
Níveis de rastreamento disponíveis e seus valores
Nível de rastreamento
Valor
org.apache.derby.jdbc.ClientDataSource.TRACE_NONE
0x0
org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTION_CALLS
0x1
org.apache.derby.jdbc.ClientDataSource.TRACE_STATEMENT_CALLS
0x2
org.apache.derby.jdbc.ClientDataSource.TRACE_RESULT_SET_CALLS
0x4
org.apache.derby.jdbc.ClientDataSource.TRACE _DRIVER_CONFIGURATION
0x10
org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS
0x20
org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS
0x40
org.apache.derby.jdbc.ClientDataSource.TRACE _RESULT_SET_META_DATA
0x80
org.apache.derby.jdbc.ClientDataSource.TRACE _PARAMETER_META_DATA
0x100
org.apache.derby.jdbc.ClientDataSource.TRACE_DIAGNOSTICS
0x200
org.apache.derby.jdbc.ClientDataSource.TRACE_XA_CALLS
0x800
org.apache.derby.jdbc.ClientDataSource.TRACE_ALL
0xFFFFFFFF;
Para especificar mais de um nível de rastreamento, deve ser utilizada uma das
seguintes técnicas:
- Utilizar operadores OR bit-a-bit ( | ) entre dois ou mais valores de
rastreamento.
Por exemplo, para rastrear os fluxos do protocolo e chamadas de conexão deve
ser especificado o seguinte valor para traceLevel:
TRACE_PROTOCOL_FLOWS | TRACE_CONNECTION_CALLS
- Utilizar o operador de complemento bit-a-bit ( ~ ) com o valor de
rastreamento para especificar todos, exceto um determinado rastreamento.
Por exemplo, para rastrear tudo, exceto os fluxos do protocolo, deve ser
especificado o seguinte valor para traceLevel:
~TRACE_PROTOCOL_FLOWS