<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Charles Lamb&apos;s Blog</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/" />
   <link rel="self" type="application/atom+xml" href="http://blogs.oracle.com/charlesLamb/xml/rss.xml" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30</id>
   <updated>2009-11-09T17:45:50Z</updated>
   <subtitle>Consulting MTS</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 4.23-en</generator>


<entry>
   <title>Berkeley DB Java Edition 4.0 Released</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/11/berkeley_db_java_edition_40_re.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.15465</id>
   
   <published>2009-11-09T17:33:17Z</published>
   <updated>2009-11-09T17:45:50Z</updated>
   
   <summary>It&apos;s official: Berkeley DB Java Edition 4.0 was released today. This release has High Availability and Replication (HA), improved IO performance (especially on Linux/ext3), and a jconsole plugin which should make performance tuning quite a bit easier for JE users....</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   <category term="bdbje" label="bdbje" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>It's <a href="http://www.oracle.com/us/corporate/press/039756">official</a>: Berkeley DB Java Edition 4.0 was released today.</p>

<p>This release has High Availability and Replication (HA), <a href="http://blogs.oracle.com/charlesLamb/2008/11/berkeley_db_java_edition_group.html">improved IO performance</a> (especially on Linux/ext3), and a <a href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_jcons.html">jconsole plugin</a> which should make performance tuning quite a bit easier for JE users.</p>

<p>You can download it at: <a href="http://www.oracle.com/technology/software/products/berkeley-db/je/index.html">http://www.oracle.com/technology/software/products/berkeley-db/je/index.html</a><br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition vs Windows 7 IO</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/10/berkeley_db_java_edition_vs_wi.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.15231</id>
   
   <published>2009-10-28T03:00:48Z</published>
   <updated>2009-10-28T03:11:30Z</updated>
   
   <summary>In a previous post I raised the topic of IO problems on Windows 7 (fsync was resulting in &quot;Incorrect Function&quot; IOExceptions). This again showed up more recently in this OTN thread. Fortunately, the reporting user supplied us with a reproducible...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   <category term="bdbje" label="bdbje" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>In a <a href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_ioexc.html">previous post</a> I raised the topic of IO problems on Windows 7 (fsync was resulting in "Incorrect Function" IOExceptions).  This again showed up more recently in this <a href="http://forums.oracle.com/forums/thread.jspa?threadID=970252&tstart=0">OTN thread</a>.  Fortunately, the reporting user supplied us with a reproducible test case which allowed us to characterize the problem.</p>

<p>At this point I am reasonably certain that the problem has to do with a <code>write()</code> call being initiated on a <code>RandomAccessFile</code> when an <code>fsync()</code> is already in progress in another thread (i.e. a concurrent fsync and write on the same file, but not with the same file descriptors).  JE routinely performs concurrent IO operations on a given file.  In the particular test case, it is by virtue of the checkpointer initiating an fsync while the user application thread is writing.</p>

<p>It turns out that in ext3 we previously encountered a performance slowdown because that file system takes an exclusive mutex on the inode for any IO operation, and therefore an fsync will block reads and writes.  JE 4.0 has a "fix" to this problem which is described <a href="http://blogs.oracle.com/charlesLamb/2008/11/berkeley_db_java_edition_group.html">here</a>.  While the 4.0 "write queue" work improves performance on file systems like ext3 which take exclusive mutexes on the inode for any IO operation, it also has the added benefit that JE no longer performs concurrent fsync and write operations.</p>

