Feed aggregator

Blocks read using index vs. full table scan

Tom Kyte - Thu, 2018-11-08 23:46
Hi Tom, I have a 3 part question about performance... 1) The first question is sort of a introductory summary question. 2) Then I have an example ending with a question. 3) Finaly I have a very specific 'important' question. Why is it some...
Categories: DBA Blogs

Column And Table Redefinition With Minimal Locking

Jeremy Schneider - Thu, 2018-11-08 20:22

TLDR: Note to future self… (1) Read this before you modify a table on a live PostgreSQL database. If you do it wrong then your app might totally hang. There is a right way to do it which avoids that. (2) Especially remember the lock_timeout step. Many blog posts around the ‘net are missing this and it’s very important.

Yesterday I was talking to some PostgreSQL users (who, BTW, were doing rather large-scale cool stuff in PG) and they asked a question about making schema changes with minimal impact to the running application. They were specifically curious about changing a primary key from INT to BIGINT.  (Oh, you are making all your new PK fields BIGINT right?)

And then, low and behold, I discovered a chat today on the very same topic. Seemed useful enough to file away on my blog so that I can find it later. BTW I got permission from Jim Nasby, Jim F and Robins Tharakan to blame them for this…  ;)

Most useful part of the chat was how to think about doing table definition changes in PostgreSQL with minimal application impact due to locking:

  1. Use lock_timeout.
    1. Can be set at the session level.
  2. For changes that do more than just a quick metadata update, work with copies.
    1. Create a new column & drop old column instead of modifying.
    2. Or create a new table & drop old table.
    3. Use triggers to keep data in sync.
    4. Carefully leverage transactional DDL (PostgreSQL rocks here!) to make changes with no windows for missing data.

We can follow this line of thought even for a primary key – creating a unique index on the new column, using existing index to update table constraints, then dropping old column.

One of the important points here is making sure that operations which require locks are metadata-only. That is, they don’t need to actually modify any data (while holding said lock) for example rewriting or scanning the table. We want these ops to run very very fast, and even time out if they still can’t run fast enough.

A few minutes on google yields proof that Jim Nasby was right: lots of people have already written up some really good advice about this topic.  Note that (as always) you should be careful about dates and versions in stuff you find yourself.  Anything pre-2014 should be scrutinized very carefully (PostgreSQL has change a lot since then); and for the record, PostgreSQL 11 changes this specific list again (and none of these articles seem to be updated for pg11 yet). And should go without saying, but test test test…

  • This article from BrainTree is my favorite of what I saw this morning. Concise yet clear list of green-light and red-light scenarios, with workaround for all the red lights.
    • Add a new column, Drop a column, Add an index concurrently, Drop a constraint (for example, non-nullable), Add a default value to an existing column, Add an index, Change the type of a column, Add a column with a default, Add a column that is non-nullable, Add a column with a unique constraint, VACUUM FULL
  • Citus has a practical tips article that’s linked pretty widely.
    • adding a column with a default value, using lock timeouts, Create indexes, Taking aggressive locks, Adding a primary key, VACUUM FULL, ordering commands
  • Alexey Vasiliev assembled a list in 2016 which is worth reviewing.
    • Add a new column, Add a column with a default, Add a column that is non-nullable, Drop a column, Change the type of a column, Add a default value to an existing column, Add an index, Add a column with a unique constraint, Drop a constraint, VACUUM FULL, ALTER TABLE SET TABLESPACE
  • Joshua Kehn put together a good article in late 2017 that especially illustrates the importance of using lock_timeout (though he doesn’t mention it in the article)
    • Default values for new columns, Adding a default value on an existing column, Concurrent index creation, ALTER TABLE, importance of typical transaction length

For fun and posterity, here’s the original chat (which has a little more detail) where they gave me these silly ideas:

[11/08/18 09:01] Colleague1: I have a question with regard to APG. How can we make DDL modifications to a table with minimalistic locking (downtime)?
[11/08/18 09:31] Jim N: It depends on the modification you're trying to make. Many forms of ALTER TABLE are very fast. Some don't even require an exclusive lock.
[11/08/18 09:32] Jim N: What you have to be careful of are alters that will force a rewrite of the entire table. Common examples of that are adding a new column that has a default value, or altering the type of an existing column.
[11/08/18 09:33] Jim N: What I've done in the past for those scenarios is to create a new field (that's null), put a before insert or update trigger on the table to maintain that field.
[11/08/18 09:33] Jim N: Then run a "backfill" that processes a few hundred / thousand rows per transaction, with a delay between each batch.
[11/08/18 09:34] Jim N: Once I know that all rows in the table have been properly updated, drop the old row, and maybe mark the new row as NOT NULL.
[11/08/18 09:43] Jim N: btw, I know there's been a talk about this at a conference in the last year or two...
[11/08/18 09:49] Jim F: What happens at the page level if the default value of an ALTER TABLE ADD COLUMN is null? Once upon a time when I worked at [a commercialized fork of PostgreSQL], which was built on a version of PostgreSQL circa 2000, I recall that the table would be versioned. This was a pure metadata change, but the added columns would be created for older-version rows on read, and probably updated on write. Is that how it currently works?
[11/08/18 09:55] Jim N: Jim F in essence, yes.
[11/08/18 09:56] Jim N: Though I wouldn't describe it as being "versioned"
[11/08/18 09:57] Jim N: But because columns are always added to the end of the tuple (and we never delete from pg_attribute), heap_deform_tuple can detect if a tuple is "missing" columns at the end of the tuple and just treat them as being null.
[11/08/18 09:57] Jim N: At least I'm pretty sure that's what's going on, without actually re-reading the code right now. 😉
[11/08/18 10:08] Jim F: does it work that way for non-null defaults as well? that would create a need for versioning, if the defaults changed at different points in time
[11/08/18 10:08] Robins: While at that topic.... Postgres v11 now has the feature to do what Jim F was talking about (even for non-NULLs). Although as Jim Nasby said, you still need to be careful about which (other) kind of ALTERs force a rewrite and use the Trigger workaround. "Many other useful performance improvements, including the ability to avoid a table rewrite for ALTER TABLE ... ADD COLUMN with a non-null column default"
[11/08/18 10:08] Jim F: exactly...

