Subject IBServer memory problem
Author markovasil
Hi,

I'm having a problem with a Java application connecting Firebird v1.0
running in Windows 2000 using JayBird v1.0.0. The application runs
with
Tomcat 4.0.

Once I start up Tomcat I execute the following piece of code every 10
seconds (using a thread). Ibserver starts up with x amount of memory
and
stays like that for about a minute. After that the process starts
acquiring
memory (about 50k every cycle) unitl crashing the server. Could
someone
please tell me why this could be happening.

thanks!
Marko


// Connect to the database
try {

connection=ConnectionManager.getInstance().getConnection("database");
connection.setAutoCommit(true);
}
catch(ConnectionException CE){
AlertServerErrorMsg.errorMsg(getClass().getName() + " -
Getting
connected - "+CE.getMessage());
}
catch (SQLException sqle) {
AlertServerErrorMsg.errorMsg("Could not set AutoCommit to the
database connection.");
}

try {
/*** TASK ***/
//Busca en la base de datos los SID y SERVIDORES para
mensajes que
no fueron alertados.
//Llama al Stored Procedure

ps = connection.prepareCall("SELECT * FROM
WAP_GET_SID_SERVER_TO_ALERT");
resultSet=ps.executeQuery();

//En caso que haya mensajes que no hayan sido alertados los
agrega
en la cola.

//Obtiene la URL de la cola para enviar la alerta.
String sUrl=(String)urlsQueue.get();
//Devuelve la URL a la Cola.
urlsQueue.put(sUrl);

while(resultSet.next())
if (resultSet.getBoolean("MAILALERT") == true){
getMailsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),resultSet.g
etString("MAIL"),getMailFrom(),resultSet.getString
("SUBJECT"),resultSet.getS
tring("BODY"),getSMTPServer(),1));
} else {
getAlertsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),getPort(),s
Url,getTtl(),getTitle(),getUrgency(),getCount(),1));
}


resultSet.close();

System.out.println("NOW!\n");

/*** UNASSIGNED TASK ***/
//Busca en la base de datos los SID y SERVIDORES para
mensajes
desasignados que no fueron alertados.
//Llama al Stored Procedure

ps = connection.prepareCall("SELECT * FROM
WAP_GET_SID_SERVER_TO_ALERT");
resultSet=ps.executeQuery();

//En caso que haya mensajes que no hayan sido alertados los
agrega
en la cola.

//Obtiene la URL de la cola para enviar la alerta.
sUrl=(String)unassignedUrlsQueue.get();
//Devuelve la URL a la Cola.
unassignedUrlsQueue.put(sUrl);

while(resultSet.next())
if (resultSet.getBoolean("MAILALERT") == true){
getMailsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),resultSet.g
etString("MAIL"),getMailFrom(),resultSet.getString
("SUBJECT"),resultSet.getS
tring("BODY"),getSMTPServer(),3));
} else {
getAlertsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),getPort(),s
Url,getTtl(),getUnassignedTitle(),getUnassignedUrgency
(),getUnassignedCount(
),3));
}


resultSet.close();

/*** TEXT MESSAGE ***/
//Busca en la base de datos los SID y SERVIDORES para
mensajes que
no fueron alertados.
//Llama al Stored Procedure

ps = connection.prepareCall("SELECT * FROM
WAP_GET_SID_SERVER_TO_ALERT");
resultSet=ps.executeQuery();

//En caso que haya mensajes que no hayan sido alertados los
agrega
en la cola.

//Obtiene la URL de la cola para enviar la alerta.
sUrl=(String)textUrlsQueue.get();
//Devuelve la URL a la Cola.
textUrlsQueue.put(sUrl);

while(resultSet.next())
if (resultSet.getBoolean("MAILALERT") == true){
getMailsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),resultSet.g
etString("MAIL"),getMailFrom(),resultSet.getString
("SUBJECT"),resultSet.getS
tring("BODY"),getSMTPServer(),2));
} else {
getAlertsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),getPort(),s
Url,getTtl(),getTextTitle(),getTextUrgency(),getTextCount(),2));
}


resultSet.close();


/*** PHONES **/
//Busca los SID y SERVER a los cuales hay que mandarle una
ALERTA
con la URL.
//Llama al Stored Procedure

ps = connection.prepareCall("SELECT * FROM
WAP_GET_SID_SERVER_TO_ALERT");
resultSet=ps.executeQuery();


//En caso que haya telefonos que no hayan sido alertados los
agrega
en la cola.
while(resultSet.next())
if (resultSet.getBoolean("MAILALERT") == true){
getMailsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),resultSet.g
etString("MAIL"),getMailFrom(),getMailLoginSubject(),getSMTPServer
(),0));
} else {
getAlertsQueue().put(new
ASAlert(resultSet.getString("SID"),resultSet.getString
("SERVER"),getPort(),g
etLoginUrl(),getTtl(),getLoginTitle(),getLoginUrgency(),getLoginCount
(),0));
}

resultSet.close();
ps.close();


}

catch (SQLException SQLE) {
AlertServerErrorMsg.errorMsg("Error con la base de datos." +
SQLE);
}
finally {
//Devuelve la conexion a la base de datos
try {
ConnectionManager.getInstance().releaseConnection
("database",
connection);
}
catch (ConnectionException CE){
AlertServerErrorMsg.errorMsg(getClass().getName() + " -
Getting
disconnected - "+CE.getMessage());
}
}