<p>That said, there seems to be a true bug in Windows 7 IO, if for no other reason than I observe corruption on sector boundaries in the log files which are produced by the test case (JE does no operations on sector boundaries).</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition: Why Database.preload() doesn&apos;t always help</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/10/berkeley_db_java_edition_why_d.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.15054</id>
   
   <published>2009-10-15T17:11:57Z</published>
   <updated>2009-10-15T17:28:02Z</updated>
   
   <summary>A customer sent us a simple program and an environment with data. The program opened the environment (approx. 2GB) and scaned the records of one of the databases in primary key order. The records had been inserted in random (i.e....</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   <category term="bdbjeperformancecache" label="bdbje performance cache" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>A customer sent us a simple program and an environment with data.  The program opened the environment (approx. 2GB) and scaned the records of one of the databases in primary key order.  The records had been inserted in random (i.e. non-key-sequential order) order and this caused lots of random IO during the scan.  The customer wanted to know how to make the scan go faster.  We suggested using <code>Database.preload()</code> since that would sort the LSNs of all of the records in the database and then load the cache by reading the records in LSN order rather than key order.  The customer's program set the cache size to a fixed size of <code>1200 * 1024 * 1024</code> bytes.  Interestingly enough, the call to <code>preload()</code> made the overall time longer than just doing the scan and taking the hit from the random IO.</p>

<p>The reason is that <code>preload()</code> will stop when it has filled the cache.  In this case, 1.2GB was not large enough to hold all of the records in the database.  Once <code>preload()</code> had filled the cache, it returned a status of <code>PreloadStatus.CACHE_FILLED</code> after which the scan commenced.  Whereas the <code>preload</code> had read the records in LSN order, the scan was reading the records in key order (effectively random LSN order).  Since the cache had already been filled by <code>preload()</code>, any cache miss by the scan would cause something to be evicted from the cache, and if the evicted record had not already been used by the scan, the work done by <code>preload()</code> to load the cache for that record was wasted.  So with too small a cache, some IO done by <code>preload()</code> was inevitably wasted, thereby causing lower throughput.</p>

<p>Increasing the cache size to a level where <code>preload()</code> could fill the cache resulted in a significant speed-up.<br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition 4.0 on Android</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/10/berkeley_db_java_edition_40_on.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14815</id>
   
   <published>2009-10-07T21:09:41Z</published>
   <updated>2009-10-07T21:17:35Z</updated>
   
   <summary>I&apos;ve just finished checking that JE 4.0 works properly on Android 1.6 (it does). But even better is that we&apos;ll be shipping a je-android.jar file with 4.0 when it&apos;s available (&quot;by the end of CY2009&quot;). This means that JE/Android users...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   <category term="bdbjeandroiddpl" label="bdbje android dpl" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>I've just finished checking that JE 4.0 works properly on Android 1.6 (it does).  But even better is that we'll be shipping a je-android.jar file with 4.0 when it's available ("by the end of CY2009").  This means that JE/Android users will no longer need to copy the JE sources into a project directory in order to modify the sources to replace references to javax.transaction.xa.* with references to stub classes.  Instead, they will just need to copy the je-android.jar file into their project libs directory and they'll be ready for action.  The HOWTO-Android.html is a lot smaller now.</p>

<p>Further, <a href="http://bit.ly/ImrJt">DPL now works on Android</a>.  That sure made life a lot easier when getting the demos for OOW ready.</p>

<p>All of this willmake the entire JE/Android experience a lot simpler.<br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Boston Big Data Summit</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/10/boston_big_data_summit.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14793</id>
   
   <published>2009-10-06T23:48:34Z</published>
   <updated>2009-10-06T23:50:17Z</updated>
   
   <summary>For those in the Boston area: The Boston &quot;Big Data Summit&quot; will be holding its first meeting on Thursday, October 22nd 2009 at 6pm at the Emerging Enterprise Center at Foley Hoag in Waltham, MA. The Boston area is home...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>For those in the Boston area:</p>

<p>The Boston "Big Data Summit" will be holding its first meeting on Thursday, October 22nd 2009 at 6pm at the Emerging Enterprise Center at Foley Hoag in Waltham, MA.</p>

<p>The Boston area is home to a large number of companies involved in the collection, storage, analysis, data integration, data quality, master data management, and archival of "Big Data". If you are involved in any of these, then the meeting of the Boston "Big Data Summit" is something you should plan to attend. Save the date!</p>

<p>More info <a href="http://bit.ly/QNbWn">here</a>.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition High Availability Session at Oracle Open World</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/10/berkeley_db_java_edition_high_1.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14725</id>
   
   <published>2009-10-02T18:37:28Z</published>
   <updated>2009-10-02T18:41:11Z</updated>
   
   <summary>Here are all of the Berkeley DB presentations at Oracle Open World. I&apos;ve highlighted the presentation that my colleague Sam Haradhvala will be giving on Berkeley DB Java Edition High Availability. ---------------------------------------------------------------------- Where to find Berkeley DB people &amp; sessions...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>Here are all of the Berkeley DB presentations at Oracle Open World.  I've highlighted the presentation that my colleague Sam Haradhvala will be giving on Berkeley DB Java Edition High Availability.</p>

<p>----------------------------------------------------------------------<br />
Where to find Berkeley DB people & sessions at Oracle Open World<br />
----------------------------------------------------------------------</p>

<p>Hello and welcome to the upcoming Oracle Open World 2009 in San Francisco. We're less than 10 days away and the excitement is palpable. If you are interested in hearing about Berkeley DB, learning more about how the Berkeley DB products can be integrated into your applications/appliances/devices, seeing exciting Berkeley DB customer use cases or speaking directly with one of the Berkeley DB product development engineers, you can find us here:</p>

<p>    * Session ID#: S311365, Title: Oracle Berkeley DB: Lightning-Fast Key Value Storage Just Got Faster, Date: Sun, Oct. 11th, Time: 15:45 - 16:45, Venue: Hilton Hotel, Room: Golden Gate 1, Track: Oracle Develop: Database, Speaker: David Segleau (Director Product Management), including customer presentations from Lucas Vogel, Managing Partner at EndPoint Systems and Madhu Bhimaraju, Database Architecture Engineer at Verizon Wireless. We will be covering several of the new features in Berkeley DB 4.8 and discussing how Verizon Wireless uses Berkeley DB to provide services to an ever-growing customer base.</p>

<p><strong>    * Session ID#: S311364, Title: Oracle Berkeley DB Java Edition High Availability: Java Persistence at Network Speeds, Date: Sun, Oct 11th, Time: 14:30 - 15:30, Venue: Hilton Hotel, Room: Golden Gate 1, Track: Oracle Develop: Database, Speaker: Sam Haradhvala (Senior Engineer on the Berkeley DB Java Edition product). We will be discussing the new High Availability/Replication functionality that will soon be available in Berkeley DB Java Edition -- how it works, how it can improve your application performance, reliability and throughput, as well as common use cases and configurations.</strong></p>

<p>    * Berkeley DB Applications Demo/Lunch. Date: Mon, Oct. 12th, Meeting Time: 11:00 - 13:00, Venue: Hilton Hotel - Union Square Room 6, 4th Fl. Greg Burd (Senior Product Manager) and several Berkeley DB engineers will be showing several Berkeley DB application demos, discussing how they were implemented and how similar functionality can be part of your application. Join us for lunch, some interesting demos and a open question and answer session.</p>

<p>    * The Berkeley DB Product booth in the Exhibition Hall in Moscone West. We're workstation W-035, under the Database Track, in the Embedded Database sub-area just like last year. The booth is open Monday and Tuesday from 10:30-6:30 and Wednesday from 9:15-5:15. We're always delighted to talk with existing users, potential users and anyone who is curious about our NoSQL embedded database libraries. </p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition DPL Support on Android</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_dpl_s.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14676</id>
   
   <published>2009-09-30T16:10:33Z</published>
   <updated>2009-09-30T16:17:51Z</updated>
   
   <summary>In a previous blog entry I wrote that JE worked on Android but that the DPL didn&apos;t work because of a lack of support for various methods (e.g. Class.getAnnotations()) in the Dalvik JVM. I have verified that the Android 1.5...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>In a <a href="http://blogs.oracle.com/charlesLamb/2008/02/berkeley_db_java_edition_and_a.html">previous blog entry</a> I wrote that JE worked on Android but that the DPL didn't work because of a lack of support for various methods (e.g. Class.getAnnotations()) in the Dalvik JVM.</p>

<p>I have verified that the Android 1.5 (and presumably recently released 1.6) SDK supports JE and DPL.  JE/DPL on Android adds a major chunk of infrastructure to the Android platform in that a pure Java transactional POJO datastore is now available.</p>

<p>You can expect to see stepped up support of JE on Android in the near future.  For instance, we plan on making je-android.jar libraries available so that developers won't have to compile the JE src under Dalvik.<br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition: Customer Use of BeanShell Saves the Day</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_custo.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14528</id>
   
   <published>2009-09-22T12:10:15Z</published>
   <updated>2009-09-22T12:19:44Z</updated>
   
   <summary>Three of us were working on a customer crisis late last night. The customer had a running environment which had some sort of transient state &quot;issues&quot;. We were able to debug this live because they had the foresight to incorporate...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>Three of us were working on a customer crisis late last night.  The customer had a running environment which had some sort of transient state "issues".  We were able to debug this live because they had the foresight to incorporate <a href="http://bit.ly/BUegQ">BeanShell</a> into their system.  This allowed us to look at lots of state and get a pretty good idea of what was going on.  I strongly recommend taking a look at this library for use as a debugging tool, especially for deployed systems.<br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition jconsole Plugin</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_jcons.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14464</id>
   
   <published>2009-09-17T17:33:09Z</published>
   <updated>2009-09-17T17:46:19Z</updated>
   
   <summary>My colleague Tao Zhang has been working on a jconsole plugin which will let you monitor Berkeley DB Java Edition stats in real time. This will be especially useful for helping our customers debug performance issues. We&apos;re all really excited...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   <category term="bdbje" label="bdbje" scheme="http://www.sixapart.com/ns/types#tag" />
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[My colleague Tao Zhang has been working on a <code>jconsole</code> plugin which will let you monitor Berkeley DB Java Edition stats in real time.  This will be especially useful for helping our customers debug performance issues.  We're all really excited about this new feature which will be available in JE 4.0 (the corporate lawyers will only let me say "GA in CY 10").  I want to share some screen shots of this.

Here's a picture of the plugin.  Note the two new tabs ("JE Statistics" and "JE Replicated Statistics").

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="" src="http://blogs.oracle.com/charlesLamb/RepJEStats-plugin.JPG" width="719" height="541" class="mt-image-none" style="" /></span>

The plugin allows you to log statistics to a csv file at a specified interval.  It also lets you graph stats in real time:

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="Show-graph.JPG" src="http://blogs.oracle.com/charlesLamb/2009/09/17/jconsole-images/Show-graph.JPG" width="836" height="560" class="mt-image-none" style="" /></span>
]]>
      
   </content>
