From: | Dave Cramer <pg(at)fastcrypt(dot)com> |
---|---|
To: | David Wall <d(dot)wall(at)computer(dot)org> |
Cc: | List <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: DriverManager.registerDriver - registers twice? |
Date: | 2014-07-22 11:25:54 |
Message-ID: | CADK3HH+J3EXL08R5fyTw-B=e106wam4J0GEHjbL-33jGuxp1HQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
AFAIK it doesn't deregister.
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On 21 July 2014 23:27, David Wall <d(dot)wall(at)computer(dot)org> wrote:
> Perhaps I've answered my own question. Looks like I really only need to
> do the Class.forName() call and the driver will register itself.
>
> That leads to the question when will the driver deregister itself? We
> previously did the register and deregister ourselves, but if the driver is
> registering on its own, how does it know to deregister (such as when my
> webapp is stopped)?
>
>
>
> On 7/21/2014 6:14 PM, David Wall wrote:
>
> I have code like the following:
>
> Class<?> driverClass = Class.forName("org.postgresql.Driver");
> driver = (java.sql.Driver)driverClass.newInstance();
> DriverManager.registerDriver(driver);
>
> When I check before this code to see what driver's are available via
> DriverManager.getDrivers(), it reports this (note there's only one non-PG
> driver for JDBC/ODBC):
>
> 18:03:14 BEFORE REGISTER DriverManager.getDrivers() returned driver:
> sun(dot)jdbc(dot)odbc(dot)JdbcOdbcDriver(at)3315a56d name: *sun.jdbc.odbc.JdbcOdbcDriver*;
> accepts URL jdbc:postgresql://localhost.localdomain/demo: *false*
>
> But right after, I show the driver instance I created, then do
> DriverManager.getDrivers() again, but this time I get TWO PG JDBC drivers
> (along with the JDBC/ODBC), the second of which matches the one I
> registered.
>
> 18:03:14 DriverManager.registerDriver() org.postgresql.Driver@
>
> *3086f9bf * 18:03:14 AFTER REGISTER DriverManager.getDrivers() returned
> driver: sun(dot)jdbc(dot)odbc(dot)JdbcOdbcDriver(at)3315a56d name:
> sun.jdbc.odbc.JdbcOdbcDriver; accepts URL
> jdbc:postgresql://localhost.localdomain/demo: false
> 18:03:14 AFTER REGISTER DriverManager.getDrivers() returned driver:
> org(dot)postgresql(dot)Driver(at)*29559094 *name: org.postgresql.Driver; accepts URL
> jdbc:postgresql://localhost.localdomain/demo: *true*
> 18:03:14 AFTER REGISTER DriverManager.getDrivers() returned driver:
> org(dot)postgresql(dot)Driver(at)*3086f9bf* name: org.postgresql.Driver; accepts URL
> jdbc:postgresql://localhost.localdomain/demo: *true*
>
> Why are there two? Where does the org(dot)postgresql(dot)Driver(at)*29559094 *instance
> come from?
>
> I am running Java 1.7.0_25 with PG JDBC driver
> postgresql-9.2-1003.jdbc4.jar.
>
> Thanks,
> David
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | CG | 2014-07-23 16:10:42 | Upgrade to Scientific Linux 6.5 x86_64 breaks query |
Previous Message | vjai.krishnan | 2014-07-22 03:50:40 | Re: Slow statement when using JDBC |