Oracle's Lifetime Support policy has three phases: Premier Support, Extended Support, and Sustaining Support. For details about coverage during each phase, see:
You can purchase a support plan for your licensed products to obtain Premier Support. There is an additional fee for Extended Support.
Extended Support for Database 11.2 runs to December 31, 2020. The Extended Support fee for Oracle Database 11gR2 11.2 has been waived to December 31, 2018. See:
In previous articles in this series, I have discussed some of the ways in which you can extend or override the Composite Component Framework. These include the overriding of lifecycle method callback names (not recommended) and custom property parsing (very useful). Additionally, of course you have the lifecycle methods themselves as a place to carry out the internal operations of your Composite Components. This all adds up to a pretty rich working environment, but the addition of the custom metadata capability really completes this story. In this article, I'll be looking at how to define and work with extended metadata.
Defining Custom Metadata in the Composite Component Architecture
We have already seen how the definition metadata can contain information above and beyond that which is strictly required for runtime use. The description property and method parameter properties are examples of this. The intention of course being that consumers of the Composite Component can receive a richer description of the component. However, even those "Design Time" attributes may not be enough and so the framework also supports an extension mechanism.
Additional metadata of your own can be introduced anywhere within the Composite Component metadata definition (e.g. its JSON file) using the property extension. The value of this property can be defined as a complex object in it's own right allowing you to define an unlimited amount of ancillary information on top of the base API.
Here's an example of metadata with some extensions added:
In this case I've just decorated the top level and the two properties, however, you can supply an extension attribute to any of the definition objects within the metadata except the properties, methods or events root objects which would, of course interpret the extension keyword as just another property, method or event definition respectively.
The Composite Component framework itself, will do nothing with these extension properties after the metadata is parsed. Any functionality (such as the range and enum checking that I've illustrated here) is a task for the component author1, or exists to help some design time tool that you develop in-house to use the extension.
By design, there are currently no prescribed set of attributes for any extension metadata that you define. You have total freedom as to how you use the facility, however, be aware that some further evolution and standardization of CCA metadata will be taking place over the next few releases of JET. So you should certainly keep an eye on the release notes for changes in this area,
Accessing the Extended Metadata
Just being able to extend the metadata definition without being able to read it again afterwards would not be very useful. Therefore, framework provides two ways to access the metadata including any extension information that you have supplied:
From a Custom Property Parser - as I discussed in Part X, one of the attributes passed to any custom parser that you register, is the metadata for the property being parsed. This would provide a convenient place to read the extension metadata as defined for that property and use it, for example, providing a validation mechanism as illustrated here. You only see property metadata here though, not the whole metadata defintion.
From oj.Composite - the oj.Composite object provides a static method called getMetadata() to retreive the whole metadata object for the Composite Component. This takes the name of the component (the same one passed to the oj.Composite.register() function) and returns a promise to the resolved metadata object. Because this function is both static and external to the Composite Component, it can be used both within the component itself or by external entities such as Design Time tooling that wishes to introspect the component. Note that the component has (of course) to be loaded / registered before it can be described by this API2.
Between them, these two approaches provide the access you need. The rest is up to you!
Don't Forget to Standardize!
It's all very well having the freedom to extend the CCA metadata in pretty much any way that you want. However, you want to be consistent in how you approach this task. Keep in mind that the CCA is constantly evolving and more standard metadata will be added as new releases arrive. So you should be prepared to revisit your use of metadata with each release and migrate any custom definitions to the standardized ones. This will ensure maximum compatibility with any tooling that reads the metadata. You should also never add custom attributes directly to the JSON outside of the extension property buckets. This will ensure that you don't inadvertently add a property which might clash with a future feature property added by the framework. The extension properties are your "safe zone", stick to adding value there. Furthermore, I would recommend that you namespace your extension metadata within the extension object, for example:
This will enble you, and any of the consumers of your Composite Component, to clearly identify the relationship between the extension metatdata and it's usage. This will become particularly important if you build many CCAs, some of which will share "common" extension metadata maybe used by your "superclasses" as well as having component specific extension metadata.
What's Next?
We're almost done with the core technology aspects of the Composite Component Architecture, in the next article I wrap that all up with some of the more advanced topics around the loader script and registration process.
Stream
Analytics platform provides a compelling combination of an easy-to-use
visual façade to rapidly create and dynamically change Real Time
Streaming Analytics (Fast Data) applications, together
with a comprehensive run-time platform to manage and execute these
solutions. Completely abstracting the entire development and deployment
processes, it simplifies the rapid creation of event driven applications
for any type of real time business solution, enabling the Enterprise to
really immerse itself in next generation real time applications, with
times to market of minutes, rather than days or weeks. Oracle Stream
Analytics embraces an industry focus approach with features to leverage
preexisting patterns of well known event processing implementations,
the definition of Streams that represent the connection to the most
popular protocols and methodologies, References which allow immediate
joining of streaming data to relational databases and Explorations that
provide a stunning visual representation of real time disparate event
data flows providing customers with insightful data interrogation in
real-time so that downstream applications, service oriented
architectures and event-driven architectures are driven by true,
real-time intelligence. Oracle Stream Analytics provides
organizations with a complete “top-down” solution for designing,
defining, developing and implementing Event Stream Processing
applications that not only meet business requirements but perform to the
highest levels of the enterprise expectation. Built on the latest
industry-standards including ANSI SQL, Java, Spring DM and OSGi, the
Oracle Stream Analytics Event Processing runtime component provides an
open architecture for sourcing, processing, and publishing complex
events throughout the enterprise. Now together with this ease-of-use
web tooling and a visual development environment, as well as standard
Java-based tooling, this ensures that your IT and line of business teams
can be developing event-driven applications without the hurdle of
specialized training or unique skill-set investment. Read the complete article here.
A friend, let’s call her ‘Helen’ for the sake of this post, texted me the other day, wondering why she had all these dozens/hundreds (?) of files in her Windows home directory.
Pretend instead of 3, this were dozens of hundreds of files.
She was confused. Where did they come from? Were they safe to... [Read More]
Changes have been made to the end date parameter of the Create Accounting - Assets program. Currently, the default value of the end date parameter is sysdate, regardless of the current open period in the book. This can leave unprocessed events when, for example, the August 2016 final Create Accounting is run on the 29th of August, but there is an event with an event date of the 31st of August. The end date used would be the 29th of August, leaving an event with a date of the 31st of August unprocessed.
To avoid this kind of issue, patches have been released to introduce changes.
1. The Create Accounting - Assets end date parameter defaults to the period end date instead of the system date.
2. A new parameter was added with a default value of 'Yes.' When set to 'No,' the program will not launch the Subledger Accounting Balances Update concurrent program.
Reference: New Changes Introduced in Create Accounting - Assets Program Parameter (Doc ID 2171769.1).
Today I got the question how to change the label of an item in Oracle Application Express (APEX) based on some condition. I actually had this requirement myself a couple of times, so maybe other people too.Here’s an example; whenever we change the Source item, we want the Affected Item to change it’s label:The first... [Read More]
Oracle's Lifetime Support policy has three phases: Premier Support,
Extended Support, and Sustaining Support. For details about coverage
during each phase, see:
You can purchase a support plan for your licensed products to
obtain Premier Support. There is an additional fee for Extended
Support.
Premier Support for Database 12.1 runs to July 31, 2018. Extended Support for Database 12.1 runs to July 31, 2021. The Extended Support fee for Oracle Database 12c 12.1 has been waived to July 31, 2019. See:
Just to complete the core set of technical articles on the CCA, before I move onto the more use-case driven topics, I wanted to revisit the loader script. Recall that way back in Part II of the series I mentioned that the the loader script was mostly boilerplate and unchanging apart from the injected script names? Well that's certainly mostly true, but there are some tweaks and advanced options to discuss before we can say that the topic is totally complete. So here I want to look at three things:
Custom property parsing
Options for Register Configuration Properties
Loading remote modules
Custom Property Parsing
One of the advanced capabilities of the loader script is to supply a custom parsing function for properties as part of the oj.Composite.register(...) call. I've included a mention of it for completeness, however, it was the subject of a whole article on it's own, so if you need to learn about this, jump back to Part X to read all about it.
Options for Register Configuration Properties
If we look at a typical loader script, you will note that the various configuration properties for the composite are marked with inline here for example is the one that I've been using throughout this series for the ccdemo-name-badge component.
The use of inline here simply indicates to the framework that the value for the property is right here and no promise resolution is required to use it. You can also literally define the property contents "inline" should you wish, although the readability of your definition might suffer:
That aside, the implication is that the various values for these configurations do not have to be supplied via the define block. If you want to obtain your viewModel (for example) in some other way, say using a factory, then that would be fine. In an extreme case we might not use the define block for any direct injection at all:
I'd really not encourage over-use of the loader script in this way, unless the configurations are super simple, otherwise things just get hard to read. But the principle stands, that the register() API configuration properties are not magical, you can populate them in any way that you choose.
The use of factories for creating the viewModels and views may be the most likely type of deviation from the standard pattern. To help support this further, the register() API configuration properties can also be provided as {promise:...} as an alternative to {inline:...}. As you would expect, this instructs the CCA that the value for the property is supplied as a promise and internally it will wait for the promise to resolve before the registration is completed. So for example we might use the requireJS require() API to load a view from some dynamic location 1:
It goes without saying that you should not define both inline:... and promise:... for the same configuration property.
Remote Module Loading
On the subject of the loading of component constituents, ie the view, viewModel etc., we need to think about the case where loading is remote to the consuming application.
As a matter of course, your loader script (e.g. ccdemo-name-badge/loader.js in my case) should load all of it's resources using relative paths in the loader define block. This is what we have been doing all along. By sticking to relative paths in the loading, the only requireJS configuration needed on the part of the consumer is to define the home / root location of the Composite Component.
Right? Well almost. That's fine if the Composite Component has been sucked into the consuming application codebase. If you wanted to load the Composite Component from a remote location, however, for example a CDN, then here is one additional piece of configuration for the consumer. This is actually nothing to do with the CCA per say, but rather relates to the default behavior of requireJS when loading from separate origins 2. By default, the requireJS text plugin will, as a security measure, not allow resources (such as the view and metadata) to be fetched. Only .js files will work from a different origin.
To fix this is a simple configuration task in the requireJS configuration of the consuming application. The configuration for the text plugin should define a useXhr function to return true for the source server for the CCA.
Here's an example requireJS configuration for an application that implements the most general version of this:
requirejs.config(
{
baseUrl: 'js',
// Path mappings for the logical module names
paths:
{
'knockout': 'libs/knockout/knockout-3.4.0.debug',
'jquery': 'libs/jquery/jquery-3.1.0',
'jqueryui-amd': 'libs/jquery/jqueryui-amd-1.12.0',
'promise': 'libs/es6-promise/es6-promise',
'hammerjs': 'libs/hammer/hammer-2.0.8',
'ojdnd': 'libs/dnd-polyfill/dnd-polyfill-1.0.0',
'ojs': 'libs/oj/v2.2.0/debug',
'ojL10n': 'libs/oj/v2.2.0/ojL10n',
'ojtranslations': 'libs/oj/v2.2.0/resources',
'text': 'libs/require/text',
'css' : 'libs/require-css/css',
'signals': 'libs/js-signals/signals'
},
// Shim configurations for modules that do not expose AMD
shim:
{
'jquery':
{
exports: ['jQuery', '$']
}
},
,
//Additional Configuration
config:
{
text:
{
useXhr: function (url, protocol, hostname, port) {
// Allow cross-domain requests to get Text resources
// Remote server must set Access-Control-Allow-Origin header
return true;
}
}
}
}
);
Note the implementation here is wide open because it blindly returns true from the useXhr function. In reality the consumer should only return true if the load is from a trusted source as determined from the supplied hostname etc.
What's Next?
Over the past 12 articles I've covered the core knowledge-base needed to create your own Composite Components to quite a sophisticated level. The following articles in this series are more focused on examining specific use cases and techniques that I've encountered when working with this technology. The next article will specifically be looking at how to create User Interfaces within your Composite Components on the fly rather than having them all pre-defined as part of the component definition.
A
few days ago, Oracle released the new version of Oracle Stream Explorer
and renamed it to Oracle Stream Analytics (OSA). This new version is an
impressive release with over 15 new major features! It really deserves
the name change.
Enhanced Patterns Library
The existing
patterns have been enhanced substantially now including Spatial,
Statistical, General industry and Anomaly detection through streaming
machine learning.
New Geo-spatial pattern
This pattern can
be used to analyze streams containing geo-location data and determine
how events relate to pre-defined geo-fences in your maps.
Integrated Expression Builder
The
Expression Builder allows to add calculated/derived fields on the Live
Output Stream of an exploration, an important step towards the
“streaming Excel sheet” idea of Oracle Stream Analytics.
It
provides the ability to apply and insert mathematical and statistical
calculations into the active live output stream. Once a new expression
has been defined and validated, a column will be added next to the
column of relevance. This new column can then be used in subsequent
filters and explorations. Read the complete article here.
Thanks to Murthy who commented on this blog post and Jeannette Holland (SimCorp) who opened an SR resulting in an ER..
DBMS_QOPATCH in Multitenant
DBMS_QOPATCH will deliver useful information about installed patches only when executed within the CDB$ROOT. It has been designed this way for security reasons in... [Read More]
Reviewing my timeline, I came across this gem from Franc.
I hate seeing SQL with keywords in uppercase and identifiers in lowercase. identifiers are case sensitive. Not keywords.
— Franck Pachot (@FranckPachot) February 7, 2017
Franck isn’t alone – a lot of people hate it when their code... [Read More]
Written by Diana H. Gray, Oracle University Senior Principal Curriculum Product Manager
Are you already certified as an
Oracle Database SQL Associate or Expert? Passing the Oracle
Database 12c Advanced PL/SQL exam will give you the
credentials that demonstrate you’re able to provide strategic guidance to fully
exploit the most advanced features of PL/SQL, especially those added in Oracle
Database 12c. Gain more responsibilities in your role using these
advanced application code architecture skills.
This training teaches you how to use the
advanced features of PL/SQL to design and tune PL/SQL to interface with the
database and other applications. Expert Oracle University instructors will help
you explore advanced features of program design, packages, cursors, extended
interface methods and collections. In this course, you will be introduced to the
Oracle Database Exadata Express Cloud Service.
Advance your Career with Oracle Database 12c certifications. To find out more about
Oracle Certifications, go to education.oracle.com/certification.
People seemed to like the Instance Viewer we built for version 4.1.
So we wanted to use similar technology (Java FX) to build a new interface for the Oracle Database Tuning Pack’s Real Time SQL Monitor.
So we did.
If you don’t have EM Express or Enterprise Manager available or handy, you can get the report... [Read More]
ETCC was recently updated to include bug fixes and patching combinations for the following:
Recommended Versions
January 2017 Oracle WebLogic Server PSU
Oracle Fusion Middleware 11.1.1.9
January 2017 Database 12.1.0.2 PSU and Proactive Bundle Patch
October 2016 Database 11.2.0.4 PSU and Engineered Systems Patch
Minimum Versions
October 2016 Oracle WebLogic Server PSU
Oracle Fusion Middleware 11.1.1.7
October 2016 Database 12.1.0.2 PSU and Proactive Bundle Patch
July 2016 Database 11.2.0.4 PSU and Engineered Systems Patch
Obtaining ETCC
We recommend always using the latest
version of ETCC, as new bugfixes will not be checked by older versions
of the utility. The latest version of the ETCC tool can be downloaded
via Patch 17537119 from My Oracle Support.
Welcome to a new stream (no pun intended) on Red Mavericks articles. This time, we’ll be doing an introduction on Oracle’s new Stream Analytics.
We’ll
be guiding you through this new, and very cool, product showing what it
is and what it can do to leverage this largely untapped resource which
is event stream analysis. In fact, streams are
everywhere and are becoming more and more open and accessible. If you
“wiretap” these, listen to them and understand the behavioral patterns ,
you can build extremely valuable applications that will help you
deliver more to your customers.
It’s a whole new ball game. I hope you find this interesting.
What is Oracle Stream Analytics?
Oracle Stream Analytics (previously Oracle Stream Explorer) is, in fact, an application builder platform, focused on applications that process events coming from the most various systems, internal or external to the organization, thus enabling Business Insight information and deriving relevant data from these events.
It works using an Event Processing Engine to perform Fast Data Analysis over a large number of events that typically appear in a given timeframe.
It also provides a run-time platform that will allow you to run and manage the applications you built.
It’s not a new Oracle Event Processor. It uses OEP as the underlying Event Processing Engine (you can also use Apache Spark as a processing engine, if you prefer. More on this in other articles)
The real power in Oracle Stream Analytics is, curiously, in its UI.
As an application builder, it went to great lengths to keep the UI
really easy to use. The result is, in my view, very well achieved, with
enough simplicity to allow that Business Users, provided they have a bit
of technical knowledge, can actually build applications on their own
or with little help from the IT. Read the complete article here.
With Oracle Linux, you can use the same operating system on-premise and in the cloud,
avoiding complicated migrations and permitting hybrid environments.
Live-Virtual Event: Attend a live event from your own desk, no travel required. Events are added to the schedule to suit different time-zones. Events on the schedule include 15 March, 26 April and 31 May 2017.
In-Class Event: If you want to travel to an education center to attend a class, register your interest in a date and location.
Resources:
To see the selection of courses on the Oracle Linux curriculum and the schedules available or to register for an event, go to http://oracle.com/education/linux
Related Posts on"The OJVM Patching Saga - and how to solve it":
Part I - The OJVM Basics
Part II - Important Notes and Information
Part III - The Mitigation Patch
Part IV - What you may have missed
What is... [Read More]
Property Manager Development has released a patch
to replace the need to run SQL queries to archive historical lease data.The patch creates a concurrent program that
users can run at each fiscal month-end to archive the lease data.A patch that enables users to create
calculations and generate reports from the archived lease data is planned for a
later date.
The purpose of this enhancement patch is to enable
users to archive their lease data for each period-end, starting from February
2017. Later, when the solution for the Look Back period is released, users can
run a calculation program using the archived period-end lease data to generate
the required financial results, by period.
For more information on requirement of Look Back
Period, the changes that are introduced via above patches etc, please review Doc ID 2217306.1.
Oracle Java Cloud Service (JCS) can be used for development, testing, user acceptance testing, staging and production applications. You can create dedicated and isolated Oracle WebLogic Server (WLS) 11g or 12c environments to run your entire cluster at scale.
Oracle E-Business Suite Release 12.2 and Oracle WebLogic Server
Oracle E-Business Suite Release 12.2 uses a three-tier logical architecture. The technology stack for Release 12.2 comprises an application tier technology stack and a database tier technology stack. The Oracle E-Business Suite applications are tightly integrated with the various technology stack components.
The application tier technology stack in Oracle E-Business Suite Release 12.2 includes Oracle Fusion Middleware and Oracle WebLogic Server. WLS replaces the Oracle Containers for Java (OC4J) used with Oracle E-Business Suite Release 12.1.
Can the Oracle WebLogic Server included with Oracle Java Cloud Service be used with EBS?
We are sometimes asked if the Oracle WebLogic Server included with Java Cloud Service can be used with EBS Release 12.2 as an alternative to the embedded WLS that comes with EBS and is described above.
The answer is - no, you cannot. Such usage isn't supported because the Oracle Weblogic Server provided as part of EBS is a tightly integrated and customized component of the Oracle E-Business Suite Release 12.2
application tier technology stack. In addition, JCS does not provide the full application tier technology stack
(including Oracle Forms and Reports) that EBS R12.2 (whether running on-premises or on Oracle Cloud) requires.