2012-04-09 138 views
0

我使用Orbeon Forms和eXist在那里存储填充表单。我有下一个问题,eXist每天增长超过500 MB。如果我将保留整个数据库的副本,那么将删除所有数据库文件,并恢复保留副本,然后数据库只有1 GB大,但几天后它变成4 GB,并且增长,增长和增长...越来越eXist数据库

首先,我使用的是嵌入式eXist 1.2.6,我认为它是不稳定的版本,因此我将所有数据移动到了外部eXist 1.4.1,但仍然在新版本中继续增长。

这里的conf.xml中使用存在/ WEB-INF

<?xml version="1.0" encoding="UTF-8"?> 
<exist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema/conf.xsd"> 
    <cluster dbaPassword="" dbaUser="admin" exclude="/db/system,/db/system/config" 
    journalDir="data/journal" 
    protocol="UDP(mcast_addr=228.1.2.3;mcast_port=45566;ip_ttl=8;ip_mcast=true;mcast_send_buf_size=800000;mcast_recv_buf_size=150000;ucast_send_buf_size=800000;ucast_recv_buf_size=150000;loopback=true):PING(timeout=2000;num_initial_members=3;up_thread=true;down_thread=true):MERGE2(min_interval=10000;max_interval=20000):FD(shun=true;up_thread=true;down_thread=true;timeout=2500;max_tries=5):VERIFY_SUSPECT(timeout=3000;num_msgs=3;up_thread=true;down_thread=true):pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192;up_thread=true;down_thread=true):UNICAST(timeout=300,600,1200,2400,4800;window_size=100;min_threshold=10;down_thread=true):pbcast.STABLE(desired_avg_gossip=20000;up_thread=true;down_thread=true):FRAG(frag_size=8192;down_thread=true;up_thread=true):pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=true;print_local_addr=true)"/> 


    <db-connection cacheSize="200M" collectionCache="200M" database="native" files="/opt/alfresco-3.4.c/tomcat/work/exist/data/" pageSize="4096"> 

     <recovery enabled="yes" group-commit="no" journal-dir="/opt/alfresco-3.4.c/tomcat/work/exist/recovery-data/" size="100M" sync-on-commit="yes" force-restart="yes" consistency-check="yes"/> 

     <watchdog output-size-limit="10000" query-timeout="180000"/> 

    </db-connection> 

    <indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="yes" stemming="no" suppress-whitespace="none" tokenizer="org.exist.storage.analysis.SimpleTokenizer" track-term-freq="yes"> 

      <modules> 
      <module id="ngram-index" file="ngram.dbx" n="3" class="org.exist.indexing.ngram.NGramIndex"/> 

      <module id="lucene-index" buffer="32" class="org.exist.indexing.lucene.LuceneIndex"/> 
     </modules> 

     <stopwords file="stopword"/> 

     <index> 
      <fulltext attributes="false" default="none"> 
       <exclude path="/auth"/> 
      </fulltext> 
     </index> 
    </indexer> 

    <scheduler> 

    </scheduler> 
    <serializer add-exist-id="none" compress-output="no" enable-xinclude="yes" enable-xsl="no" indent="yes" match-tagging-attributes="no" match-tagging-elements="no"> 
    </serializer> 

    <transformer class="org.apache.xalan.processor.TransformerFactoryImpl" caching="yes"/> 

    <validation mode="no"> 
     <entity-resolver> 
      <catalog uri="${WEBAPP_HOME}/WEB-INF/catalog.xml"/> 
     </entity-resolver> 
    </validation> 

    <xquery enable-java-binding="no" disable-deprecated-functions="no" enable-query-rewriting="yes" backwardCompatible="no" raise-error-on-failed-retrieval="no"> 
     <builtin-modules> 
      <module uri="http://exist-db.org/xquery/lucene" class="org.exist.xquery.modules.lucene.LuceneModule"/>   
      <module uri="http://exist-db.org/xquery/ngram" class="org.exist.xquery.modules.ngram.NGramModule"/> 

      <module uri="http://exist-db.org/xquery/examples" class="org.exist.xquery.modules.example.ExampleModule"/>   
      <module uri="http://exist-db.org/xquery/request" class="org.exist.xquery.functions.request.RequestModule"/>    
      <module uri="http://exist-db.org/xquery/response" class="org.exist.xquery.functions.response.ResponseModule"/>    
      <module uri="http://exist-db.org/xquery/session" class="org.exist.xquery.functions.session.SessionModule"/>    
      <module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule"/> 
      <module uri="http://exist-db.org/xquery/text" class="org.exist.xquery.functions.text.TextModule"/>   
      <module uri="http://exist-db.org/xquery/transform" class="org.exist.xquery.functions.transform.TransformModule"/>    
      <module uri="http://exist-db.org/xquery/util" class="org.exist.xquery.functions.util.UtilModule"/>    
      <module uri="http://exist-db.org/xquery/validation" class="org.exist.xquery.functions.validation.ValidationModule"/>   
      <module uri="http://exist-db.org/xquery/xmldb" class="org.exist.xquery.functions.xmldb.XMLDBModule"/>    

      <module uri="http://expath.org/ns/http-client" class="org.expath.exist.HttpClientModule"/>   
      <module uri="http://www.expath.org/mod/http-client" src="resource:org/expath/www/mod/http-client/http-client.xqm"/>  

      <module uri="http://exist-db.org/xquery/httpclient" class="org.exist.xquery.modules.httpclient.HTTPClientModule"/> 

      <module uri="http://exist-db.org/xquery/kwic" src="resource:org/exist/xquery/lib/kwic.xql"/> 

      <module uri="http://www.json.org" src="resource:org/exist/xquery/lib/json.xq"/> 

      <module uri="http://exist-db.org/xquery/sequences" src="resource:org/exist/xquery/lib/sequences.xq"/> 

      <module uri="http://exist-db.org/versioning" src="resource:org/exist/versioning/xquery/versioning.xqm"/> 

      <module uri="http://exist-db.org/xquery/testing" src="resource:org/exist/xquery/lib/test.xq"/> 

      <module uri="http://xproc.net/xproc" src="resource:net/xproc/xprocxq/src/xquery/xproc.xqm"/>   
      <module uri="http://xproc.net/xproc/const" src="resource:net/xproc/xprocxq/src/xquery/const.xqm"/>   
      <module uri="http://xproc.net/xproc/ext" src="resource:net/xproc/xprocxq/src/xquery/ext.xqm"/>  
      <module uri="http://xproc.net/xproc/functions" src="resource:net/xproc/xprocxq/src/xquery/functions.xqm"/>   
      <module uri="http://xproc.net/xproc/naming" src="resource:net/xproc/xprocxq/src/xquery/naming.xqm"/> 
      <module uri="http://xproc.net/xproc/opt" src="resource:net/xproc/xprocxq/src/xquery/opt.xqm"/> 
      <module uri="http://xproc.net/xproc/std" src="resource:net/xproc/xprocxq/src/xquery/std.xqm"/>  
      <module uri="http://xproc.net/xproc/util" src="resource:net/xproc/xprocxq/src/xquery/util.xqm"/>  

      <module uri="http://exist-db.org/xquery/file" class="org.exist.xquery.modules.file.FileModule"/> 

      <module uri="http://exist-db.org/xquery/xqdoc" class="org.exist.xqdoc.xquery.XQDocModule"/> 

     </builtin-modules> 
    </xquery> 
    <xupdate allowed-fragmentation="5" enable-consistency-checks="no"/> 