Did we get anything wrong here? Do you disagree? Feel free to comment. :)

Announcing Continuous Innovation on Oracle E-Business Suite 12.2

Steven Chan - Thu, 2018-11-08 12:18

Oracle announced a “Continuous Innovation” release model for Oracle E-Business Suite 12.2, delivering ongoing applications and underlying technology stack updates without a major upgrade. At the same time, we are announcing Premier Support for Oracle E-Business Suite 12.2 through at least 2030.

This means that Oracle E-Business Suite customers already running on 12.2 can continue to access new applications functionality and separately uptake later versions of underlying technology for years to come, without the time and expense of a major release upgrade. 

Oracle E-Business Suite customers historically have adopted new versions of the technology stack together with a new applications code level via a major release upgrade. This involved using Oracle’s Rapid Install tool to deliver new versions of Oracle Fusion Middleware platform technologies, a new applications code level, and upgrade scripts to move the schema, PL/SQL, and data in place to the new Oracle E-Business Suite release level.

It has been Oracle’s plan to move to a Continuous Innovation release model that separates technology stack updates from applications code updates, allowing E-Business Suite customers to consume later technology while retaining their current applications code level. We previously announced that we would start Continuous Innovation with the next major 12.X release, after the existing 12.2 release. We have since determined that we can implement Continuous Innovation on the existing 12.2 release, removing the need for a new 12.X release.

For more details, see:

Categories: APPS Blogs

Pass summit – dbi visit day 3

Yann Neuhaus - Thu, 2018-11-08 10:52
IMG_1050 The Microsoft data platform is evolving

The third day began with the Keynote help by Rohan Kumar the Corporate Vice President of Azure Data by Microsoft

The main message was “Hybrid data platform is the way for the future” and Microsoft is working in this direction.

The use of AI and analytic to transform the customer business is also a key driver for the Microsoft data platform, which is building to enable this easily.

Rohan remember the customer priorities:
– Modernizing on-premises
– Modernizing the cloud
– Building cloud native cloud application
– Unlocking insights

To support these priorities we got an overview of the last development on the data platform product or services:
Modernizing the on-premises solution with SQL Server 2019
○ More language support
○ Best security and performance
○ Power BI Report Server
○ Mission critical availability and performance
○ Security and compliance
○ Management and development
○ Big data and analytics

And Microsoft is announcing SQL Server 2019 CPT 2.1

One big evolution in term of performance is that some system tables will be moved in in-memory technology.
SQL Server 2019 is becoming a hub for integrating data and also enable the data injection in big data clusters combining Spark and SQL Server

Azure Data Studio si the new tool to manage all the Azure data services in order to see them a unified data platform

Modernizing the cloud with the new services or their new capabilities or functionalities
Azure database migration service
Azure SQL database managed instance with a business critical option available
Azure SQL Database Hyper scale (up to 100TB)
Accelerated databases recovery and machine Learning services in Azure SQL Database
Building cloud-native apps with Azure Cosmos DB
Multi-Master and Cassandra API

Unlocking insights
New features of Azure SQL Data Warehouse, like workload management
Partnership Informatica, tableau connectors
HDInsight 4.0
Real-time analytics
Azure event hubs for Kafka
Azure Data Explorer
Power BI Dataflow
Power BI SSRS Reports in Power BI
Azure Databricks new feature

The SQL Server product is evolving constantly and the Azure world event faster.

Again an interesting data analytic day…stay tuned..

Cet article Pass summit – dbi visit day 3 est apparu en premier sur Blog dbi services.

Gonzaga University Gives Oracle Cloud an “A” for Cost and Efficiency

Oracle Press Releases - Thu, 2018-11-08 08:00
Press Release
Gonzaga University Gives Oracle Cloud an “A” for Cost and Efficiency Leading private university modernizes infrastructure with Oracle to securely support critical applications

Redwood Shores, Calif.—Nov 8, 2018

Gonzaga University is using Oracle Cloud to streamline its operations and better serve its student and staff community. With Oracle Cloud Infrastructure and Oracle Database Cloud, the University has not only cut costs and reduced complexity but also upgraded to new versions of Ellucian and its ERP system in just seven months—all while improving security and reliability.

Ranked the fourth best regional university in the West for the fourth straight year by U.S. News & World Report, Gonzaga University is an exemplary learning community that educates students for lives of leadership and service for the common good. In keeping with its Catholic, Jesuit, and humanistic heritage and identity, Gonzaga models and expects excellence in academic and professional pursuits and intentionally develops the whole person—intellectually, spiritually, culturally, physically, and emotionally. When an aging IT infrastructure was struggling to support the University’s strategic goals, it knew it needed to rethink its approach.

“Achieving sustainable operations is one of the key tenets in Gonzaga’s strategic plan,” said Darren Owsley, Chief Technology Officer at Gonzaga. “Our existing IT infrastructure on premise would have required significant upgrades to support new technology moving forward as well as the applications that are critical to our operations today. After a competitive bid process, Oracle Cloud was the clear choice for what Gonzaga needed, both in price and performance.”

By moving its core functions to the cloud, Gonzaga was able to eliminate the need for time-consuming configurations and provision new servers in minutes versus weeks. This has dramatically improved efficiency, while also allowing for the acceleration of new projects. And with the ability to easily scale and pay for only the capacity it’s using, Gonzaga now has the cost-effective foundation it needs to grow well into the future. The University is also utilizing Oracle Cloud Infrastructure for disaster recovery.

“At a recent event, other universities were lamenting about cloud projects that took years,” added Borre Ulrichsen, Chief Information Officer at Gonzaga. “With Oracle, our implementation through to production took mere months. Moreover, I know our database and server infrastructure is being continually upgraded and patched by Oracle, taking the burden off of our limited IT resources. This has allowed us to focus more time on strategic initiatives that better serve our students and staff and continue to help make Gonzaga one of the top universities in the West.”

