2012-04-09 135 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數據文件。