</entry>

<entry>
   <title>BDB and BDB XML Releases</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/09/bdb_and_bdb_xml_releases.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14396</id>
   
   <published>2009-09-14T16:57:54Z</published>
   <updated>2009-09-14T17:02:48Z</updated>
   
   <summary>Here is the press release for the latest BDB (&quot;core&quot;) and BDB XML releases. eWeek also has an article about this....</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>Here is the <a href="http://bit.ly/J1wrt">press release</a> for the latest BDB ("core") and BDB XML releases.</p>

<p>eWeek also has <a href="http://www.eweek.com/c/a/Database/Oracle-Bolsters-Berkeley-DB-Embeddable-Databases-627554/">an article</a> about this.</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition: IOException &quot;Incorrect function&quot; on Windows 7</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_ioexc.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14177</id>
   
   <published>2009-09-02T23:41:33Z</published>
   <updated>2009-09-02T23:42:03Z</updated>
   
   <summary>A user has seen an IOException(&quot;Incorrect function&quot;) while performing an fsync in Windows 7 (as yet, unreleased) using JE 3.3.x. We have good reason to believe that this is a bug, or at least a change in behavior, in Windows...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>A user has seen an IOException("Incorrect function") while performing an fsync in Windows 7 (as yet, unreleased) using JE 3.3.x.  We have good reason to believe that this is a bug, or at least a change in behavior, in Windows 7's IO as the same program does not exhibit this behavior under Windows XP.  In fact, we have never seen this exception ("Incorrect function") before.</p>

