From: Le, Minhha-P. <Min...@gd...> - 2009-05-22 20:23:08
|
Thanks Wolfgang for your helpful information. I'm not accessing embeded db and you're right to assume that we're talking to a remote db. I read your reply many times as well as trying to figure out how my query construct the nodes but I can't really tell if the query we use will in fact contruct in-memory nodes. In another words, how can I tell if my items in the resource set are persistent nodes or tell if my query construct in-memory node for the items in the resource set? I store my resources using the method storeResource(org.xmldb.apibase.Resource) of the org.xmldb.apibase.Collection interface and query it using the method query(xpath-query-string) of the org.xmldb.api.modules.XpathQueryService interface. Thanks in advance and I'm looking forward for your answer. Minhha Le -----Original Message----- From: Wolfgang [mailto:wol...@ex...] Sent: Thursday, May 21, 2009 4:47 AM To: Le, Minhha-P64672 Cc: exi...@li... Subject: Re: [Exist-open] When does eXist load its Resource content? > 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 |