“Gonzaga was looking for a partner that would provide support every step of the way during its transition to the cloud,” said Kash Iftikhar, vice president of product and strategy, Oracle Cloud Infrastructure. “Oracle Cloud Infrastructure delivers the reliability needed – at the lowest cost, and highest performance. We are honored to be working with such a highly-esteemed institution, and helping them focus on their mission, instead of infrastructure.”

Gonzaga was also recognized at OpenWorld 2018 as a winner of the Oracle Excellence Award for Oracle Cloud Platform Innovation, awarded to customers and partners who are using Oracle Cloud Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) to accelerate innovation and drive business transformation by increasing agility, lowering costs and reducing IT complexity.

Contact Info
Danielle Tarp
Oracle
+1.650.506.2905
Danielle.Tarp@oracle.com
Katie Barron
Oracle
+1.202.904.1138
Katie.Barron@oracle.com
About Oracle Cloud Infrastructure

Oracle Cloud Infrastructure is an enterprise Infrastructure as a Service (IaaS) platform. Companies of all sizes rely on Oracle Cloud to run enterprise and cloud native applications with mission-critical performance and core-to-edge security. By running both traditional and new workloads on a comprehensive cloud that includes compute, storage, networking, database, and containers, Oracle Cloud Infrastructure can dramatically increase operational efficiency and lower total cost of ownership. For more information, visit https://cloud.oracle.com/iaas.

About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Danielle Tarp

  • +1.650.506.2905

Katie Barron

  • +1.202.904.1138

Leading Utilities Weather the Storm with Oracle

Oracle Press Releases - Thu, 2018-11-08 07:00
Press Release
Leading Utilities Weather the Storm with Oracle As weather volatility increases, customers look to Oracle Utilities to help maintain and restore power to millions

Redwood Shores, Calif.—Nov 8, 2018

Severe weather events are increasing in both frequency and intensity. To help keep power available while supporting predictable restoration for millions of affected customers, the top utilities across the globe rely on the performance and dependability of Oracle Utilities Network Management System (NMS).

According to the National Oceanic and Atmospheric Association, “In 2018 (as of October 9), there have been 11 weather and climate disaster events with losses exceeding $1 billion each across the United States.” Likewise, a study by the European Academies’ Science Advisory Council (EASAC) covered in Science Daily, noted that “extreme weather events have become more frequent over the past 36 years, with a significant uptick in floods and other hydrological events compared even with five years ago.”

When emergencies strike, utilities’ grid operations need to effectively respond to unplanned outages, integrate emergency and mutual-aid crews, and get accurate information to customers fast. Built from the ground-up as a fully-integrated outage and distribution management system, NMS gives utility operations teams accurate, timely, and reliable information critical for meeting the challenges of 21st-century grid operations. Today, more than 40 utility customers—including 6 of the top 9 utilities in the U.S.—depend on the industry-leading Oracle NMS platform in their control centers; several of which have the most demanding storm performance requirements in the industry. On the East Coast of the U.S. alone, power can be restored to 19.4 million customers faster thanks to Oracle NMS.

Customers rely on Oracle to navigate the storms

“The past three years has brought a relentless stream of hurricanes and storms, including Matthew, Irma and Michael,” said Josh Stallings, systems & standards manager, Georgia Power Company. “During each, Georgia Power Company was able to rely on Oracle NMS to bring order to an otherwise chaotic situation. In particular with Irma, which resulted in service interruptions for some 1,630,000 customers we had more than 425 concurrent users on NMS, allowing our operations staff to have a single valid source to monitor and understand what specific parts of the electrical distribution system were impacted, as well as validate the current state of various devices and equipment on the distribution system. The software also allowed us to perform meaningful customer communications ranging from broad-scale restoration targets down to event level communication for cases of trouble with repair crews onsite.”

“In Ireland, we are experiencing more extreme weather events each year,” said Robert Power, NMS system manager at ESB Networks. “Storm Darwin was a turning point in February 2014. The development team fully supported us implementing all required enhancement requests identified in the aftermath of this storm. Since going live with Oracle NMS in April 2017, the system has demonstrated exceptional performance for more than 150 users, coordinating and reporting on all outage activity. Hurricane Ophelia was our first real test, however, the intuitive and flexible nature of the application allowed us to configure storm rules, ETRs and UI as needed to reflect our unique user and system requirements to best manage the restoration effort.” 

Oracle NMS: The calm before, during and after the storm

Based on 30 years of market experience, NMS leverages market-leading outage management technology with distribution management and advanced analytics to empower utilities to maximize grid operation capabilities, shorten outage duration and optimize distribution, all while keeping their customers engaged and informed. NMS reported outstanding performance during the recent hurricane season, which included Florence and Michael. Oracle is now working closely with its utility customers to brace for extreme weather on the horizon this winter, 15 of which serve more than 1 million customer meters each.

“While we previously viewed a catastrophic episode such as Katrina as a once in a lifetime event, they are fast becoming yearly occurrences,” said Rodger Smith, senior vice president and general manager for Oracle Utilities. “As such, the technology to stabilize the world’s power grids and prepare them for uncharted weather territory needs to be equal parts cutting-edge and battle-tested. Oracle’s field-proven NMS system has enabled our customers to weather the most intense storms, helping maintain and restore power to millions. Utilities have enough to worry about during a major weather event, they will attest that our Network Management System isn’t one of them.”

Providing a “single-pane-of-glass” to maintain efficient grid operations, Oracle NMS presents the information control center operators need to effectively optimize the grid end-to-end from the substation to the end customer. Built on a data-centric, platform-based approach with integrated applications, Oracle NMS delivers unified user access to outage management (OMS), distribution management (DMS), distributed energy resource management (DERMS) as well as supervisory control and data acquisition (SCADA) systems.

