apache > db
Apache DB Project
Font size:      

Apache Derby Release


Use the links below to download a distribution of Apache Derby from the archives. It is good practice to verify the integrity of the distribution files.

There are three different distributions:

  • bin distribution - contains the documentation, javadoc, and jar files for Derby.
  • lib distribution - contains only the jar files for Derby.
  • src distribution - contains the Derby source tree at the point which the binaries were built.

db-derby- [PGP] [MD5]
db-derby- [PGP] [MD5]

db-derby- [PGP] [MD5]
db-derby- [PGP] [MD5]

db-derby- [PGP] [MD5]
db-derby- [PGP] [MD5]

There are two separate Eclipse plugins for Derby:

  • derby_core_plugin - provides the Derby jar files to other plugins in Eclipse.
  • derby_ui_plugin - provides an Apache Derby Nature in Eclipse for easy database application development.

derby_core_plugin_10.1.1.zip [PGP] [MD5]
derby_ui_plugin_1.1.0.zip [PGP] [MD5]

Please note: both plugins must be installed for full functionality. For information on installing and using the Derby plugins for Eclipse, please see the Using the 10.1 Core and 1.1 UI Derby plug-ins page.

Release Overview

Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs.

What's new in

  • New open source Derby network client driver
  • Support for J2ME/CDC/Foundation with JSR-169 JDBC subset
  • Online compress functionality for reclaiming disk space during operation
  • XA support for Network Server
  • Increased identifier lengths to 128 characters for all identifiers
  • Added SQL: SYNONYM
  • JDBC Updatable Result Sets
  • ORDER by expressions
  • Allow insertions into an identity column
  • Support for explicit Java method signature in function and procedure defintions

For a comprehensive list of changes, consult the CHANGES file in your distribution. functionality includes:

  • Embedded engine with JDBC driver
  • Network Server
  • Network client JDBC driver
  • Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)

SQL support:

  • Schemas, tables, tempoaray tables, views, triggers, indexes, savepoints
  • Java procedures and functions
  • Standard datatypes including BLOB and CLOB
  • Sub-queries and joins
  • Primary key, foreign key, unique and check constraints
  • Referential actions

Other features:

  • Full ACID transaction support with all four isolation levels
  • Row and table level locking
  • Configurable authentication including LDAP support
  • Import/Export
  • On-line backup and recovery support
  • Optional on-disk encryption
  • Platform independent database format
  • Full support for Java 2 Security Manager

JDK/JDBC support:

  • JDK 1.3, 1.4, 1.5, and J2ME support
  • JSR-169, JDBC 2.1, and JDBC 3.0 support

Release Notes

Derby version

This is the first official release for Derby as a subproject of the Apache DB proejct. The build number of this release is 208786. For information on getting started using Derby, refer to the Getting Started manual.

The IBM Universal JDBC Driver is no longer required to use the Derby Network Server. A new Derby network client driver, packaged as derbyclient.jar, is now provided for remote network access to the Derby Network Server. For more information on using the Derby network client driver, see the Derby Server and Administration Guide.

A detailed list of changes can be found in the CHANGES file in each of the distributions listed below.

This release fixes the following reported JIRA issues since the release:

