Oracle Cloud API Gateway – Using an Authorizer Function for Client Secret Authorization on API Access

Uncategorized
| Jan 3, 2020

The objective in this article: create a simple Authorizer Function that checks the Client Secret passed in API calls and allows and denies requests based on whether the correct Client Secret is included. The Authorizer Function does a little more than simply accept or deny: in case of accept it also return a token object that becomes part of the request sent to the real backend.

image

Steps:

  1. Create a Function with Fn (in any runtime (more...)

push_having_to_gby() – 2

Uncategorized
| Jan 3, 2020

THe problem with finding something new and fiddling with it and checking to see how you can best use it to advantage is that you sometimes manage to “break” it very quickly. In yesterday’s blog note I introduced the /*+ push_having_to_gby(@qbname) */ hint and explained why it was a useful little enhancement. I also showed a funny little glitch with a missing predicate in the execution plan.

Today I thought I’d do something a little (more...)

Where does the log writer spend its time on?

Uncategorized
| Jan 2, 2020

The Oracle database log writer is the process that fundamentally influences database change performance. Under normal circumstances the log writer must persist the changes made to the blocks before the actual change is committed. Therefore, it’s vitally important to understand what the log writer is exactly doing. This is widely known by the Oracle database community.

The traditional method for looking at log writer performance is looking at the wait event ‘log file parallel write’ (more...)

push_having_to_gby()

Uncategorized
| Jan 2, 2020

I came across an interesting new hint recently when checking the Outline Data for an execution plan: /*+ push_having_to_gby() */  It’s an example of a “small” change designed to reduce CPU usage by reducing the volume of data that passes through the layers of calls that an execution plan represents. The hint appeared in 18.3 but I’ve run the following on 19.3 as a demonstration of what it does and why it’s (more...)

Applying a Machine Learning Model in OAC

Uncategorized
| Jan 2, 2020

There are a number of different tools and languages available for machine learning projects. One such tool is Oracle Analytics Cloud (OAC).  Check out my article for Oracle Magazine that takes you through the steps of using OAC to create a Machine Learning workflow/dataflow.

Screenshot 2019-12-19 14.31.24

Oracle Analytics Cloud provides a single unified solution for analyzing data and delivering analytics solutions to businesses. Additionally, it provides functionality for processing data, allowing for data transformations, data cleaning, (more...)

Oracle REST Data Services (ORDS) 19.4 : A quick life update…

Uncategorized
| Jan 2, 2020

Almost 2 weeks ago I wrote about the release of Oracle REST Data Services (ORDS), SQLcl, SQL Developer and SQL Developer Data Modeler 19.4.

I spent the holidays playing around with it quite a bit, so I came back to work today and pushed it out across all Dev and Test installations.

As I’ve mentioned before, at work we run ORDS on Tomcat inside Docker containers. The build we use is very similar to (more...)

Oracle wait event ‘log file parallel write’ change

Uncategorized
| Dec 31, 2019

This post is about a change in how the time is measured for the event ‘log file parallel write’. This is important for the performance tuning of any change activity in an Oracle database, because with the default commit settings, a foreground session that commits changes waits in the wait event ‘log file sync’, which is a wait on logwriter activity, for which the wait event ‘log file parallel write’ always has been the indicator (more...)

Scalar Subq Bug

Uncategorized
| Dec 30, 2019

This is an observation that came up on the Oracle Developer Forum a couple of days ago, starting life as the fairly common problem:

I have a “select” that runs quickly  but when I use in a “create as select” it runs very slowly.

In many cases this simply means that the query was a distributed query and the plan changed because the driving site changed from the remote to the local server. There are (more...)

Tools To Monitor and Work with Oracle on Azure

Uncategorized
| Dec 26, 2019

I’ve been studying for over a week for my certs.  It really is a challenge for my ADHD brain, as I learn by interacting and using a product, not be reading about it and guess what?  Most of what the certs are on are not in my technical area.  Yeah, this is not fun for me.  I find that my brain hits a limit on what it can absorb before the (more...)

Flashback Archive

Uncategorized
| Dec 24, 2019

A classic example of Oracle’s “mix and match” problem showed up on the Oracle Developer Forum a few days ago. Sometimes you see two features that are going to be really helpful in your application – and when you combine them something breaks. In this case it was the combination of Virtual Private Database (VPD/FGAC/RLS) and Flashback Data Archive (FDA/FBA) that resulted in the security predicate not being applied the way you would expect, hence (more...)

Identity wallets used by Oracle GoldenGate Microservices

Uncategorized
| Dec 24, 2019

Wallets, Wallets, and more wallets! … Wallets are used for a few different things within Oracle GoldenGate Microservices; identifying what wallet is being used by a service is simple if you know where to look.   The biggest usage of wallets within Oracle GoldenGate Microservices is to help secure the communication between the Distribution Service […]

The post Identity wallets used by Oracle GoldenGate Microservices appeared first on DBASolved.

Oracle VM Server: Pool is locked forever

Uncategorized
| Dec 23, 2019
If you are using Oracle VM Server it is possible that you are hitting the following problem:

After changing something on a server pool the pool gets locked and the lock stays there:
Even a reboot of your OVMM (oracle vm manager) does not remove the lock.

The solution can be very easy:
Just edit the pool and add (or change) the description.

This edit triggers an update and removes the lock. I think every (more...)

Video : Oracle REST Data Services (ORDS) : HTTP Headers and ORDS-Specific Bind Variables

Uncategorized
| Dec 23, 2019

In today’s video we do a quick run through how to use HTTP headers and ORDS-specific bind variables in Oracle REST Data Services.

The video is based on this article.

As always you can see all my ORDS articles here.

There is also a YouTube playlist just for ORDS here.

The star of today’s (more...)

ORDS, SQLcl, SQL Developer and SQL Developer Data Modeler 19.4 Released

Uncategorized
| Dec 22, 2019

If you follow me, Jeff or Kris on Twitter, you will already know ORDS, SQLcl, SQL Developer and SQL Developer Data Modeler version 19.4 have all been released. They became available for download late Friday US time, and I got a DM about it yesterday morning, so fresh from spending 2 days running Data Guard builds, I moved on to running builds of some of this stuff.

Oracle REST Data Services (ORDS)

It was (more...)

Purge Cursor

Uncategorized
| Dec 20, 2019

This is a note I first drafted about 5 years ago (the date stamp says March 2014) and rediscovered a few days ago when the question came up on a Twitter thread.

How do you purge a single SQL statement from the library cache without having to execute “alter system flush shared_pool”?

The answer is in the package dbms_shared_pool, specfically the purge() procedure. This package changes significantly in the upgrade from 11.2 ( (more...)

R (ROracle) and Oracle DATE formats

Uncategorized
| Dec 20, 2019

When you comes to working with R to access and process your data there are a number of little features and behaviors you need to look out for.

One of these is the DATE datatype.

The main issue that you have to look for is the TIMEZONE conversion that happens then you extract the data from the database into your R environment.

There is a datatype conversions from the Oracle DATE into the POSIXct format. (more...)

Wait for Java

Uncategorized
| Dec 18, 2019

This is a note courtesy of Jack can Zanen on the Oracle-L list server who asked a question about “wait for CPU” and then produced the answer a couple of days later. It’s a simple demonstration of how Java in the database can be very deceptive in terms of indicating CPU usage that isn’t really CPU usage.

Bottom line – when you call Java Oracle knows you’re about to start doing some work on the (more...)

IOT Bug

Uncategorized
| Dec 16, 2019

Here’s a worrying bug that showed up a couple of days ago on the Oracle-L mailing list. It’s a problem that I’ve tested against 12.2.0.1 and 19.3.0.0 – it may be present on earlier versions of Oracle. One of the nastiest things about it is that you might not notice it until you get an “out of space” error from the operating system. You won’t get any wrong results (more...)

Development Standards for API Policies?

Uncategorized
| Dec 16, 2019

When it comes to development, we have had coding standards for almost as long as we have been coding. We tend to look at coding standards for purposes of helping to promote good quality code and reduce the likelihood of bugs and so on. But they also help with readability, making it easy to navigate a code base and so on. This is sufficiently important that there is a vast choice of tools to help (more...)

Updating the trail file location for Oracle GoldenGate Microservices

Uncategorized
| Dec 13, 2019

When you first install Oracle GoldenGate Microservices, you may have taken the standard installation approach and all the configuration, logging and trail file information will reside in a standard directory structure.  This makes the architecture of your enviornment really easy.   Let’s say you want to identify what trail files are being used by the […]

The post Updating the trail file location for Oracle GoldenGate Microservices appeared first on DBASolved.