Error cleaning up agent threads - JDBC

I’m getting the error “Error cleaning up agent threads” in the agent below.Does any body know how can I fix it?

import lotus.domino.*;

import java.text.NumberFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.sql.*;

import java.io.*;

public class JavaAgent extends AgentBase

{

private Connection con;

private Statement stmt;

private String servidor;

private String porta;

private String instancia;

private String user;

private String passwd;

private String query;



public String getServidor()

{

	return servidor;

}



public String getPorta()

{

	return porta;

}



public String getInstancia()

{

	return instancia;

}



public String getUser()

{

	return user;

}



public String getPasswd()

{

	return passwd;

}



public String getQuery()

{

	return query;

}



public void getOracle(Database db)

{



	try

	{

		

		View view = db.getView("vConfigOracle");

		Document doc = view.getFirstDocument();

		

		servidor = doc.getItemValueString("ora_serv");

		porta = doc.getItemValueString("ora_porta");

		instancia = doc.getItemValueString("ora_inst");

		user = doc.getItemValueString("ora_user");

		passwd = doc.getItemValueString("ora_passwd");

		query = doc.getItemValueString("ora_query");

			

	}

	catch(Exception e) 

	{

		System.out.println("\n  #####################################################################");

		System.out.println("\n  ERRO!!!  Aplic: Clientes Ipiranga --- Agt: agtLoadClientesOracle --- Fnc: getOracle");

		System.out.println("\n  " + e.getMessage());

		e.printStackTrace();

		System.out.println("\n  #####################################################################");

		System.exit(0);

	}		



}





public void apagaClientes(Database db)

{



	try

	{



		View view = db.getView("BaseClientes ODBC");

		Document doc = view.getFirstDocument();

								

		while( doc!=null )

		{

			doc.remove(true);

			doc = view.getFirstDocument();

		}

		

	}

	catch(Exception e)

	{

		System.out.println("\n  #####################################################################");

		System.out.println("\n  ERRO!!!  Aplic: Clientes Ipiranga --- Agt: agtLoadClientesOracle --- Fnc: apagaClientes");

		System.out.println("\n  " + e.getMessage());

		e.printStackTrace();

		System.out.println("\n  #####################################################################");

		System.exit(0);

	}



}



public void criaClientes(JavaAgent agente, Database db) throws SQLException 

{

	

	try

	{



		String driver = "oracle.jdbc.driver.OracleDriver";

		Class.forName(driver).newInstance();

		agente.getOracle( db );

		//System.out.println( "jdbc:oracle:thin:@" + getServidor() + ":" + getPorta() + ":" + getInstancia()+","+ getUser()+","+ getPasswd() );

		con = DriverManager.getConnection( "jdbc:oracle:thin:@" + getServidor() + ":" + getPorta() + ":" + getInstancia(), getUser(), getPasswd() );

		stmt = con.createStatement();



		ResultSet rs = stmt.executeQuery( getQuery() );

		while ( rs.next() )

		{

			

			Document doc = db.createDocument();

			doc.appendItemValue("Form", "Clientes");

			doc.appendItemValue("Municipio", rs.getString("nm_munic"));

			doc.appendItemValue("Razão", rs.getString("nm_pess"));

			doc.appendItemValue("Endereço", rs.getString("ds_end"));

			doc.appendItemValue("UF", rs.getString("sg_uf"));

			doc.appendItemValue("CodEmp", "");

			doc.appendItemValue("CodCli", "");

			doc.appendItemValue("Fone", rs.getString("no_tel"));

			doc.appendItemValue("Ramal", "0");

			doc.appendItemValue("CGC", rs.getString("cd_pess") + "-" + rs.getString("cd_dv"));

			doc.appendItemValue("Zona", rs.getString("cd_zonven"));

			doc.appendItemValue("Situacao", "A");

			doc.appendItemValue("CEP", rs.getString("cd_cep"));

			doc.appendItemValue("TipoCli", rs.getString("nm_propr_terr"));

			doc.appendItemValue("cliContato", rs.getString("nm_ctat"));

			doc.appendItemValue("cliConRev", rs.getString("ds_segto_merc"));

			doc.appendItemValue("cliAtiv", rs.getString("ds_ativ_neg"));

			doc.appendItemValue("CPF", rs.getString("cd_inscre"));

			Date now = new Date();

			SimpleDateFormat agora = new SimpleDateFormat("dd/MM/yyyy");

			String strNow = agora.format(now);

			doc.appendItemValue("dtAt", strNow);

			doc.appendItemValue("CCusto", rs.getString("cd_ctrc"));

			doc.appendItemValue("PontoVenda", rs.getString("cd_ptov"));

			doc.appendItemValue("Componente", rs.getString("cd_comp"));

			doc.appendItemValue("ChaveCliente", rs.getString("cd_ptov") + rs.getString("cd_comp"));

			

			doc.save();

		}

		



	}

	catch(Exception e) 

	{

		System.out.println("\n  #####################################################################");

		System.out.println("\n  ERRO!!!  Aplic: Clientes Ipiranga --- Agt: agtLoadClientesOracle --- Fnc: criaClientes");

		System.out.println("\n  " + e.getMessage());

		e.printStackTrace();

		System.out.println("\n  #####################################################################");

		System.exit(0);

	}

	finally

	{

		stmt.close();

		con.close();

	}	

	

}





public void NotesMain()

{



	try

	{

		

		System.out.println("Inicio do agente agtLoadClientesOracle...");



		JavaAgent ja = new JavaAgent();

		Session session = getSession();

		AgentContext agentContext = session.getAgentContext();

		Database db = agentContext.getCurrentDatabase();

		ja.apagaClientes( db );



		ja.criaClientes( ja, db );

		

		System.out.println("Fim do agente agtLoadClientesOracle...");



	}

	catch(Exception e)

	{

		System.out.println("\n  #####################################################################");

		System.out.println("\n  ERRO!!!  Aplic: Clientes Ipiranga --- Agt: agtLoadClientesOracle --- Fnc: NotesMain");

		System.out.println("\n  " + e.getMessage());

		e.printStackTrace();

		System.out.println("\n  #####################################################################");

		System.exit(0);

	}

}

}

Subject: Error cleaning up agent threads - JDBC

Why is an object of agent needed?In NotesMain function you are creating a new object of the JavaAgent class. Is that needed? You have used that agent object only to invoke some of the functions. These functions can be invoked directly, without referring to an object.

When you create a new object of the agent, it creates a new Thread.

So restructure the program a little bit so that the line “JavaAgent ja = new JavaAgent();” can be removed.

You can create a new Java class and put the stuff in there, and create an object of that class instead.

Regards

Byju Joy