DERBY-8Connection object gets created with un-supported holdability on getting Connection object from XAConnection "inside" the global transaction
DERBY-10Provide XA Support for Network Server
DERBY-19NPE when trying to create a database at a directory that is not allowed
DERBY-55Derby documentation mentions script and batch files that don't exist
DERBY-56NsSample sample program refered to in documentation is missing
DERBY-58dblook options doco incorrect
DERBY-62TableName not serializable
DERBY-66Derby does not support open cursor across commits for XA transactions and hence DatabaseMetaData.supportsOpenCursorsAcrossCommit should return false.
DERBY-82Add documentation for property - derby.language.logQueryPlan
DERBY-87org.apache.derby.database.UserUtility.add does not exist but is documented
DERBY-91XA .sql tests fail with jar files
DERBY-92Cannot connect to Derby using DB2 Universal Driver
DERBY-96partial log record writes that occur because of out-of order writes need to be handled by recovery.
DERBY-97Support J2ME/CDC/Foundation with JSR169 JDBC subset
DERBY-101Limit on Number of log that can be created should be increased (current limit is 4194303)
DERBY-102can not insert more than 32270 charakters in long varchar, clob
DERBY-104Get rid of the Max lenght of 18 for constraint names
DERBY-106HashJoinStrategy leads to java.lang.OutOfMemoryError
DERBY-107Add Support for ODBC Metadata Calls to Derby
DERBY-114Buildworld target refers to non-existent jars target
DERBY-115BEFORE triggers missing from CREATE TRIGGER documentation
DERBY-116Content comment for SYSTRIGGERS.TRIGGERDEFINITION is misleading
DERBY-121Network Server reading blob/clob data size
DERBY-122Suite jdk14 is skipped incorrectly with J2SE 5.0
DERBY-123Derby incorrectly rounds double values down during insert into NUMERIC
DERBY-124Result type for CONCAT operator with blobs appears to be incorrect.
DERBY-126Documentation bug. Doc says column default can be edited - it looks like it cannot
DERBY-127Aliased Columns not recognized after "group by... order by" combination
DERBY-130IDENTITY_VAL_LOCAL not reset when new Connection returned from PooledConnection
DERBY-132in place table/index compress which returns space to OS
DERBY-134Sorted string columns are sorted in a case sensitive way
DERBY-139LOCAL as a reserved keyword does not match other databases
DERBY-153Bad Eclipse plugin version specification
DERBY-155Add DISTINCT keyword support to INTERSECT and EXCEPT
DERBY-158PRIMARY KEY does not imply NOT NULL
DERBY-161DATE function as documented in the manuals does not support integer arguments. i.e. DATE(1232) does not work although the manual specifies that this format will return a date field that is "x" number of days since day 0.
DERBY-164unicodeEscape command in ij doesn't work
DERBY-168Can't ALTER a column to have a new DEFAULT value.
DERBY-173For the concurrency of ResultSet, Network Server should not send the concurrency of Statement.
DERBY-174setNull does not work with java.sql.Types.TIMESTAMP
DERBY-175setNull does not work with java.sql.Types.BLOB when batching is turned on
DERBY-180XCL47 SQLState duplicated in messages_en.properties?
DERBY-181Function/Procedure specific name documented but not supported
DERBY-182BUILDING.txt 3.4.6 refers to a readme file for testing that does not exist
DERBY-186isFirst() returns true when relative(x) goes beyond result set
DERBY-189ResultSetMetaData.getSchemaName and ResultSetMetaData.isWritable donot return correct values
DERBY-194getPrecision() on TIME and TIMESTAMP is zero
DERBY-198Add Support for network Server USRIDONL security
DERBY-199Derby does not support array of column names or column indexes to execute or executeUpdate. Document incorrectly implies that Derby supports this functionality
DERBY-214Remove System.exit() calls from the DB2jServerImpl.java
DERBY-217issue with BLOBs and batch updates in
DERBY-218Add Relaxed Durability option
DERBY-219EXCEPT/INTERSECT fails in views
DERBY-220Javadoc build should include a timestamp and/or the svn revision number in a visible location.
DERBY-225insert of decimal value larger than max succeeds with jdk15
DERBY-227Reference manual has incorrect information for supported resultset types for prepareCall JDBC api
DERBY-228need some OSGI related changes to MANIFEST.MF
DERBY-229Column names on ResultSet.updateXXX and getXXX methods are handled incorrectly
DERBY-230"Schema already exists" when creating a table
DERBY-235unable to create a database using a different storage factory than the one provided by default with the engine
DERBY-236Sane Mode and in our test environment, bootPassword gets written out in plain text to service.properties
DERBY-237Boot errors from store must not lose error messages/stack traces in between.
DERBY-242DatabaseMetaData.supportsGetGeneratedKeys needs to return FALSE, since Derby only has limited support.
DERBY-243connection toString should uniquely identify the connection
DERBY-246XA end() fails with Connection is closed error
DERBY-247Network Server demo program should support Derby network client driver
DERBY-248Network Server frameworks scripts should support Derby network client driver
DERBY-249Builds fail during splitmessages step if path contains spaces
DERBY-250With client setObject( parameterIndex, x, java.sql.DOUBLE) throws conversion exception if the object passed is a BigDecimal with more than 31 digits
DERBY-251DISTINCT query is returning duplicate rows
DERBY-255Closing a resultset after retrieving a large > 32K value with Network Server does not release locks
DERBY-258Incorrect method resolution with explicit method signature
DERBY-265In Network Server retrieving BLOB values with autocommit off causes NullPointerException in INSANE build / AssertFailure in in BaseContainerHandle.getTransaction in SANE Build
DERBY-266test tools/dblook_test.java fails if run in a directory having "*derby/*" in its path
DERBY-279Tagging in DITA docs causes Derby builds to fail.
DERBY-287Return value of IDENTITY_VAL_LOCAL for different connections is not related.
DERBY-288JDBC 2.0 Connection Methods Supported table in displays correctly in html but not in pdf form of Reference manual
DERBY-302Takes over 3 minutes to insert a 500kb String into CLOB
DERBY-309Regression: store/backupRestore1.java fails
DERBY-313testing/README.htm property descriptions: testSpecialProps wrongly named; useprocess omitted
DERBY-314eclipse plugin needs improved network server process handling
DERBY-318SYS.SYSCOLUMN problem with "GENERATED BY DEFAULT" column w/ Network Server
DERBY-319Derby returns incorrect values for "LENGTH" column of DatabaseMetaData.getProcedureColumns() result set.
DERBY-320Failed test: derbyall/derbynetclientmats/derbynetmats.fail:lang/updatableResultSet.java
DERBY-322Remove resultSetHoldability property from ClientDataSource
DERBY-325Database cannot be started due to recovery failure
DERBY-334Add initial SQL support for XML datatype/functions in Derby, based on SQL/XML specs.
DERBY-335Enhance Derby by adding SYNONYM support. A synonym is an alternate name for a view or a table.
DERBY-337dblook doesn't generate SQL statements for SQL functions.
DERBY-339Network client XA should only keep XA state for transaction branch association, to track whether to send commit in autocommit mode. All other state and state related decisions should be deferred to the server.
DERBY-344NPE while performing a 'select distinct ' on a database in softupgrademode with 10.1
DERBY-348example.html file for the SimpleApp does not describe the arguments accepted by the program
DERBY-361Unknown page format error while doing recovery after a a crash while doing in place compress.
DERBY-366In jdk13, when a connection transitions from global transaction to local transaction, its default holdability of HOLD_CURSORS_OVER_COMMIT is not restored.
DERBY-373Documentation errors in "Server/Admin" Guide.
DERBY-374Invalid URL with Derby Client when connecting to Network Server causes protocol exception.
DERBY-375Specification of incomplete server properties on command line causes NPE with NetworkServerControl when starting the server.
DERBY-377There is no information available in the manuals on how to upgrade a database from 10.0 to 10.1 version.
DERBY-389With Network Server Database hangs after some time with many connections executing prepareStatement()
DERBY-405SYNONYM should not be allowed in SESSION schema because that can confusion wih temporary tables
DERBY-416Parameter in one of the error messages is not replaced by the desired value.
DERBY-420missing classes in published javadoc and incorrect copyright date

