----------------------------------------------------------------
BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
WHEN YOU POST, include all relevant version numbers, log files,
and configuration files. Don't make us guess your problem!!!
----------------------------------------------------------------
Gustavo
More to the point, the JDBC-ODBC bridge is noted as being for experimental
rather than production use. The best advice is to get hold of a native
JDBC driver for the database youare connecting to to and staying well
clear of the bridge. I won't go so far as to say it JDBC-ODBC bridge is
deprecated since I can't recall specifically reading that.
I used to us the bridge with Pervasive SQL on JDK 1.2.1 before they came
out with a native JDBC driver, and to put it mildly it was terribly
unsable.
Chris
On Tue, 17 Oct 2000 08:06:09 +0200, Bruno Wenger wrote:
>----------------------------------------------------------------
>BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
>WHEN YOU POST, include all relevant version numbers, log files,
>and configuration files. Don't make us guess your problem!!!
>----------------------------------------------------------------
>
>Gustavo,
>
>I was on JDK 1.2.2. I installed JDK 1.3 and the problems had gone.
>There seems to be a problem with Sun's JDBCODBC. If 1.3 is no
>option you could try a different driver
>
>check out http://www.inetsoftware.de (this is from Brett Knights)
>He says: I've been using their drivers for over a year with great results.
>
>
>
>> -----Urspr�ngliche Nachricht-----
>> Von: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED]]Im Auftrag von Gustavo
>> Arruda
>> Gesendet: Dienstag, 17. Oktober 2000 00:27
>> An: Java Apache Users
>> Betreff: Memory consumption due to erroneous access to database
>>
>>
>> ----------------------------------------------------------------
>> BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
>> WHEN YOU POST, include all relevant version numbers, log files,
>> and configuration files. Don't make us guess your problem!!!
>> ----------------------------------------------------------------
>>
>> Hi folks,
>>
>> I am using Windows NT 4.0 plus JDK1.2.1 plus Apache 1.3.12 plus JSERV1.0.
>>
>> I have written a class to read the DataBase through a JDBC/ODBC
>> bridge, but
>> I am afraid it is not throwing objects to garbage or closing connections.
>> Everytime I call any Servlet that uses this class, it works fine but the
>> amount of memory used by "java.exe" process increases by 200k or more. So,
>> after some repeated calls to any Servlet, java.exe is so big that it stops
>> working and I cant run Servlets anymore. The error in the log file says
>> "Jdbc:Odbc : can t read anymore tables".
>>
>> I am sending you the code of the class 1 that access the DB , the code of
>> class 2 that extends the HttpServlet class, and the code of class 3 that
>> extends class2. The problem is I dont know how to close the connection to
>> the database after the ResultSet is passed to the CLASS3 (see
>> codes, I hope
>> you do!)
>>
>> Thanks in advance,
>>
>> Gustavo Arruda
>>
>> //CLASS 1 - DBSynchronizer - Access the DB through methods select
>> and update
>> import java.io.*;
>> import java.sql.*;
>> public class DBSynchronizer {
>>
>> private static final String url="jdbc:odbc:carona";
>> private static boolean isReading = false;
>> private static boolean isWriting = false;
>> private static Connection readCon;
>> private static Connection writeCon;
>> private static Statement select = null;
>> private static Statement update = null;
>> private static ResultSet result = null;
>> public DBSynchronizer() {
>> try {
>> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
>> readCon = DriverManager.getConnection(url,"","");
>> writeCon = DriverManager.getConnection(url,"","");
>> } catch (Exception e) {}
>> }
>>
>> public synchronized ResultSet select(String query) {
>> while (isWriting) try {
>> wait();
>> } catch (InterruptedException e) { }
>> isReading = true;
>> try {
>> select = readCon.createStatement();
>> result = select.executeQuery(query}
>> catch(Exception e) {
>> e.printStackTrace();
>> }
>> isReading = false;
>> notifyAll();
>> return result;
>> }
>>
>> public synchronized int update(String updt) {
>> int inserted=0;
>> while (isReading) try {
>> wait();
>> } catch (InterruptedException e) { }
>> isWriting = true;
>> try {
>> update = writeCon.createStatement();
>> inserted=update.executeUpdate(updt);
>> } catch(Exception e) {
>> inserted=-1;
>> }
>> isWriting = false;
>> notifyAll();
>> return inserted;
>> }
>> }
>>
>> //CLASS2 - HttpServletSQL makes the CLASS1 methods available through an
>> object called sql
>> import java.io.*;
>> import java.sql.*;
>> import java.util.*;
>> import javax.servlet.*;
>> import javax.servlet.http.*;
>>
>> public class HttpServletSQL extends HttpServlet {
>>
>> protected static DBSynchronizer sql;
>>
>> public void init (ServletConfig config) throws ServletException {
>> super.init(config);
>> // Created only by the first Servlet
>> if(sql == null)
>>
>> sql = new DBSynchronizer();
>> }
>> }
>> }
>> //CLASS3 - A normal servlet that extends class2
>> import java.io.*;
>> import javax.servlet.*;
>> import javax.servlet.http.*;
>> import java.sql.*;
>> import java.util.*;
>>
>> public class Servlet_counter extends HttpServletSQL {
>> public void doGet (HttpServletRequest req, HttpServletResponse res)
>> throws ServletException, IOException
>> {
>> res.setContentType("text/html");
>> ServletOutputStream out = res.getOutputStream();
>>
>> String fontSize = req.getParameter("fontSize");
>> String fontColor = req.getParameter("fontColor");
>> if (fontSize == null) fontSize = "2" ;
>> if (fontColor == null) fontColor = "white" ;
>> String getCod = "Select Max(Cod) AS MCOD FROM ACCESS" ;
>>
>> ResultSet rs= sql.select(getCod);
>> int cod = 0;
>> try {
>> if (rs.next()) {
>> cod = rs.getInt(1);
>> out.print("<font size=+"+fontSize+" color="+fontColor+"> "+
>> (cod+1)+"</font>");
>> }
>> rs.close();
>> }
>> catch(Exception e) { }
>> }
>> }
>>
>>
>>
>> --
>> --------------------------------------------------------------
>> Please read the FAQ! <http://java.apache.org/faq/>
>> To subscribe: [EMAIL PROTECTED]
>> To unsubscribe: [EMAIL PROTECTED]
>> Search Archives:
>> <http://www.mail-archive.com/java-apache-users%40list.working-dogs.com/>
>> Problems?: [EMAIL PROTECTED]
>>
>
>
>
>--
>--------------------------------------------------------------
>Please read the FAQ! <http://java.apache.org/faq/>
>To subscribe: [EMAIL PROTECTED]
>To unsubscribe: [EMAIL PROTECTED]
>Search Archives:
><http://www.mail-archive.com/java-apache-users%40list.working-dogs.com/>
>Problems?: [EMAIL PROTECTED]
>
--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Search Archives:
<http://www.mail-archive.com/java-apache-users%40list.working-dogs.com/>
Problems?: [EMAIL PROTECTED]