Al configurar eXtreme Scale, puede encontrar un comportamiento inesperado de los archivos XML. Las secciones siguientes describen problemas que se pueden producir y sus soluciones.
Los archivos XML de política de despliegue y ObjectGrid deben coincidir. Si no tienen nombres de correlaciones y nombres ObjectGrid coincidentes, se producen errores.
Si la lista de backingMap del archivo XML de ObjectGrid no coincide con la lista de referencias de correlaciones en un archivo XML de política de despliegue, se produce un error en el servidor de catálogo.
Por ejemplo, el siguiente archivo XML de ObjectGrid y archivo XML de política de despliegue se utiliza para iniciar un proceso de contenedor. El archivo de política de despliegue tiene más referencias a correlaciones que se listan en el archivo XML de ObjectGrid.
ObjectGrid.xml - ejemplo incorrecto
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="accounting">
<backingMap name="payroll" readOnly="false" />
</objectGrid>
</objectGrids>
</objectGridConfig>
deploymentPolicy.xml - ejemplo incorrecto
<?xml version="1.0" encoding="UTF-8"?>
<deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">
<objectgridDeployment objectgridName="accounting">
<mapSet name="mapSet1" numberOfPartitions="4" minSyncReplicas="1"
maxSyncReplicas="2" maxAsyncReplicas="1">
<map ref="payroll"/>
<map ref="ledger"/>
</mapSet>
</objectgridDeployment>
</deploymentPolicy>
CWOBJ3179E: La correlación ledger a la que se hace referencia en el mapSet mapSet1 del archivo de descriptor de despliegue de ObjectGrid accounting no hace referencia a una correlación de copia de seguridad válida del XML ObjectGrid.Si a la política de despliegue le faltan referencias de correlación a backingMaps que se enumeran en el archivo XML de ObjectGrid, se genera un mensaje de error en el archivo SystemOut.log. Por ejemplo:
CWOBJ3178E: La correlación de ledger de ObjectGrid accounting a la que se hace referencia en el XML de ObjectGrid no se ha encontrado en el archivo de descriptor de despliegue.
Solución: determine qué archivo tiene la lista correcta y modifique el código relevante según corresponda.
Se hace referencia al nombre del ObjectGrid en el archivo XML de ObjectGrid y en el archivo XML de política de despliegue.
Mensaje: se produce una ObjectGridException debido a una excepción de IncompatibleDeploymentPolicyException. A continuación se muestra un ejemplo.
Causado por: com.ibm.websphere.objectgrid.IncompatibleDeploymentPolicyException: El objectgridDeployment con objectGridName "accountin" no tiene un objectGrid correspondiente en el XML de ObjectGrid.
El archivo XML de ObjectGrid es la lista maestra de nombres de ObjectGrid. Si una política de despliegue tiene un nombre de ObjectGrid que no está incluido en el archivo XML de ObjectGrid, se produce un error.
Solución: compruebe los detalles como por ejemplo la ortografía del nombre de ObjectGrid. Elimine todos los nombres adicionales, o añada los nombres de ObjectGrid que faltan, a los archivos XML de ObjectGrid o de política de despliegue. En el mensaje de ejemplo, se ha escrito incorrectamente el objectGridName como "accountin", en lugar de "accounting".
Si se asigna un valor no válido a uno de estos atributos, no se supera la validación XML. En el siguiente archivo XML de ejemplo, se utiliza un valor de INVALID_COPY_MODE incorrecto:
Ejemplo de INVALID_COPY_MODE
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="accounting">
<backingMap name="payroll" copyMode="INVALID_COPY_MODE"/>
<objectGrid/>
</objectGrids>
</objectGridConfig>
En el registro aparece este mensaje.
CWOBJ2403E: El archivo XML no es válido. Se ha detectado un problema con < null > en la línea 5. El mensaje de error es cvc-enumeration-valid: El valor 'INVALID_COPY_MODE' no es facet-valid respecto a la enumeración '[COPY_ON_READ_AND_COMMIT, COPY_ON_READ, COPY_ON_WRITE, NO_COPY, COPY_TO_BYTES]'. Debe ser un valor de la enumeración.
faltan atributos - XML de ejemplo
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="accounting">
<backingMap name="payroll" />
</objectGrids>
</objectGridConfig>
Mensaje:
CWOBJ2403E: El archivo XML no es válido. Se ha detectado un problema con < null > en la línea 7. El mensaje de error es: El código final del tipo de elemento "objectGrid" debe terminar con un delimitador '>'.
Se produce una ObjectGridException sobre el archivo XML no válido con el nombre del archivo XML.
Solución: asegúrese de que todos los atributos y códigos necesarios aparezcan en los archivos XML con el formato correcto.
CWOBJ2403E: El archivo XML no es válido. Se ha detectado un problema con < null > en la línea 7. El mensaje de error es: se espera una comilla abierta para el atributo "maxSyncReplicas" asociado a un tipo de elemento "mapSet".
También se produce un ObjectGridException acerca del archivo XML no válido.
Solución: se pueden utilizar diversas soluciones para un error de sintaxis XML determinado. Consulte la documentación correspondiente sobre la scritura del script XML.
Mensaje:
Si el atributo pluginCollectionRef no coincide con ningún atributo de ID de ninguno de los elementos backingMapPluginConfiguration, se mostrará en el archivo de registro el siguiente mensaje o uno similar.
[7/14/05 14:02:01:971 CDT] 686c060e XmlErrorHandl E CWOBJ9002E:
Este es un mensaje informativo sólo en inglés: Invalid XML file.
Line: 14; URI: null; Message: Key 'pluginCollectionRef' with
value 'bookPlugins' not found for identity constraint of element 'objectGridConfig'.
Se utiliza el siguiente archivo XML para producir el error. Observe que el nombre del manual BackingMap tiene su atributo pluginCollectionRef establecido en bookPlugins, y la backingMapPluginCollection única tiene un ID de collection1.
referencia a un XML de atributo no existente - ejemplo
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="bookstore">
<backingMap name="book" pluginCollectionRef="bookPlugin" />
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="collection1">
<bean id="Evictor"
className="com.ibm.websphere.objectgrid.plugins.builtins.LRUEvictor" />
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
Solución:
Para corregir el problema, asegúrese de que el valor de cada pluginCollectionRef coincida con el ID de uno de los elementos backingMapPluginCollection. Simplemente cambie el nombre de pluginCollectionRef por collection1 para no recibir este error. De forma alternativa, cambie el ID de la backingMapPluginCollection existente de modo que coincida con pluginCollectionRef, o añada una backingMapPluginCollection adicional con un ID que coincida con pluginCollectionRef para corregir el error.
Cuando intente validar XML con un SDK que no tiene la implementación necesaria, el registro contiene el siguiente error:
XmlConfigBuild XML validation is enabled
SystemErr R com.ibm.websphere.objectgrid
SystemErr R at com.ibm.ws.objectgrid.ObjectGridManagerImpl.getObjectGridConfigurations
(ObjectGridManagerImpl.java:182)
SystemErr R at com.ibm.ws.objectgrid.ObjectGridManagerImpl.createObjectGrid(ObjectGridManagerImpl.java:309)
SystemErr R at com.ibm.ws.objectgrid.test.config.DocTest.main(DocTest.java:128)
SystemErr R Caused by: java.lang.IllegalArgumentException: No attributes are implemented
SystemErr R at org.apache.crimson.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:93)
SystemErr R at com.ibm.ws.objectgrid.config.XmlConfigBuilder.<init>XmlConfigBuilder.java:133)
SystemErr R at com.ibm.websphere.objectgrid.ProcessConfigXML$2.runProcessConfigXML.java:99)...
El SDK que se utiliza no contiene una implementación de la función JAXP que es necesaria para validar archivos XML con un esquema.
Solución: si desea validar el XML utilizando un SDK que no contiene una implementación JAXP, descargue Apache Xerces e incluya sus archivos de archivado Java (JAR) en la classpath. Para evitar este problema, después de descargar Xerces e incluir los archivos JAR en la classpath, podrá validar el archivo de XML satisfactoriamente.