This architecture shows two existing relational databases being used by a J2EE application server. One database is being accessed using JDO and the other by JDBC. A third database is being used in the middle tier as an EJB accelerator.
The database used as an EJB accelerator could hold data that is unique to the needs of the EJB components, a copy of the data that is updated in the relational database, or both types of data. This is referred to as having "in-line updates" because any updates by EJB components are made directly, or in-line, to the underlying relational database. This is in contrast to "staged updates" (new window).
Object databases make for an excellent middle-tier database for use with EJB components. This is because the object model used by EJB components is the same model used by object databases. For more information, see:
- Middle-tier architecture (new window)
- The importance of a lack of impedance mismatch for performance (new window)
- When to use EJB accelerators with Java application servers (new window)
This architecture using an object database will likely provide better performance than if no database or a relational database was used in the middle tier. In either case, the objects in the EJB components would need to be mapped to some degree to the relational model -- either in the middle tier or in the EIS Tier. This is most likely true even with the SQLJ using the SQL:1999 object model. See Part 2 in SQLJ (new window). For an even higher-performing architecture, see "staged updates" (new window).

Multiple components use JDO to access the relational database. JDO allows the mapping between Java objects and tables to be defined in one place for use by the multiple components. See JDO data conversion (new window).
The JDBC interface is used by the Web Server to access simple data. See when to use JDBC with Java application servers (new window).
Also see:
- Using JDBC with application servers (new window)
- Using JDO with application servers (new window)
- Using EJB accelerators with application servers (new window)
![]()
More on the general topic: Architectures using databases in the middle tier


