Definición de recurso de origen de datos en aplicaciones

Las aplicaciones pueden definir orígenes de datos en anotaciones o en el descriptor de despliegue. En este tema se revisan las similitudes y la compatibilidad con los orígenes de datos de WebSphere Application Server definidos en el nivel de servidor, nodo, clúster o célula. También se describen características opcionales de la definición de un origen de datos.

Propiedades estándar de la definición de un origen de datos

Tabla 1. Propiedades estándar de la definición de un origen de datos . Utilice esta tabla para obtener más información sobre las propiedades estándar de las definiciones de orígenes de datos
Elemento de la anotación Elemento del descriptor Comentarios
nombre nombre Nombre JNDI del origen de datos. El nombre debe estar en uno de los espacios de nombres java:global, java:app, java:module o java:comp.
className class-name Nombre de clase plenamente cualificado del controlador JDBC que implementa javax.sql.XADataSource, javax.sql.ConnectionPoolDataSource o javax.sql.DataSource.
databaseName database-name El valor se proporciona al controlador JDBC.
descripción descripción El valor se proporciona al MBean del origen de datos.
initialPoolSize initial-pool-size El valor de la propiedad se ignora. En WebSphere Application Server, el tamaño de la agrupación inicial es siempre 0.
isolationLevel isolation-level Equivalente a la propiedad personalizada de origen de datos de WebSphere Application Server webSphereDefaultIsolationLevel. Es el nivel de aislamiento de transacción predeterminado para nuevas conexiones.
loginTimeout login-timeout El valor se proporciona al controlador JDBC.
maxIdleTime max-idle-time Equivalente a la propiedad de agrupación de conexiones de WebSphere Application Server, unusedTimeout. Esta propieddad se ignora en el contenedor de cliente donde no se proporciona ninguna agrupación de conexiones.
maxPoolSize max-pool-size Equivalente a la propiedad de agrupación de conexiones de WebSphere Application Server maxConnections. Esta propieddad se ignora en el contenedor de cliente donde no se proporciona ninguna agrupación de conexiones.
maxStatements max-statements Define el número máximo de sentencias para la agrupación de conexiones. En WebSphere Application Server, cada conexión agrupada tiene su propia memoria caché de sentencias. Por lo tanto, maxStatements se divide (por igual, redondeando hacia abajo) entre el maxPoolSize de la agrupación. Si maxPoolSize es ilimitado, la agrupación de sentencias está inhabilitada.
minPoolSize min-pool-size Equivalente a la propiedad de agrupación de conexiones de WebSphere Application Server minConnections. Esta propieddad se ignora en el contenedor de cliente donde no se proporciona ninguna agrupación de conexiones.
password password Contraseña predeterminada de las solicitudes de conexión que no especifican una contraseña. Considere utilizar un alias de autenticación en lugar de codificar el nombre de usuario y la contraseña en la aplicación.
portNumber port-number El valor se proporciona al controlador JDBC.
serverName server-name El valor se proporciona al controlador JDBC.
transactional transactional En WebSphere Application Server, la propiedad transactional controla si la conexión se lista en las transacciones JTA. Cuando transactional=false, las conexiones no se listan en las transacciones JTA, pero aún puede ejecutar transacciones en la base de datos utilizando autocommit=true o connection.commit/rollback con autocommit=false. Equivalente al opuesto de la propiedad personalizada de origen de datos de WebSphere Application Server nonTransactionalDataSource.
url url El valor se proporciona al controlador JDBC.Cuando se especifica un URL, los valores databaseName, serverName, portNumber se ignoran.
user user Nombre de usuario predeterminado de las solicitudes de conexión que no especifican un nombre de usuario. Considere utilizar un alias de autenticación en lugar de codificar el nombre de usuario y la contraseña en la aplicación.

Propiedades de proveedor y propiedades personalizadas

Las propiedades de proveedor del controlador JDBC pueden incluirse en la definición del origen de datos. La mayoría de las propiedades personalizadas de WebSphere Application Server también se pueden incluir en la definición del origen de datos.