Contact Info
Kristin Reeves
Oracle
+1.925.787.6744
kris.reeves@oracle.com
Molly Hardy-Knowles
Hill+Knowlton Strategies
+1.713.752.1931
molly.hardy-knowles@hkstrategies.com
About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Kristin Reeves

  • +1.925.787.6744

Molly Hardy-Knowles

  • +1.713.752.1931

Where / Having

Jonathan Lewis - Thu, 2018-11-08 06:11

There’s a very old mantra about the use of the “having” clause that tells us that if it’s valid (i.e. will always give the same results) then any predicate that could be moved from the having clause to the where clause should be moved. In recent versions of Oracle the optimizer will do this for itself in some cases but (for reasons that I’m not going to mention) I came across a silly example recently where a little manual editing produced a massive performance improvement.

Here’s a quick demo:


rem
rem     Script:         where_having.sql
rem     Author:         Jonathan Lewis
rem     Dated:          Oct 2018
rem     Purpose:
rem
rem     Last tested
rem             18.3.0.0
rem             12.2.0.1
rem             11.2.0.4
rem

reate table t1
as
select * 
from all_objects 
where rownum <= 50000   -- > comment to avoid WordPress format issue
;

spool where_having.lst

set serveroutput off

select /*+ gather_plan_statistics */ 
        object_type, count(*) 
from    t1 
group by 
        object_type 
having  count(*) > 0 
and     1 = 2
;

select * from table(dbms_xplan.display_cursor(null,null,'allstats last'))
;

The big question is: will Oracle do a full tablescan of t1, or will it apply a “null is not null” filter early to bypass that part of the plan. Here’s the plan pulled from memory, with run-time statistics (all versions from 11g to 18c):


--------------------------------------------------------------------------------------------------------------------------
| Id  | Operation           | Name | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |  OMem |  1Mem | Used-Mem |
--------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |      |      1 |        |      0 |00:00:00.02 |     957 |    955 |       |       |          |
|*  1 |  FILTER             |      |      1 |        |      0 |00:00:00.02 |     957 |    955 |       |       |          |
|   2 |   HASH GROUP BY     |      |      1 |      1 |     27 |00:00:00.02 |     957 |    955 |  1186K|  1186K| 1397K (0)|
|   3 |    TABLE ACCESS FULL| T1   |      1 |  50000 |  50000 |00:00:00.01 |     957 |    955 |       |       |          |
--------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter((COUNT(*)>0 AND 1=2))


As you can see, the filter at operation 1 includes the contradiction “1=2”, but Oracle tests this only after doing the full tablescan and aggregation. If you move the “1=2” into the where clause the tablescan doesn’t happen.

Interestingly, if you write the query with an in-line view and trailing where clause:


select /*+ gather_plan_statistics */
        *
from    (
        select
                object_type, count(*)
        from    t1
        group by
                object_type
        having  count(*) > 0
        )
where
        1 = 2
;

The optimizer is clever enough to push the final predicate inside the view (where you might expect it to become part of the having clause) and push it all the way down into a where clause on the base table.


-----------------------------------------------------------------------------
| Id  | Operation            | Name | Starts | E-Rows | A-Rows |   A-Time   |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |      |      1 |        |      0 |00:00:00.01 |
|*  1 |  FILTER              |      |      1 |        |      0 |00:00:00.01 |
|   2 |   HASH GROUP BY      |      |      1 |      1 |      0 |00:00:00.01 |
|*  3 |    FILTER            |      |      1 |        |      0 |00:00:00.01 |
|   4 |     TABLE ACCESS FULL| T1   |      0 |  50000 |      0 |00:00:00.01 |
-----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(COUNT(*)>0)
   3 - filter(NULL IS NOT NULL)



A quirky case of the optimizer handling the (apparently) more complex query than it does the simpler query.

Do we know for sure from the trace file, that the application uses transactions on the database?

Tom Kyte - Thu, 2018-11-08 05:26
We got deadlock. In the trace file there is the deadlock graph: <code> Deadlock graph: ---------Blocker(s)-------- ---------Waiter(s)--------- Resource Name process session holds waits process session holds wai...
Categories: DBA Blogs

Using REGEXP to find ten consecutive digits with possible separators

