Propriétés de configuration du conteneur incorporable d'EJB

Utilisez les propriétés de configuration suivantes pour le conteneur Enterprise JavaBeans (EJB) embarquable.

Tableau 1. Propriétés de configuration du conteneur incorporable d'EJB. Utilisez les propriétés pour les configurations de conteneur incorporable d'EJB pouvant être intégrées.
Propriété Type Valeur par défaut Description
com.ibm.websphere.ejbcontainer.cacheSize java.lang.Long 2 053 Nombre de compartiments du cache d'EJB.
com.ibm.websphere.ejbcontainer.cacheSweepInterval java.lang.Long 3 000 Délai d'attente entre deux balayages du cache d'EJB pour déterminer si les entrées doivent être supprimées.
com.ibm.websphere.ejbcontainer.inactivePoolCleanupInterval java.lang.Long 30 000 Durée (en millisecondes) pendant laquelle l'unité d'exécution de nettoyage doit attendre avant de nettoyer le pool inactif.
com.ibm.websphere.ejbcontainer.passivationDir java.lang.String <TempDir> Répertoire dans lequel les beans avec état seront mis à l'état passif. L'utilisateur doit disposer d'un accès en lecture et écriture au répertoire spécifié.
com.ibm.websphere.embeddable.configFileName java.lang.String <répertoire de travail en cours> /embeddable.properties Nom du fichier de propriétés contenant les propriétés du conteneur EJB pouvant être imbriqué. Lors du traitement de ce fichier, chaque propriété est passée au conteneur EJB nouvellement créé, de la même manière que si ce passage avait lieu programmatiquement. Toute propriété passée programmatiquement annule et remplace son équivalent défini dans le fichier de configuration.
Avertissement : Il est aussi possible de spécifier cette propriété comme propriété système sur la ligne de commande.

Le tableau suivant contient les propriétés de configuration pour les sources de données. Chaque propriété est spécifique à une source de données particulière, de sorte que vous pouvez configurer plusieurs sources avec des réglages différents. Remplacez <id_source_données> par un terme unique, identifiant la source de données à configurer. Certaines propriétés sont indiquées comme obligatoires pour chaque source de données.

Tableau 2. Propriétés de configuration du conteneur EJB embarquable pour les sources de données JDBC. Utilisation des propriétés de configuration du conteneur incorporable d'EJB pour les sources de données JDBC.
Propriété Type Description
DataSource.<id_source_données>.name java.lang.String Obligatoire. La chaîne Java™ Naming and Directory Interface (JNDI) que le conteneur utilise pour lier cette source de données dans l'espace de noms global du conteneur pouvant être imbriqué. Elle doit concorder avec la chaîne de recherche JNDI utilisée dans l'application.
DataSource.<id_source_données>.className java.lang.String Obligatoire. Nom de la classe Java de source de données. Pour les tests, il est possible d'utiliser Apache Derby si racine_serveur_app/derby/lib/derby.jar est dans le chemin de classes de la machine virtuelle Java. Les classes de source de données acceptées pour Apache Derby sont org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource et org.apache.derby.jdbc.EmbeddedXADataSource.
DataSource.<id_source_données>.connectionSharing java.lang.String La stratégie de partage des connexions. Les valeurs admises sont MatchOriginalRequest (valeur par défaut), MatchCurrentState et None. MatchOriginalRequest signifie que le partage d'une demande de connexion est possible si elle concorde avec les valeurs initialement demandées pour une connexion existante. MatchCurrentState signifie que le partage d'une demande de connexion est possible si elle concorde avec les valeurs courantes d'une connexion existante. None signifie qu'une même connexion ne peut être partagée par plusieurs demandes de connexion.
DataSource.<id_source_données>.databaseName java.lang.String Le nom de la base de données à laquelle cette source de données se connecte.
DataSource.<id_source_données>.isolationLevel java.lang.Integer Le niveau d'isolement des transactions pour les connexions issues de cette source de données. S'il n'est pas spécifié, le niveau par défaut est fourni par le pilote JDBC ou la base de données.