Con las anotaciones, esto se realiza mediante el elemento properties; por ejemplo,
@DataSourceDefinition
(
  name="java:app/env/myDataSource",
  className="org.apache.derby.jdbc.EmbeddedXADataSource40",
  databaseName="myDB",
  properties=
  {
    // Propiedades de proveedor para controlador JDBC Derby Embedded:
    "createDatabase=create",
    "connectionAttributes=upgrade=true",

    // Propiedades personalizadas de WebSphere Application Server:
    "connectionTimeout=60",
    "dataStoreHelperClass=com.ibm.websphere.rsadapter.DerbyDataStoreHelper",
    "validateNewConnection=true",
    "validateNewConnectionRetryCount=5"
  },
  serverName=""
)
En el ejemplo siguiente se muestra cómo se incluye la definición del origen de datos en el descriptor de despliegue:
<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 continuación se muestra una lista de propiedades personalizadas de WebSphere Application Server que pueden configurarse de esta manera:
  • Propiedades de la agrupación de conexiones:
    • agedTimeout
    • authDataAlias
    • authMechanismPreference
    • connectionTimeout
    • defaultConnectionTypeOverride
    • globalConnectionTypeOverride
    • mappingConfigAlias
    • purgePolicy
    • reapTime
    • stuckThreshold
    • stuckTime
    • stuckTimerTime
    • surgeCreationInterval
    • surgeThreshold
    • testConnection
    • testConnectionInterval
    • XA_RECOVERY_AUTH_ALIAS
  • Propiedades personalizadas del origen de datos:
    • beginTranForResultSetScrollingAPIs
    • beginTranForVendorAPIs
    • connectionSharing
    • enableMultithreadedAccessDetection
    • errorDetectionModel
    • freeResourcesOnClose
    • oracleRACXARecoveryDelay (sólo Oracle)
    • preTestSQLString
    • userDefinedErrorMap
    • validateNewConnection
    • validateNewConnectionRetryCount
    • validateNewConnectionRetryInterval
    • validateNewConnectionTimeout

Referencias de recursos

Se recomienda que las aplicaciones utilicen siempre las referencias de recursos al acceder a orígenes de datos, lo que facilita al desplegador su sustitución.

Compartimiento de conexiones

De forma predeterminada, para la definición de origen de datos, una solicitud de conexión puede compartir una conexión en uso existente si coincide con los valores solicitados originalmente para esa conexión (connectionSharing=MatchOriginalRequest). Como alternativa, se puede realizar la compartición de conexiones correlacionando la solicitud de conexión con el estado actual de la conexión (connectionSharing=MatchCurrentState).

Ciclo de vida

El ciclo de vida de una definición de origen de datos está vinculado al ciclo de vida de las aplicaciones que lo definen. Por consiguiente, puede actualizar la aplicación para cambiar la definición de origen de datos sin necesidad de reiniciar el servidor. Si varias aplicaciones incluyen la misma definición de origen de datos, por ejemplo, ambas definiciones de origen de datos tienen nombre java:global idénticos, conjuntos de propiedades idénticos configurados y valores idénticos de propiedades, todas las aplicaciones deben desinstalarse antes de actualizar la definición del origen de datos y volver a instalar las aplicaciones.

Conflictos entre definiciones de orígenes de datos

Las aplicaciones, módulos y componentes deben tener cuidado de no definir orígenes de datos con el mismo nombre java:global que otra aplicación, porque ese proceso hace que sea imposible que las aplicaciones coexistan. En una aplicación, los módulos y componentes deben tener cuidado de no definir los orígenes de datos con el mismo nombre java:app que otro módulo o componente. El conflicto hace que la instalación de la aplicación falle. En un módulo, los componentes deben tener cuidado de no definir orígenes de datos con el mismo java:module que otros componentes. El conflicto hace que la instalación de la aplicación falle. En el módulo web, los componentes deben tener cuidado de no definir orígenes de datos con el mismo nombre java:comp que otros componentes. El conflicto hace que la instalación de la aplicación falle.


Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_datres
File name: cdat_datres.html