Wednesday Aug 04, 2010

OpenDS and Sun JVM 1.6.0_21

Sun\^H\^H\^HOracle released an update to the Java Platform Standard Edition last month : JDK 6 Update 21.
Last week, both on #opends IRC channel and the users mailing list, we started to get questions on how to enable replication between 2 instances of OpenDS, because dsreplication was producing an error, stating that there was no base DNs available to enable replication between the 2 servers.
This was affecting the latest stable release of OpenDS (2.2.0) as well as the latest promoted-build and daily-builds.

After several exchanges and attempts to reproduce the problem, we found that the root cause was some changes in JDK 6 update 21, and more specifically in the parsing of the LDAP filters in JNDI. The new code has a stricter parsing and will mess with LDAP filters not surrounded by parentheses. " cn=Foo" is according to RFC 4515 not a valid filter whereas "(cn=Foo)" is.
There was one occurrence of an invalid filter in OpenDS internals, exercised when enabling replication for the first time. We fixed the issue (#4575) yesterday and starting with today's daily-build, you can use the latest version of the Java run-time with OpenDS.

We're looking at providing an updated version of the 2.2 version to solve this issue as well as a few other important corrections. No ETA for this though.

Technorati Tags: , , , ,

Wednesday Jun 16, 2010

OpenDS 2.3.0-build003 is now available...

Opends Logo TagWe have just uploaded OpenDS 2.3.0-build003, a new snapshot from the development branch of the OpenDS project, to the promoted-build repository.

OpenDS 2.3.0-build003 is built from revision 6502 of our source tree.

The direct link to download the core server is:

The direct link to download the DSML gateway is:

We have also updated the archive that may be used to install OpenDS via Java Web Start. You may launch that using the URL, or visit for more information.

Detailed information about this build is available at, including the detailed change log

Major changes since OpenDS 2.3.0 build002 include :

  • Provides support for the MS Permissive Modify control (#4238)
  • Adds support for multiple superior objectclasses in schema (#615)
  • Updated Berkeley DB Java Edition to version 4.0.103
  • Several enhancements and fixes in the External Changelog: Reliability in special cases like disabling replication domains, naming entries by ChangeNumber (Issue #4537), performance of searches with bounded filters (#4507), supporting operational attributes...
  • Resolves an issue (#4546) during shutdown that could cause deadlock in replication
  • Resolves an issue (#4554) on Windows with the Windows services
  • Some enhancements in the GUI look and feel and in 508 compliance
  • Resolves some issues (#4529, #3891, #3404, #3402) with specific replication conflict resolution
  • Improves the startup time of the server and detection of services tags
  • Resolves an issue (#4553) with the referential integrity plugin when several attributes are configured but only one is in a user entry
  • Fixes an issue (#4386) when adding an entry with duplicate values, resulting in a NPE
  • Fixes an issue (#4468) with the way values in filters and indexes are normalized
  • Resolves some performance issue (#4384) in replication monitoring
  • Improves reliability of replication initialization protocol (Issues #3395 #3998)
  • Resolves several issues (#3966, #4406, #4536 with clients tools and control panel when the server disconnect on error
  • Fixes some issues with MakeLDIF utility
  • Resolves a few issues (#4520) within Import
  • Improves the SSHA password storage scheme to be compatible with hashes from other servers (#4558)
  • Resolves an issue (#4232) with Windows specific LDIF files during Import
  • Adds an option to log replications CSNs in the Access Logs, like Sun Directory Server does
  • Resolves an issue (#4556) with the Password Modify extended operation when some validation must be skipped for administrators
  • Resolves an issue (#2748)with the order of message logged in the access logs
  • Resolves an issue where password policies subentries are not applied after replicated

Technorati Tags: , , , , , , ,

Tuesday May 04, 2010

OpenDS 2.3.0-build002 is now available...

Opends Logo TagWe have just uploaded OpenDS 2.3.0-build002, a new snapshot from the development branch of the OpenDS project, to the promoted-build repository.

OpenDS 2.3.0-build002 is built from revision 6400 of our source tree.

The direct link to download the core server is:

The direct link to download the DSML gateway is:

We have also updated the archive that may be used to install OpenDS via Java Web Start. You may launch that using the URL, or visit for more information.

Detailed information about this build is available at, including the detailed change log

Major changes since OpenDS 2.3.0 build001 include :

  • Multiple improvements on the Control Panel and the Setup
  • Multiple incremental improvements with the External Changelog, including reliability and performance (Issue #4478)
  • Upgraded the version of the Berkeley DB Java Edition to 4.0.95
  • Final fix for issue #4367, removing the need for BDB logging configuration via properties
  • Fixes some memory leaks with lots of connects and disconnects (Issue #4491)
  • Resolves a NPE when using Extensible Matching filters without matching rule OID (Issue #4385)
  • Fixes an issue (#4539) with the DSML gateway with JAXB and some Application Servers
  • Fixes an issue (#4492) in ACI where an NPE would occur when the base entry contains a single RDN component
  • Improves the reliability of the OpenDS Windows Services (Issues #4084 and #4381)
  • Resolves issue #4523 where ACI and sub-entry caches were not updated on replicas
  • Resolves issue #4538 where Virtual attributes would not be retrieved when the entry cache is configured
  • Fixes an issue with access controls that would give different results for cn=Directory Manager and plain user (Issue #4547)
  • Enhances the support and compliance of LDAP subentry, Collective attributes and Password Policy
  • Resolves several issues with Replication including Issues #4514, #4533 and #4534, and enhance the way Replication servers are electing servers they connect to (Issue #4343)
  • Renamed the extensions directory to "experimental". The only experimental extension is the ArisID privacy control
  • Fixes several issues related to building OpenDS, especially on Windows.

Technorati Tags: , , , , , , ,

Monday Mar 15, 2010

Subversion authorization through LDAP with OpenDS

If you building a centralized development environment for a team or large group of users, the question of centralizing user identities, authentication and authorization is always popping up and the answer is often to use an LDAP directory server. The developer section of the OpenDS documentation wiki has a set of tutorials for using the OpenDS LDAP directory server with various web servers and open source project like GlassFish, Apache Tomcat, SugarCRM... But not yet for Subversion. Thankfully, Wooter van Reeven, Senior Consultant at Yenlo has just published a long and detailed tutorial for setting up Subversion authentication and authorization through LDAP, with OpenDS and Apache2.

Update on March 18th.

Wooter has also posted a copy of the article on OpenDS documentation wiki.

I've also been aware of an older article on the subject of Subversion with Apache and LDAP by Jeremy Whitlock, engineer in the CollabNet Subversion team. This article contains more details on the Apache configuration parameters and snippets for both Apache 2.0 and Apache 2.2.

Technorati Tags: , , , , , ,

Wednesday Mar 10, 2010

OpenDS Tab Sweep

It's been a while since I last posted an OpenDS tab sweep. So here's a list of news and pointers related to our open source LDAP directory server.

PCQuest Top Story this month is about the Top 10 Enterprise Open Source Apps, which include OpenDS and an article on Managing Identities with OpenDS.

The OpenDS project is starting to demonstrate its maturity. Several startups and software companies are now officially supporting OpenDS.

IconcurldapintegrationiConcur Software delivers new Axiom a Requirements management tool integrates by default with OpenDS.

Bonitasoft, the leader in open source Business Process Management (BPM) and a Grenoble based company, uses OpenDS for testing its support of LDAP repositories and praises it to its own customers, for its ease of use. Ask @rodrigue !

Symeos, another high profile French startup is building its Symeos Appliance Framework on open source projects including GlassFish, OpenSSO and OpenDS.

Janua, a French IT services company specialized in identity projects has included OpenDS in its product offering and has just launched a new site for its LDAPTools.

Sopera, a german company building open source SOA is integrating OpenDS in its development tools and offering, as shown on the screenshot below (courtesy of SpringSource)

SOPERA ASF ToolSuite partial screenshot

Also in the recent days a couple of new LDAP browsers appeared.

Finally, in a introductory article titled Microsoft Azure for the Dummies, Ernest regrets the lack of flexibility in the PaaS plans from Microsoft and suggest that Java based OpenDS directory Server as a good alternative for running your own LDAP service on MS infrastructure.

Technorati Tags: , , , , ,

Monday Feb 15, 2010

Directory Service Performance Optimization Strategy: Data Priming

Directory servers usually run for long period of times and have stable performances as all caches are warmed by the traffic. But how to get optimum performances as fast as possible right after starting the server ? Brad Diggs has published Directory Data Priming Strategies, another blog post added to the series of articles on Sun (now Oracle) Directory Server Enterprise Edition 7, ZFS and Flash Technologies.

Technorati Tags: , , , ,

Monday Feb 08, 2010

The basics of Flash Memory

These days, everybody get excited with Solid State Disks, flash memory and the performance improvements they have over other mass storage solutions.

Sun F20 Flash accelerator boardWe've been running some benchmarks of Sun Oracle Directory Server 7.0 leveraging new Sun flash based hardware modules. Before we go in details about their benefits, my colleague Brad Diggs posted a very educational article on the basics of Flash Memory to set a common understanding of the technology.

Read on and get ready for more data points on how ZFS and Flash Memory can improve Directory Server performances and scalability.

Technorati Tags: , , , ,

Friday Feb 05, 2010

Oracle and Sun Directory Services...

Mark Wilcox, principal product manager for Oracle Virtual Directory has posted an initial update with regards to Oracle and Sun directory services.
Nothing really detailed so far, but it's good place to post your comments on the Oracle + Sun Identity Management Strategy and more specifically regarding directory services.

To me and my coworkers, the most important messages are :

We are going to continue to offer both Oracle Internet DirectoryAND Sun Directory Server Enterprise Edition


OpenDS will remain an open-source project

Details are still being discussed and ironed out, but I hope to be able to share them soon. Stay tuned !

Technorati Tags: , , , , ,

Friday Jan 22, 2010

Sun Directory compresses data for better performance !

Sun Directory Server Enterprise Edition 7.0 was released last November, and in the December timeframe Brad Diggs and Wajih Ahmed, both Principal Field Technologists and big experts in Directory Services, backed with engineers from the Directory engineering team and Mr Benchmark, put the product on the test bench to evaluate its performance and scalability with Sun new hardware and especially the new F-20 PCIe flash drives (see also what Mr Benchmark says about the F-20).

Brad's first article describes how much Directory Server 7 entry compression rocks, "extending search performance by more than 50% through increased caching potential". Brad provides details of his findings and gives the commands to run to get the benefits of DSEE 7 in your deployment.

The entry compression feature is also available in the technology that will power future versions of Sun Directory Enterprise Edition: the OpenDS project. In OpenDS, there are 2 options to reduce the size of entries stored in the database. The first one is called entry compaction, and it's enabled by default. The entry compaction feature removes all references to attribute names and replace them with small identifiers. The second option is actually entry compression which will use the popular ZLib algorithm. This option is not activated by default, but it's just a command away :

<OPENDS_HOME>/bin/dsconfig -X -p 4444 -h localhost -D cn=Directory\\ manager\\
 -w password -n set-backend-prop \\
 --backend-name userRoot --set entries-compressed:true

Below is the dsconfig usage for disabling entry compaction with OpenDS:

<OPENDS_HOME>/bin/dsconfig -X -p 4444 -h localhost -D cn=directory\\ manager\\
 -w password -n set-backend-prop \\
 --backend-name backend --set compact-encoding:false

Here's a table that compares the size of the databases of OpenDS 2.2.0 with no compat encoding, with it (default settings) and with compression enabled. The table compares the size of the entry record within the database as well as the overall size of the database which also includes indexes (default OpenDS settings).

Entry Count LDIF Entry Size Uncompacted Entry Size Compacted Entry Size Compressed Entry Size Uncompacted DB Size Compacted DB Size Compressed DB Size
100K 599 b 645 b 481 b 361 b 178.8 MB 163.20 MB 151.65 MB
-34% - 25% -9.6% - 7.1%
1M 603 b 649 b 485 b 364 b 1,515 MB 1,358 MB 1,243 MB
-34% - 25% -11.5% - 8.5%
10M 607 b 653 b 490 b 363 b 13,973 MB 12,416 MB 11,188 MB
-33% - 26% -12.5% - 9.9%

The percentages are computed from the reference value which is the default i.e. compacted. A negative value means an increased size, a positive one means a reduced size.

The second table compares the import times for the 3 different modes for storing entries, for the 3 sample data files.

Entry Count Uncompacted Compacted Compressed
100K 21 s 21 s 22 s
1.1% - -3.5%
1M 106 s 107 s 112 s
0.5% - -4.9%
10M 1006 s 1009 s 1101 s
0.2% - -8.9%

Note: in this table, negative numbers represent increase in time required to import compared to the default settings.

Enabling compression does result in a smaller disk use with that sample data (fully random values), but does come with a performance penalty at least at import time, less than 10% but the penalty increases with the amount of entries. If you've read Brad's article on DSEE entry compression, you understand that the smaller the entries in the database, the more can be potentially cached in the Database Cache and the better the overall performances are. So if your entries are quite large, contain values that are strings, you should consider enabling the entry compression with OpenDS.

Changing from the default mode (compacted) to uncompacted mode does not give any real advantage in performance, but does increase the disk space usage, so I do not see the value of changing these settings in OpenDS.

Anyway, the benefits of having compact entries in the database are available today with Sun Directory Server Enterprise Edition 7 and Sun OpenDS Standard Edition 2.2, and are helping customers to reduce the overall cost of ownership of the directory services.

Technorati Tags: , , , ,

Wednesday Jan 20, 2010

OpenDS 2.3.0-build001 is now available...

In December, the team had released OpenDS 2.2.0, a stable release of the LDAP directory server written for the Java platform. While the quality assurance team was testing and making sure the level of quality and reliability was there, the developers continued to add features on the trunk.
So today, I'm happy to announce the promotion of OpenDS 2.3.0-build001, the first development build on the path to OpenDS 2.4, a stable release currently planned for Summer 2010.

OpenDS 2.3.0-build001 is built from revision 6353 of our source tree and contains 2 major features :

  • The import code has been refined to improve performances, especially with very large data set. Tests have been run with 1,000,000,000 entries and the file imported in about 40 hours.
  • This version of OpenDS provides support for Subentries in LDAP [RFC 3672] and Collective Attributes for LDAP [RFC 3671]. In addition to the support of the Collective attribute standard, OpenDS supports a more user friendly notation, allowing to make use of Collective attribute definitions with standard attributes. More on this subject in a future article, although if you want to understand how to use it, Anton already wrote a description on the OpenDS Wiki.

These 2 features are just started to be seriously tested by the OpenDS team, so they cannot be considered as fully stable yet. There are already some issues being investigated, with the rebuild-index and verify-index commands. If you do find an issue with this OpenDS build, please report it in Issue Tracker.

The direct link to download the core server is:

The direct link to download the DSML gateway is:

We have also updated the archive that may be used to install OpenDS via Java Web Start. You may launch that using the URL, or visit for more information.

Detailed information about this build is available at, including the detailed change log

Major changes since OpenDS 2.2.0 include :

  • Multiple improvements on the Control Panel and the Setup including display of equivalent command-line commands, cosmetic aspects, messages, referral handling...
  • Multiple incremental improvements with the External Changelog, including reliability and performance
  • Revision 6190 - Upgraded the version of the Berkeley DB Java Edition to 4.0.73
  • Revision 6192 (Issue #4360) - Improves responsiveness of the OpenDS server when hammered with large searches and slow clients
  • Revisions 6198, 6209 (Issue #4371) - Solves an issue with PKCS12 certificates that do not have alias
  • Revision 6208 (Issue #4373) - Improves time to start the replication service
  • Revision 6292 (Issue #3601) - Adds the ability to update or delete schema attribute types and object classes definitions in the Control Panel
  • Revision 6332 (Issue #4472) - Fixes the way a Workflow element is checked to be a parent of another Workflow element
  • Revision 6334 (Issue #4464) - Solves an issue where reading the RootDSE could take too long when External Changelog is enabled
  • Revision 6336 (Issue #4477) - Increases the maximum size of DB log files from 10MB to 100MB
  • Revision 6351 - Support for localization in Catalan (ES_CA)
  • Revision 6353 (Issue #4489) - Resolve an issue where Java would not be detected even though JAVA_HOME variable was set

Technorati Tags: , , , , , , ,

Thursday Jan 14, 2010

Happy New Year !

Hello again after this too long break. Well, I wasn't on vacation the whole time, but I find it hard to go back into writing mood. I also got distracted by the amount of snow that we received in Grenoble's valley: yesterday there was still 30 cm of snow everywhere around my house.

Lp0 2941

Anyway, I'm back to this blogosphere, with the same hope that I will be posting more regularly than last year.

Opends Logo Tag

Looking back at 2009, it's been an amazing year for the OpenDS project team.

In a year, we've released 3 important versions of OpenDS, with many features and innovation:

  • In January, OpenDS 1.2 added the Control Panel, SASL security, Support for JCEKS, enhancements in Access Controls and several Solaris / OpenSolaris specific features such as IPS packages, support for SMF and RBAC, ...
  • In July, OpenDS 2.0 brought many performance improvements, several new features including Assured Replication, Recurring Tasks, Locale specific matching rules, and enhancements of the monitoring, the indexing, the ease of use, ...
  • In December, OpenDS 2.2 added support for Fractional Replication, External Changelog, some date and time based matching rules, syntaxes extensions for Enumerations and Regular Expressions, up to 8 Masters in Replication, ...

During the same period, the OpenDS Community has more than doubled, and so has the number of downloads of the OpenDS builds.

The OpenDS development continues. We have planned the release of OpenDS 2.4 in the middle of 2010. You can check the OpenDS RoadMap to see the features that are being worked on. If you're using OpenDS in production, or if you're building solutions that use the OpenDS LDAP directory server, please share your experience with the community. Send us details of your experiences or deployments. We will post them on the OpenDS wiki or Sun Adoption Stories blog.

While we're still in January, let me wish all of you a happy and prosperous New Year 2010, and a long life to the OpenDS project.

Technorati Tags: , , , , ,

Tuesday Dec 22, 2009

OpenDS helps load testing in the cloud.

In the CloudJason Shao explains on his blog how they do loadtesting of their web-based portal application on Amazon EC2.

What raised my interest was that they've added the OpenDS ldap directory server in the image, as it was faster and easier than dealing with their usual infrastructure.
This is not the first time we see customers deploying OpenDS in the cloud. As a matter of fact, I think the first in production deployment of OpenDS was on More recently, Arnaud posted an article and performance numbers on running OpenDS on Amazon EC2.

If you are building services on the cloud and need authentication, authorization or storing profiles for your users, OpenDS provides a standard based solution (LDAP) that is very easy and fast to deploy. Give it a try !

Technorati Tags: , , , , ,

Tuesday Dec 15, 2009

OpenDS 2.2 has been released !

Opends Logo TagThe OpenDS development team is very happy to announce the immediate availability of OpenDS 2.2.0.
The Sun team is also announcing the release of Sun OpenDS Standard Edition 2.2, a commercial offering based on OpenDS 2.2.0.

OpenDS is an LDAPv3 compliant directory service written entirely in Java. With less than 5 months since the availability of OpenDS 2.0, the new release brings several new features and enhancements :

  • New scalable Import and Indexing feature allows to import 10 M entries in less than a half hour
  • External Changelog is activated with Replication to search and retrieve data updates
  • Fractional Replication, to specify which attributes to include or exclude in replication
  • Extensible matching rules for date and time based attributes to define time based access control rules
  • Support for custom syntaxes based on substitutions, regular expressions or enumerations
  • Remote server management in the Control Panel
  • Improved replication management and grouping, tested with up to 8 masters
  • Recurrent Tasks in the Control Panel to automate backups
  • Dsconfig script friendly mode

OpenDS 2.2.0 is the promotion of OpenDS 2.2.0-RC4, built with revision 6181 of the b2.2 branch, to stable status.
You can download it as a Zip file or install it now with the Java WebStart Installer.

As with previous stable releases, we've taken a snapshot of the documentation wiki. Links are still being verified and some screenshots might be updated in the coming days, but the content is complete.

You can find more information about OpenDS 2.2 in the release notes. And if you're considering deploying in production and you're looking for support options, please check Sun OpenDS Standard Edition 2.2, built on the same code.

I'd like to thank all the members of the community who have helped us to make OpenDS 2.2 a better release, and especially those who helped with translations : Marek Roszkowski and Bartłomiej Pelc for the Polish translation, Christian Brennsteiner for the German one, and all those who have created issues in the Issue Tracker : crstop, robdale, ajangity, swtet2003, soonleong, stroeder, ogr. My thanks are also going to the chatters on the IRC channel that are providing enormous feedback.

New features and enhancements have already been committed on the trunk and are available for test in daily builds. Please check the OpenDS roadmap for more details on coming features, and possible contribute to it.

Technorati Tags: , , , ,

Monday Dec 07, 2009

Securing JBoss JMX console with OpenDS

Steve Millidge, founder of C2B2, has just published a nice and illustrated step by step tutorial for securing JBoss JMX console with LDAP and more specifically the OpenDS directory server. Similar steps could be used to secure all the different subsystems in JBoss, as illustrated in this already 2 years old tutorial about JBoss Portal, OpenSSO and OpenDS.

Technorati Tags: , , , , , ,

Monday Nov 30, 2009

OpenDS 2.2.0 Release Candidate 4 is now available

Opends Logo TagLast week, the OpenDS 2.2.0 Release Candidate 4 has been made available on our website. This new release candidate was mostly done to accommodate with some late changes to messages being localized, and give more time for testing to OpenDS 2.2 and the Sun branded product based on it.

OpenDS 2.2.0-RC4 is built from revision 6147 of the b2.2 branch of the source tree.

The direct link to download the core server is:

The direct link to download the DSML gateway is:

We have also updated the archive that may be used to install OpenDS via Java Web Start. You may launch that using the URL, or visit for more information.

Detailed information about this build is available at, including the detailed change log

Major changes incorporated since OpenDS 2.2.0-RC3 include:

  • Revision 6150 (Issue #4355) - Fixes a caching issue with the Control Panel when aborting a search
  • Revisions 6156, 6160, 6172 (Issue #4358, #4329, #4340) - Resolve several issues with the External Change Log at initialization or shutdown
  • Revision 6181 (Issue #4325) - Resolves an issue with values of Enumeration Syntax not being case insensitive in Add or Modify operations

Technorati Tags: , , , , , , ,


This is the blog of a senior software engineer, specialized in LDAP, Directory Server and OpenDS. Ludovic Poitou works in France at the Grenoble Engineering Center, in the Directory Services Engineering team. Outside work, I love skiing and taking photo


« August 2016