Les valeurs admises sont 1 pour lecture non validée (Read Uncommitted), 2 pour lecture validée (Read Committed), 4 pour lecture reproductible (Repeatable Read) et 8 pour sérialisable. Ces valeurs proviennent de constantes dans java.sql.Connection et sont sujettes à modification.

DataSource.<id_source_données>.maxIdleTime java.lang.Integer Durée, en secondes, au terme de laquelle le pool de connexions peut fermer une connexion inutilisée.
DataSource.<id_source_données>.maxPoolSize java.lang.Integer Nombre maximum de connexions créées pour cette source de données. Une fois ce nombre atteint, les demandes ultérieures de connexion auprès de cette source de données sont bloquées jusqu'à ce que l'une des connexions utilisées soit restituée au pool.
DataSource.<id_source_données>.maxStatements java.lang.Integer Nombre maximum d'instructions mises en cache par le pool de connexions. Cette valeur est divisée par la valeur de maxPoolSize pour déterminer le nombre d'instructions qui peuvent être mises en cache pour chaque connexion dans le pool. La valeur 0 désactive la mise en cache des instructions.
DataSource.<id_source_données>.minPoolSize java.lang.Integer Nombre minimal de connexions à conserver dans le pool de connexions pour cette source de données. Si aucune connexion n'est utilisée, le pool peut supprimer autant de connexions qu'il le faut pour atteindre cette limite basse. La valeur de cette propriété ne doit pas être négative.
DataSource.<id_source_données>.password java.lang.String Mot de passe de l'utilisateur indiqué pour l'accès à la base de données. Comme la propriété user, cette propriété peut être omise si la sécurité n'est pas activée pour la base de données ou si le nom d'utilisateur et le mot de passe sont fournis programmatiquement lors de la création de la connexion.
DataSource.<id_source_données>.transactional java.lang.Boolean Indique si cette source de données doit être enrôlée comme ressource dans les transactions JTA (Java Transaction API). Les valeurs admises sont true (par défaut) et false.
DataSource.<id_source_données>.user java.lang.String Nom d'utilisateur pour l'accès à la base de données. Cette propriété peut être omise si la sécurité n'est pas activée pour la base de données ou si le nom d'utilisateur et le mot de passe sont fournis programmatiquement lors de la création de la connexion.
DataSource.<id_source_données>.<nom_propriété_fournisseur_ou_nom_propriété_pool_connexions> java.lang.String D'autres propriétés sont également configurables :
  • Les propriétés d'une source de données spécifique d'un fournisseur, telles que serverName et portNumber
  • Les propriétés d'une source de données spécifique de WebSphere Application Server, telles que userDefinedErrorMap et validateNewConnection
  • Les propriétés de mise en pool des connexions, spécifiques de WebSphere Application Server, telles que connectionTimeout et purgePolicy
DataSource.<id_source_données>.xaRecoveryPassword java.lang.String Concerne les sources de données XA uniquement. Mot de passe pour la récupération XA.
DataSource.<id_source_données>.xaRecoveryUser java.lang.String Concerne les sources de données XA uniquement. Pour la récupération XA, certaines bases de données requièrent un utilisateur ayant des privilèges spéciaux. Utilisez cette propriété pour spécifier un nom d'utilisateur à utiliser à la place de l'utilisateur par défaut pour la récupération XA.

Utilisez les propriétés suivantes pour configurer deux sources de données.

DataSource.ds1.name=env/jdbc/ds1
DataSource.ds1.className=org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource
DataSource.ds1.transactional=true
DataSource.ds1.createDatabase=create
DataSource.ds1.databaseName=jtest1
DataSource.ds1.user=dbuser1
DataSource.ds1.password=dbpwd1
DataSource.ds1.maxPoolSize=5

