Feed aggregator

Stupid Stuff I’ve Done : The Clone Wars

Tim Hall - Wed, 2016-10-05 13:29

stormtrooper-1343772_640Following on from the theme of yesterday’s confession about my screw-ups with pluggable databases comes one about cloning.

For some systems we use cloning (RMAN DUPLICATE) as a method of refreshing Dev and Test environments from Live. The process of doing a backup-based or active duplicate is not that complicated and typically you do it once, script it and you don’t have to worry too much about it again.

Yesterday we had to refresh a test environment from live, so we used our trusty clone script, but it failed with the following message.

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence ???? and starting SCN of ????

Strange! The message is pretty clear. It is expecting an archived redo log that doesn’t exist. If this were a backup-based clone I would suspect one of the archived redo logs had not been copied across, but this was an active duplicate, so it automatically transports everything from the target to the auxiliary instance. How could it lose something?

I knew I had seen this before, but no matter how much I searched my website, private work notes, MOS or using Uncle Google I couldn’t find the solution. Everything pointed to a missing archived redo log, but that couldn’t be happening on an active duplicate right? Wrong!

After much denial, wailing and gnashing of teeth I remembered the archived redo log backups! During the clone operation an archived redo log backup had kicked in on the target database and deleted all the logs that had been backed up. By the time the active duplicate tried to grab them they were gone and hence the error…

Notes to self:

  • When you see something like this happen, write a note about it! Don’t think you will remember it next time. You won’t, or you will waste loads of time before you do remember it! How many times do you have to tell yourself, “If it’s not written down it doesn’t exist!”
  • The error message is trying to tell you the answer. Don’t try and intellectualise your way round it. It’s probably not a bug that is causing some spurious misreporting of the “real problem”. You probably don’t know better than the error trapping. Think less about why the error message might be wrong and think more about what could have caused the situation that resulted in the error, as it is reported.
  • Don’t write a blog post confessing how rubbish you are at your job or people will find out and… Doh!



Stupid Stuff I’ve Done : The Clone Wars was first posted on October 5, 2016 at 7:29 pm.
©2012 "The ORACLE-BASE Blog". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.

October 11, 2016: KPN Netherlands—Oracle Sales Cloud Customer Forum

Linda Fishman Hoyle - Wed, 2016-10-05 11:23

Join us for an Oracle Sales Cloud Customer Reference Forum on Tuesday, October 11, 2016.

KPN is the largest telecom and IT service provider in the Netherlands. Irma van Mil, Unit Manager Sales & Service, KPN, will discuss how Oracle Sales Cloud continues to contribute to KPN’s strategy of “strengthen, simplify, and grow.”

Register now to attend the live Forum on October 11, 2016, at 4:00 p.m. CET.

Fabric … Simple #GoldenGate Administration over SSH

DBASolved - Wed, 2016-10-05 10:45


For awhile now, I’ve been looking at different approaches for automating some of my GoldenGate monitor tasks. Yes, there are tools out there that provide a wide variety of ways for interaction and monitoring of Oracle GoldenGate. However, the problem with Oracle GoldenGate is that you have at least two parts of the equation when interacting or monitoring an environment, i.e. source and target. If you are so lucky to have a multi-master configuration, then you have to deal with multiple target sites. In the end, making administration and knowing what is going on a bit of a time-consuming process.

I’ve looked at different tools to try and solve this problem; mostly in Perl since I write a lot of that from time to time. Trying to get Perl to do network commands like SSH was time consuming and cumbersome when scripting it. This is when I started to look at Python. Initially I wasn’t sold on Python, but after spending some time to get familiar with the language, I actually like it; but it still was missing the SSH functionality I wanted, until recently.

As I was browsing the inter-web over the last week or so, I came across a blog post that compared deployment tools such as Chef, Puppet, Ansible, Fabric and a few others. The website provided pros and cons for each of the deployment options they were reviewing. Take a look and see what you may like to use for deployment options in your environments.

Out of the tools the website talked about, Fabric peaked my attention because it was a Python-based tool for streamlining SSH application deployments. I was thinking, if I could deploy applications with Fabric, then I should be able to do some basic monitoring with it as well; sending me down the path of solving basic Oracle GoldenGate monitoring from a single command line. Yea sounds like a good plan!