<p>We know of a workaround for the bug which we can give you if you run into this under Windows 7.</p>

<p>If you do run into this, we'd be grateful if you could give us your test case so that we could try to reproduce it on our own machines.</p>

<p>You can contact us on the OTN forum or via email (charles.lamb @ 0racle.com)</p>

<p>Thanks.</p>

<p>Charles Lamb<br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition FAQ Entry on GC Params for Large Caches</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/09/berkeley_db_java_edition_faq_e.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14170</id>
   
   <published>2009-09-02T19:38:58Z</published>
   <updated>2009-09-02T19:42:13Z</updated>
   
   <summary>I&apos;ve added a new entry to the BDB JE FAQ regarding JVM parameters for large cache sizes. Here&apos;s the text of it: What JVM parameters should I consider when tuning an application with a large cache size? If your application...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>I've added a new entry to the <a href="http://www.oracle.com/technology/products/berkeley-db/faq/je_faq.html#60">BDB JE FAQ </a>regarding JVM parameters for large cache sizes.</p>

<p>Here's the text of it:</p>

<p>What JVM parameters should I consider when tuning an application with a large cache size?</p>

<p>If your application has a large cache size, tuning the Java GC may be necessary. You will almost certainly be using a 64b JVM (i.e. -d64), the -server option, and setting your heap and stack sizes with -Xmx and -Xms. Be sure that you don't set the cache size too close to the heap size so that your application has plenty of room for its data and to avoided excessive full GC's. We have found that the Concurrent Mark Sweep GC is generally the best in this environment since it yields more predictable GC results. This can be enabled with -XX:+UseConcMarkSweepGC.</p>

