Friday, June 17, 2011

EclipseLink Indigo Preview: Shared Databases for Multiple Tenants

Challenged to take an existing application and re-use it for a new customer or group of users (tenant)? Instead of customizing the application, adding new hardware or re-configuring the database for each new tenant, you can now build EclipseLink JPA enabled applications hosting requests from multiple tenants with all their data co-located.

Starting with EclipseLink 2.3, part of the annual Eclipse Indigo release, you can now have multiple application tenants sharing a database schema. EclipseLink enables you to configure your database tables for shared storage by simply providing tenant discriminator column(s) and providing values for these discriminators within your application. This allows your tenants to share the same schema without being aware of one another.

Of course in some instances, you may wish to share some data across tenants. No problem! EclipseLink allows you to share and isolate as much or as little as your application requires.

The beauty and ease of creating such an environment lies simply in decorating those entities that need to be isolated per tenants with an @Multitenant specification. Shared entities need not be configured any further then required by the JPA specification.

For more information on how to take advantage of this new functionality, follow the link:

http://wiki.eclipse.org/EclipseLink/Examples/JPA/Multitenant

Please note: The final release date for EclipseLink 2.3 is June 22, 2011 and the examples and documentation will evolve as the release date approaches. If you would like more detail, please check back after the release date or take advantage of our mailing lists and forums.

No comments: