I wanted to create 500 rooms at server boot, however server is crashing by doing so. That's why I m creating 100 rooms after every 1 minute but after 3 or 4 db calls, I m getting this error:
java.lang.OutOfMemoryError: PermGen space
Any suggestions ? or whats the best way to achieve this task ?
Here is my code:
Code: Select all
private void CreateRooms() throws SFSCreateRoomException
{
try
{
ISFSArray resRoom = dbManager.executeQuery("{call get_all_rooms(" + roomsRecordOffset + ")}", new Object[]{});
GenericCreateRoom(resRoom);
if(resRoom.size() > 0)
{
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
trace("Create more rooms");
/*try
{
ISFSArray resRoom = dbManager.executeQuery("{call get_all_rooms(" + roomsRecordOffset + ")}", new Object[]{});
trace("In create more rooms " + resRoom.size());
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}*/
try
{
roomsRecordOffset += 200;
CreateRooms();
}
catch (SFSCreateRoomException e)
{
e.printStackTrace();
}
}
},
60000
);
}
else
{
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
trace("No rooms to create");
roomsRecordOffset = 0;
SetRefreshScheduleTimerValue();
}
},
60000
);
}
}
catch (SQLException e)
{
trace(ExtensionLogLevel.WARN, "SQL Failed: " + e.toString());
}
}