Propiedades de configuración del contenedor EJB incorporable
Utilice las siguientes propiedades de configuración del contenedor EJB (Enterprise JavaBeans) incorporable.
Propiedad | Tipo | Valor por omisión | Descripción |
---|---|---|---|
com.ibm.websphere.ejbcontainer.cacheSize | java.lang.Long | 2 053 | Número de grupos para la memoria caché de EJB. |
com.ibm.websphere.ejbcontainer.cacheSweepInterval | java.lang.Long | 3 000 | Tiempo entre barridos de la memoria caché de EJB para determinar si deben eliminarse entradas. |
com.ibm.websphere.ejbcontainer.inactivePoolCleanupInterval | java.lang.Long | 30 000 | Tiempo en milisegundos durante el que debe esperar la hebra de limpieza antes de limpiar la agrupación inactiva. |
com.ibm.websphere.ejbcontainer.passivationDir | java.lang.String | <TempDir> | Directorio en el que desactivar beans con estado. El usuario debe tener acceso de lectura y escritura para el directorio especificado. |
com.ibm.websphere.embeddable.configFileName | java.lang.String | <CurrentWorkingDirectory> /embeddable.properties | Nombre de archivo de un archivo de propiedades que contiene propiedades del contenedor EJB incorporable. Cuando se procesa este archivo, cada propiedad se pasa al contenedor EJB recién creado como si se pasara mediante programación. Las propiedades pasadas
mediante programación prevalecen sobre las propiedades del archivo de configuración. Atención: También es posible especificar esta propiedad como una propiedad del sistema en la línea de mandatos.
|
La tabla siguiente contiene las propiedades de configuración de los orígenes de datos. Cada propiedad es específica de un origen de datos individual que le permite configurar varios orígenes de datos con valores diferentes. Sustituya <ID_origen_datos> por un término exclusivo que identifica el origen de datos que se va a configurar. Algunas de las propiedades se listan como necesarias para cada origen de datos.
Propiedad | Tipo | Descripción |
---|---|---|
DataSource.<ID_origen_datos.name | java.lang.String | Necesario. La serie JNDI (Java™ Naming and Directory Interface) que utiliza el contenedor para enlazar este origen de datos en el espacio de nombres global del contenedor incorporable. Esta serie debe coincidir con la serie de búsqueda JNDI que se utiliza en la aplicación. |
DataSource<ID_origen_datos>.className | java.lang.String | Necesario. El nombre de clase Java de la clase de origen de datos. Para las pruebas, se puede utilizar Apache Derby si raíz_servidor_aplic/derby/lib/derby se encuentra en la classpath de la máquina virtualJava. Las clases de origen de datos soportadas para Apache Derby son org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource y org.apache.derby.jdbc.EmbeddedXADataSource. |
DataSource.<ID_origen_datos>.connectionSharing | java.lang.String | La política para compartir conexiones. Los valores válidos son MatchOriginalRequest (valor predeterminado), MatchCurrentState o Ninguno. MatchOriginalRequest significa que una solicitud de conexión puede compartirse si coincide con los valores solicitados originalmente de una conexión existente. MatchCurrentState significa que una solicitud de conexión puede compartirse si coincide con los valores actuales de una conexión existente. Ninguno significa que varias solicitudes de conexión varios no comparten la misma conexión. |
DataSource.<ID_origen_datos>.databaseName | java.lang.String | Nombre de la base de datos a la que se conecta este origen de datos. |
DataSource.<ID_origen_datos>.isolationLevel | java.lang.Integer | El nivel de aislamiento de transacción para las conexiones de este origen de datos. Si no se especifica, la base
de datos o el controlador JDBC proporciona el valor predeterminado. Los valores válidos son 1 para Lectura no confirmada, 2 para Lectura confirmada, 4 para Lectura repetible u 8 para Serializable. Estos valores proceden de constantes en java.sql.Connection y están sujetas a cambios. |
DataSource.<ID_origen_datos>.maxIdleTime | java.lang.Integer | El número de segundos tras los que la agrupación de conexiones puede cerrar una conexión no utilizada. |
DataSource.<ID_origen_datos>.maxPoolSize | java.lang.Integer | Número máximo de conexiones que se crean para este origen de datos. Después de que se esté utilizando este número de conexiones simultáneas, las solicitudes futuras para obtener una conexión de este origen de datos se bloquean hasta que una o más de las conexiones en uso se han devuelto a la agrupación. |
DataSource.<ID_origen_datos>.maxStatements | java.lang.Integer | El número máximo de sentencias colocadas en la memoria caché por la agrupación de conexiones. Este valor se divide entre el valor de maxPoolSize para determinar el número de sentencias que se pueden colocar en memoria caché para cada conexión de la agrupación. Un valor de 0 inhabilita la sentencia de colocación en memoria caché. |
DataSource.<ID_origen_datos>.minPoolSize | java.lang.Integer | El número mínimo de conexiones que se conservan en la agrupación de conexiones de este origen de datos. Si no hay conexiones en uso, la agrupación de conexiones puede descartar conexiones hasta que el tamaño de la agrupación alcanza este valor. Este valor debe ser no negativo. |
DataSource.<ID_origen_datos>.password | java.lang.String | Contraseña para el usuario específico cuando se accede a la base de datos. Al igual que la propiedad anterior, esta propiedad se puede omitir si la base de datos no tiene la seguridad habilitada o si el nombre de usuario y la contraseña se proporcionan mediante programación al crear la conexión. |
DataSource.<ID_origen_datos>.transactional | java.lang.Boolean | Indica si esta fuente de datos se debe incluir en transacciones JTA (Java Transaction API). Los valores válidos son true (valor predeterminado) o false. |
DataSource.<ID_origen_datos>.user | java.lang.String | Nombre de usuario para acceder a la base de datos. Esta propiedad se puede omitir si la base de datos no tiene la seguridad habilitada o si el nombre de usuario y la contraseña se proporcionan mediante programación al crear la conexión. |
DataSource.<ID_origen_datos>.<nombre_propiedad_proveedor_o_nombre_propiedad_agrupación_conexiones> | java.lang.String | También puede configurar otras propiedades:
|
DataSource.<ID_origen_datos>.xaRecoveryPassword | java.lang.String | Se aplica solamente a orígenes de datos XA. La contraseña para la recuperación de XA. |
DataSource.<ID_origen_datos>.xaRecoveryUser | java.lang.String | Se aplica solamente a orígenes de datos XA. Algunas bases de datos requieren un usuario con privilegios especiales para la recuperación de XA. Utilice esta propiedad para especificar un nombre de usuario para la recuperación de XA en lugar del usuario predeterminado. |
Utilice las propiedades siguientes para configurar dos orígenes de datos.
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
El primer origen de datos, ds1, está enlazado en el espacio de nombres bajo el nombre env/jdbc/ds1, y proporciona la agrupación de conexiones de hasta cinco conexiones a una base de datos Apache Derby. El segundo origen de datos, ds2, está enlazado en el espacio de nombres en env/jdbc/ds2 y proporciona la técnica de agrupación de conexiones compatible con XA a una base de datos Apache Derby.
- <app> con el nombre de la aplicación.
El nombre de aplicación es, por omisión, la serie vacía. Sin embargo, el nombre de aplicación puede especificarse utilizando la propiedad EJBContainer.APP_NAME cuando se llama createEJBContainer.
- <module> con el nombre del módulo.
El nombre de módulo se especifica en ejb-jar.xml como <module-name>, es el nombre del archivo JAR sin el sufijo ".jar", o es el nombre del directorio que contiene el módulo.
- <ejb> con el nombre del EJB.
El nombre del EJB está especificado en ejb-jar.xml como <ejb-name>, o utilizando el elemento del nombre cuando se utilizan anotaciones; por ejemplo, @Stateless(name="TestBean"). Si no se especifica ningún nombre en la anotación de EJB, se utiliza el nombre de clase simple; por ejemplo, TestBean para la clase com.ibm.test.TestBean.
- <interceptor> con el nombre de una clase de interceptor.
- <ref> con el nombre de la referencia de recurso, referencia EJB o entrada de entorno.
La referencia se puede especificar en ejb-jar.xml; por ejemplo, <res-ref-name>jdbc/mydsref</res-ref-name>, o <ejb-ref-name>java:module/env/myejbref</ejb-ref-name>. Alternativamente, la referencia se puede especificar utilizando una anotación; por ejemplo @Resource(name="jdbc/mydsref") o @EJB(name="java:module/env/myenvref").
Si el nombre de la aplicación no se especifica cuando se inicia el contenedor incorporable, el <app> se debe omitir. No obstante, se debe utilizar el delimitador #. Por ejemplo, Bean.#<module>#<bean>.ResourceRef.BindingName.
Propiedad | Tipo | Descripción |
---|---|---|
Bean.<app>#<module>#<ejb>.ResourceRef.BindingName.<ref> or Interceptor.<app>#<module>#<interceptor>.ResourceRef.BindingName.<ref> | java.lang.String | La serie JNDI para utilizar cuando la referencia de recursos se busca o se inyecta. Debe ser el nombre JNDI de un origen de datos configurado. |
Bean.<app>#<module>#<ejb>.EJBRef.BindingName.<ref-name> or Interceptor.<app>#<module>#<interceptor>.EJBRef.BindingName.<ref> | java.lang.String | La serie JNDI para utilizarla cuando la referencia EJB se busca o se inyecta. Debe ser la serie JNDI java:global, java:app o java:module de un EJB en el contenedor EJB incorporable. |
Bean.<app>#<module>#<ejb>.EnvEntry.Value.<ref-name> or Interceptor.<app>#<module>#<interceptor>.EnvEntry.Value.<ref> | java.lang.String | El valor que se utilizará cuando la entrada de entorno se busca o se inyecta. Esta propiedad altera temporalmente el valor especificado por el valorenv-entry. El valor debe ser válido para el tipo de la entrada de entorno. |
Bean.<app>#<module>#<ejb>.EnvEntry.BindingName.<ref> or Interceptor.<app>#<module>#<interceptor>.EnvEntry.BindingName.<ref> | java.lang.String | La serie JNDI para utilizarla cuando la entrada de entorno se busca o se inyecta. Esto debe ser la serie JNDI java:global, java:app o java:module de otra entrada de entorno en el mismo contenedor de EJB incorporable. |
Bean.<app>#<module>#<ejb>.DataSource.BindingName.<ref> or Interceptor.<app>#<module>#<interceptor>.DataSource.BindingName.<ref> | java.lang.String | La serie JNDI que se utiliza cuando se busca o se inyecta el origen de datos. Debe ser el nombre JNDI de un origen de datos configurado o la serie JNDI java:global, java:app o java:module de otro origen de datos en el mismo contenedor de EJB incorporable. Los desarrolladores de aplicaciones deben utilizar las referencias de recursos en lugar de buscar un origen de datos directamente. Si se ha codificado una aplicación para buscar orígenes de datos directamente, puede utilizar esta propiedad para alterar temporalmente las definiciones de orígenes de datos incluidas en la aplicación. Consulte el Information Center para obtener más información sobre las definiciones de orígenes de datos. |
Utilice las propiedades siguientes para configurar los enlaces para un EJB con dos referencias y un interceptor con una entrada de entorno:
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