<p>Best practices dictates that you disable System.gc() calls with -XX:-DisableExplicitGC.</p>

<p>Other JVM options which may prove useful are -XX:NewSize (start with 512m or 1024m as a value), -XX:MaxNewSize (try 1024m as a value), and -XX:CMSInitiatingOccupancyFraction=55. NewSize is typically tuned in relationship to the overall heap size so if you specify this parameter you will also need to provide a -Xmx value. A convenient way of specifying this in relative terms is to use -XX:NewRatio. The values we've suggested are only starting points. The actual values will vary depending on the runtime characteristics of the application.</p>

<p>You may also want to refer to the following articles:</p>

<p>    * <a href="http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html">Java SE 6 HotSpot Virtual Machine Garbage Collection Tuning</a><br />
    * <a href="http://www.md.pp.ru/~eu/jdk6options.html">The most complete list of -XX options for Java 6 JVM</a><br />
    * <a href="http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html">My Favorite Hotspot JVM Flags</a> <br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition: DZone Refcardz Cheat Sheet</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/08/berkeley_db_java_edition_dzone.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.14119</id>
   
   <published>2009-08-31T20:51:06Z</published>
   <updated>2009-08-31T20:54:21Z</updated>
   
   <summary>Here&apos;s a plug for the DZone BDB JE &quot;Cheat Sheet&quot; (registration required). Masoud Kalali did a real nice job writing a 6 page summary of BDB JE complete with code snippits. This is useful for anyone who wants a quick...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>Here's a plug for the <a href="http://refcardz.dzone.com/refcardz/getting-started-oracle?oid=hom12484">DZone BDB JE "Cheat Sheet"</a> (registration required).  Masoud Kalali did a real nice job writing a 6 page summary of BDB JE complete with code snippits.  This is useful for anyone who wants a quick intro to BDB JE.<br />
