Quando você configura o eXtreme Scale, é possível encontrar um comportamento inesperado com seus arquivos XML. As seções a seguir descrevem problemas que podem ocorrer e soluções.
A política de implementação e os arquivos XML de ObjectGrid devem corresponder. Se eles não possuem nomes de ObjectGrid e nomes de mapas correspondentes, ocorrem erros.
Se a lista de backingMap em um arquivo XML de ObjectGrid não corresponder à lista de referências de mapas em um arquivo XML da política de implementação, ocorre um erro no servidor de catálogos.
Por exemplo, o seguinte arquivo XML de ObjectGrid e arquivo XML da política de implementação são utilizados para iniciar um processo de contêiner. O arquivo da política de implementação possui mais referências de mapas que são listados no arquivo XML de ObjectGrid.
ObjectGrid.xml - exemplo incorreto
<?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 - exemplo incorreto
<?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: A referência do ledger do mapa no mapSet mapSet1 do arquivo do descritor de implementação de contabilidade do ObjectGridSe a política de implementação estiver sem referências de mapa para os backingMaps listados no arquivo XML do ObjectGrid, ocorrerá uma mensagem de erro no arquivo SystemOut.log. Por exemplo:
não faz referência a um mapa de retorno válido do XML do ObjectGrid .
CWOBJ3178E: O ledger do mapa na contabilidade do ObjectGrid referido no XML do ObjectGrid não foi localizado no arquivo do descritor de implementação.
Solução: Determine qual arquivo tem a lista correta e altere o código relevante de acordo.
O nome do ObjectGrid é referido no arquivo XML ObjectGrid e no arquivo XML da política de implementação.
Mensagem: Uma ObjectGridException ocorre causada pela exceção de IncompatibleDeploymentPolicyException. A seguir, está um exemplo.
Causado por: com.ibm.websphere.objectgrid.IncompatibleDeploymentPolicyException: O objectgridDeployment com "accountin" de objectGridName não possui um objectGrid correspondente no XML do ObjectGrid.
O arquivo XML ObjectGrid é a lista principal dos nomes ObjectGrid. Ocorrerá um erro se uma política de implementação possuir um nome ObjectGrid que não está contido no arquivo XML ObjectGrid.
Solução: Verifique detalhes, como a ortografia do nome do ObjectGrid. Remova quaisquer nomes extras ou inclua nomes ObjectGrid ausentes nos arquivos XML ObjectGrid ou da política de implementação. Na mensagem de exemplo, o objectGridName está escrito incorretamente como "accountin" em vez de "accounting".
Se a um destes atributos for designado um valor inválido, a validação XML falhará. No arquivo XML de exemplo a seguir, é utilizado um valor incorreto de INVALID_COPY_MODE:
exemplo 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>
A mensagem a seguir aparece no log.
CWOBJ2403E: O arquivo XML é inválido. Foi detectado um problema com < null > na linha 5.
A mensagem de erro é cvc-enumeration-valid: O valor 'INVALID_COPY_MODE' não possui uma faceta válida com relação à
enumeração'[COPY_ON_READ_AND_COMMIT, COPY_ON_READ, COPY_ON_WRITE, NO_COPY,COPY_TO_BYTES]'. Ela deve ser um valor a partir da enumeração.
atributos ausentes - XML de exemplo
<?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>
Mensagem:
CWOBJ2403E: O arquivo XML é inválido. Foi detectado um problema com < null > na linha 7. A mensagem de erro é: The end-tag for element type "objectGrid" must end with a '>' delimiter.
Ocorre uma ObjectGridException sobre o arquivo XMl inválido com o nome do arquivo XML.
Solução: Certifique-se de que as tags e os atributos necessários apareçam nos arquivos XML com o formato correto.
CWOBJ2403E: O arquivo XML é inválido. Foi detectado um problema com < null > na linha 7. A mensagem de erro é: Open quote is expected for attribute "maxSyncReplicas" associated with an element type "mapSet".
Uma ObjectGridException sobre o arquivo XML inválido também ocorre.
Solução: Várias soluções podem ser usadas para um determinado erro de sintaxe XML. Consulte a documentação relevante sobre a gravação de script XML.
Mensagem:
Se o atributo pluginCollectionRef não corresponder a nenhum dos atributos de ID de algum dos elementos backingMapPluginConfiguration, uma mensagem semelhante à seguinte será exibida no log.
[7/14/05 14:02:01:971 CDT] 686c060e XmlErrorHandl E CWOBJ9002E:
This is an English only Error message: Invalid XML file. Line: 14; URI:
null; Message: Key 'pluginCollectionRef' with
value 'bookPlugins' not found for identity constraint of element 'objectGridConfig'.
O arquivo XML a seguir é utilizado para produzir o erro. Observe que o nome do BackingMap book possui seu atributo pluginCollectionRef configurado como bookPlugins e o backingMapPluginCollection único possui um ID de collection1.
Referenciando um XML de atributo não-existente - exemplo
<?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>
Solução:
Para corrigir o problema, certifique-se de que o valor de cada pluginCollectionRef corresponda ao ID de um dos elementos backingMapPluginCollection. Simplesmente altere o nome de pluginCollectionRef para collection1 para não receber este erro. Outras maneiras de corrigir o problema incluem a alteração do ID do backingMapPluginCollection existente para corresponder ao pluginCollectionRef ou a inclusão de um backingMapPluginCollection adicional com um ID que corresponda ao pluginCollectionRef.
Ao tentar validar o XML com um SDK que não possui a implementação necessária, o log contém o seguinte erro:
A validação XML de XmlConfigBuild está ativada
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)...
O SDK utilizado não contém uma implementação da função JAXP necessária para validar arquivos XML em um esquema.
Solução: Se você desejar validar o XML usando um SDK que não contém a implementação JAXP, faça download do Apache Xerces e inclua seus arquivos Java archive (JAR) no caminho de classe. Para evitar este problema, depois de efetuar download do Xerces e incluir os arquivos JAR no caminho de classe,é possível validar o arquivo XML com êxito.