That is why a new engine having flexibly connected language modules and database access modules is available.
Here, the declarative and procedural languages are connected as plugins. Hence the dynamic structures can be defined using SQL, PL/pgSQL, JavaScript, Java, Perl, etc., as well as their combinations.
This new release allows the application to have several connections to one or multiple databases simultaneously, including different DBMS types (Oracle, Postgres, MySQL, MSSQL Server, etc.). For instance, when dealing with Master-Detail forms, the master list can receive data from one database, while the details' records can be extracted from the other one. This principle allows:
- Integration of systems with different DBMS without using unreliable and hard to debug heterogeneous db-links
- Smooth step-by-step migration of the application from one DBMS to another
Another essential feature of this release is working both in long-living and short-living transactions modes:
- Short-living transaction starts and ends during a single interface event, which suits well for large-scale systems with a virtually infinite number of users
- Long-living transaction spans across the events, providing the opportunity of handling locks management, data consistency, and rolling back transactions at the database level. This mode suits well for enterprise systems, where data consistency is crucial.
- Combined scenario provides both modes when some connections to the DBMS work in the short-living mode, and others — in the long-living mode.