Suporte de Retenção de Cursor do Aplicativo JDBC

O recurso de capacidade de suspensão do cursor pode reduzir a sobrecarga da interação JDBC com seu banco de dados relacional, ajudando, assim, a aumentar o desempenho do aplicativo.

Ativando a retenção do cursor, você mantém um conjunto de resultados disponível além dos limites da transação para ser utilizado por várias chamadas JDBC. A configuração de retenção aciona um cursor do banco de dados para manter as linhas recentemente atualizadas ativas fora da consolidação da transação que gerou os novos valores ou o conjunto de resultados. Por conseguinte, o cursor disponibiliza o conjunto de resultados para ser utilizado em uma transação subsequente.

Configurando a Retenção do Cursor

Utilize uma das técnicas a seguir para configurar a retenção do cursor. Para obter mais detalhes, consulte a especificação do JDBC 3.0, disponível no website do Oracle em http://www.oracle.com/technetwork/java/index.html.
  • Especifique o parâmetro ResultSet.HOLD_CURSORS_OVER_COMMIT ao criar ou preparar uma instrução utilizando os métodos createStatement, prepareStatement ou prepareCall.
  • Chame o método setHoldability no objeto Connection. O valor de retenção do cursor configurado com esse método torna-se o padrão. Se você especificar a retenção do cursor no objeto Statement, esse valor substituirá o valor especificado na conexão.

    Não é possível especificar a retenção do cursor em uma conexão que pode ser compartilhada, depois que um segundo identificador faz referência a essa conexão. A chamada do método de retenção neste ponto gera uma exceção. Se você desejar configurar a retenção do cursor em uma conexão que pode ser compartilhada, chame o método antes da conexão ser registrada. Caso contrário, uma conexão que pode ser compartilhada manterá o mesmo valor de retenção que foi aplicado no registro anterior.

  • Verifique a documentação do banco de dados para saber se o produto suporta a retenção do cursor como uma propriedade de origem de dados. O DB2, por exemplo, responde ao acionador da capacidade de retenção se você defini-lo como uma propriedade customizada da origem de dados. Consulte o tópico Configurações de Propriedade Customizada para obter mais detalhes.

O Impacto de Comportamentos de Conexão e de Transação na Retenção do Cursor

Definir a retenção do cursor no WebSphere Application Server resulta no seguinte comportamento para diferentes eventos de transação:
  • Quando uma conexão é fechada, todas as instruções e os conjuntos de resultados são fechados mesmo se você tiver configurado a retenção do cursor.
  • Quando uma transação é recuperada, todos os conjuntos de resultados são fechados mesmo se você tiver configurado a retenção do cursor.
  • Quando uma transação local é confirmada, as conexões que podem ser compartilhadas e as que não podem ser compartilhadas podem ter um conjunto de resultados aberto além de um limite da transação.
  • Quando uma transação global é confirmada, as conexões que não podem ser compartilhadas podem ter um conjunto de resultados aberto além de um limite da transação. Para conexões que podem ser compartilhadas, as instruções e os conjuntos de resultados serão fechados mesmo se você tiver configurado a retenção do cursor; o valor de retenção não causa impacto em conexões que podem ser compartilhadas, que participam de transações globais.
  • Quando um escopo de transação local termina, no nível de método ou no nível de sessão da atividade, todas as instruções e os conjuntos de resultados para as conexões que podem ser compartilhadas são fechados. As instruções e os conjuntos de resultados para conexões que não podem ser compartilhadas permanecerm abertos até que o método de fechamento seja fechado na conexão.
Nota: Para uma transação global com uma conexão que não pode ser compartilhada, o banco de dados backend tem a responsabilidade de suportar a retenção do cursor.

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_cursorhold
Nome do arquivo: rdat_cursorhold.html