Invalid content was found starting with element 'async-event-queue'
search cancel

Invalid content was found starting with element 'async-event-queue'

book

Article ID: 294015

calendar_today

Updated On:

Products

VMware Tanzu Gemfire

Issue/Introduction

When starting Gemfire CacheServer with cache.xml, the server startup fails due to the error below when trying to add a async-event-queue element to the cache.xml:
......
    <cache-server port="21020" max-connections="800"/>
    <disk-store name="dataStore" allow-force-compaction="true" max-oplog-size="1024"
                queue-size="10000" auto-compact="true">
        <disk-dirs>
            <disk-dir>/home/gpadmin/apps/gemfire9Cluster/server1/storage/datastore</disk-dir>
        </disk-dirs>
    </disk-store>
    <pdx disk-store-name="dataStore" persistent="true" read-serialized="true"/>
    <region-attributes id="paritionAttributes" data-policy="persistent-partition" statistics-enabled="true" disk-store-name="dataStore">
        <eviction-attributes>
            <lru-heap-percentage action="overflow-to-disk"/>
        </eviction-attributes>
    </region-attributes>

    <async-event-queue id="exampleEventsQueue" persistent="true" disk-store-name="dataStore" parallel="false">
        <async-event-listener>
            <class-name>MyAsyncEventListener</class-name>
        </async-event-listener>
    </async-event-queue>
......

When running cacheserver startscript, it shows as the following:
[pivhdsne:gemfire9Cluster]$ ./startServer1.sh 
...The Cache Server process terminated unexpectedly with exit status 1. Please refer to the log file in /home/gpadmin/apps/gemfire96test/server1 for full details.

Exception in thread "main" org.apache.geode.cache.CacheXmlException: While reading Cache XML file:/home/gpadmin/apps/gemfire96test/server1/Server1.xml. Error while parsing XML, caused by org.xml.sax.SAXParseException; lineNumber: 18; columnNumber: 111; cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-event-queue'. One of '{"http://geode.apache.org/schema/cache":disk-store, "http://geode.apache.org/schema/cache":pdx, "http://geode.apache.org/schema/cache":region-attributes, "http://geode.apache.org/schema/cache":jndi-bindings, "http://geode.apache.org/schema/cache":region, "http://geode.apache.org/schema/cache":vm-root-region, "http://geode.apache.org/schema/cache":function-service, "http://geode.apache.org/schema/cache":resource-manager, "http://geode.apache.org/schema/cache":serialization-registration, "http://geode.apache.org/schema/cache":backup, "http://geode.apache.org/schema/cache":initializer, WC[##other:"http://geode.apache.org/schema/cache"]}' is expected.
	at org.apache.geode.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1413)
	at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1248)
	at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:219)
	at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:171)
	at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
	at org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52)
	at org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:887)
	at org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:803)
	at org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:732)
	at org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:251)
Caused by: org.xml.sax.SAXParseException; lineNumber: 18; columnNumber: 111; cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-event-queue'. One of '{"http://geode.apache.org/schema/cache":disk-store, "http://geode.apache.org/schema/cache":pdx, "http://geode.apache.org/schema/cache":region-attributes, "http://geode.apache.org/schema/cache":jndi-bindings, "http://geode.apache.org/schema/cache":region, "http://geode.apache.org/schema/cache":vm-root-region, "http://geode.apache.org/schema/cache":function-service, "http://geode.apache.org/schema/cache":resource-manager, "http://geode.apache.org/schema/cache":serialization-registration, "http://geode.apache.org/schema/cache":backup, "http://geode.apache.org/schema/cache":initializer, WC[##other:"http://geode.apache.org/schema/cache"]}' is expected.
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458)
......
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
	at org.apache.geode.internal.cache.xmlcache.CacheXmlParser.parse(CacheXmlParser.java:224)
	at org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4290)
	at org.apache.geode.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1404)
	... 9 more

In the cacheserver log, it shows the below error message:
[error 2020/11/24 10:04:38.624 CST <main> tid=0x1] Cache initialization for GemFireCache[id = 889753223; isClosing = false; isShutDownAll = false; created = Tue Nov 24 10:04:37 CST 2020; server = false; copyOnRead = false; lockLease = 120; lockTimeout = 60] failed because: org.apache.geode.cache.CacheXmlException: While reading Cache XML file:/home/gpadmin/apps/gemfire96test/server1/Server1.xml. Error while parsing XML, caused by org.xml.sax.SAXParseException; lineNumber: 18; columnNumber: 111; cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-event-queue'. One of '{"http://geode.apache.org/schema/cache":disk-store, "http://geode.apache.org/schema/cache":pdx, "http://geode.apache.org/schema/cache":region-attributes, "http://geode.apache.org/schema/cache":jndi-bindings, "http://geode.apache.org/schema/cache":region, "http://geode.apache.org/schema/cache":vm-root-region, "http://geode.apache.org/schema/cache":function-service, "http://geode.apache.org/schema/cache":resource-manager, "http://geode.apache.org/schema/cache":serialization-registration, "http://geode.apache.org/schema/cache":backup, "http://geode.apache.org/schema/cache":initializer, WC[##other:"http://geode.apache.org/schema/cache"]}' is expected.


Resolution

As the below error message indicates, the "async-event-queue" element is expected to place before "disk-store", "pdx", or "region-attributes".
 failed because: org.apache.geode.cache.CacheXmlException: While reading Cache XML file:/home/gpadmin/apps/gemfire96test/server1/Server1.xml. Error while parsing XML, caused by org.xml.sax.SAXParseException; lineNumber: 18; columnNumber: 111; cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-event-queue'. One of '{"http://geode.apache.org/schema/cache":disk-store, "http://geode.apache.org/schema/cache":pdx, "http://geode.apache.org/schema/cache":region-attributes, "http://geode.apache.org/schema/cache":jndi-bindings, "http://geode.apache.org/schema/cache":region, "http://geode.apache.org/schema/cache":vm-root-region, "http://geode.apache.org/schema/cache":function-service, "http://geode.apache.org/schema/cache":resource-manager, "http://geode.apache.org/schema/cache":serialization-registration, "http://geode.apache.org/schema/cache":backup, "http://geode.apache.org/schema/cache":initializer, WC[##other:"http://geode.apache.org/schema/cache"]}' is expected.

You can resolve this error by placing the "async-event-queue" element before "disk-store" elements.
For example:
......
    <async-event-queue id="exampleEventsQueue" persistent="true" disk-store-name="dataStore" parallel="false">
        <async-event-listener>
            <class-name>MyAsyncEventListener</class-name>
        </async-event-listener>
    </async-event-queue>

    <cache-server port="21020" max-connections="800"/>
    <disk-store name="dataStore" allow-force-compaction="true" max-oplog-size="1024"
                queue-size="10000" auto-compact="true">
        <disk-dirs>
            <disk-dir>/home/gpadmin/apps/gemfire9Cluster/server1/storage/datastore</disk-dir>
        </disk-dirs>
    </disk-store>
    <pdx disk-store-name="dataStore" persistent="true" read-serialized="true"/>
    <region-attributes id="paritionAttributes" data-policy="persistent-partition" statistics-enabled="true" disk-store-name="dataStore">
        <eviction-attributes>
            <lru-heap-percentage action="overflow-to-disk"/>
        </eviction-attributes>
    </region-attributes>
......