2014-09-19 2 views
1

j'appelle la classe runGraph de CloverETL dans un script ANT comme celui-cipasse args machine virtuelle Java trèfle dans un script fourmi

 <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> 

Lorsque le trèfle de commencer, je peux voir que dans le journal:

[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! 

Mon question est: comment puis-je faire fonctionner trèfle avec plus de mémoire que 3005703 ko? Il ya réellement 100gig de ram libre sur le serveur que ce script est en cours d'exécution.

EDIT: Je sais pour ce que je vois que trèfle ne fonctionne pas sur un jvm séparé et qu'il utilise toute la mémoire libre disponible sur l'instance JVM actuelle je suppose. Je dois trouver un moyen de commencer le trèfle sur un jvm séparé que je peux passer -Xms10240m -Xmx10240m.

Répondre

3

<jvmarg> éléments imbriqués sont utilisés pour passer des arguments 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> 

Vous sont exécuter la classe dans une autre machine virtuelle. C'est ce que signifie fork=true.

+0

A travaillé comme un charme grâce –

Questions connexes