2014-09-19 79 views
1

我打電話從CloverETL runGraph類在Ant腳本這樣通JVM參數傳遞給在ant腳本三葉草

 <java classname="org.jetel.main.runGraph" fork="true" failonerror="true"> 

      <arg value="${canadapostdir}/metadata/CanadaPostADDTypes34.grf"/> 
        <classpath> 
          <pathelement path="${ear.lib}/clover.jar" /> 
          <pathelement path="${ear.libext}/oracle.jdbc/ojdbc6.jar" /> 
          <pathelement path="${ear.libext}/mysql.jdbc/mysql-connector-java-3.0.15-ga-bin.jar" /> 
          <fileset dir="${ear.lib}"> 
            <include name="*.jar"/> 
          </fileset> 
        </classpath> 
      </java> 

當三葉草開始我可以看到,在日誌中:

[java] [Clover] starting WatchDog thread ... 
    [java] [WatchDog] Thread started. 
    [java] [WatchDog] Running on 16 CPU(s) max available memory for JVM 3005703 kB 
    [java] [Clover] Initializing phase: 0 
    [java] all edges initialized successfully... 
    [java] initializing nodes: 
    [java]  INPUT ...OK 
    [java]  TYPEFILTER ...OK 
    [java]  REF ...OK 
    [java]  OUTPUT ...OK 
    [java] [Clover] phase: 0 initialized successfully. 
    [java] [WatchDog] Starting up all nodes in phase [0] 
    [java] [WatchDog] INPUT ... started 
    [java] [WatchDog] TYPEFILTER ... started 
    [java] [WatchDog] REF ... started 
    [java] [WatchDog] OUTPUT ... started 
    [java] [WatchDog] Sucessfully started all nodes in phase! 

我問題是:如何使三葉草運行的內存超過3005703 kB?運行此腳本的服務器上實際上有100G的免費ram。

編輯:我知道我所看到的三葉草不在單獨的jvm上運行,並且它使用當前JVM實例上的所有可用內存。我需要找到一種方法來啓動一個單獨的jvm上的三葉草,我可以通過-Xms10240m -Xmx10240m。

回答

3

<jvmarg>嵌套元素用於傳遞JVM參數:

<java classname="org.jetel.main.runGraph" fork="true" failonerror="true"> 

     <arg value="${canadapostdir}/metadata/CanadaPostADDTypes34.grf"/> 
     <jvmarg value="-Xms1024M"/> 
     <jvmarg value="-Xmx10240M"/> 
     <classpath> 
       <pathelement path="${ear.lib}/clover.jar" /> 
       <pathelement path="${ear.libext}/oracle.jdbc/ojdbc6.jar" /> 
       <pathelement path="${ear.libext}/mysql.jdbc/mysql-connector-java-3.0.15-ga-bin.jar" /> 
        <fileset dir="${ear.lib}"> 
         <include name="*.jar"/> 
        </fileset> 
     </classpath> 
</java> 

執行在另一VM的類。這就是fork=true的含義。

+0

工作就像一個魅力謝謝 – 2014-09-19 18:46:27