Posts tagged availability
Availability is a highly desirable aspect of Fusion Middleware application. Planned downtime therefore sounds quite silly. However, the introduction of changes to applications has typically been associated with the roll out and redeployment of the application causing disruption of service – through loss of existing conversations and unavailability during the deployment process. Several approaches and mechanisms are available in the Oracle stack that will help substantially reduce the loss of uptime because of changes to applications.
First of all, many types of changes may be implemented through run time configuration, rather than software change requiring redeployment of application artifacts. This approach requires good design of aspects of applications that may require modification and the construction of run time mechanisms for applying and processing such changes. The design time at run time capabilities of several Fusion Middleware products go a long way in supporting this approach.
Additionally, several FMW components support short or even long term co-existence of different versions of applications. This means that existing conversations can complete even when a new More >
Reduce occurrence of ORA-04068 while upgrading PL/SQL packages by moving global variables to Application Context0
This article will argue against the use of (stateful) global PL/SQL variables – as they are both a potential problem for stateless web applications and the availability experienced by end users during database upgrades.
In various database releases, Oracle did a lot of work in supporting online redefinition of database objects, striving to a reduction of the impact of changes both in terms of unavailability (through locks) and invalidation of dependent objects. When a table is redefined online, it is accessible to both queries and DML during much of the redefinition process. The table is locked in the exclusive mode only during a very small window that is independent of the size of the table and complexity of the redefinition, and that is completely transparent to users. Through fine grained dependency tracking, the number of occasions on which dependent objects are rendered invalid is reduced to those situations where it is really justified. In database releases prior to 11g, object dependencies were managed at the object level, so altering an object automatically invalidated all dependent objects. Oracle 11g has more granular dependency management, so only changes that directly More >
Production redeployment is a facility in WebLogic that provides the ability to temporarily have multiple versions of the same web application of web service active at the same time.
Sometimes, changes in application functionality require redeployment of the application. In the theoretical case of instantaneous responses from applications, we could argue that the roll out of a new version of an application is akin to the flip-of-the-switch: request A is handled by version X, the switch is flipped to bring version X+1 live and the next request B is taken care of by the new version. This, however, is not the reality. Requests take longer to process than no time at all. Besides, requests live in the context of a session – this applies to database as well as application server. This means that replacing version X with a new version X+1 in a throw-the-switch manner would not only potentially interrupt pending non-zero duration requests but would also – and far more harmfully – destroy all pending sessions. This would definitely not constitute zero-downtime application upgrade.
One of the most spectacular new facilities in Release 2 of the Oracle 11g Database is called Edition Based Redefinition – not a name perhaps that suggests any spectacle. EBR (Edition Based Redefinition) is a mechanism that allows on line application upgrade with no planned downtime. In short, the new release is built up in parallel to the existing one, in the same schema and using the same database objects; only the new (modified) objects live in another dimension and do not impact the existing objects. Once the entire set of new and changed objects has been created and recompiled, the database administrator can start routing new sessions to the new release; existing sessions can continue to run against the original set of objects – and new sessions if so desired can also run against the orginal set.
A set of object versions – mutually consistent and interdependent – which in software engineering terms would be duped a release or stripe and in Oracle Software Configuration Manager (Designer) terms a configuration is called an edition in 11gR2 lingo. An Edition is a combination of new objects, new versions of objects and inherited pre-existing versions that together make up a More >