Передать аргументы JVM клеверу в скрипте муравья

Я вызываю класс runGraph из CloverETL в сценарии 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 КБ? На сервере действительно 100 ГБ свободного ОЗУ, на котором работает этот скрипт.

РЕДАКТИРОВАТЬ: я знаю, что я вижу, что клевер не работает на отдельном jvm и что он использует всю свободную память, доступную на текущем экземпляре JVM, я думаю. Мне нужно найти способ запустить клевер на отдельном jvm, который я могу передать -Xms10240m -Xmx10240m.

1 ответ

Решение

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

Вы выполняете класс в другой виртуальной машине. Это то что fork=true средства.

Другие вопросы по тегам