Définition des ressources de source de données dans les applications

Les applications peuvent définir les sources de données dans les annotations ou dans le descripteur de déploiement. Cette rubrique porte sur les similitudes et la compatibilité avec les sources de données WebSphere Application Server définies au niveau du serveur, du noeud, du cluster ou de la cellule. Elle décrit également les fonctions facultatives dans la définition de source de données.

Propriétés standard d'une définition de source de données

Tableau 1. Propriétés standard d'une définition de source de données. Utilisez cette tableau pour en savoir plus sur les propriétés standard des définitions de source de données
Elément d'annotation Elément de descripteur Commentaires
Nom Nom Nom JNDI de la source de données. Le nom doit se trouver dans l'un des espaces de nom java:global, java:app, java:module et java:comp.
className Nom de classe Nom de classe qualifié complet du pilote JDBC qui implémente javax.sql.XADataSource, javax.sql.ConnectionPoolDataSource ou javax.sql.DataSource.
databaseName Nom de base de données Valeur fournie au pilote JDBC.
description description Valeur fournie au MBean DataSource.
initialPoolSize Taille de pool initiale Valeur de propriété ignorée. Dans WebSphere Application Server, la taille de pool initiale est toujours 0.
isolationLevel Niveau d'isolement Equivalent à la propriété personnalisée de source de données WebSphere Application Server, webSphereDefaultIsolationLevel. Il s'agit d'un niveau d'isolement de transaction par défaut pour les nouvelles connexions.
loginTimeout Délai d'attente de connexion Valeur fournie au pilote JDBC.
maxIdleTime Délai max d'inactivité Equivalent à la propriété de regroupement de connexions WebSphere Application Server, unusedTimeout. Cette propriété est ignorée dans le conteneur client dans lequel le regroupement de connexions n'est pas fourni.
maxPoolSize Taille max de pool Equivalent à la propriété de regroupement de connexions WebSphere Application Server, maxConnections. Cette propriété est ignorée dans le conteneur client dans lequel le regroupement de connexions n'est pas fourni.
maxStatements Nbre max instructions Définit le nombre maximal d'instructions pour le pool de connexions. Dans WebSphere Application Server, chaque connexion mise en pool dispose de sa propre mémoire cache. Par conséquent, maxStatements est divisé (à parts égales, arrondi à la valeur inférieure) entre la valeur maxPoolSize du pool. Si maxPoolSize est illimité, le regroupement d'instructions est désactivé.
minPoolSize Taille min de pool Equivalent à la propriété de regroupement de connexions WebSphereApplication Server, minConnections. Cette propriété est ignorée dans le conteneur client dans lequel le regroupement de connexions n'est pas fourni.
mot de passe mot de passe Mot de passe par défaut des demandes de connexion qui ne définissent pas un mot de passe. Envisagez d'utiliser un alias d'authentification au lieu de coder de manière permanente le nom d'utilisateur et le mot de passe dans l'application.
portNumber Numéro de port Valeur fournie au pilote JDBC.
serverName Nom de serveur Valeur fournie au pilote JDBC.
transactional transactional Dans WebSphere Application Server, la propriété transactional indique si la connexion figure dans les transactions JTA. Lorsque transactional=false, les connexions ne figurent pas dans les transactions JTA, mais vous pouvez toujours exécuter les transactions par rapport à la base de données en utilisant autocommit=true ou connection.commit/rollback avec autocommit=false. Equivalent à l'opposé de la propriété personnalisée de source de données WebSphere Application Server, nonTransactionalDataSource.
URL URL Valeur fournie au pilote JDBC. Si l'URL est spécifiée, les valeurs databaseName, serverName, portNumber sont ignorées.
user user Nom d'utilisateur par défaut des demandes de connexion qui ne définissent pas un nom d'utilisateur. Envisagez d'utiliser un alias d'authentification au lieu de coder de manière permanente le nom d'utilisateur et le mot de passe dans l'application.

Propriétés de fournisseur et personnalisées