DataSource.ds2.name=env/jdbc/ds2
DataSource.ds2.className=org.apache.derby.jdbc.EmbeddedXADataSource
DataSource.ds2.connectionSharing=MatchOriginalRequest
DataSource.ds2.createDatabase=create
DataSource.ds2.databaseName=jtest2
DataSource.ds2.user=dbuser2
DataSource.ds2.password=dbpwd2
DataSource.ds2.maxPoolSize=10
DataSource.ds2.minPoolSize=1

DataSource.ds3.name=env/jdbc/ds3
DataSource.ds3.className=com.ibm.db2.jcc.DB2XADataSource
DataSource.ds3.driverType=4
DataSource.ds3.databaseName=DB2COPY1
DataSource.ds3.serverName=mydb2.test.ibm.com
DataSource.ds3.portName=50000
DataSource.ds3.user=dbuser1
DataSource.ds3.password=dbpwd1

La première source de données, ds1, est liée dans l'espace de noms spécifié par la propriété name, env/jdbc/ds1, et fournit un pool de cinq connexions au maximum à une base de données Apache Derby. La seconde source de données, ds2, est liée dans l'espace de noms env/jdbc/ds2 et fournit un pool de connexions compatible XA à une base de données Apache Derby.

Le tableau suivant contient les propriétés de configuration pour les liaisons EJB. Pour chaque propriété, remplacez :
  • <app> par le nom d'application.

    Le nom d'application est par défaut la chaîne vide. Cependant, le nom d'application peut être spécifié à l'aide de la propriété EJBContainer.APP_NAME lors de l'appel de createEJBContainer.

  • <module> par le nom de module.

    Le nom de module est spécifié dans ejb-jar.xml sous forme de <nom-module>, correspond au nom du fichier JAR sans le suffixe ".jar" ou correspond au nom du répertoire contenant le module.

  • <ejb> par le nom de l'EJB.

    Le nom de l'EJB est spécifié dans ejb-jar.xml sous forme de <nom-ejb> ou à l'aide de l'élément name lors de l'utilisation d'annotations ; par exemple, @Stateless(name="TestBean"). Si aucun nom n'est spécifié dans l'annotation d'EJB, le nom de classe simple est utilisé ; par exemple, TestBean pour la classe com.ibm.test.TestBean.

  • <intercepteur> par le nom d'une classe d'intercepteur.
  • <réf> par le nom de la référence de ressource, la référence EJB ou l'entrée d'environnement.

    La référence peut être spécifiée dans ejb-jar.xml ; par exemple, <nom-réf-res>jdbc/mydsref</nom-réf-res>, ou <nom-réf-ejb>java:module/env/myejbref</nom-réf-ejb>. La référence peut également être spécifiée à l'aide d'une annotation ; par exemple, @Resource(name="jdbc/mydsref") ou @EJB(name="java:module/env/myenvref").

Si aucun nom d'application n'est spécifié lors du lancement du conteneur pouvant être imbriqué, la partie <app> doit être omise. Toutefois, vous devez utiliser le délimiteur #. Par exemple, Bean.#<module>#<bean>.ResourceRef.BindingName.