Below is a list of open code issues documented in the JIRA bug tracking system for the project at the time of the release:

DERBY-1Can't create a new db on OS X
DERBY-5Network Server Protocol error when select fails and "order by" is specified
DERBY-7Bug in NULLIF Function
DERBY-15May get a non-uniue conglomerate id in a very unlikely XA edge case
DERBY-17Network Server Needs to generate CRRTKN on ACCRDB if client does not send it
DERBY-20LIKE handles strings with control characters incorrectly.
DERBY-22Exception XCL16 incorrectly raised for ResultSet of method return after nested commit.
DERBY-23just booting jdbc driver and shutting down seem to leak memory
DERBY-26Dropping a nested trigger and rerunning the querry causes NullPointerException
DERBY-27UCASE/LCASE function should change case according to database locale, but uppercases according to the JVM locale.
DERBY-28Execute Statement of a SYSIBM sps gives java linkage error and class not found exception.
DERBY-39Strange error in JOIN ON clause
DERBY-48A connection request that has a default schema that is being created by another transaction will fail to connect
DERBY-70Incorrect documentation about class loading from installed jar files.
DERBY-92Cannot connect to Derby using DB2 Universal Driver
DERBY-105drop table statement shows wrong message after dropping table
DERBY-129Derby should throw a truncation error or warning when CASTing a parameter/constant to char or char for bit datatypes and the data is too large for the datatype.
DERBY-131AVG precision is INTEGER instead of DOUBLE
DERBY-138Public javadoc should include the org.apache.derby.diag package to show usage of LockTable and other public VTI's
DERBY-148N/w server needs 2 jvm properties to be set to start on IPv6/IPv4 dual stack windows machines
DERBY-151Thread termination -> XSDG after operation is 'complete'
DERBY-154Does Network Server support scroll sensitive read-only and updatable resultsets?
DERBY-160Foreign key constraint failure closes the cursors in embedded mode but not in Network Server mode
DERBY-162Date format documentation incomplete.
DERBY-163Timestamp formatting
DERBY-166NULL is not a valid constraint type
DERBY-172Trigger activation
DERBY-176Derby throws ERROR XBCM1: Java linkage error thrown during load of generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1 during execution of large query
DERBY-177Unnecessary waiting within EmbedDatabaseMetaData.getIndexInfo()
DERBY-179Hibernate bad support
DERBY-183Parameter names required in CREATE FUNCTION
DERBY-195isSearchable() returns true for a calculated field
DERBY-204Derby javadoc has lots of warnings
DERBY-211Network Server returns no result sets for a procedure call that returns no result
DERBY-215Correlation name not allowed for updatable columns in updatable cursors
DERBY-238Testharness: testEncryptionAlgorithm property is not being picked up correctly for some encryption suites
DERBY-240loading special locale fails with jdk131 and jars
DERBY-241Encrypted run of stress.multi test failed once with a boot error with ibm142
DERBY-244with linux, depending on env setting $LANG and console encoding, some i18n tests fail
DERBY-283On IPv6/Ipv4 dual stack windows machines, the network server needs the following jvm properties to be prefixed while starting the server
DERBY-299NetworkServerControlImpl should not have Hard coded message for Unexpected expections
DERBY-300Creation of SQLWarning on a getConnection causes hang on 131 vms when server and client are in same vm.
DERBY-301test harness does not work correctly when colons or spaces are in the directory name
DERBY-304If by mistake you give he location for the db backup as the db itself , then windows created directories recursively until windows crashes!
DERBY-310Document and/or change Derby client code to match behavior with Embedded driver where possible.
DERBY-315jdbcapi/rsgetXXXcolumNames fails with DerbyNet framework
DERBY-321ASSERT FAILED invalid space required 10012 newDataToWrite.getUsed() 10012 nextRecordOffset 189 ... on a database recoverty.
DERBY-328Derby doesn't build properly in turkish locale
DERBY-331create table fails when a constraint defintion follows a column default
DERBY-333Malformed if statement in org.apache.derby.impl.drda.Database.getDRDAStatement()
DERBY-341Client should disallow XAConnection getConnection() when a global transaction has been started and a logical connection has already been obtained
DERBY-345Need to add a property to startNetworkServer.* to specify be able to set the derby.system.home property
DERBY-349setByte() with executeBatch causes hang with client if mapping is invalid, e.g. setByte to DATE
DERBY-352Clobs on insert using streams should not instantiate into memory
DERBY-353It is desirable to have IDENTITY_VAL_LOCAL() function return last recent user specified value or system generated value for BY DEFAULT identity columns.
DERBY-365inplace compress on synonym throws an assert failure. (may be it should not be allowed).
DERBY-374Invalid URL with Derby Client when connecting to Network Server causes protocol exception.
DERBY-375Specification of incomplete server properties on command line causes NPE with NetworkServerControl when starting the server.
DERBY-377There is no information available in the manuals on how to upgrade a database from 10.0 to 10.1 version.
DERBY-385servlet Back to Main Page link points to csnet instead of derbynet
DERBY-387SimpleNetworkClientSample.java network server example has an error which causes it to fail
DERBY-390Import/export fails with table names that are quoted in SQL like import to table "Order"
DERBY-392Disable creating indexes on long varchar for bit data. Long varchar column doesn't allow creating indexes already.
DERBY-395Server-side "trace on" and "trace off" commands do not appear to be working correctly.


