From: Wolfgang <wol...@ex...> - 2009-05-21 11:47:13
|
> When I invoke the query method of org.exist.xmldb.XPathQueryServiceImpl, an > org.xml.db.api.base.ResourceSet is returned. so does eXist load the content > of resources in the ResourceSet into memory right away OR does eXist only > load the content of a resource into memory when we specifically invoke > getContent() method on a particular Resource? It depends on 1) if you access an embeeded db, 2) the data type of the items in the resource set. I assume you are talking to a remote db. If the items in the resource set are persistent nodes which are stored in the db, then eXist will only load the internal id of this node and its document. The resource set does not contain a copy of the actual nodes, but just pointers into the db. Once you access one of the items in the resource set, the corresponding XML fragment will be serialized and sent to the client. If the items in the set are in-memory nodes which were constructed by the query, the resource set will also just contain an id pointing to this node in the server's memory. This means you should be careful if you are creating in-memory copies of large documents. Atomic values in a resource set are always passed to the client immediately. Wolfgang |