Em alguns casos, pode ser necessário executar um rastreio da Java™ Persistence API (JPA) a partir de um ambiente Java SE.
Sobre Esta Tarefa
O rastreio aperfeiçoado também pode ser usado para coletar informações adicionais de rastreio JPA em um ambiente Java SE. No ambiente do WebSphere Application Server, o servidor de aplicativos cuida do acoplamento do rastreio OpenJPA padrão com a função de rastreio aperfeiçoado para produzir uma saída de rastreio única. Esse processo deve ser feito manualmente em um ambiente Java SE. Aqui, algumas etapas para usar o rastreio aperfeiçoado em um ambiente Java SE:
Procedimento
- Crie um arquivo de propriedades de configuração de log. O arquivo de propriedades de configuração deve usar o formato de arquivo de configuração java.util.logging padrão. O código a seguir é um arquivo de configuração de amostra. As categorias de rastreio definidas na tabela também podem ser usadas no arquivo de configuração. Como padrão para os arquivos de configuração java.util.logging, as categorias de rastreio devem ter
o sufixo .level.
# Sample logger.properties file
# Enable a file handler
handlers = java.util.logging.FileHandler
# Set a trace file pattern - the example writes a file named jpa_jse.log to the current working directory
java.util.logging.FileHandler.pattern = jpa_jse.log
# Configure the basic logging level of the file handler
java.util.logging.FileHandler.level = ALL
# Set the openjp.jdbc.SQL category trace to ALL
openjpa.jdbc.SQL.level = ALL
# Set the enhanced General category trace to FINEST
openjpa.xtrace.General.level = FINEST
# Set the enhanced Kernel category to trace at FINER
openjpa.xtrace.Kernel.level = FINER
Tabela 1. Categorias de Rastreio. Faça backup da configuração do servidor antes de ativar o rastreio avançado.Category |
Níveis de rastreio relevantes |
Description |
JPA |
OFF, ALL, FINER, FINEST |
Inclui rastreio estendido no grupo de rastreio JPA. |
openjpa.* |
OFF, ALL, FINER, FINEST |
Rastreio OpenJPA normal, além do rastreio estendido para todas as categorias em OpenJPA quando o rastreio estendido é ativado. |
openjpa.xtrace.* |
OFF, ALL, FINER, FINEST |
Rastreio estendido para todas as categorias do OpenJPA quando o rastreio estendido estiver ativado. |
openjpa.xtrace.Jdbc |
OFF, ALL, FINER, FINEST |
Rastreio estendido para classes JDBC do OpenJPA quando o rastreio estendido estiver ativado. |
openjpa.xtrace.Lib |
OFF, ALL, FINER, FINEST |
Rastreio estendido para classes de biblioteca do OpenJPA quando o rastreio estendido estiver ativado. |
openjpa.xtrace.Persist |
OFF, ALL, FINER, FINEST |
Rastreio estendido para classes de persistência do OpenJPA quando o rastreio estendido estiver ativado. |
openjpa.xtrace.Kernel |
OFF, ALL, FINER, FINEST |
Rastreio estendido para classes de kernel do OpenJPA quando o rastreio estendido estiver ativado. |
openjpa.xtrace.General |
OFF, ALL, FINER, FINEST |
Rastreio estendido para classes OpenJPA não incluídas nas categorias
JDBC, Lib, Persist ou Kernel quando o rastreio estendido está ativado. |
- Modifique o arquivo persistence.xml para usar criação de log de comuns em vez do criador de logs do OpenJPA padrão. Inclua esta propriedade em sua unidade de persistência:
<property name="openjpa.Log" value="commons"/>
- Inclua o arquivo Java archive (JAR) de criação de log de comuns em seu caminho da classe.
É possível fazer o download do arquivo JAR a partir do website do Apache.
- Inclua o seguinte argumento no campo Java virtual machine (JVM), em que <WAS_install_path> é o caminho completo do diretório de instalação do servidor de aplicativos. Assegure-se de utilizar o caractere separador de caminhos apropriado para o seu sistema operacional. Esse parâmetro deve ser especificado antes do nome da classe ou do arquivo JAR a ser usado.
-javaagent:<WAS_install_path>/optionalLibraries/IBM/wsjpa/wsjpatrace.jar
- Inclua esse argumento adicional na JVM que especifica o caminho para o arquivo
de configuração de criação de log. Essa opção também deve ser especificada antes do nome da classe ou do JAR a ser usado.
-Djava.util.Logging.config.file=Logger.properties
- Execute o aplicativo Java SE. Aqui, um exemplo de chamada do aplicativo Java SE com o rastreio aperfeiçoado ativado:
java
-javaagent:"<WAS_install_path>/optionalLibraries/IBM/wsjpa/wsjpatrace.jar"
-Djava.util.logging.config.file=Logger.properties
my.JPAApplication
Resultados
O rastreio aperfeiçoado agora está funcionando em seu ambiente Java SE.
O que Fazer Depois
Evitar Problemas: Não use o agente de rastreio estendido em
combinação com o agente OpenJPA PCEnhancer em um ambiente Java SE. Se o rastreio avançado for utilizado, o OpenJPA PCEnhancer deverá ser utilizado no momento da compilação. Se os agentes de rastreio otimizador e aprimorado forem usados juntos, os resultados serão imprevisíveis.
gotcha