Definição de Recursos de Origem de Dados nos Aplicativos

Os aplicativos podem definir as origens de dados em anotações ou no descritor de implementação. Esse tópico revisa semelhanças e compatibilidade com as origens de dados do WebSphere Application Server definidas no nível do servidor, do nó, do cluster ou da célula. Recursos opcionais na definição da origem de dados também são discutidos.

Propriedades Padrão para a Definição de Origem de Dados

Tabela 1. Propriedades Padrão para a Definição de Origem de Dados. Use essa tabela para aprender sobre as propriedades padrão para as definições de origem de dados.
Elemento de anotação Elemento do descritor Comentários
nome nome Nome JNDI da origem de dados. O nome deve estar em um dos espaços de nome java:global, java:app, java:module ou java:comp.
className nome de classe O nome completo de classe a partir do driver JDBC que implementa javax.sql.XADataSource, javax.sql.ConnectionPoolDataSource, ou javax.sql.DataSource.
databaseName nome do banco de dados O valor é fornecido para o driver JDBC.
descrição descrição O valor é fornecido para o MBean DataSource.
initialPoolSize tamanho inicial do conjunto O valor da propriedade é ignorado. No WebSphere Application Server, o tamanho inicial do conjunto sempre é 0.
isolationLevel nível de isolamento Equivalente à propriedade customizada da origem de dados do WebSphere Application Server, webSphereDefaultIsolationLevel. Esse é um nível de isolamento de transação padrão para as novas conexões.
loginTimeout tempo limite de login O valor é fornecido para o driver JDBC.
maxIdleTime tempo máximo de inatividade Equivalente à propriedade do conjunto de conexões do WebSphere Application Server, unusedTimeout. Essa proprieadade é ignorada no contêiner do cliente onde o conjunto de conexões não é fornecido.
maxPoolSize tamanho máximo do conjunto Equivalente à propriedade do conjunto de conexões do WebSphere Application Server, maxConnections. Essa proprieadade é ignorada no contêiner do cliente onde o conjunto de conexões não é fornecido.
maxStatements máximo de instruções Define o número máximo de instruções para o conjunto de conexões. No WebSphere Application Server, cada conexão verificada possui seu próprio cache de instrução. Consequentemente, maxStatements é dividido (igualmente por arredondamento) entre o maxPoolSize para o conjunto. Se maxPoolSize for ilimitado, a verificação da instrução será desativada.
minPoolSize tamanho mínimo do conjunto Equivalente à propriedade do conjunto de conexões do WebSphere Application Server, minConnections. Essa proprieadade é ignorada no contêiner do cliente onde o conjunto de conexões não é fornecido.
password password Senha padrão para as solicitações de conexão que não especificam uma senha. Considere usar o alias de autenticação em vez de codificar permanentemente o nome de usuário e a senha no aplicativo.
portNumber número da porta O valor é fornecido para o driver JDBC.
serverName nome do servidor O valor é fornecido para o driver JDBC.
transacional transacional No WebSphere Application Server, a propriedade transactional controla se a conexão está listada nas transações JTA. Quando transactional=false, as conexões não são listadas nas transações JTA, mas ainda é possível executar transações com relação ao banco de dados usando autocommit=true ou connection.commit/rollback com autocommit=false. Equivalente ao contrário da propriedade customizada da origem de dados do WebSphere Application Server, nonTransactionalDataSource.
url url O valor é fornecido para o driver JDBC. Quando a URL é especificada, os valores databaseName, serverName, portNumber são ignorados.
user user Nome do usuário padrão para as solicitações de conexão que não especificam um nome de usuário. Considere usar o alias de autenticação em vez de codificar permanentemente o nome de usuário e a senha no aplicativo.

Propriedades do Fornecedor e Propriedades Customizadas

As propriedades do fornecedor do driver JDBC podem ser incluídas na definição da origem de dados. A maioria das propriedades customizadas do WebSphere Application Server também pode ser incluída na definição da origem de dados.

