Resolución de problemas de validación de beans en módulos RAR

Los beans RAR que no pasan la validación no se ponen en servicio. Cuando se producen violaciones de restricciones, las aplicaciones sufren problemas de conectividad de recursos que son distintos según el tipo de bean y cómo se despliegue el archivo RAR. En este tema se explica cómo detectar, solucionar y evitar estos problemas conocidos.

Violaciones de restricciones de bean RAR

WebSphere Application Server muestra una excepción de violación de restricción e informa de todas las violaciones de restricciones en el registro del sistema cuando se validan las instancias del bean RAR que violan una o más restricciones. La causa de cualquier violación de restricción se debe determinar y resolver para restaurar la conectividad completa para el recurso afectado.

La determinación de problemas empieza consultando en la documentación del proveedor de RAR los valores válidos de las propiedades de configuración que se indican en la violaciones. Si los valores de las propiedades no son válidos, se deben volver a configurar de acuerdo con la documentación y se debe reiniciar el adaptador de recursos. Si el adaptador está incorporado en una aplicación, reinicie la aplicación para reiniciar el adaptador; si el adaptador es autónomo, reinicie el servidor de aplicaciones.

Si se indica un valor de propiedad de configuración válido en una violación, es posible que la restricción se haya especificado incorrectamente para el bean o que el bean esté calculando incorrectamente el valor de la propiedad. En estos casos, el proveedor de RAR debe corregir el problema.

Si el problema es debido a una definición de restricción (implementación) anómala, el proveedor de validación de beans debe corregir el problema. En estos casos, si del RAR lo proporciona IBM®, o si el RAR utiliza la implementación de validación del bean proporcionado por el servidor de aplicaciones, póngase en contacto con el personal de soporte de IBM para continuar con la determinación de problemas.

Beans ResourceAdapter

Los beans ResourceAdapter se validan cuando el servidor inicia un adaptador de recursos J2C (Java™ 2 Connector). Cuando la validación falla, el servidor rechaza la instancia de ResourceAdapter y la excepción de violación de restricción resultante hace que el adaptador de recursos J2C falle. Las aplicaciones no puede establecer conexiones de salida al recurso y el recurso no puede entregar mensajes a las aplicaciones. Para un adaptador incorporado, la aplicación que incluye el adaptador no se inicia. Las transacciones dudosas que implican el recurso no se pueden recuperar.

El ejemplo siguiente es un bean de ResourceAdapter, MyConnector, en la dirección de almacenamiento dinámico 7efa7efa. Se violan dos restricciones de validación. La excepción de violación de restricción provoca que J2CResourceAdapter_1285109360562 falle:
[9/29/10 10:51:24:125 CDT] 00000000 BeanValidatio E   
 J2CA0238E: JavaBean com.my.company.adapter.MyConnector@7efa7efa failed Bean Validation due to one or more invalid
 configuration settings indicated in the following list of constraint violations: 

		ConstraintViolationImpl{interpolatedMessage='El tamaño mínimo es 2', propertyPath=dataBaseName, rootBeanClass=class com.my.company.adapter.MyConnector, messageTemplate='El tamaño mínimo es 2'}
		ConstraintViolationImpl{interpolatedMessage='debe ser mayor que o igual a 10', propertyPath=idleTimeout, rootBeanClass=class
    com.my.company.adapter.MyConnector, messageTemplate='{javax.validation.constraints.Min.message}'}