Les propriétés du fournisseur du pilote JDBC peuvent être incluses dans la définition de source de données. La plupart des applications personnalisées WebSphere Application Server peuvent être également incluses dans la définition de source de données.

Avec les annotations, vous pouvez les inclure via l'élément properties. Par exemple,
@DataSourceDefinition
(
  name="java:app/env/myDataSource",
  className="org.apache.derby.jdbc.EmbeddedXADataSource40",
  databaseName="myDB",
  properties=
  {
    // Propriétés du fournisseur du pilote JDBC Derby Embedded :
    "createDatabase=create",
    "connectionAttributes=upgrade=true",

    // Propriétés personnalisées de WebSphere Application Server :
    "connectionTimeout=60",
    "dataStoreHelperClass=com.ibm.websphere.rsadapter.DerbyDataStoreHelper",
    "validateNewConnection=true",
    "validateNewConnectionRetryCount=5"
  },
  serverName=""
)
L'exemple suivant montre comment la définition de source de données est incluse dans le descripteur de déploiement :
<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>
La liste des propriétés personnalisées WebSphere Application Server pouvant être définies de cette manière figure ci-dessous :
  • Propriétés de regroupement de connexions :
    • agedTimeout
    • authDataAlias
    • authMechanismPreference
    • connectionTimeout
    • defaultConnectionTypeOverride
    • globalConnectionTypeOverride
    • mappingConfigAlias
    • purgePolicy
    • reapTime
    • stuckThreshold
    • stuckTime
    • stuckTimerTime
    • surgeCreationInterval
    • surgeThreshold
    • testConnection
    • testConnectionInterval
    • XA_RECOVERY_AUTH_ALIAS
  • Data source custom properties:
    • beginTranForResultSetScrollingAPIs
    • beginTranForVendorAPIs
    • connectionSharing
    • enableMultithreadedAccessDetection
    • errorDetectionModel
    • freeResourcesOnClose
    • oracleRACXARecoveryDelay (Oracle only)
    • preTestSQLString
    • userDefinedErrorMap
    • validateNewConnection
    • validateNewConnectionRetryCount
    • validateNewConnectionRetryInterval
    • validateNewConnectionTimeout

Références de ressources

Il est recommandé que les applications utilisent toujours des références de ressource lors de l'accès aux sources de données, qui sont plus faciles à remplacer par le déployeur.

Partage des connexions

Par défaut, pour une définition de source de données, une demande de connexion peut partager une connexion utilisée existante si elle correspond aux paramètres demandés d'origine de la connexion (connectionSharing=MatchOriginalRequest). De même, un partage de connexion peut être effectué en faisant correspondre la demande de connexion à l'état en cours de la connexion (connectionSharing=MatchCurrentState).

Cycle de vie

Le cycle de vie d'une définition de source de données est lié au cycle de vie des applications qui le définissent. Par conséquent, vous pouvez mettre à jour l'application pour changer la définition de source de données sans avoir à redémarrer le serveur. Si plusieurs applications contiennent la même définition de source de données, par exemple, les deux définitions de source de données ont des noms java:global identiques, des groupes de propriétés identiques et des valeurs identiques pour les propriétés, toutes les applications doivent être désinstallées avant de mettre à jour la définition de source de données et de résinstaller les applications.

Conflits entre les définitions de source de données

Les applications, modules et composants ne doivent pas définir de sources de données avec le même nom java:global qu'une autre application, car ce processus empêche les applications de coexister. Dans une application, les modules et les composants ne doivent pas définir de sources de données avec le même nom java:app qu'un autre module ou composant. Le conflit provoque l'échec de l'installation de l'application. Dans un module, les composants ne doivent pas définir de sources de données avec le même nom java:module que les autres composants. Le conflit provoque l'échec de l'installation de l'application. Dans le module Web, les composants ne doivent pas définir de sources de données avec le même nom java:comp que les autres composants. Le conflit provoque l'échec de l'installation de l'application.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_datres
Nom du fichier : cdat_datres.html