Tableau 3. Propriétés de configuration du conteneur incorporable d'EJB pour les liaisons de référence. Utilisation des propriétés de configuration du conteneur incorporable d'EJB pour les liaisons de référence.
Propriété Type Description
Bean.<app>#<module>#<ejb>.ResourceRef.BindingName.<réf> ou Interceptor.<app>#<module>#<intercepteur>.ResourceRef.BindingName.<réf> java.lang.String La chaîne JNDI à utiliser lorsque la référence de ressource est recherchée ou injectée. Il doit s'agir du nom JNDI d'une source de données configurée.
Bean.<app>#<module>#<ejb>.EJBRef.BindingName.<nom-réf> or Interceptor.<app>#<module>#<intercepteur>.EJBRef.BindingName.<réf> java.lang.String Chaîne JNDI à utiliser lorsque la référence d'EJB est recherchée ou injectée. Il doit s'agir de la chaîne JNDI java:global, java:app ou java:module d'un EJB dans le conteneur d'EJB incorporable.
Bean.<app>#<module>#<ejb>.EnvEntry.Value.<nom-réf> or Interceptor.<app>#<module>#<intercepteur>.EnvEntry.Value.<réf> java.lang.String La valeur à utiliser lorsque l'entrée d'environnement est recherchée ou injectée. Cette propriété annule et remplace la valeur spécifiée par env-entry. Sa valeur doit être valide compte tenu du type de l'entrée d'environnement.
Bean.<app>#<module>#<ejb>.EnvEntry.BindingName.<réf> or Interceptor.<app>#<module>#<intercepteur>.EnvEntry.BindingName.<réf> java.lang.String Chaîne JNDI à utiliser lorsque l'entrée d'environnement est recherchée ou injectée. Il doit s'agir de la chaîne JNDI java:global, java:app ou java:module d'une autre entrée d'environnement dans le même conteneur d'EJB incorporable.
Bean.<app>#<module>#<ejb>.DataSource.BindingName.<réf> or Interceptor.<app>#<module>#<intercepteur>.DataSource.BindingName.<réf> java.lang.String La chaîne JNDI à utiliser lorsque la source de données est recherchée ou injectée. Il doit s'agir de la chaîne JNDI d'une source de données configurée ou de la chaîne JNDI java:global, java:app ou java:module d'une autre source de données dans le même conteneur d'EJB incorporable. Les développeurs d'applications doivent utiliser des références de ressource au lieu de rechercher directement une source de données. Si une application est codée pour rechercher directement des sources de données, vous pouvez utiliser cette propriété pour remplacer les définitions de source de données incluses dans l'application. Pour plus d'informations sur les définitions de source de données, consultez le centre de documentation.

Utilisez les propriétés suivantes pour configurer les liaisons d'un EJB avec deux références et d'un intercepteur avec une entrée d'environnement :

Bean.#TestModule#TestBean.ResourceRef.BindingName.jdbc/dsref=env/jdbc/ds1
Bean.#TestModule#TestBean.EJBRef.BindingName.ejb/Cart=java:global/CartModule/CartBean
Interceptor.#TestModule#com.ibm.example.LoggerInterceptor.EnvEntry.Value.logFile=/tmp/output.log
Eviter les incidents Eviter les incidents: Use the following properties to override java:module/env/TestDataSource that is defined in an EJB named TestBean in an EJB module named TestModule, with jdbc/MyDataSource that is defined in embeddable properties:
Bean.#TestModule#TestBean.DataSource.BindingName.java\:module/env/TestDataSource=jdbc/MyDataSource
gotcha
Tableau 4. Embeddable EJB container configuration properties for security. Use the embeddable EJB container configuration properties for security.
Property Type Default value Description
com.ibm.websphere.securityEnabled java.lang.String false Determines whether security roles are checked. Valid values are false (default) or true. If true, then security roles are checked; if false, then security roles are not checked.
role.<role_name> java.lang.String   Maps an EJB role to one or more users. The <role_name> is a role assigned to a method, either through the annotation @RolesAllowed or through the deployment descriptor <method-permission>. The value is a string of comma-delimited user names, for example "bob, mary, john". The users in the list are allowed to run methods that require the <role_name>.
role.runAs.<role_name> java.lang.String   Maps one EJB role to one user. The <role_name> is a role assigned to a bean or method, either through the annotation @RunAs or through the deployment descriptor <run-as>. The value is a single user name. The user name is used for any authorization that is required by the bean while it is running.
user.invocation java.lang.String   Defines the user that might be used for authorization when the bean is invoked. The value is a single user name. The container checks that this user is mapped to a role that is allowed to run any executed method.

