IBM Optim pureQuery Runtime
O IBM® Optim pureQuery Runtime fornece o Java™ Persistence API (JPA) com uma maneira alternativa para acessar um banco de dados. O pureQuery suporta SQL (Linguagem de Consulta Estruturada) estática. O PureQuery é suportado somente pelos provedores de persistência OpenJPA e WSJPA.
Sobre Esta Tarefa
O JPA nos ambientes Java EE e Java SE fornece suporte opcional para o ambiente de tempo de execução de pureQuery. PureQuery é uma plataforma de acesso a dados Java de alto desempenho que auxilia no gerenciamento de aplicativos que acessam dados. O PureQuery fornece um conjunto alternativo de APIs que podem ser usadas em vez do Java Database Connectivity (JDBC) para acessar os bancos de dados DB2 e Informix.
Para usar este recurso no servidor de aplicativos, você deve instalar o tempo de execução do Data Studio pureQuery versão 1.2 ou mais recente. Se planejar executar o comando bind do DB2 a partir do console administrativo, ou com a ferramenta wsadmin, você deverá ter o pureQuery v1.2 ou superior. Consulte o tópico do centro de informações do IBM Optim pureQuery Runtime para obter informações adicionais sobre como instalar o pureQuery Runtime.
É possível usar o pureQuery dinamicamente. O local do arquivo pdqxml é especificado pela propriedade pdqProperties na origem de dados ou na URL de conexão. Para obter informações adicionais, consulte o tópico Usando pureQuery em Modo Dinâmico.
O PureQuery usa os pacotes do DB2. Esses pacotes consistem de informações sobre uma ou mais instruções SQL e são armazenados no catálogo do DB2. Para criar os pacotes, primeiro o usuário deve executar o comando wsdbgen em um aplicativo JPA. O comando wsdbgen cria um arquivopersistence_unit_name.pdqxml. Este arquivo contém instruções SQL pré-geradas para criar, atualizar, excluir e recuperar as entidades NamedQueries e NamedNativeQueries do JPA. O arquivo persistence_unit_name.pdqxml deve ser limitado com relação ao banco de dados. Os pacotes DB2 associados são gerados a instrução SQL é iniciada estaticamente no tempo de execução. Este arquivo persistence_unit_name.pdqxml deve ser incluído no arquivo Java archive (JAR) do aplicativo.
O servidor de aplicativos oferece suporte para o SQL estático para os beans de entidade do Enterprise JavaBeans (EJB) 2.x e superior com a opção ejbdeploy SQLj. Com a JPA, este recurso é oferecido utilizando pureQuery.
Existem vários benefícios ao usar pureQuery em vez de JDBC e SQLJ. SQL estática oferece maior segurança e controle sobre o acesso a dados pois os aplicativos têm autoridade apenas para executar SQLs conhecidas. A SQL estática oferece melhor utilização de recursos no servidor DB2 pois evita análise e otimização do tempo de execução de instruções SQL.
- db2jcc_license_cisuz.jar
- db2jcc_license_cu.jar
- pdq.jar
- pdqmgmt.jar
- Não há suporte para a propriedade QueryTimeout especificada pela API FetchPlan ou pela cadeia de plug-ins de propriedade parawsjpa.ConnectionFactoryProperties. O valor QueryTimeout será ignorado se especificado.
- Não há suporte para a propriedade QueryTimeout especificada por meio da API FetchPlan. O valor QueryTimeout será ignorado se especificado.
- O processamento de grandes resultados de OpenJPA usa APIs JDBC para cursores com rolagem.
- O JPA configura a propriedade pureQuery, pdq.executionMode, para o valor STATIC.
- Além do arquivo JAR do driver JDBC, a configuração do provedor JDBC deve incluir o arquivo JAR para o ambiente do PureQuery Runtime.
- O OpenJPA fornece suporte para os programas de aplicativos para acessar e alterar programaticamente o FetchPlan no tempo de execução. Alterar o plano de busca pode resultar em um SQL que não foi gerado pelo comando wsdbgen no tempo de construção do aplicativo. Se isto ocorrer, a SQL será executada dinamicamente em vez de usar a SQL estática do pacote do banco de dados.
- Se o usuário alterar as consultas do aplicativo, as propriedades de mapeamento ou de persistência da entidade executarão o comando wsdbgen e farão a ligação novamente. Este processo gera e liga os pacotes do banco de dados atualizados.
- Valores de entrada nas consultas JPA (com consultas SQL EJB e consultas SQL nativas) não podem ser valores NULL, exceto no caso de valores de expressões SET de instruções de atualização. Para procurar por valores NULL em uma cláusula WHERE de SELECT, UPDATE ou DELETE, digite o predicado is null.
Procedimento
- Aprenda como Configurando Provedores JDBC para Usar o pureQuery para Acessar o DB2.
- Aprenda como Configurando Provedores JDBC para Usar pureQuery para Acessar o Informix.
- Aprenda como Configurando provedores JDBC de origem de dados para usarem o pureQuery em um ambiente Java SE.
- Aprenda como Usando pureQuery no modo dinâmico versus estático para DB2 e Informix.