Tests were run on the following platforms. Results are listed separately for each platform.

Type testplatform, jvm versionby.:
derbyall suiteWindows 2003, Sun JDK 1.5.0_02Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteWindows 2003, IBM JDK 1.4.2Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteRHEL 3 (Linux 2.4.21), Sun JDK 1.4.2_08Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteRHEL 3 (Linux 2.4.21), IBM JDK 1.4.2Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteRHEL 3 (Linux 2.4.21), IBM JDK 1.3.1Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteWindows 2000, IBM JDK 1.4.2Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteWindows 2000, WSDD 5.6Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteWindows 2000, WCTME 5.7Myrna Van Lunteren (m.v.lunteran@gmail.com)
derbyall suiteWindows XP, Sun JDK 1.5.0Ole Solberg (ole.solberg@sun.com)
derbyall suiteLinux 2.4.21, Sun JDK 1.5.0Ole Solberg (ole.solberg@sun.com)
derbyall suiteSolaris 10 (x86), Sun JDK 1.5.0Ole Solberg (ole.solberg@sun.com)
derbyall suiteSolaris 10 (Sparc), Sun JDK 1.5.0Ole Solberg (ole.solberg@sun.com)
derbyall suiteSolaris 9 (Sparc), Sun JDK 1.5.0Ole Solberg (ole.solberg@sun.com)
derbyall suiteWindows XP, IBM JDK 1.4.2Ramandeep Kaur (ramank@yngvi.org)
derbyall suiteSUSE Pro 9.1 (Linux 2.6.x), Sun JDK 1.5.0_03Ramandeep Kaur (ramank@yngvi.org)
derbyall suiteFedora Core Release 3, IBM JDK 1.4.2Rajesh Kartha (kartha@source-zone.org)
derbyall suiteSLES 9, Sun JDK 1.5.0_03Rajesh Kartha (kartha@source-zone.org)
derbyall suiteWindows 2000, Sun JDK 1.5.0_03Rajesh Kartha (kartha@source-zone.org)
derbyall suiteWindows 2000, IBM JDK 1.4.2Rajesh Kartha (kartha@source-zone.org)
derbyall suiteSolaris 9, Sun JDK 1.4.2_07Andrew McIntyre (mcintyre.a@gmail.com)
derbyall suiteMac OS X 10.4.1, Apple JDK 1.4.2_07Andrew McIntyre (mcintyre.a@gmail.com)

Several test issues were reported, but no specific code issues were noted.

Tests for a specific platform can be run using the derbyTesting.jar file that can be found in the lib directory of the -lib or -bin distributions.

Instructions on how to run the tests can be found in the testing README.

Verifying releases

It is essential that you verify the integrity of the downloaded files using the PGP and MD5 signatures. MD5 verification ensures the file was not corrupted during the download process. PGP verification ensures that the file came from a certain person.

The PGP signatures can be verified using PGP or GPG. First download the Apache Derby KEYS as well as the asc signature file for the particular distribution. It is important that you get these files from the ultimate trusted source - the main ASF distribution site, rather than from a mirror. Then verify the signatures using ...

% pgpk -a KEYS
% pgpv db-derby-X.Y.tar.gz.asc


% pgp -ka KEYS
% pgp db-derby-X.Y.tar.gz.asc


% gpg --import KEYS
% gpg --verify db-derby-X.Y.tar.gz.asc

To verify the MD5 signature on the files, you need to use a program called md5 or md5sum, which is included in many unix distributions. It is also available as part of GNU Textutils. Windows users can get binary md5 programs from here, here, or here.

We strongly recommend you verify your downloads with both PGP and MD5.