Com essas anotações, isso é feito por meio do elemento de propriedades, por exemplo,
@DataSourceDefinition
(
  name="java:app/env/myDataSource",
  className="org.apache.derby.jdbc.EmbeddedXADataSource40",
  databaseName="myDB",
  properties=
  {
    // Vendor properties for Derby Embedded JDBC driver:
    "createDatabase=create",
    "connectionAttributes=upgrade=true",

    // Custom properties for WebSphere Application Server:
    "connectionTimeout=60",
    "dataStoreHelperClass=com.ibm.websphere.rsadapter.DerbyDataStoreHelper",
    "validateNewConnection=true",
    "validateNewConnectionRetryCount=5"
  },
  serverName=""
)
O exemplo a seguir ilustra como a definição de origem de dados é incluída no descritor de implementação:
<data-source>
 <name>java:app/env/myDataSource</name>
 <class-name>org.apache.derby.jdbc.EmbeddedXADataSource40</class-name>
 <database-name>myDB</database-name>
 <property><name>createDatabase</name><value>create</value></property>
 <property><name>connectionAttributes</name><value>upgrade=true</value></property>
 <property><name>connectionTimeout</name><value>60</value></property>
 <property><name>dataStoreHelperClass</name><value>com.ibm.websphere.rsadapter.DerbyDataStoreHelper</value></property>
 <property><name>validateNewConnection</name><value>true</value></property>
 <property><name>validateNewConnectionRetryCount</name><value>5</value></property>
 <server-name/>
</data-source>
A seguir há uma lista de propriedades customizadas do WebSphere Application Server que podem ser configuradas dessa maneira:
  • Propriedades do conjunto de conexões:
    • agedTimeout
    • authDataAlias
    • authMechanismPreference
    • connectionTimeout
    • defaultConnectionTypeOverride
    • globalConnectionTypeOverride
    • mappingConfigAlias
    • purgePolicy
    • reapTime
    • stuckThreshold
    • stuckTime
    • stuckTimerTime
    • surgeCreationInterval
    • surgeThreshold
    • testConnection
    • testConnectionInterval
    • XA_RECOVERY_AUTH_ALIAS
  • Propriedades customizadas da origem de dados:
    • beginTranForResultSetScrollingAPIs
    • beginTranForVendorAPIs
    • connectionSharing
    • enableMultithreadedAccessDetection
    • errorDetectionModel
    • freeResourcesOnClose
    • oracleRACXARecoveryDelay (apenas Oracle)
    • preTestSQLString
    • userDefinedErrorMap
    • validateNewConnection
    • validateNewConnectionRetryCount
    • validateNewConnectionRetryInterval
    • validateNewConnectionTimeout

Referências de Recurso

É recomendado para os aplicativos sempre usarem referências de recursos quando acessar as origens de dados, o que facilita para o implementador fazer a substituição.

Compartilhamento de conexões

Por padrão, para a definição de origem de dados, uma solicitação de conexão pode compartilhar uma conexão em uso existente se ela corresponder às configurações solicitadas originalmente para essa conexão (connectionSharing=MatchOriginalRequest). Como alternativa, o compartilhamento de conexão pode ser feito ao corresponder a solicitação da conexão com relação ao estado atual da conexão (connectionSharing=MatchCurrentState).

Ciclo de Vida

O ciclo de vida de uma origem de dados é vinculado ao ciclo de vida dos aplicativos que a definir. Como consequência, poderá atualizar seu aplicativo para alterar a definição da origem de dados sem precisar reiniciar o servidor. Se diversos aplicativos incluírem a mesma definição de origem de dados, por exemplo, ambas as definições da origem de dados possuírem nomes java:global idênticos, conjunto de propriedades configuradas idênticas e valores idênticos para as propriedades, todos os aplicativos deverão ser desinstalados antes de atualizar a definição da origem de dados e reinstalar os aplicativos.

Conflitos Entre as Definições de Origens de Dados

Os módulos de aplicativos e os componentes devem cuidar para não definir as origens de dados com o mesmo java:global de outro aplicativo porque esse processo impossibilita os aplicativos de coexistirem. Em um aplicativo, os componentes e componentes devem cuidar para não definir as origens de dados com o mesmo java:app de outro módulo ou componente. Esse conflito faz com que a instalação do aplicativo falhe. Em um módulo, os componentes devem cuidar para não definir as origens de dados com o mesmo java:module de outros componentes. Esse conflito faz com que a instalação do aplicativo falhe. Em um módulo da Web, os componentes devem cuidar para não definir as origens de dados com o mesmo java:comp de outros componentes. Esse conflito faz com que a instalação do aplicativo falhe.


Ícone que indica o tipo de tópico Tópico de Conceito



Í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=cdat_datres
Nome do arquivo: cdat_datres.html