Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 49345 invoked from network); 30 May 2006 11:00:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 30 May 2006 11:00:16 -0000 Received: (qmail 45201 invoked by uid 500); 30 May 2006 11:00:15 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 45173 invoked by uid 500); 30 May 2006 11:00:15 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 45164 invoked by uid 99); 30 May 2006 11:00:15 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 May 2006 04:00:15 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [192.18.1.36] (HELO gmpea-pix-1.sun.com) (192.18.1.36) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 May 2006 04:00:13 -0700 Received: from d1-emea-09.sun.com (d1-emea-09.sun.com [192.18.2.119] (may be forged)) by gmpea-pix-1.sun.com (8.12.9/8.12.9) with ESMTP id k4UAxng5011749 for ; Tue, 30 May 2006 11:59:50 +0100 (BST) Received: from conversion-daemon.d1-emea-09.sun.com by d1-emea-09.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) id <0J0200201RVG9U00@d1-emea-09.sun.com> (original mail from Olav.Sandstaa@Sun.COM) for derby-dev@db.apache.org; Tue, 30 May 2006 11:59:49 +0100 (BST) Received: from [129.159.112.196] by d1-emea-09.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) with ESMTPSA id <0J02005OLRVONO80@d1-emea-09.sun.com> for derby-dev@db.apache.org; Tue, 30 May 2006 11:59:49 +0100 (BST) Date: Tue, 30 May 2006 12:59:48 +0200 From: Olav Sandstaa Subject: Re: Autoloading of JDBC drivers considered harmful? In-reply-to: <447B02B5.6080600@sun.com> Sender: Olav.Sandstaa@Sun.COM To: derby-dev@db.apache.org Message-id: <447C25A4.8090708@sun.com> Organization: Sun Microsystems - Trondheim, Norway MIME-version: 1.0 Content-type: text/plain; format=flowed; charset=ISO-8859-1 Content-transfer-encoding: 7BIT References: <44778871.4030006@sun.com> <447B02B5.6080600@sun.com> User-Agent: Thunderbird 1.5.0.2 (X11/20060427) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N To confirm that this was not something special triggered by the DB2 driver, I ran the same test program loading the Derby Network client, MySQL and PostgreSQL JDBC drivers. With derby.jar in the class path the embedded driver and engine are loaded in all cases. Regards, Olav Olav Sandstaa wrote: > The following program if run with jdk 1.6 and derby.jar in the class > path will load the embedded Derby driver and engine as well as the DB2 > driver: > > class AutoLoad { > > public static void main(String[] args) { > try { > Class.forName("com.ibm.db2.jcc.DB2Driver"); > } catch (ClassNotFoundException e) { > System.out.println("FAIL: Failed to load driver: " + e); > } > } > } > > The call stack when the Embedded driver is loaded looks like this: > > at > org.apache.derby.jdbc.EmbeddedDriver.(EmbeddedDriver.java:102) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > > at java.lang.reflect.Constructor.newInstance(Constructor.java:506) > at java.lang.Class.newInstance0(Class.java:355) > at java.lang.Class.newInstance(Class.java:308) > at > java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:345) > at java.util.ServiceLoader$1.next(ServiceLoader.java:421) > at java.sql.DriverService.run(DriverManager.java:622) > at java.security.AccessController.doPrivileged(Native Method) > at > java.sql.DriverManager.loadInitialDrivers(DriverManager.java:477) > at java.sql.DriverManager.initialize(DriverManager.java:578) > at java.sql.DriverManager.registerDriver(DriverManager.java:268) > at com.ibm.db2.jcc.DB2Driver.(DB2Driver.java:46) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:169) > at AutoLoad.main(AutoLoad.java:8) > > AutoMagic :-) > > ..olav