The following table contains configuration properties for the Local Transaction Containment (LTC) behavior. For an explanation of LTC, read about local transaction containment. Each property is specific to a bean.

If an application name is not specified when launching the embeddable container, the <application_name> must be omitted. However, you must use the # delimiter. For example, Bean.#<module_name>#<bean_name>LocalTransaction.Resolver.

Tableau 5. Embeddable EJB container configuration properties for Local Transaction Containment. Use the embeddable EJB container configuration properties for Local Transaction Containment.
Property Type Default value Description
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.Resolver java.lang.String Application Determines the entity that is responsible for local transaction resolution. Valid values are Application (default) or ContainerAtBoundary.
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.UnresolvedAction java.lang.String Rollback Determines the action taken for unresolved local transactions. Valid values are Rollback (default) or Commit.

The following table contains configuration properties for XA behavior.

Tableau 6. Embeddable EJB configuration properties for XA. Use the embeddable EJB configuration properties for XA.
Property Type Default value Description
com.ibm.websphere.tx.acceptHeuristicHazard java.lang.String false Specifies whether last participant support is enabled for all modules. The default value is false.
com.ibm.websphere.tx.auditRecovery java.lang.String true Specifies whether recovery processing outputs audit messages, which indicate XA resource and XID processing during recovery. When no audit recovery is specified, only a single recovery message is output along with the number of transactions that are recovered, unless an error occurs.
com.ibm.websphere.tx.clientInactivityTimeout java.lang.String 0 Specifies the maximum duration, in seconds, between transactional requests. Any period of client inactivity that exceeds this timeout value results in the transaction being rolled back. The default setting, 0, means that no limit exists.
com.ibm.websphere.tx.enableLoggingForHeuristicReporting java.lang.String false This property enables logging for heuristic reporting. If last participant support is enabled, reporting of heuristic outcomes that might occur when the server becomes unavailable requires additional information to be written to the transaction log. If enabled, one additional log write is completed for any transaction that involves both one-phase and two-phase commit resources. No additional records are written for transactions that do not involve a one-phase commit resource.
com.ibm.websphere.tx.heuristicRetryLimit java.lang.String 0 Specifies the number of times that the transaction service retries a completion signal such as commit or rollback. Retries occur after a transient exception from a resource manager. The default value, 0, indicates no limit to the number of retries.
com.ibm.websphere.tx.heuristicRetryWait java.lang.String 0 Specifies the number of seconds that the transaction service waits before retrying a completion signal, such as commit or rollback, after a transient exception from a resource manager.
com.ibm.websphere.tx.LPSHeuristicCompletion java.lang.String ROLLBACK

(case insensitive)

The heuristic completion action to be taken by the transaction service in a transaction with last participant support when the outcome of the one-phase commit resource is unknown. The values ROLLBACK or COMMIT cause the two-phase commit resources to be completed accordingly. The setting, MANUAL, means that the transaction service takes no action and leave the two-phase commit resources in-doubt. The default value is ROLLBACK.
com.ibm.websphere.tx.maximumTransactionTimeout java.lang.String 300 Specifies, in seconds, the upper limit of the transaction timeout value. This timeout value constrains the upper limit of all other transaction timeout values.
com.ibm.websphere.tx.totalTranLifetimeTimeout java.lang.String 120 Specifies the default maximum time, in seconds, allowed for a transaction before the transaction service initiates timeout. Any transaction that does not begin completion processing before this timeout occurs is rolled back.
com.ibm.websphere.tx.tranLogDirectory java.lang.String profiles\server name\tranlog Specifies the name of a directory for this server where the transaction service stores log files for recovery.
com.ibm.websphere.tx.tranLogSize java.lang.String 1024 Specifies the size, in kilobytes, of transaction log files. The minimum file size is 64KB. The default value sets the file size to 1MB.

Icône indiquant le type de rubrique Rubrique de référence



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=rejb_emconproperties
Nom du fichier : rejb_emconproperties.html