</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition Tested with JRockit</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/08/berkeley_db_java_edition_teste.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.13965</id>
   
   <published>2009-08-24T00:30:53Z</published>
   <updated>2009-08-24T00:33:11Z</updated>
   
   <summary>Not that this news should surprise anyone, but I tested Berkeley DB Java Edition with JRockit and it all works fine. I used the Java 5 version (build R27.6.3-40_o-112056-1.5.0_17-20090318-2104-windows-ia32)....</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[<p>Not that this news should surprise anyone, but I tested Berkeley DB Java Edition with JRockit and it all works fine.  I used the Java 5 version (build R27.6.3-40_o-112056-1.5.0_17-20090318-2104-windows-ia32).</p>]]>
      
   </content>
</entry>

<entry>
   <title>Berkeley DB Java Edition 3.3.87</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/charlesLamb/2009/08/berkeley_db_java_edition_3387.html" />
   <id>tag:blogs.oracle.com,2009:/charlesLamb//30.13892</id>
   
   <published>2009-08-18T16:22:37Z</published>
   <updated>2009-08-18T16:26:59Z</updated>
   
   <summary>Berkeley DB Java Edition 3.3.87 is a patch release consisting of fixes for a number of issues. We strongly recommend that users of the 3.3.x version upgrade to this release. These fixes include: [#17462] - Fix a bug that would...</summary>
   <author>
      <name>charles.lamb</name>
      
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/charlesLamb/">
      <![CDATA[Berkeley DB Java Edition 3.3.87 is a patch release consisting of fixes for a number of issues. We strongly recommend that users of the 3.3.x version upgrade to this release.

These fixes include:

[#17462] - Fix a bug that would allow the Total Memory Usage stat to become negative. This could prevent eviction from occurring, which could cause <code>OutOfMemoryError</code><code>NullPointerException</code> during eviction when an exception occurs during logging, for example, an <code>IOException</code> when the disk is full. The <code>NullPointerException</code> masked the original exception (e.g., <code>IOException</code>). We'd like to thank OTN Forum user tkram01 for reporting this on the BDB JE Forum. An example stack trace is below.
<br><br>
<code>
    java.lang.NullPointerException
    at com.sleepycat.je.tree.LN.log(LN.java:534)
    at com.sleepycat.je.tree.LN.log(LN.java:373)
    at com.sleepycat.je.tree.BIN.logDirtyLN(BIN.java:1016)
    at com.sleepycat.je.tree.BIN.evictInternal(BIN.java:985)
    at com.sleepycat.je.tree.BIN.evictLNs(BIN.java:940)
    at com.sleepycat.je.evictor.Evictor.evictIN(Evictor.java:761)
    at com.sleepycat.je.evictor.Evictor.evictBatch(Evictor.java:344)
    at com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:244)
    at com.sleepycat.je.evictor.Evictor.doCriticalEviction(Evictor.java:269)
    at com.sleepycat.je.dbi.CursorImpl.close(CursorImpl.java:711)
    at com.sleepycat.je.Cursor.close(Cursor.java:326)
    at com.sleepycat.je.Database.putInternal(Database.java:999)
    at com.sleepycat.je.Database.put(Database.java:885)
</code><br><br>

[#17546] -  EnvironmentConfig.COMPRESSOR_PURGE_ROOT has been deprecated. This parameter no longer has any effect. Compression of the root node has no benefit and this feature has been removed. This feature was also bug-prone, as reported by penemue on OTN.

[#17590] - Fix a bug that could cause OutOfMemoryError when many records are read in a read-only environment, and the data set that is accessed does not fit in available memory. This applies to two types of applications:
User applications that open the Environment with the read-only (EnvironmentConfig.setReadOnly(true)) property.
The JE utilities that open the Environment read-only: DbVerify, DbStat, and DbDump if neither the -r nor -R switch is specified.
Thanks to user8694068 for reporting this on OTN and working with us to diagnose the problem.


The complete list of changes can also be found in the change log page.

http://www.oracle.com/technology/documentation/berkeley-db/je/changeLog.html
]]>
      
   </content>
</entry>

</feed>
