Return-Path: X-Original-To: apmail-db-derby-user-archive@www.apache.org Delivered-To: apmail-db-derby-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D0DAD793B for ; Fri, 5 Aug 2011 22:36:50 +0000 (UTC) Received: (qmail 43090 invoked by uid 500); 5 Aug 2011 22:36:50 -0000 Delivered-To: apmail-db-derby-user-archive@db.apache.org Received: (qmail 42729 invoked by uid 500); 5 Aug 2011 22:36:49 -0000 Mailing-List: contact derby-user-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Reply-To: "Derby Discussion" Delivered-To: mailing list derby-user@db.apache.org Received: (qmail 42716 invoked by uid 99); 5 Aug 2011 22:36:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Aug 2011 22:36:49 +0000 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests=SPF_PASS,UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [148.87.113.117] (HELO rcsinet15.oracle.com) (148.87.113.117) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Aug 2011 22:36:41 +0000 Received: from rtcsinet22.oracle.com (rtcsinet22.oracle.com [66.248.204.30]) by rcsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id p75MaHt0005280 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 5 Aug 2011 22:36:19 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by rtcsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p75MaG1d010067 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 5 Aug 2011 22:36:17 GMT Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id p75MaBQj030018 for ; Fri, 5 Aug 2011 17:36:11 -0500 Received: from localhost (/10.175.3.6) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 05 Aug 2011 15:36:10 -0700 From: dag.wanvik@oracle.com (Dag H. Wanvik) To: "Derby Discussion" Subject: Re: Table exists in same JVM after Derby is shutdown References: Date: Sat, 06 Aug 2011 00:36:06 +0200 In-Reply-To: (Pavel Bortnovskiy's message of "Fri, 5 Aug 2011 18:05:42 -0400") Message-ID: User-Agent: Gnus/5.110017 (No Gnus v0.17) Emacs/23.1 (usg-unix-v) MIME-Version: 1.0 Content-Type: text/plain X-Source-IP: rtcsinet22.oracle.com [66.248.204.30] X-CT-RefId: str=0001.0A090206.4E3C7063.008B,ss=1,re=0.000,fgs=0 X-Virus-Checked: Checked by ClamAV on apache.org Pavel Bortnovskiy writes: > 1) I create an in-memory database and then a table in it. > Then the database is shut down. > I would expect that the shutdown effectively cleans everything up. > Is it not so? Ah, I misunderstood you Pavel. Have a look here: http://wiki.apache.org/db-derby/InMemoryBackEndPrimer As you can see, you need to provide the "drop=true" connection attribute to wipe the data. Thanks, Dag > > Thanks, > Pavel. > > > > From: > dag.wanvik@oracle.com (Dag H. Wanvik) > To: > "Derby Discussion" > Date: > 08/05/2011 05:57 PM > Subject: > Re: Table exists in same JVM after Derby is shutdown > > > > Pavel Bortnovskiy writes: > >> Hello, all: >> >> While executing a bunch of JUnit tests within the same JVM (all executed > >> by IntelliJ IDEA) I started seeing strange and unexpected errors > occurring >> . >> Upon closer inspection, I noticed that in many of those tests tables > with >> the same names are attempted to be created. >> Then I realized that although Derby is shutdown and then re-created, the > >> tables remain, thus causing collisions. > > The "create=true" connection attribute is ignored (with a warning) if > the database with the same name alrady exists. > >> >> I've created a digest (attached) which is executed as one JUnit test to >> illustrate what I'm seeing. >> The behavior I would expect is that once Derby is shutdown, no tables >> would remain in the JVM, and if a database (with the same name) is >> re-created, it would be a tabula rasa. > > The tables are no longer in memory (or should not be unless you found a > bug), but they are not erased from the disk image of the database. As > per the above, one would need to explicitly delete it using OS file > system tools for the data to be cleared. Some JUnit tests delete tables > in TestCase#tearDown, others use singleUseDatabaseDecorator to isolate > itself from the rest of the tests. The tests not necessarily very > consistent in their patterns for this.. > > Dag > >> >> Can you please let me know whether my expectations are erroneous and >> whether I should find workarounds (albeit trivial to implement). >> However, what would concern me in that case is that the tables and the >> data remain in the JVM, thus consuming memory >> (and, if unused, creating memory leaks). >> >> Thank you, >> >> Pavel. >> >> >> >> >> >> >> Jefferies archives and monitors outgoing and incoming e-mail. The >> contents of this email, including any attachments, are confidential to >> the ordinary user of the email address to which it was addressed. If >> you are not the addressee of this email you may not copy, forward, >> disclose or otherwise use it or any part of it in any form >> whatsoever. This email may be produced at the request of regulators or >> in connection with civil litigation. Jefferies accepts no liability >> for any errors or omissions arising as a result of transmission. Use >> by other than intended recipients is prohibited. In the United >> Kingdom, Jefferies operates as Jefferies International Limited; >> registered in England: no. 1978621; registered office: Vintners Place, >> 68 Upper Thames Street, London EC4V 3BJ. Jefferies International >> Limited is authorised and regulated by the Financial Services >> Authority. > > > > > > > Jefferies archives and monitors outgoing and incoming e-mail. The > contents of this email, including any attachments, are confidential to > the ordinary user of the email address to which it was addressed. If > you are not the addressee of this email you may not copy, forward, > disclose or otherwise use it or any part of it in any form > whatsoever. This email may be produced at the request of regulators or > in connection with civil litigation. Jefferies accepts no liability > for any errors or omissions arising as a result of transmission. Use > by other than intended recipients is prohibited. In the United > Kingdom, Jefferies operates as Jefferies International Limited; > registered in England: no. 1978621; registered office: Vintners Place, > 68 Upper Thames Street, London EC4V 3BJ. Jefferies International > Limited is authorised and regulated by the Financial Services > Authority.