</exist> 

它是一个常见的问题? 或者我可能配置了eXist错误?

感谢您的任何帮助。

+0

正如@jeowiz建议的那样,您可能想在exit-open邮件列表中提出这个问题,但每天增长500 MB听起来像很多:关于每天在该系统上填充多少新表单?你正在使用哪个版本的Orbeon Forms?我在问,因为如果你使用3.8,eXist也用于缓存,这可能解释你所看到的问题。在那种情况下,我建议你更新到3.9,使用Ehcache。 – avernet 2012-04-10 17:47:33

+0

是的你是对的,我正在使用3.8版本。所以更新到3.9是唯一的方法? Orbeon无法配置为使用其他缓存? – 2012-04-10 19:40:22

+0

对不起,使用Ehcache的能力在3.8中并不存在。而在3.9版本中,我们转而使用Ehcache,因为使用Ehcache进行缓存而非eXist确实没有缺点。所以恐怕没有解决方法来升级到3.9。 – avernet 2012-04-10 23:51:05

回答

0

感谢@joewiz和@avernet

现在我可以回答我的问题。主要问题是我使用orbeon 3.8,它使用eXist DB在那里存储缓存。更新到3.9版本将有所帮助,因为3.9使用Ehcahe。

作为暂时的解决办法,我配置orbeon 3.8存储数据,从而为外部存在属性 - local.xml中我添加

<property as="xs:anyURI" name="oxf.fr.persistence.service.exist.uri" value="http://127.0.0.1:8080/exist/rest/db"/> 

财产告诉here,并且内嵌存在存储缓存为应该设置下一个属性

<property as="xs:anyURI" name="oxf.xforms.store.application.uri"     value="xmldb:exist:///"/>      
<property as="xs:string" name="oxf.xforms.store.application.collection"   value="/db/orbeon/xforms/cache/"/>           

所以当servlet容器停止时,我可以安全地删除嵌入的eXist数据文件。