Tom Kyte - Thu, 2018-11-08 05:26
I HAVE THIS FREE FLOWING DATA FIELD IN A VARCHAR2 COLUMN THAT I AM CLEANING UP. I WOULD LIKE TO GET THOSE VALUES THAT HAVE A TOTAL OF 10 DIGITS IN ALL AND MIGHT CONTAIN THESE CHARACTERS : . OR - OR / OR ( ) CREATE TABLE E ( PHONE VARCHAR2(5...
Categories: DBA Blogs

Oracle Sequence vs GUID

Tom Kyte - Thu, 2018-11-08 05:26
We're developing a new system in for the company with .NET and Oracle Database 12cR2 using RAC. It basically does the following: receives invoices in XML format, then validates it according to business rules. A requirement is to give to the clien...
Categories: DBA Blogs

Managing Persisted State for Oracle JET Web Component Variable with Writeback Property

Andrejus Baranovski - Thu, 2018-11-08 01:03
Starting from JET 6.0.0 Composite Components (CCA) are renamed to be Web Components (I like this new name more, it sounds more simple to me). In today post I will talk about Web Component writeback property and importance of it.

All variables (observable or not) defined inside Web Component will be reset when navigating away and navigating back to the module where Web Component is included. This means you can't store any values inside Web Component, because these values will be lost during navigation. Each time when we navigate back to module, all Web Components used inside that model will be reloaded, this means JS script for Web Component will be reloaded and variables will be re-executed loosing previous values. This behaviour is specific to Web Component only, values for variables created in the owning module will not be reset.

If you want to keep Web Component variable value, you will need to store variable state outside of Web Component. This can be achieved using Web Component property with writeback support.

Let's see how Web Component behaves on runtime. Source code is available on my GitHub repo.

Here I got basic Web Component included into dashboard module:


Web Component doesn't implement anything except JET switcher. Once switcher state is changed, variable is updated in JS script:


Variable which holds switcher state in Web Component:


Web Component is reloaded each time we navigate away and come back to the module - this means variables will be reset. This is how looks like - imagine we open module for the first time, switcher position is OFF:


Change it to be ON:


Navigate to any other module and come back - you will see that switcher is reset back to default OFF state, this means variable was reset (otherwise we should see ON state):


If you want to keep variable state, then it should be maintained outside of Web Component. To achieve this, create Web Component property to hold variable value, make sure set this property with writeback support:


For debugging purposes, add logging into Web Component, this will help to see when it will be reloaded:


Switcher variable must be initialized from Web Component property. Very first time it will be empty, but as soon as user will changed switcher state -  next time when Web Component is reloaded, it will assign correct value which was selected before:


When switcher state is changed, we need to handle this event and make sure that Web Component property is updated with new value:


Writeback property must be assigned with observable variable which is created in the module. Variable reference must be writable with {{}} brackets:


Once value will be changed inside Web Component, this change will be propagated up to observable variable defined in the module. Next time when we navigate away and come back to the module - we will pass recent value to the Web Component:


This is how it works now. Load module, change switcher state (see in the log -  Web Component was loaded once):


Navigate to any other module:


Come back to the module, where Web Component is included. See in the log - Web Component is reloaded, but switcher variable value is not lost, because it was saved to module observable variable through Web Component writeback property:

Graceful Stop of Goldengate Extract

Pakistan's First Oracle Blog - Wed, 2018-11-07 18:58
It's always a good idea to stop extracts after checking if there is any long running transaction in the database being captured. Failing to do so might later result in hung or unstable processes.





Use following command to check the extract:

GGSCI (test) 3> send e* status

Sending STATUS request to EXTRACT ext ...


EXTRACT ext (PID 16649)
Current status: In recovery[1]: Processing data with empty data queue

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

testsrv:/u05/ggate> grep -i bound dirrpt/ext.rpt
Bounded Recovery Parameter:
2017-06-07 15:48:18 INFO OGG-01639 BOUNDED RECOVERY: ACTIVE: for object pool 2: p2628_Redo_Thread_2.
2017-06-07 15:48:18 INFO OGG-01640 BOUNDED RECOVERY: recovery start XID: 129.15.2953694.

-- And then Check RBA is moving with following commands
./ggsci
info e*
lag e*

Categories: DBA Blogs

Goldengate ERROR OGG-02037 Failed to retrieve the name of a missing Oracle redo log.

Pakistan's First Oracle Blog - Wed, 2018-11-07 18:37
One extract got abended and wasn't able to start in Oracle Goldengate Version 12.2.0.1.160517 23194417_FBO. The redologs were present but extract was still abended and threw following error in the report file.

Error:

ERROR OGG-02037 Failed to retrieve the name of a missing Oracle redo log.

Solution:




The solution for this error is to unregister, register and then start the extract as follows:


GGSCI (test) 6> unregister extract ext database 2018-11-07 17:07:03 INFO OGG-01750 Successfully unregistered EXTRACT ext from database. GGSCI (test) 7> GGSCI (test) 7> register extract ext database 2018-11-07 17:07:56 INFO OGG-02003 Extract ESTATDEV successfully registered with database at SCN 1373637632014. GGSCI (test) 8> start extract ext

Hope this helps.
Categories: DBA Blogs

Court Orders Rimini Street to Comply with Permanent Injunction Prohibiting Further Infringement

Oracle Press Releases - Wed, 2018-11-07 15:25
Press Release
Court Orders Rimini Street to Comply with Permanent Injunction Prohibiting Further Infringement

Redwood Shores, Calif.—Nov 7, 2018

On Monday, a federal appeals court rejected Rimini Street’s motion to stay and effectively delay a permanent injunction issued by the Federal District Court in Nevada. That injunction prohibits Rimini Street from engaging in specific unlawful practices in connection with its core business practices as found in Oracle’s 2015 copyright infringement trial against Rimini Street and its founder, Seth Ravin. 

The trial court had determined earlier that the more than $100 million that Rimini Street paid to Oracle in damages following trial was inadequate to fully compensate Oracle for Rimini Street’s copyright infringement, citing “Rimini Street’s conscious disregard for Oracle’s software copyrights” and the fact that Rimini Street’s business model “was built entirely on its infringement of Oracle’s copyrighted software.” The Court ruled that Rimini Street can only provide support for Oracle’s PeopleSoft, J.D. Edwards, Siebel, and Database software subject to certain court-mandated restrictions, as set forth in the injunction.

While Rimini Street made public statements suggesting that it can comply with the injunction without changing its business model, it told the federal appeals court a different story in court filings. Rimini Street instead argued that the “injunction goes far beyond the changes that Rimini Street [already] made in response” to the Nevada court’s rulings, and would therefore harm its business. Rimini Street must now comply with all the terms of the injunction while its latest appeal is pending.

“We are grateful that the Ninth Circuit Court of Appeals denied Rimini Street’s latest attempt to delay justice. The federal courts in this country have appropriately recognized that the only way to stop serial infringers such as Rimini Street is to subject them to detailed, court-ordered prohibitions against unlawful practices and subject them to contempt of court penalties for any breach. Oracle will continue to be unrelenting in its mission to stop the infringement of its intellectual property rights,” said Dorian Daley, Oracle’s Executive Vice President and General Counsel.

Contact Info
Deborah Hellinger
Oracle Corporate Communications
+1.212.508.7935
deborah.hellinger@oracle.com
About Oracle

The Oracle Cloud offers complete SaaS application suites for ERP, HCM and CX, plus best-in-class database Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) from data centers throughout the Americas, Europe and Asia. For more information about Oracle (NYSE:ORCL), please visit us at www.oracle.com.

Trademarks

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Talk to a Press Contact

Deborah Hellinger

  • +1.212.508.7935

Adding Off Canvas Layout to a Visual Builder Application

Shay Shmeltzer - Wed, 2018-11-07 15:18

Off Canvas layout is a common UI pattern for modern applications, especially on mobile devices. The concept is aimed at saving space on your page, allowing you to pop out a "drawer" of additional information. This helps reduce clatter on the main page but still provide access to important data when needed without leaving the page context. You can see an example of the runtime behavior at the top of this post. 

Oracle JET provides this type of "off-canvas" behavior as a built in component, and they have a demo of it working as part of the cookbook here.

In the video below I show you how to add this to a Visual Builder application. As always - you can mostly just copy and paste code from the JET cookbook, but you need to handle some of the importing of resources a little different, and use the Visual Builder approach for adding your JavaScript function.

The code used in the video is:

Page source:

Menu
List
chart
Gifts

JavaScript Function in the page:

define(['ojs/ojcore'], function(oj) { 'use strict'; var PageModule = function PageModule() {}; PageModule.prototype.showSide = function() { var offcanvas = { "selector": "#startDrawer", "content": "#mainContent", "edge": "start", "displayMode": "push", "size": "200px" }; oj.OffcanvasUtils.open(offcanvas); } return PageModule; });

and in your page Json file add this import:

"oj-offCanvas": { "path": "ojs/ojoffcanvas" }
Categories: Development

JRE 1.8.0_201 Certified with Oracle EBS 12.1 and 12.2

Steven Chan - Wed, 2018-11-07 12:23

Java logo

Java Runtime Environment 1.8.0_201 (a.k.a. JRE 8u201-b11) and later updates on the JRE 8 codeline are now certified with Oracle E-Business Suite 12.1 and 12.2 for Windows clients.

Java Web Start is available

This JRE release may be run with either the Java plug-in or Java Web Start.

Java Web Start is certified with EBS 12.1 and 12.2 for Windows clients.  

Considerations if you're also running JRE 1.6 or 1.7

JRE 1.7 and JRE 1.6 updates included an important change: the Java deployment technology (i.e. the JRE browser plugin) is no longer available for those Java releases. It is expected that Java deployment technology will not be packaged in later Java 6 or 7 updates.

JRE 1.7.0_161 (and later 1.7 updates) and 1.6.0_171 (and later 1.6 updates) can still run Java content.  They cannot launch Java.

End-users who only have JRE 1.7 or JRE 1.6 -- and not JRE 1.8 -- installed on their Windows desktop will be unable to launch Java content.

End-users who need to launch JRE 1.7 or 1.6 for compatibility with other third-party Java applications must also install the JRE 1.8.0_152 or later JRE 1.8 updates on their desktops.

Once JRE 1.8.0_152 or later JRE 1.8 updates are installed on a Windows desktop, it can be used to launch JRE 1.7 and JRE 1.6. 

How do I get help with this change?

EBS customers requiring assistance with this change to Java deployment technology can log a Service Request for assistance from the Java Support group.

All JRE 6, 7, and 8 releases are certified with EBS upon release

Our standard policy is that all E-Business Suite customers can apply all JRE updates to end-user desktops:

  • From JRE 1.6.0_03 and later updates on the JRE 6 codeline
  • From JRE 1.7.0_10 and later updates on the JRE 7 codeline 
  • From JRE 1.8.0_25 and later updates on the JRE 8 codeline
We test all new JRE releases in parallel with the JRE development process, so all new JRE releases are considered certified with the E-Business Suite on the same day that they're released by our Java team. 

You do not need to wait for a certification announcement before applying new JRE 6, 7, or 8 releases to your EBS users' desktops.

32-bit and 64-bit versions certified

This certification includes both the 32-bit and 64-bit JRE versions for various Windows operating systems. See the respective Recommended Browser documentation for your EBS release for details.

Where are the official patch requirements documented?

All patches required for ensuring full compatibility of the E-Business Suite with JRE 8 are documented in these Notes:

For EBS 12.1 & 12.2

Implications of Java 6 and 7 End of Public Updates for EBS Users

The Oracle Java SE Support Roadmap and Oracle Lifetime Support Policy for Oracle Fusion Middleware documents explain the dates and policies governing Oracle's Java Support.  The client-side Java technology (Java Runtime Environment / JRE) is now referred to as Java SE Deployment Technology in these documents.

Starting with Java 7, Extended Support is not available for Java SE Deployment Technology.  It is more important than ever for you to stay current with new JRE versions.

If you are currently running JRE 6 on your EBS desktops:

  • You can continue to do so until the end of Java SE 6 Deployment Technology Extended Support in June 2017
  • You can obtain JRE 6 updates from My Oracle Support.  See:

If you are currently running JRE 7 on your EBS desktops:

  • You can continue to do so until the end of Java SE 7 Deployment Technology Premier Support in October 2017.
  • You can obtain JRE 7 updates from My Oracle Support.  See:

If you are currently running JRE 8 on your EBS desktops:

  • You can continue to do so until the end of Java SE 8 Deployment Technology Premier Support in March 2019
  • You can obtain JRE 8 updates from the Java SE download site or from My Oracle Support. See:

Will EBS users be forced to upgrade to JRE 8 for Windows desktop clients?

No.

This upgrade is highly recommended but remains optional while Java 6 and 7 are covered by Extended Support. Updates will be delivered via My Oracle Support, where you can continue to receive critical bug fixes and security fixes as well as general maintenance for JRE 6 and 7 desktop clients. Note that there are different impacts of enabling JRE Auto-Update depending on your current JRE release installed, despite the availability of ongoing support for JRE 6 and 7 for EBS customers; see the next section below.

Impact of enabling JRE Auto-Update

Java Auto-Update is a feature that keeps desktops up-to-date with the latest Java release.  The Java Auto-Update feature connects to java.com at a scheduled time and checks to see if there is an update available.

Enabling the JRE Auto-Update feature on desktops with JRE 6 installed will have no effect.

With the release of the January Critical patch Updates, the Java Auto-Update Mechanism will automatically update JRE 7 plug-ins to JRE 8.

Enabling the JRE Auto-Update feature on desktops with JRE 8 installed will apply JRE 8 updates.

Coexistence of multiple JRE releases Windows desktops

The upgrade to JRE 8 is recommended for EBS users, but some users may need to run older versions of JRE 6 or 7 on their Windows desktops for reasons unrelated to the E-Business Suite.

Most EBS configurations with IE and Firefox use non-static versioning by default. JRE 8 will be invoked instead of earlier JRE releases if both are installed on a Windows desktop. For more details, see "Appendix B: Static vs. Non-static Versioning and Set Up Options" in Notes 290807.1 and 393931.1.

What do Mac users need?

Mac users running Mac OS X 10.12 (High Sierra) can run JRE 8 plug-ins.  See:

Will EBS users be forced to upgrade to JDK 8 for EBS application tier servers?

No.

JRE is used for desktop clients.  JDK is used for application tier servers.

JRE 8 desktop clients can connect to EBS environments running JDK 6 or 7.

JDK 8 is not certified with the E-Business Suite.  EBS customers should continue to run EBS servers on JDK 6 or 7.

Known Issues

Internet Explorer Performance Issue

Launching JRE 1.8.0_73 through Internet Explorer will have a delay of around 20 seconds before the applet starts to load (Java Console will come up if enabled).

This issue fixed in JRE 1.8.0_74.  Internet Explorer users are recommended to uptake this version of JRE 8.

Form Focus Issue Clicking outside the frame during forms launch may cause a loss of focus when running with JRE 8 and can occur in all Oracle E-Business Suite releases. To fix this issue, apply the following patch:

References

Related Articles
Categories: APPS Blogs

JRE 1.7.0_201 Certified with Oracle E-Business Suite 12.1 and 12.2

Steven Chan - Wed, 2018-11-07 12:23

Java logo

Java Runtime Environment 1.7.0_201 (a.k.a. JRE 7u201-b11) and later updates on the JRE 7 codeline are now certified with Oracle E-Business Suite Release 12.1 and 12.2 for Windows-based desktop clients.

What's new in this update?

This update includes an important change: the Java deployment technology (i.e. the JRE browser plugin) is no longer available as of this Java release. It is expected that Java deployment technology will not be packaged in later Java 7 updates.

JRE 1.7.0_161  and later JRE 1.7 updates can still run Java content.  These releases cannot launch Java.

End-users who only have JRE 1.7.0_161 and later JRE 1.7 updates -- but not JRE 1.8 -- installed on their Windows desktop will be unable to launch Java content.

End-users who need to launch JRE 1.7 for compatibility with other third-party Java applications must also install the October 2017 CPU release JRE 1.8.0_151 or later JRE 1.8 updates on their desktops.

Once JRE 1.8.0_151 or a later JRE 1.8 update is installed on a Windows desktop, it can be used to launch JRE 1.7.0_161 and later updates on the JRE 1.7 codeline. 

How do I get help with this change?

EBS customers requiring assistance with this change to Java deployment technology can log a Service Request for assistance from the Java Support group.

All JRE 6, 7, and 8 releases are certified with EBS upon release

Our standard policy is that all E-Business Suite customers can apply all JRE updates to end-user desktops:

  • From JRE 1.6.0_03 and later updates on the JRE 6 codeline
  • From JRE 1.7.0_10 and later updates on the JRE 7 codeline 
  • From JRE 1.8.0_25 and later updates on the JRE 8 codeline
We test all new JRE releases in parallel with the JRE development process, so all new JRE releases are considered certified with the E-Business Suite on the same day that they're released by our Java team. 

You do not need to wait for a certification announcement before applying new JRE 6, 7, or 8 releases to your EBS users' desktops.

Effects of new support dates on Java upgrades for EBS environments

Support dates for the E-Business Suiteand Java have changed.  Please review the sections below for more details:

  • What does this mean for Oracle E-Business Suite users?
  • Will EBS users be forced to upgrade to JRE 7 for Windows desktop clients?
  • Will EBS users be forced to upgrade to JDK 7 for EBS application tier servers?

32-bit and 64-bit versions certified

This certification includes both the 32-bit and 64-bit JRE versions for various Windows operating systems. See the respective Recommended Browser documentation for your EBS release for details.

Where are the official patch requirements documented?

How can EBS customers obtain Java 7?

EBS customers can download Java 7 patches from My Oracle Support.  For a complete list of all Java SE patch numbers, see:

Both JDK and JRE packages are now contained in a single combined download.  Download the "JDK" package for both the desktop client JRE and the server-side JDK package. 

Coexistence of multiple JRE releases Windows desktops

The upgrade to JRE 8 is recommended for EBS users, but some users may need to run older versions of JRE 6 or 7 on their Windows desktops for reasons unrelated to the E-Business Suite.

Most EBS configurations with IE and Firefox use non-static versioning by default. JRE 8 will be invoked instead of earlier JRE releases if both are installed on a Windows desktop. For more details, see "Appendix B: Static vs. Non-static Versioning and Set Up Options" in Notes 290807.1 and 393931.1.

Java Auto-Update Mechanism

With the release of the January 2015 Critical patch Updates, the Java Auto-Update Mechanism will automatically update JRE 7 plug-ins to JRE 8.

Coexistence of multiple JRE releases Windows desktops

The upgrade to JRE 8 is recommended for EBS users, but some users may need to run older versions of JRE 6 or 7 on their Windows desktops for reasons unrelated to the E-Business Suite.

Most EBS configurations with IE and Firefox use non-static versioning by default. JRE 8 will be invoked instead of earlier JRE releases if both are installed on a Windows desktop. For more details, see "Appendix B: Static vs. Non-static Versioning and Set Up Options" in Notes 290807.1 and 393931.1.

What do Mac users need?

Mac users running Mac OS X 10.12 (High Sierra) can run JRE 8 plug-ins.  See:

Will EBS users be forced to upgrade to JDK 7 for EBS application tier servers?

JRE ("Deployment Technology") is used for desktop clients.  JDK is used for application tier servers.

JDK upgrades for E-Business Suite application tier servers are highly recommended but currently remain optional while Java 6 is covered by Extended Support. Updates will be delivered via My Oracle Support, where you can continue to receive critical bug fixes and security fixes as well as general maintenance for JDK 6 for application tier servers. 

Java SE 6 (excluding Deployment Technology) is covered by Extended Support until December 2018.  All EBS customers with application tier servers on Windows, Solaris, and Linux must upgrade to JDK 7 (excluding Deployment Technology) by December 2018. EBS customers running their application tier servers on other operating systems should check with their respective vendors for the support dates for those platforms.

JDK 7 is certified with E-Business Suite 12.  See:

Known Issues

When using Internet Explorer, JRE 1.7.0_01 had a delay of around 20 seconds before the applet started to load. This issue is fixed in JRE 1.7.0_95 and later updates on the JRE 1.7 codeline.

References

Related Articles
Categories: APPS Blogs

JRE 1.6.0_211 Certified with Oracle E-Business Suite

Steven Chan - Wed, 2018-11-07 12:23

Java logThe latest Java Runtime Environment 1.6.0_211 (a.k.a. JRE 6u211-b11) is now certified with Oracle E-Business Suite Release 12.1 and 12.2 for Windows-based desktop clients.

Final Release for Java 6

This is the final release on the Java 6 codeline. Extended Support for Java 6 SE ends on December 31, 2018. There will be no further Java 6 updates:

All customers should upgrade desktop clients to JRE 7, JRE 8, or JWS 8 at their earliest convenience. 

What's new in this update?

This update includes an important change: the Java deployment technology (i.e. the JRE browser plugin) is no longer available as of the Java 1.6.0_171 release. It is expected that Java deployment technology will not be packaged in later Java 6 updates.

JRE 1.6.0_171 and later JRE 1.6 updates can still run Java content.  These releases cannot launch Java.

End-users who only have JRE 1.6.0_171 and later JRE 1.6 updates -- but not JRE 1.8 -- installed on their Windows desktop will be unable to launch Java content.

End-users who need to launch JRE 1.6 for compatibility with other third-party Java applications must also install the October 2017 PSU release JRE 1.8.0_152 or later JRE 1.8 updates on their desktops.

Once JRE 1.8.0_152 or a later JRE 1.8 update is installed on a Windows desktop, it can be used to launch JRE 1.6.0_171 and later updates on the JRE 1.6 codeline. 

How do I get help with this change?

EBS customers requiring assistance with this change to Java deployment technology can log a Service Request for assistance from the Java Support group.

All JRE 6, 7, and 8 releases are certified with EBS upon release

Our standard policy is that all E-Business Suite customers can apply all JRE updates to end-user desktops:

  • From JRE 1.6.0_03 and later updates on the JRE 6 codeline
  • From JRE 1.7.0_10 and later updates on the JRE 7 codeline 
  • From JRE 1.8.0_25 and later updates on the JRE 8 codeline
We test all new JRE releases in parallel with the JRE development process, so all new JRE releases are considered certified with the E-Business Suite on the same day that they're released by our Java team. 

You do not need to wait for a certification announcement before applying new JRE 6, 7, or 8 releases to your EBS users' desktops.

Effects of new support dates on Java upgrades for EBS environments

Support dates for the E-Business Suiteand Java have changed.  Please review the sections below for more details:

  • What does this mean for Oracle E-Business Suite users?
  • Will EBS users be forced to upgrade to JRE 7 for Windows desktop clients?
  • Will EBS users be forced to upgrade to JDK 7 for EBS application tier servers?
32-bit and 64-bit versions certified

This certification includes both the 32-bit and 64-bit JRE versions for various Windows operating systems. See the respective Deploying JRE documentation for your EBS release for details.

How can EBS customers obtain Java 6 updates?

Java 6 is now available only via My Oracle Support for E-Business Suite users.  You can find links to this release, including Release Notes, documentation, and the actual Java downloads here: Both JDK and JRE packages are contained in a single combined download after 6u45.  Download the "JDK" package for both the desktop client JRE and the server-side JDK package.

Coexistence of multiple JRE releases Windows desktops

The upgrade to JRE 8 is recommended for EBS users, but some users may need to run older versions of JRE 6 or 7 on their Windows desktops for reasons unrelated to the E-Business Suite.

Most EBS configurations with IE and Firefox use non-static versioning by default. JRE 8 will be invoked instead of earlier JRE releases if both are installed on a Windows desktop. For more details, see "Appendix B: Static vs. Non-static Versioning and Set Up Options" in Notes 290807.1 and 393931.1.

What do Mac users need?

Mac users running Mac OS X 10.12 (High Sierra) can run JRE 8 plug-ins.  See:

Will EBS users be forced to upgrade to JDK 7 for EBS application tier servers?

JRE ("Deployment Technology") is used for desktop clients.  JDK is used for application tier servers.

JDK upgrades for E-Business Suite application tier servers are highly recommended but currently remain optional while Java 6 is covered by Extended Support. Updates will be delivered via My Oracle Support, where you can continue to receive critical bug fixes and security fixes as well as general maintenance for JDK 6 for application tier servers. 

Java SE 6 (excluding Deployment Technology) is covered by Extended Support until December 2018.  All EBS customers with application tier servers on Windows, Solaris, and Linux must upgrade to JDK 7 by December 2018. EBS customers running their application tier servers on other operating systems should check with their respective vendors for the support dates for those platforms.

JDK 7 is the latest Java release certified with E-Business Suite 12 servers.  See:

References

Related Articles
Categories: APPS Blogs

Row visibility set in a package procedure EXECUTE IMMEDIATE 'ALTER SESSION SET ROW ARCHIVAL VISIBILITY = ACTIVE'

Tom Kyte - Wed, 2018-11-07 11:06
Hi Tom, I've got a table DAVE_ELOF set to row archival (alter table dave_elof row archival;). I want that a user can set row visibility via a package procedure setStudyVisibleYN(aStudyId number, aVisible_YN varchar2). Code snipp...
Categories: DBA Blogs

Pages

Subscribe to Oracle FAQ aggregator