Subject | IBServer memory problem |
---|---|
Author | markovasil |
Post date | 2003-06-10T21:23:47Z |
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());
}
}
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());
}
}