Bean.#TestModule#TestBean.DataSource.BindingName.java\:module/env/TestDataSource=jdbc/MyDataSource
gotchaPropiedad | Tipo | Valor por omisión | Descripción |
---|---|---|---|
com.ibm.websphere.securityEnabled | java.lang.String | false | Determina si se comprueban los roles de seguridad. Los valores válidos son false (valor predeterminado) o true. Si es true, los roles de seguridad se comprueban; si es false, los roles de seguridad no se comprueban. |
role.<role_name> | java.lang.String | Correlaciona un rol EJB con uno o varios usuarios. El <nombre_rol> es un rol asignado a un método, ya sea mediante la anotación @RolesAllowed o mediante el descriptor de despliegue <method-permission>. El valor es una serie de nombres de usuario delimitada por comas, por ejemplo "bob, mary, john". A los usuarios de la lista se les permite ejecutar métodos que requieren el <nombre_rol>. | |
role.runAs.<nombre_rol> | java.lang.String | Correlaciona un rol de EJB con un usuario. El <nombre_rol> es un rol asignado a un bean o método, ya sea a través de la anotación @RunAs o mediante el descriptor de despliegue <run-as>. El valor es un solo nombre de usuario. El nombre de usuario se utiliza para cualquier autorización necesaria para el bean mientras se está ejecutando. | |
user.invocation | java.lang.String | Define el usuario que puede utilizarse para la autorización cuando el bean se invoca. El valor es un solo nombre de usuario. El contenedor comprueba que este usuario esté correlacionado con un rol al que se le permita ejecutar cualquier método ejecutado. |
La tabla siguiente contiene propiedades de configuración del comportamiento del contenedor de transacciones locales (LTC). Para obtener una explicación de LTC, lea la información acerca del contenedor de transacciones locales. Cada propiedad es específica de un bean.
Si el nombre de la aplicación no se especifica cuando se inicia el contenedor incorporable, <nombre_aplicación> deberá omitirse. No obstante, se debe utilizar el delimitador #. Por ejemplo, Bean.#<nombre_módulo>#<nombre_bean>LocalTransaction.Resolver.
Propiedad | Tipo | Valor por omisión | Descripción |
---|---|---|---|
Bean.<nombre_aplicación>#<nombre_módulo>#<nombre_bean>.LocalTransaction.Resolver | java.lang.String | Application | Determina la entidad que se encarga de la resolución de transacciones locales. Los valores válidos son Application (valor predeterminado) o ContainerAtBoundary. |
Bean.<nombre_aplicación>#<nombre_módulo>#<nombre_bean>.LocalTransaction.UnresolvedAction | java.lang.String | Retrotracción | Determina la acción realizada para las transacciones locales no resueltas. Los valores válidos son Rollback (valor predeterminado) o Commit. |
La tabla siguiente contiene las propiedades de configuración del comportamiento de XA.
Propiedad | Tipo | Valor por omisión | Descripción |
---|---|---|---|
com.ibm.websphere.tx.acceptHeuristicHazard | java.lang.String | false | Especifica si el soporte de último participante está habilitado para todos los módulos. El valor predeterminado es false. |
com.ibm.websphere.tx.auditRecovery | java.lang.String | true | Especifica si el proceso de recuperación genera mensajes de auditoría, que indican el proceso de recursos XA y de XID durante la recuperación. Cuando no se especifica ninguna recuperación de auditoría, sólo se genera un único mensaje de recuperación junto con el número de transacciones recuperadas, a menos que se produzca un error. |
com.ibm.websphere.tx.clientInactivityTimeout | java.lang.String | 0 | Especifica la duración máxima, en segundos, entre solicitudes transaccionales. Cualquier periodo de inactividad del cliente que exceda este valor de tiempo de espera hará que la transacción se retrotraiga. El valor predeterminado, 0, significa que existe ningún límite. |
com.ibm.websphere.tx.enableLoggingForHeuristicReporting | java.lang.String | false | Esta propiedad permite el registro cronológico de informes heurísticos. Si el soporte del último participante está habilitado, los informes de resultados heurísticos que pueden producirse cuando el servidor no está disponible requieren que se grabe información adicional en el registro de transacciones. Si se habilita, se grabará un registro adicional para cualquier transacción que implique recursos de compromiso tanto de 1 fase como de 2 fases. No se escriben informes adicionales para las transacciones que no impliquen ningún recurso de compromiso de 1 fase. |
com.ibm.websphere.tx.heuristicRetryLimit | java.lang.String | 0 | Especifica el número de veces que el servicio de transacciones reintenta una señal de finalización, como una confirmación o una retrotracción. Los reintentos se producen después de una excepción transitoria de un gestor de recursos. El valor predeterminado, 0, indica que no hay ningún límite en el número de reintentos. |
com.ibm.websphere.tx.heuristicRetryWait | java.lang.String | 0 | Especifica el número de segundos que el servicio de transacciones espera antes de reintentar una señal de finalización, como una confirmación o una retrotracción, después de producirse una excepción transitoria de un gestor de recursos. |
com.ibm.websphere.tx.LPSHeuristicCompletion | java.lang.String | RETROTRAER (no es sensible a mayúsculas y minúsculas) |
La acción de finalización heurística que realizará el servicio de transacciones en una transacción con el soporte de último participante cuando el resultado del recurso de compromiso de una fase es desconocido. Los valores ROLLBACK o COMMIT hacen que los recursos de compromiso de dos fases se completen de la forma correspondiente. El valor MANUAL significa que el servicio de transacciones no realizará ninguna acción y dejará los recursos de compromiso de dos fases como dudosos. El valor predeterminado es ROLLBACK. |
com.ibm.websphere.tx.maximumTransactionTimeout | java.lang.String | 300 | Especifica, en segundos, el límite superior del valor de tiempo de espera de transacción. Este valor de tiempo de espera restringe el límite superior de todos los demás valores de tiempo de espera de transacción. |
com.ibm.websphere.tx.totalTranLifetimeTimeout | java.lang.String | 120 | Especifica el tiempo máximo, en segundos, permitido para una transacción antes de que el servicio de transacciones inicie el tiempo de espera. Las transacciones que no empiezan el proceso de finalización antes de que se produzca el tiempo de espera se retrotraen. |
com.ibm.websphere.tx.tranLogDirectory | java.lang.String | profiles\nombre servidor\tranlog | Especifica el nombre de un directorio de este servidor donde el servicio de transacciones almacena los archivos de registro cronológico para la recuperación. |
com.ibm.websphere.tx.tranLogSize | java.lang.String | 1024 | Especifica el tamaño, en kilobytes, de los archivos de registro de transacciones. El tamaño de archivo mínimo es de 64KB. El valor predeterminado establece un tamaño de archivo de 1MB. |