…
[9/29/10 10:51:24:468 CDT] 00000000 RALifeCycleMa E   J2CA0128E: Se ha producido una excepción al intentar iniciar ResourceAdapter cells/IBM-46DF84D297BNode01Cell/nodes/IBM-46DF84D297BNode01/resources.xml#J2CResourceAdapter_1285109360562. La excepción es: 
com.ibm.ejs.j2c.metadata.ConstraintViolationException
		en com.ibm.ejs.j2c.metadata.BeanValidationHelper.validate(
		en com.ibm.ejs.j2c.RAWrapperImpl.createAndConfigureRA(
		en com.ibm.ejs.j2c.RAWrapperImpl.startRA(
		en com.ibm.ejs.j2c.RALifeCycleManagerImpl.startRA(
		en com.ibm.ejs.j2c.RALifeCycleManagerImpl.resourceProviderEvent(
. . .

Beans ManagedConnectionFactory

Los JavaBeans ManagedConnectionFactory se validan durante la búsqueda inicial de JNDI (Java Naming and Directory Interface) de una fábrica de conexiones J2C.

Cuando la validación falla, el servidor de aplicaciones rechaza la instancia de ManagedConnectionFactory y muestra una excepción de denominación a la aplicación que realiza la búsqueda. Esta excepción indica la excepción de violación de restricción causal (javax.validation.ConstraintValidationException).

Las aplicaciones no pueden establecer conexiones de salida al recurso. Las transacciones dudosas iniciadas a través de conexiones con el recurso creadas por la fábrica de conexiones no se pueden recuperar.

El ejemplo siguiente es un bean ManagedConnectionFactory, MyMcf, en la dirección de almacenamiento dinámico 7dd07dd0. Se violan dos restricciones de validación. La excepción de violación de restricción hace que la aplicación no pueda obtener una fábrica de conexiones que es necesaria para crear una conexión con el recurso, MyConnector:
[9/30/10 7:58:58:734 CDT] 00000023 BeanValidatio E  
 J2CA0238E: JavaBean com.my.company.adapter.MyMcf@7dd07dd0 failed Bean Validation due to one or more invalid
  configuration settings indicated in the following list of constraint violations: 
		ConstraintViolationImpl{interpolatedMessage='debe ser menor o igual que 30', propertyPath=mcfProperty2, rootBeanClass=class com.my.company.adapter.MyMcf, messageTemplate='{javax.validation.constraints.Max.message}'}
		ConstraintViolationImpl{interpolatedMessage='El valor debe ser mayor que 10', propertyPath=mcfProperty4, rootBeanClass=class com.my.company.adapter.MyMcf, messageTemplate='El valor debe ser mayor que 10'}
….
[9/30/10 7:58:58:765 CDT] 00000023 ConnectionFac E   J2CA0009E: Se ha producido una excepción al crear una instancia de la clase ManagedConnectionFactory com.my.company.adapter.MyMcf utilizada por el recurso j2c/MyConnector : com.ibm.ejs.j2c.metadata.ConstraintViolationException
		en com.ibm.ejs.j2c.metadata.BeanValidationHelper.validate(
		en com.ibm.ejs.j2c.ServerFunction.validate(
		en com.ibm.ejs.j2c.J2CUtilityClass.createMCFEntry(
	…
		en javax.naming.InitialContext.lookup(
		en com.my.company.app.MyEjbImpl.testJbv(
. . .     

Violaciones de beans ActivationSpec

Los beans ActivationSpec se validan cuando se inician las aplicaciones. Esto es cuando el servidor de aplicaciones activa inicialmente puntos finales de mensajes enlazados a especificaciones de activación J2C. Estas especificaciones de activación nombran la clase de bean en su configuración. Cuando la validación falla, el punto final no puede activarse y la excepción de violación de restricción resultante hace que la aplicación que alberga el punto final falle.

Como el adaptador de recursos J2C que contiene la especificación de activación está iniciado, las aplicaciones pueden seguir estableciendo conexiones con el recurso. El recurso puede entregar mensajes a los puntos finales que se hayan activado correctamente. Si la especificación de activación se define en un adaptador de recursos incorporado, el servidor detiene el adaptador durante la detención de la aplicación. Los mensajes transaccionales fallidos entregados por instancias anteriores del adaptador de recursos que contienen la especificación de activación no se pueden recuperar.

El ejemplo siguiente es un bean ActivationSpec, MyActSpec, en la dirección de almacenamiento dinámico 51625162. Se violan dos restricciones de validación. El registro muestra la excepción de violación de restricción que hace que la aplicación, my_company_app, falle:
[9/29/10 10:52:05:125 CDT] 00000009 BeanValidatio E  
 J2CA0238E: JavaBean com.my.company.adapter.MyActSpec@51625162 failed Bean Validation due to one or more invalid
  configuration settings indicated in the following list of constraint violations: 
		ConstraintViolationImpl{interpolatedMessage='El tamaño debe ser entre 2 y 4', propertyPath=asProperty1, rootBeanClass=class com.my.company.adapter.MyActSpec, messageTemplate='El tamaño debe ser entre 2 y 4'}
		ConstraintViolationImpl{interpolatedMessage='Debe ser < 30', propertyPath=asProperty2, rootBeanClass=class com.my.company.adapter.MyActSpec, messageTemplate='Debe ser < 30'}
[9/29/10 10:52:05:171 CDT] 00000009 RAWrapperImpl E  
 J2CA0089E: The method activateEndpoint on ResourceAdapter JavaBean
   cells/IBM-46DF84D297BNode01Cell/nodes/IBM-46DF84D297BNode01/resources.xml#J2CResourceAdapter_1285109389828
 failed with the following exception:
  javax.resource.ResourceException: com.ibm.ejs.j2c.metadata.ConstraintViolationException
		en com.ibm.ejs.j2c.ActivationSpecWrapperImpl.validateActivation…(	en com.ibm.ejs.j2c.ActivationSpecWrapperImpl.createAndInitializ…(
		en com.ibm.ejs.j2c.ActivationSpecWrapperImpl.activateEndpoint(
…
[9/29/10 10:52:05:750 CDT] 00000009 ApplicationMg A   WSVR0217I: Se está deteniendo la aplicación: my_company_app
. . .

Beans AdministeredObject

Los beans AdministeredObject se validan cuando el servidor inicia un adaptador de recursos J2C que contiene el objeto administrado en su configuración. Cuando la validación falla, el servidor rechaza la instancia de AdministeredObject y la excepción de violación de restricción resultante hace que el adaptador de recursos falle.

El ejemplo siguiente es un bean AdministeredObject, MyAdminObj, en la dirección de almacenamiento dinámico 3a803a80. Se violan dos restricciones de validación. El registro muestra la excepción de violación de restricción que hace que el adaptador de recursos falle:
[9/29/10 10:51:25:125 CDT] 00000000 BeanValidatio E  
 J2CA0238E: JavaBean com.my.company.adapter.MyAdminObj@3a803a80 failed Bean Validation due to one or more invalid
  configuration settings indicated in the following list of constraint violations: 
		ConstraintViolationImpl{interpolatedMessage='El valor debe ser mayor que 10', propertyPath=aoProperty4, rootBeanClass=class com.my.company.adapter.MyAdminObj, messageTemplate='El valor debe ser mayor que 10'}
…
[9/29/10 10:51:25:218 CDT] 00000000 AdminObjectSe A  
 J2CA0017I: Se ha producido una excepción al crear el despliegue serializable para JNDI de jms/MyAdminObj :
 com.ibm.ejs.j2c.metadata.ConstraintViolationException
		en com.ibm.ejs.j2c.metadata.BeanValidationHelper.validate(
		en com.ibm.ejs.j2c.metadata.BeanValidationHelper.validate(
		en com.ibm.ejs.j2c.AdminObjectSerBuilderImpl._createAndValidate…(
		en com.ibm.ejs.j2c.AdminObjectSerBuilderImpl.createAndValidate…(
		en com.ibm.ejs.j2c.RALifeCycleManagerImpl.startRA(
. . . 

Icon that indicates the type of topic Reference topic



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