Я выполняю код в течение долгих часов в рамках стресс-теста на базе данных Oracle и использую версию Java 1.4.2.Короче говоря, я делаю:
while(true)
{
Allocating some memory as a blob
byte[] data = new byte[1000];
stmt = fConnection.prepareStatement(query); // [compiling an insert query which uses the above blob]
stmt.execute(); // I insert this blob-row in the database.
stmt.close();
}
Теперь я хочу запустить этот тест в течение 8-10 часов.Однако, видимо, вставив около 15 миллионов записей, я нажал java.lang.OutOfMemoryError
Я запускаю это с -Xms512m -Xmx2g.Я пытался использовать более высокие значения, но у меня не так много оборудования, и я не думаю, что это требование:
java -Xms512m -Xmx4g -jar XX.jar
Invalid maximum heap size: -Xmx4g
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.
java -Xms2g -Xmx3g -jar XX.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Я запускаю это как многопоточную программу.Таким образом, arnd 10 потоков выполняет вставки.
Есть ли способ, которым я могу обойти эту программу, возможно, без взлома.Я имею в виду, что если я решу запустить это в течение 15-20 часов вместо 8-10 часов.
РЕДАКТИРОВАТЬ: добавлен stmt.close, так как я уже использую это в своем коде.некоторые изменения, основанные на комментариях
Спасибо
PS: извините, не могу опубликовать код из-за NDA