After spending some time, figuring out how to install Fabric and what exactly is a “fabfile”, I wrote my first monitoring script for Fabric!

What exactly does this monitoring script look like? Below is the monitoring script, also known as a “fabfile”. This script is written in Python syntax and sets up the environment and what functions should be called.

from fabric.api import *

env.hosts = [

env.user = "oracle"
env.password = [ do not place in clear text ]

def info_all():
        with cd("$OGG_HOME"):
                run("echo info all | ./ggsci")

def ggstatus():

The environment that is going to be monitored are my test servers that I use for many of my tests (Fred and Wilma). Then I’m telling Fabric to use the “oracle” userid and password to login to each server. In this environment I have all my oracle passwords set the same so I only have to provide it once. After the environment is set, I define the functions that I want to perform. The first function is the info_all() function which is logging into GGSCI and providing me the output of the info all command. The second function is just a generic function that calls the first function.

With the “fabfile” created, I can now run a single command to access both servers (Fred & Wilma) and check on the status of the Oracle GoldenGate processes running on these servers. The command that I run is:

$ fab ggstatus -f ./fab_gg.py

This command is executing the Fabric executable “fab” followed by the function in the “fabfile” I want to execute. Then the “-f ./fab_gg.py” is the “fabfile” that I want to use during the execution. Upon execution, I will spool output on my STDOUT providing me the status of each Oracle GoldenGate environment for each server I’ve requested.

AMAC02P37LYG3QC:python bobby.l.curtis$ fab ggstatus -f ./fab_gg.py
[fred.acme.com] Executing task 'ggstatus'
[fred.acme.com] run: echo info all | ./ggsci
[fred.acme.com] out: The Oracle base has been set to /u01/app/oracle
[fred.acme.com] out: ====================================
[fred.acme.com] out: ORACLE_SID=src12c
[fred.acme.com] out: ORACLE_BASE=/u01/app/oracle
[fred.acme.com] out: ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
[fred.acme.com] out: OGG_HOME=/u01/app/oracle/product/12.2.0/oggcore_1
[fred.acme.com] out: JAVA_HOME=/home/oracle/Downloads/jdk1.8.0_71
[fred.acme.com] out: OGGSTUDIO_HOME=/u01/app/oracle/product/oggstudio/oggstudio
[fred.acme.com] out: OGGSTUDIO_HOME1=/u01/app/oracle/product/oggstudio/
[fred.acme.com] out: ====================================
[fred.acme.com] out:
[fred.acme.com] out: Oracle GoldenGate Command Interpreter for Oracle
[fred.acme.com] out: Version OGGCORE_12.
[fred.acme.com] out: Linux, x64, 64bit (optimized), Oracle 12c on Nov 11 2015 03:53:23
[fred.acme.com] out: Operating system character set identified as UTF-8.
[fred.acme.com] out:
[fred.acme.com] out: Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
[fred.acme.com] out:
[fred.acme.com] out:
[fred.acme.com] out:
[fred.acme.com] out: GGSCI (fred.acme.com) 1>
[fred.acme.com] out: Program     Status      Group       Lag at Chkpt  Time Since Chkpt
[fred.acme.com] out:
[fred.acme.com] out: MANAGER     RUNNING
[fred.acme.com] out: JAGENT      RUNNING
[fred.acme.com] out: EXTRACT     RUNNING     EGG12C      00:00:09      00:00:02
[fred.acme.com] out: Description 'Integrated Extract'
[fred.acme.com] out: EXTRACT     RUNNING     PGG12C      00:00:00      00:00:02
[fred.acme.com] out: Description 'Data Pump'
[fred.acme.com] out:
[fred.acme.com] out:
[fred.acme.com] out: GGSCI (fred.acme.com) 2>
[wilma.acme.com] Executing task 'ggstatus'
[wilma.acme.com] run: echo info all | ./ggsci
[wilma.acme.com] out: The Oracle base has been set to /opt/app/oracle
[wilma.acme.com] out: ====================================
[wilma.acme.com] out: ORACLE_SID=rmt12c
[wilma.acme.com] out: ORACLE_BASE=/opt/app/oracle
[wilma.acme.com] out: ORACLE_HOME=/opt/app/oracle/product/
[wilma.acme.com] out: OGG_HOME=/opt/app/oracle/product/
[wilma.acme.com] out: JAVA_HOME=/home/oracle/Downloads/jdk1.8.0_71
[wilma.acme.com] out: ODI_HOME=/opt/app/oracle/product/
[wilma.acme.com] out: ====================================
[wilma.acme.com] out:
[wilma.acme.com] out: Oracle GoldenGate Command Interpreter for Oracle
[wilma.acme.com] out: Version OGGCORE_12.
[wilma.acme.com] out: Linux, x64, 64bit (optimized), Oracle 12c on Nov 11 2015 03:53:23
[wilma.acme.com] out: Operating system character set identified as UTF-8.
[wilma.acme.com] out:
[wilma.acme.com] out: Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
[wilma.acme.com] out:
[wilma.acme.com] out:
[wilma.acme.com] out:
[wilma.acme.com] out: GGSCI (wilma.acme.com) 1>
[wilma.acme.com] out: Program     Status      Group       Lag at Chkpt  Time Since Chkpt
[wilma.acme.com] out:
[wilma.acme.com] out: MANAGER     RUNNING
[wilma.acme.com] out: JAGENT      RUNNING
[wilma.acme.com] out: REPLICAT    RUNNING     RGG12C      00:00:00      00:00:03
[wilma.acme.com] out:
[wilma.acme.com] out:
[wilma.acme.com] out: GGSCI (wilma.acme.com) 2>

Disconnecting from wilma.acme.com... done.
Disconnecting from fred.acme.com... done.

As you can tell, I get a scrolling output of both servers showing that the servers were logged into and changed directories to the $OGG_HOME. Then executed and “info all” command against GGSCI with the returning output. This makes for a quick and easy way to get the current status of all Oracle GoldenGate processes in an environment.

With this being an introduction to Fabric, I’m looking forward to seeing what else I can do with it. I’ll keep everyone posted on additional things I do may do with it. But for now, I encourage you to take a look at it and see if you can simplify some of your administration tasks with it.


about.me: http://about.me/dbasolved

Filed under: Dev Ops, Golden Gate
Categories: DBA Blogs

SQL Loader- Multibyte character error

Tom Kyte - Wed, 2016-10-05 09:46
Hi Team, When I am trying to load an UTF8 characterset datafile using sqlldr, it fails with Multibyte character error. Steps to reproduce the issue: 1. Create table. create table LoaderTest( rec_no number, rec_id_no nvarchar2(30), col...
Categories: DBA Blogs

How to export .xls file with table data as a attachment from Plsql block

Tom Kyte - Wed, 2016-10-05 09:46
We are using below code for excel property p_file_name:='demo.xls'; UTL_TCP. write_line (v_tcp_connection, 'Content-Type: application/ms-excel;'); ----- 2ND BODY PART. UTL_TCP. write...
Categories: DBA Blogs

Get dates between given periods

Tom Kyte - Wed, 2016-10-05 09:46
I have table tt with columns: skey number, start date, end date Start date and end date will always be month end dates. data will be 1 31/01/2016 31/03/2016 2 29/02/2016 31/03/2016 3 29/02/2016 30/04/2...
Categories: DBA Blogs

SQL to display colours for values

Tom Kyte - Wed, 2016-10-05 09:46
Hi, create table test code number(5)); insert into text values (1); insert into text values (1); insert into text values (2); insert into text values (2); insert into text values (3); insert into text values (4); insert into text values (4...
Categories: DBA Blogs

MATCH_RECOGNIZE and matching to multiple pattern

Tom Kyte - Wed, 2016-10-05 09:46
Hi! I've been playing with MATCH_RECOGNIZE feature in 12c and I've encountered situation which I'm not able to explain myself - so I'd like to ask you for support. Please find the script here: https://livesql.oracle.com/apex/livesql/s/dyhcdwiuu...
Categories: DBA Blogs

Displaying data in timetable grid

Tom Kyte - Wed, 2016-10-05 09:46
Hi Guys Really hope you can help with an issue that I have. I use the code below to output the days of the current week (stored in a table called dates) <code>SELECT to_char(NEXT_DAY(SYSDATE,'MON') + case when to_char(SYSDATE,'D') in (6,7) t...
Categories: DBA Blogs

Scroll to Right

Tom Kyte - Wed, 2016-10-05 09:46
Hi Chris & Connor it is not a question. While reading ask tom's old question answers there are a lot of scroll to right. Very difficult to read conversation that is scrolling to long right. I stop reading when is see right scroll. Can you f...
Categories: DBA Blogs

SQL and/or PL/SQL in ODI vs in the Database

Tom Kyte - Wed, 2016-10-05 09:46
This is sort of a #ThickDB question. I can put functions, procedures, etc. in ODI for it to execute on the database or I can put the functions, procedures, etc. in the database and have ODI execute them when appropriate. I've tried this both ways and...
Categories: DBA Blogs

BLOB aggregation

Tom Kyte - Wed, 2016-10-05 09:46
Hi Tom! I've got the table: <code>create table example (id number, image varchar2(10));</code> with these two rows: <code>insert into example (id, image) values (25, 'pippo'); insert into example (id, image) values (32, 'pluto');</c...
Categories: DBA Blogs

Daywise partition automatically

Tom Kyte - Wed, 2016-10-05 09:46
Hi, 1.I have table with huge data so I have created the index, gathering stats, rebuilding index but it is very slow now I have seen the optimiser plan it is showing create partition index So can you pls help me to know what is partition index and...
Categories: DBA Blogs

How to patch Postgres Plus Advanced Server

Yann Neuhaus - Wed, 2016-10-05 09:43

As with any other software there comes the time when you need to patch your Postgres Plus Advanced Server instances. Is that different from patching Community PostgreSQL? Yes and no :) The difference is that you need a subscription to get access to the EDB Customer Portal for being able to download the patch. This is pretty much the same as with My Oracle Support where you need a customer support identifier mapped to your account for being able to download patches, to have access to the knowledge base and for being able to open cases in case you run into troubles which you are not able to solve yourself.

Assuming you have access to the EDB customer portal and you downloaded the patch for your base release the procedure is pretty simple. For this little demo I am running the base release of Postgres Plus Advanced Server:

postgres@centos7:/home/postgres/ [PG2] psql
psql.bin (
Type "help" for help.

postgres=# select version();
 EnterpriseDB on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55), 64-bit
(1 row)


This is the release you can download from the EDB website for testing. The patch I downloaded from the portal is this one:

postgres@centos7:/home/postgres/ [PG2] cd /u01/app/postgres/software/
postgres@centos7:/u01/app/postgres/software/ [PG2] ls -la
total 27216
drwxrwxr-x. 2 postgres postgres       51 Oct  5 10:16 .
drwxrwxr-x. 5 postgres postgres       47 Jun 15 13:10 ..
-rw-rw-r--. 1 postgres postgres 27868299 Oct  5 10:16 postgresplusas-
postgres@centos7:/u01/app/postgres/software/ [PG2] chmod +x postgresplusas- 

This should patch my base release to currently latest release which is How does it work? Lets execute the binary and see what happens:

postgres@centos7:/u01/app/postgres/software/ [PG2] ./postgresplusas- 
Language Selection

Please select the installation language
[1] English - English
[2] Japanese - 日本語
[3] Simplified Chinese - 简体中文
[4] Traditional Chinese - 繁体中文
[5] Korean - 한국어
Please choose an option [1] : 1

Error: There has been an error.
This installer requires root privileges. Please become superuser before 
executing the installer
Press [Enter] to continue:

A no go for most of the cases. Running installers as root is not a good practice and should be avoided whenever possible. But, luckily, as with the base release installer the patch itself can be installed in “extract only” mode:

postgres@centos7:/u01/app/postgres/software/ [PG2] ./postgresplusas- --extract-only yes --prefix /u01/app/postgres/product/95edb/db_5/9.5AS/
Language Selection

Please select the installation language
[1] English - English
[2] Japanese - 日本語
[3] Simplified Chinese - 简体中文
[4] Traditional Chinese - 繁体中文
[5] Korean - 한국어
Please choose an option [1] : 1
Welcome to the Postgres Plus Advanced Server Setup Wizard.

Please specify the directory where Postgres Plus Advanced Server will be 

Installation Directory [/u01/app/postgres/product/95edb/db_5/9.5AS]: 

Setup is now ready to begin installing Postgres Plus Advanced Server on your 

Do you want to continue? [Y/n]: y

Please wait while Setup installs Postgres Plus Advanced Server on your computer.

 Installing Database Server
 0% ______________ 50% ______________ 100%

Setup has finished installing Postgres Plus Advanced Server on your computer.

postgres@centos7:/u01/app/postgres/software/ [PG2] 

Looks good, but you never should do this when your PostgreSQL is running, otherwise you’ll get this:

2016-10-05 10:22:43 CEST LOG:  server process (PID 4359) was terminated by signal 11: Segmentation fault
2016-10-05 10:22:43 CEST LOG:  terminating any other active server processes
2016-10-05 10:22:43 CEST WARNING:  terminating connection because of crash of another server process
2016-10-05 10:22:43 CEST DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2016-10-05 10:22:43 CEST HINT:  In a moment you should be able to reconnect to the database and repeat your command.
2016-10-05 10:22:43 CEST LOG:  statistics collector process (PID 3324) was terminated by signal 11: Segmentation fault
2016-10-05 10:22:43 CEST LOG:  all server processes terminated; reinitializing

Always shutdown, before you begin to patch. In my case I just started the instance again and I am on the current release:

postgres@centos7:/u01/app/postgres/software/ [PG2] sqh
psql.bin (
Type "help" for help.

postgres=# select version();
 EnterpriseDB on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55), 64-bit
(1 row)


Simple and fast. If you prepare this very well your downtime will be around one minute. I can already hear the question: Can I switchover to my standby, apply the patch on the master, switchback and then proceed on the standby for reducing the downtime even more? This will be a topic for another post.

PS: Of course you can also prepare a brand new home for the patched binaries and then shutdown your instance, switch to the new binaries and start again from there.

PS2: Just in case you are not aware of: As we have established a partnership with EnterpriseDB in the past you can obtain (an) EDB subscription(s) easily from us. Of course we would do a review of what you really need before. It is not always required to go for the Postgres Plus version. Community PostgreSQL works very well in the most cases and can be backed by a EDB subscription as well, if required.


Cet article How to patch Postgres Plus Advanced Server est apparu en premier sur Blog dbi services.

Enabling the Mobile Workforce with Content and Experience - Part 1

WebCenter Team - Wed, 2016-10-05 09:20

Author: Mark Paterson, Director, Oracle Documents Cloud Service Product Management

I think we can all agree that mobile is transforming every facet of modern society. Along with this powerful trend, Cloud is transforming every facet of the IT infrastructure. Companies are finding that with the changing digital landscape, our expectations have changed, not just as a consumer but as an employee too. The pervasiveness of digital technology and the convenience of it has permeated into our work world, making business users more technology savvy, expecting digital convenience in the workplace as well. As such, more and more users are relying on their mobile smartphones and tablets to continue working outside of the office.

So, in a world where work is no longer dictated by location and spans not just geography but our ecosystem – employees, partners, suppliers and customers, as well as channels – web, mobile, social, how can you empower your users to drive effective mobile collaboration?

With our brand new Oracle Documents Cloud Service mobile apps for iOS and Android mobile devices, you can perform pretty much all of the rich content collaboration functions you’d expect and more, right from the mobile apps.

If you are an existing Oracle Documents Cloud Service user, you will find that all our client applications have had a user interface upgrade, where ease of navigation and contextual actions have been given highest priority. New users would find navigation and the intuitive interface refreshing.

The new release is also fully integrated with the Oracle Social Network so we now have conversations and people as first class citizens in the app meaning:

Users can create standalone conversations without associating it with files or folders

Users can browse people’s profiles, follow them and send each other direct messages

Members can flag people on conversations, threads and action items, and turn on notifications

Comprehensive search across people, documents and conversations

So, the new mobile apps allow you to fully interact with your content and ecosystem - driving a full-fledged communication platform.

I will be doing a complete blog series so that, together, we can look at some of the key mobile collaboration and engagement features in detail. I will be sharing some quick tips on how to use key features of our apps that help drive effective mobile work. The objective of this series is to allow you to take full advantage of the advanced mobile features of Oracle Documents Cloud Series. In fact, if there are specific features or action where you'd like me to focus, please let me know via comments and I will be sure to add that to the series.Where possible, we have provided brief "How to" videos to offer visual guidance.

The first key feature when you are dealing with content is being able to actually edit content anywhere at any time and on any device. And that is what I will focus the rest of today's post on.

If you are working on your mobile device, editing content is easy since Oracle Documents Cloud Service provides full support for Microsoft Office 365 for mobile. As a result, it is just as easy to edit files from your mobile device as it is from your desktop:

  1. Install both the Microsoft Office 365 apps and Oracle Documents apps on your iPhone, iPad, or Android device, then log on to Office 365 and Oracle Documents Cloud Service, and you’re ready to go. Use it anywhere. The key design feature we focused on here is - familiarity. You will find accessing content on Documents Cloud fairly intuitive and familiar to your mobile habits - swiping to navigate and tapping to open folders and files. The app guides you through what to do.

  2. Editing a file stored in Oracle Documents is easy. Launch a Microsoft Office 365 app such as Word, tap on ‘Open’ and from there you can access multiple locations by tapping on ‘… More’, and then ‘Locations’ and Oracle Document is listed as an available location (if this is the first time, you may need to tap on ‘More’ to enable Oracle Documents as a supported location to store files, from this same screen you can drag Oracle Documents to the top of the list so it appears as the first location).

  3. After tapping on Oracle Documents, you can pick the Oracle Documents account you wish to access and browse through all your folders find the file you wish to edit.

  4. Your file will open in Word and you can begin editing. By default, the Mobile Office 365 apps uses "Auto Save" so all your changes will be saved back to Oracle Documents automatically.

  5. You can also start working on brand new documents in any of the Mobile Office 365 apps and use the "Save As" feature. The same locations accessible through "… More" when you did the Open can also be accessed when you are doing a Save so it is easy to pick a folder in Oracle Documents to store your new creation.

  6. If you are an Android user, both Mobile Office 365 on Android and Oracle Documents Cloud Service support the Android Storage Access Framework which allows for the same type of editing flows.

Check out our latest video for step-by-step visual directions on the steps listed above:

You can always find the Oracle Documents Cloud Service mobile apps in the App stores. For those who don't have Oracle Documents Cloud Service as yet, a free trial is available from cloud.oracle.com/documents  to get you started.

Normal 0 false false false EN-US X-NONE X-NONE -"/> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0in; line-height:107%; mso-pagination:widow-orphan; font-family:"Calibri","sans-serif"; mso-ascii- mso-ascii-theme-font:minor-latin; mso-hansi- mso-hansi-theme-font:minor-latin; mso-ansi-language:EN-CA;}

Hope you found this useful, next time I will cover how easy it is to review videos and audio files.

Normal 0 false false false EN-US X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0in; line-height:107%; mso-pagination:widow-orphan; font-family:"Calibri","sans-serif"; mso-ascii- mso-ascii-theme-font:minor-latin; mso-hansi- mso-hansi-theme-font:minor-latin; mso-ansi-language:EN-CA;}

Keep your Service Directory valid

Darwin IT - Wed, 2016-10-05 07:49
To day I ran into a trap that trapped me before...

I tried to edit a file adapter service in SOA/BPM QuickStart 12.2.1. And got the error 'Service Directory is not valid' in a pop-up dialog, that prevents me from editing.

The problem is described in this forum thread.

The problem is a space in the path to the JDeveloper project. Now spaces are a drag in filenames and paths (I hate it that Microsoft Windows introducced "Program Files" as the default folder for installing applications).

The solution is in Windows quite simple actually: create a substitute drive like:
echo define drive S: referring to current folder
subst s: /d
subst s: "d:\Data\svn\Applicatie Integration"

Put this in a .bat file and run it before starting JDeveloper and load the application workspaces from the S: drive.

I had this already in place because of my first run into this trap. Why I tripped again? It turned out I accidentally had opened the application from the d: drive again...

The Complete Review Of Data Warehousing and Big Data From Oracle OpenWorld 2016

The COMPLETE REVIEW of OpenWorld covers all the most important sessions and related content from this year's conference, including Oracle's key data warehouse and big technologies: Oracle Database...

We share our skills to maximize your revenue!
Categories: DBA Blogs

Reminder: EBS 12.1 Minimum Patching Baselines and Dates

Steven Chan - Wed, 2016-10-05 02:05

Oracle E-Business Suite 12.1 is now covered by Premier Support to December 31, 2021. This is documented here:

Oracle Lifetime Support table for EBS

Premier Support includes new EBS 12.1 patches for:

  • Individual product families (e.g. Oracle Financials)
  • Quarterly security updates released via the Critical Patch Update process
  • New technology stack certifications with server-based components
  • New certifications for end-user desktops and mobile devices

What are the minimum patching baselines for EBS 12.1?

The minimum patching baselines for EBS 12.1 have not changed.  New EBS 12.1 patches are created and tested against the minimum patching baseline documented in Section 4.2, "E-Business Suite 12.1 Minimum Prerequisites" in this document:

All EBS 12.1 customers must apply the minimum patch prerequisites to be eligible for Premier Support. Those patches include the EBS 12.1.3 Family Packs for the products that you're using and a small number of technology stack infrastructure updates.

Instead of applying the minimum baseline

Many new updates have been released since that patching baseline was originally published.  These new patches contain stability, performance, and security-related updates and are strongly recommended for all customers. 

If you haven't applied any of those updates yet, the simplest solution would be to apply the latest suite-wide EBS 12.1.3 Recommended Patch Collection (RPC).  That way, you get all of the 12.1 minimum patching requirements and the latest updates simultaneously.

As of the date of this blog article, the latest EBS 12.1 Recommended Patch Collection is RPC 5.  If you've reached this blog article via a search engine, it is possible that a new Recommended Patch Collection has been released since this article was first published.  Click on the "Certifications" link in the sidebar for a pointer to the latest EBS 12.1 RPC.

Related Articles

Categories: APPS Blogs

Oracle Data Integrator 12c: Getting Started - What is ODI?

Rittman Mead Consulting - Tue, 2016-10-04 20:28

There is something about sharing stories with others about the technology you love that gets the blood flowing. I have written blog posts and articles, presented sessions at conferences, and recorded podcasts and tech tips about Oracle Data Integrator over the years. And it’s been a blast! But one thing I find is that I’m always drawn to sharing the difficult or overly technical aspects of ODI, often writing about integration with GoldenGate or strange quirks in the product that I’ve had to overcome for my clients. In a sense, that’s why you’re reading, right? The Rittman Mead blog has always been about solving the difficult problems with Oracle technologies and sharing that knowledge in a simple and easy to understand format. But what about a true “getting started” type of article?

I think it’s time for a refresher on Oracle Data Integrator. What is ODI? How has it evolved over the years and where is it going? And, of course, how do you get started with Oracle Data Integrator? I plan to share what I love about ODI and hope to get some folks interested in this great product as well. If you want to learn even more, I’d love to have you join me or one of my colleagues at one of our ODI 12c bootcamps. We’ll dig deep into the details and answer all of your questions about data integration. But until then, let’s get started with a little about where Oracle Data Integrator came from.

History of ODI

Oracle Data Integrator was the product of an acquisition that Oracle made in late 2006. Back then, Oracle already had a data integration tool for developing ETL (Extract, Transform, and Load) mappings, Oracle Warehouse Builder (OWB). At the time, OWB was delivered with the Oracle Database license, which made it the go-to data warehouse development tool for Oracle developers. In October of 2006, Oracle announced that they had acquired a French data integration company called Sunopsis who focused their product on E-LT (Extract, Load, Transform) rather than the traditional ETL.

What did that mean for OWB? The “standard” (and free with the Oracle DB) ETL development platform for Oracle was now in competition with a new product, Oracle Data Integrator. ODI was a separate license cost and resided in the Fusion Middleware stack, outside of the database. As you might imagine, OWB’s days were numbered. With the possibility to sell additional software licenses and the uprising of Fusion Middleware and Fusion Applications (of which ODI was a big part of), eventually Warehouse Builder was to be merged with Data Integrator.

The data integration product from Sunopsis became Oracle Data Integrator 10g after the acquisition. In August 2010, Oracle made their first updates to ODI with the release of Oracle Data Integrator 11g. This version moved ODI into the framework utilized by other products such as Oracle SQL Developer and JDeveloper, and introduced new features such as the JEE Agent and the ODI Console. While the 11g version was a step up from ODI 10g, it was still not widely regarded as a typical ETL development tool. The concept of Interfaces being a single unit of work for ETL versus the usual flow-based mapping approach found in most ETL tools, including OWB, led to a slower adoption rate. It took several years, but finally Oracle Data Integrator went flow-based with the release of ODI 12c, integrating some of the best features from Oracle Warehouse Builder into the current ODI product. In late 2013, the initial version of ODI 12c was made available to the public. Besides the switch to flow-based mappings, ODI 12c has also included integration with big data sources and targets, lifecycle management capabilities, many performance enhancements, and a migration utility for those moving from OWB.

Now that we’re caught up with that brief history lesson, let’s look at how ODI is able to differentiate itself from competitors.

What Makes ODI Different?

I alluded to Oracle Data Integrator’s use of ELT (Extract, Load, and Transform) earlier, but what does that mean - and why are the letters in the acronym ETL out of order? The main difference is in the architecture.


Oracle Data Integrator is built to pushdown the transformation work to the source or target datasource. This means there is no need for a middle tier ETL engine to perform transformations, as many of the traditional ETL tools employ. In fact, in most implementations the ODI agent, which performs orchestration of the ETL processes, simply sends the code to the target server to be executed. This architecture allows ODI to use the power of the target datasource to execute the transformations. Why waste the processing power of your Oracle Database when it’s built for this type of SQL execution?

Knowledge Modules
The concept behind Knowledge Modules (KMs) is quite simple. In a nutshell, KMs are generic code templates that are applied to an ODI mapping and use a substitution language to input metadata from within the mapping to produce executable code at runtime. If you want to change the physical implementation of your mapping, say switching from an insert-only “append” integration method to an incremental update approach, you can simply switch the Knowledge Module applied to that particular mapping. KMs can even be customized or created from scratch to suit your specific data integration needs, adding to the overall flexibility of the tool.

Customization and Flexibility
The Knowledge Modules are just one aspect of Oracle Data Integrator that can be customized. With KMs, you can change how your mappings are physically implemented allowing for the ultimate flexibility. But it’s not just mappings, an object called a Procedure in ODI will allow any bit of code or command line call to be made using nearly any type of technology: Groovy, Jython, OS commands, Oracle SQL, MySQL, SQL Server…the list goes on and on. The great part about customizing Oracle Data Integrator is that you can make it adapt to your data warehouse - and not the other way around. Too often companies must adopt a “standard” because it is built into the software they use rather than a good business practice. Thankfully, that’s not the case with ODI.

Beyond customization within the Oracle Data Integrator objects, you can also access the application backend via the ODI SDK Java API. With this level of access, you can perform almost every task that can be completed within ODI Studio. Imagine, you need to create 400 source to staging mappings, all one-for-one column mappings. With the ODI SDK, and less than 50 lines of code, you can create them all in about 5 seconds! The power of the SDK is generally found when there is a need for a batch creation or modification of objects. But it’s not only those cases where the SDK shines, you can also perform actions such as automation of code deployment or even create a development quickstart for your standard mappings, all with custom code building ODI objects.

As you might have noticed, I’m a big fan of Oracle Data Integrator 12c. This is just the first of many in the “Oracle Data Integrator 12c: Getting Started” series. Up next, we’ll really look at how to go about getting started with ODI 12c. As always, please feel free to send me an email or message on twitter - or comment below - if you have any questions. And if I missed your favorite feature of Oracle Data Integrator, please share in the comments!

Categories: BI & Warehousing


Tom Kyte - Tue, 2016-10-04 15:26
Hi Tom, Could you tell me,Is PGA Resides inside instance or outside intance? Thanks in advance.
Categories: DBA Blogs


Subscribe to Oracle FAQ aggregator