I have updated sample application from previous post, to include indicator for AMPA background service call status tracking. Updated sample application - MobileServiceBusApp_v8.zip.
AMPA provides application scope variable, which acts as a flag and indicates when background service call is executed. Based on this flag, we could conditionally display animated GIF image, this will help user to understand if background service call still runs:
When user is searching and request is being processed in background, he will see rotating status indicator in the top right corner:
Until data is being returned from background task, user could go to another screen and monitor when request is completed, to see the latest data:
Once background task completes, indicator disappears:
I think that the process of building a data mining scoring engine is similar to develop an application.
We have the requirement analysis, functional design, technical design, coding, testing, deployment, etc. phases.
5-Apr: WIT panel added, Alex removed, Gwen and Pete schedule shifted.
11-Apr: Gwen and Pete swapped sessions.
13-Apr: Jonathan off lightning talks.
Guess what? OakTable World at IOUG C15 is happening again! Last year, we had awesome sessions and wonderful attendees. The sessions were so successful, in fact, that we needed a bigger room this year (there were other reasons too, but hey we can fit more people now!).
What: OakTable World C15
When: Wednesday, April 15, 2015, 8:00am – 5:30pm
Where: Mandalay Ballroom K
I really hope that, if you are reading this, you are planning to attend COLLABORATE 15 – IOUG Forum at the Mandalay Bay Resort & Casino in Vegas from April 12-16. If you haven’t yet planned your trip, this might just help you make the call. You know you want to be there!
OakTable Network will be holding its highly anticipated OakTable World during COLLABORATE 15! As always, IOUG was able to provide a room for us to use for the whole day (and boy what a big room it is!). The agenda is determined by the OakTable speakers, who choose topics they are passionate about. And if history is any indicator, these are also the topics you really want to hear about.
For those of you who aren’t familiar with OakTable World, Mogens Nørgaard started it as an underground event during Oracle OpenWorld—somewhere between 2007 and 2009. After several successful years and increasing popularity, the event became known as OakTable World during OOW12 and OOW13. Last year, we hosted OTWC14 at IOUG COLLABORATE 14 in Vegas. Needless to say, it was a success. So…Vegas here we come again!
Thank you to all the great companies who have sponsored this event over the years—you know who you are. This year, the usual suspects have pitched in to make it happen again—Pythian, Enkitec and Delphix. Once again, we will be printing unique t-shirts with cool graphics and awesome sponsors’ logos. Be part of history!
The OTW sessions are (mostly) aligned with conference sessions, except we start a tad later (you will appreciate it) and we’ve shifted a few sessions by 15 minutes to pack in as many as possible. Don’t worry, though, we don’t run anything during lunch or afternoon nap. :)
The current schedule is below, but check back regularly as it may change due to random events.Time Presenter Title 8:10-8:15 someone authorized Opening Notes 8:15-9:00 Tim Gorman Augmenting SQL Monitor 9:15-10:15 guest session Women in Technology Panel 10:30-11:10 Pete Sharman Knowledge Sharing – Why Do It? 11:15-12:00 Gwen Shapira Kafka for DBAs – Because Inquiring Minds Need to Know 14:00-15:00 see below Lightning Talks! 15:15-16:15 Cary Millsap The Go/No-Go Matrix for Thinking Clearly About Testing 16:30-17:30 Jared Still Knowledge Builds Intuition
Lightning Talks are 10-minute presentations done in a rapid-fire fashion. They are always a huge success—you’ve got to be there! They may be technical, motivational, or inspirational, but regardless they are always cool speeches. The sequence of the talks may change, but everything will be presented within the hour.Presenter Lightning Talk Kyle Hailey What is DevOps Kellyn Pot’Vin-Gorman SQLT in AWR Warehouse Alex Gorbachev #100miles Pete Sharman SnapClones++ Jonah H. Harris Performing MongoDB-Compatible NoSQL on Top of Oracle SQL
The OakTable Network folks and other great people will be hanging around, so make sure you drop by! This is an awesome place to grow your network. Remember that the presenters determine the agenda. Our passion to share and educate is what drives us. Come join us.
Vegas, here we come!
This sounds like a simple request doesn’t it?
Simple if there are no roles which are granted DBA role and allow me to show what can go wrong.
Create ROLE “secret”, Grant DBA to “secret”, Grant “secret” to USER “michael”
ARROW:(SYS@hawklas):PRIMARY> create role secret; Role created. ARROW:(SYS@hawklas):PRIMARY> grant dba to secret; Grant succeeded. ARROW:(SYS@hawklas):PRIMARY> grant secret to michael identified by michael; Grant succeeded. ARROW:(SYS@hawklas):PRIMARY>
When a simple SQL is used, “secret” is a ROLE NOT USER.
ARROW:(SYS@hawklas):PRIMARY> r 1 SELECT grantee 2 FROM dba_role_privs 3 WHERE granted_role='DBA' 4 AND NOT regexp_like(grantee,'SYS|OUTLN|DBSNMP|ORACLE_OCM') 5* GRANTEE ------------------------------ MDINH HR GGADMIN TESTING SECRET ARROW:(SYS@hawklas):PRIMARY>
Easy enough, let’s join dba_role_privs and dba_users. Where’s “Michael” at?
ARROW:(SYS@hawklas):PRIMARY> r 1 SELECT r.grantee 2 FROM dba_role_privs r, dba_users u 3 WHERE r.grantee=u.username 4 AND r.granted_role='DBA' 5 AND NOT regexp_like(r.grantee,'SYS|OUTLN|DBSNMP|ORACLE_OCM') 6 ORDER BY 1 7* GRANTEE ------------------------------ GGADMIN HR MDINH TESTING ARROW:(SYS@hawklas):PRIMARY>
We found “Michael”
ARROW:(SYS@hawklas):PRIMARY> r 1 WITH u AS ( 2 SELECT username 3 FROM dba_users 4 WHERE NOT regexp_like(username,'SYS|OUTLN|DBSNMP|ORACLE_OCM') 5 ) 6 SELECT distinct username 7 FROM u, dba_role_privs d 8 WHERE username = d.grantee 9 OR (d.granted_role='DBA' AND d.granted_role in (SELECT role FROM role_role_privs WHERE granted_role='DBA')) 10 ORDER BY 1 11* USERNAME ------------------------------ GGADMIN HR MDINH MICHAEL TESTING ARROW:(SYS@hawklas):PRIMARY>
Note: regexp_like is available from 10g onward.
OpenWorld SF 2015 External Call for Proposal is now open, from Business Analytics - Proactive Support.
From Tanel Poder: Sqlplus is my second home, part 8: Embedding multiple sqlplus arguments into one variable
From DBA Kevlar: SQLTXPLAIN and the AWR Warehouse, Part I, and part 2 is already out.
Also from Oracle guru Tanel Poder comes this posting on Exadata: Oracle Exadata Performance: Latest Improvements and Less Known Features
This list of books available free from KDNuggets seems a pretty good deal. I went all the way through to a couple of PDFs without any dire warnings, registrations, pop ups offering cat videos, etc: More Free Data Mining, Data Science Books and Resources.
EPM Patch Set Updates - March 2015, from Business Analytics - Proactive Support.
Cumulative Feature Tool for Oracle EPM Versions, from BI & EPM Partner Community EMEA
Coherence, WebLogic and Java SE 8, from WebLogic Partner Community EMEA.
From The Java Source: Updates to the Java Troubleshooting Guide
From the Ops Centerblog: Ops Center's port usage
Several items from Fusion Applications Developer Relations of late:
Working With Lists Of Values and Tables in Expression Language
Resources Roadmap for Customizing Security
Groovy Introduction on Customer Connect And Other Session Recommendations
From Oracle University: Training for PeopleTools 8.54
From the Oracle E-Business Suite Technology blog:
Periodic Average Costing Data Collection Scripts and Process Flow
The EBS iProcurement Item Analyzer Has A Whole New Look and Feel!
Where to Find Product Documentation for General Ledger?
Balances Corruption Fix Script (GLBALFIX) Now Available for Parameters Including Special Characters
General Ledger Recommended Patch Collection Released Recently!
See the new Purchasing Document Open Interface (PDOI) improvements in 12.1.3!
What is SQLcl ? SQLcl is a new command line interface like SQL*PLUS coming along with SQL Developper 4.1 Early Adopter. It is a lightweight tool (only 11MB) developed by the SQL Developer team fully compatible with Windows and Unix/Linux. You don’t need to install it so it is totally portable. The tool does not need … Continue reading SQLcl, a revolution for SQL*Plus users →
When you really need to run one script, at all cost, an annoying error is
ORA-00020: maximum number of processes (40) exceeded, which can even occurs as sysdba.
Test case (21 is a not something to do in real life):
SQL> alter system set processes=21 scope=spfile; System altered. SQL> startup force quiet ORACLE instance started. Database mounted. Database opened. SQL> quit
From now on, sqlplus as sysdba is impossible.
$ sqlplus -s -L / as sysdba ERROR: ORA-00020: maximum number of processes (40) exceeded SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
Okay, if you really really need to run one script, you could connect with sqlplus -prelim and restart the database.
if :|sqlplus / as sysdba|grep ORA-00020 then echo shu abort|sqlplus -prelim / as sysdba echo startup quiet|sqlplus / as sysdba fi
If ORA-20 is detected, then the database will be restarted.
Like many other Oracle professionals and speakers I will be attending IOUG Collaborate 2015 this year in Las Vegas. I’m not a big fan of Las Vegas, but hey cannot turn down an opportunity to speak, especially when IOUG asked me to do more than one session.
This year my schedule is going to keep me busy; yet full of good topics that cover both EM12c and GoldenGate. If you are going to be a Collaborate, come check out my sessions and many others.
My sessions this year:
09:00 am – 03:00 pm – RAC SIG Function (RAC Attack)
10:30 am – Writing to Lead Panel discussion
12:00 pm – Exadata Exachk and EM12c: Keeping up with Exadata
17:30 pm – IOUG Data Integration SIG Meeting
11:00 am – Enable Oracle GoldenGate Monitoring for the Masses with EM12c
08:00 am – Examine Oracle GoldenGate Trail Files: How and When to use Logdump Utility
10:45 am – Extreme Replication: Performance Tuning Oracle GoldenGate for the Real World
If you are going to be a Collaborate, I look forward to see you there and hopefully in one of my sessions.
Filed under: Database, Golden Gate, OEM
By Debra Lilley, guest contributor
Debra Lilley (@debralilley), Oracle ACE Director and Vice President of Certus Cloud Services at Certus Solutions, offers her reflections on the PaaS4SaaS workshop that took place in January 2015 in London*.
I know this posting is a bit late, but at the end of January I took part in a proof of concept workshop for PaaS4SaaS, and it’s been a rollercoaster ride ever since.
When I was thinking about moving to Certus, one of the things that attracted me was their intent to write extensions for Oracle Cloud Applications using the just announced PaaS4SaaS solution.
I attended Oracle Open World with an open mind and tried to learn as much as I could about the solutions. The Larry Ellison (Oracle Executive Chairman and Chief Technology Officer) demo was really impressive but then Oracle has always been a brilliant marketing company.
I came back to the UK and set about validating what was available, some of the components Database and Java Cloud had been available for a while but I wanted or would want to also use the Process and Integration Cloud offerings.
As regular readers of my blog will know, I am an Oracle Applications User Experience advocate and am very committed to the user experience work that goes into Oracle Cloud Applications. Extensions delivered by Certus will have this same user experience, and I made this video on behalf of Certus.
Click here to watch Debra's YouTube video.
The user experience team has been given funding by Thomas Kurian, Oracle President, Product Development, who is personally committed to making PaaS4SaaS work, to carry out a number of proof of concept workshops with Oracle partners. The Oracle Applications UX team asked Certus to be part of this. Certus has not been a development company, and so in the same way customers come to us because we are the best at implementing cloud applications, we looked for a partner to help us with development. We selected eProseed who have the same commitment to UX as we do.
The workshop took place in London at the end of January with four people from each of Oracle Applications UX, eProseed, and Certus taking part. We worked through a use case taken from an existing application from one of our customers who is considering modernizing this and moving it to the cloud. In three days we were able to build a working application and prove to ourselves that when the customer says “go,” we will be able to deliver what they need.
Oracle Applications UX team have in their blog already covered the workshop and I have also written about it in the Oracle Fusion Middleware blog I am a guest author for. The following month I took part in the Partner SOA Community Forum in Budapest when we had the opportunity to work with product management teams of both the Process and Integration Cloud offerings and further validate our approach, understanding the possibilities and the constraints. The Oracle Applications UX team also had a stand there.
Lonneke Dikmans (@lonnekedikmans) Managing Partner eProseed Nederland and Debra Lilley of Certus Solutions
I was very pleased on behalf of both Certus and eProseed to accept the first Community Cloud award. These awards are a bit like the Oscars and awarded to individuals Lonneke Dikmans from eProseed and myself, however we had a similar thank you to all those involved in our acceptance speech.
The Community Leader Jürgen Kress (@soacommunity) said:
“I awarded my first SOA Community Outstanding Contribution for Cloud to Debra Lilley of Certus Solutions and Lonneke Dikmans of eProseed because they not only took on board the messaging of PaaS4SaaS from the last Oracle Open World, but also their collaboration between an Applications partner and a Middleware partner, sought out answers and training and with Oracle Development giving feedback and validating their approach in this area. All good things but bringing that back to the community and sharing is the outstanding contribution.”
I have written a White Paper, which will be published for Collaborate in a few weeks and Certus along with Oracle Applications UX will be presenting this twice both for OAUG and Quest. I’ve also had an article published in this month’s Profit Magazine.
Thank you to the Oracle Applications UX team and the SOA Community. I’m still not technical enough to do this but I am technical enough to understand that PaaS4SaaS is a game changer and will continue to be seeing more and more in our community.
* This article was originally published here.
I started using sar -d to look at disk performance on a Linux system this week and had to look up what some of the returned numbers meant. I’ve used sar -d on HP Unix but the format is different.
Here is an edited output from a Linux VM that we are copying files to:
$ sar -d 30 1 Linux 2.6.32-504.3.3.el6.x86_64 (myhostname) 04/01/2015 _x86_64_ (4 CPU) 05:26:55 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 05:27:25 PM dev253-9 7669.55 2.44 61353.93 8.00 35.39 4.61 0.03 19.80
I edited out the real host name and I removed all the lines with devices except the one busy device, dev253-9.
Earlier today I got confused and thought that rd_sec/s meant read I/O requests per second but it is not. Here is how the Linux man page describes rd_sec/s:
Number of sectors read from the device. The size of a sector is 512
In the example above all the activity is writing so if you look at wr_sec/s it is the same kind of measure of activity:
Number of sectors written to the device. The size of a sector is 512
So in the example you have 61353.93 512 byte sectors written per second. Divide by 2 to get kilobytes = 30676 KB/sec. Divide by 1024 and round-up to get 30 megabytes per second.
But, how many write I/O operations per second does this translate to? It looks like you can’t tell in this listing. You can get overall I/O operations per second including both reads and writes from the tps value which the man page defines as:
Total number of transfers per second that were issued to physical
devices. A transfer is an I/O request to a physical device. Multiple
logical requests can be combined into a single I/O request to the
device. A transfer is of indeterminate size.
Of course there aren’t many read requests so we can assume all the transfers are writes so that makes 7669.55 write IOPS. Also, you can find the average I/O size by dividing rd_sec/s + wr_sec/s by tps. This comes out to just about 8 which is the same as avgrq-sz which the man page defines as
The average size (in sectors) of the requests that were issued to the
So, avgrq-sz is kind of superfluous since I can calculate it from the other values but it means that our average I/O is 8 * 512 bytes = 4 kilobytes. This seems like a small I/O size considering that we are copying large data files over NFS. Hmmm.
Also, the disk device is queuing the I/O requests but the device is only in use 19% of the time. Maybe there are bursts of 4K writes which queue up and then gaps in activity? Here are the definitions for the remaining items.
The average queue length of the requests that were issued to the
The average time (in milliseconds) for I/O requests issued to the
device to be served. This includes the time spent by the requests in
queue and the time spent servicing them.
The average service time (in milliseconds) for I/O requests that were
issued to the device.
Percentage of CPU time during which I/O requests were issued to the
device (bandwidth utilization for the device). Device saturation
occurs when this value is close to 100%.
The service time is good – only .03 milliseconds – so I assume that the I/Os are writing to a memory cache. But the total time is higher – 4.61 – which is mostly time spent waiting in the queue. The average queue length of 35.39 makes sense given that I/Os spend so much time waiting in the queue. But it’s weird that utilization isn’t close to 100%. That’s what makes me wonder if we are having bursts of activity.
Anyway, I have more to learn but I thought I would pass along my thoughts on Linux’s version of sar -d.
P.S. Here is the output on HP-UX that I am used to:
HP-UX myhostname B.11.31 U ia64 04/02/15 11:27:14 device %busy avque r+w/s blks/s avwait avserv 11:27:44 disk1 1.60 0.50 3 95 0.00 10.27 disk6 0.03 0.50 1 6 0.00 0.64 disk15 0.00 0.50 0 0 0.00 3.52 disk16 100.00 0.50 337 5398 0.00 5.52
r+w/s on HP-UX sar -d seems to be the equivalent of tps on Linux. blks/s on HP-UX appears to be the same as rd_sec/s + wr_sec/s on Linux. The other weird difference is that in HP-UX avwait is just the time spent in the queue which I believe is equal to await – svctm on Linux. I am more accustomed to the HP-UX tool so I needed to get up to speed on the differences.
Flame Graphs are a visualisation that I learnt about through the excellent Linux systems performance work of Brendan Gregg, and saw Luca Canali talk about recently at UKOUG Tech 14. They’re a brilliant way of summarising extremely dense information in a way from which the main components accounting for the most time can be identified. I was recently doing some analysis for a client on their ODI batch runtime and I thought it would be a good idea to try them out. Load Plans can have complex hierarchies to them and working out which main sections account for what time can be tricky, as can following a load plan step through to a session and on to a session step and its constituent parts.
A flame graph is made up of the “stack trace” on the y-axis, and the amount of time spent in each on the x-axis. This is different from most other standard visualisations where the x-axis represents the passage of time, and instead summarises the data at multiple levels of the stack trace hierarchy. The “stack trace” in this case with ODI is Load plan -> load plan step (load plan step […]) -> session -> session step -> task. It’s as easy to see the overall run time as it is a load plan step part way down, as a constituent task of a session step. And what’s more, flame graphs look nice! This may seem a flimsy reason for using them on their own, but it’s a bonus over trawling through dull tables of data alone.
Looking at the flame graph above (taken from a demo BI Apps implementation) it’s nice and easy to see that the Warehouse Load Phase accounts for c.75% of the time, within which the two areas accounting for most time are AP and AR balances. This is from literally a single glance at one graphic. Flame Graphs are built as SVGs which enables them to be interactive (here’s an example). Clicking on any of the stack trace boxes drills into that area, so for the tasks taking less time (and so displaying less text) this is useful to see the specifics. Here’s the GL balance load in detail, showing how long the row inserts take in proportion to the index build:
Creating the flame graph is simple. You just need a stack trace that is semi-colon separated, followed by a space-delimited counter value at the end. A bit of recursive SQL magic with the SNP_ tables (helpfully documented by Oracle here) gives us this kind of output file with one line for every task executed and its duration:
;Start_Load_Plan;Global_Variable_Refresh;Source_Extract_Phase;1_General;2_General_PRE-SDE;3_PRE-SDE_Day;Finalize_Day;Finalize_W_DAY_D;CREATE_INDEXES;Create_Indexes_:_W_DAY_D_2/2;EXEC_TABLE_MAINT_PROC;TABLE_MAINT_PROC;Create Indexes 3 [...]
which you then run through the Flame Graph tool:
cat /tmp/odi.out |~/git/FlameGraph/flamegraph.pl --title "EBSVISION FIN HR_21_20141021_223159 / 2014-10-24 15:41:42" > /tmp/odi-flame-graph.svg
Simply load the resulting SVG into a web browser such as Chrome, and you’re done. Here’s an example that you can download and try out.
Although smart watches have been around for a couple of years (Sony had a v1 2+yrs ago, Pebble, Samsung gear, Google wear etc) now that Apple is poised to deliver its iWatch the worlds gone crazy about them.. or has it?? Personally I'm still struggling to identify the “killer” SmartWatch App where I would start to wear a watch again (I stopped wearing watches the day I discovered my Nokia mobile had a clock).. One area which I totally “get” is Healthcare.. In that the watch/wearable device can monitor my steps, heart-rate, stress levels (skin resistance) etc… but what about the enterprise???
Anyway, some friends of mine at Oracle HQ (Jeremy & Ultan) have done some awesome R&D in this area, gotten hold of some watches, prototyped some ideas and come up with some compelling ideas.. ..
Is “glancing” and “glance-able” apps the game changer?? You decide..
My favorite educational video growing up, by far, was a 1960 film embedded below. I love it because it pranks its viewers, starting right in the opening scene. (Start at the 0:50 mark to see what I mean.)
If you’re ever in the position of helping a kid or young adult understand physics, this video could be a great help. Frankly, it could help in political discussions as well …
You have read all Cary Millsap work about Oracle database performance tuning. You know that there are no silver bullets. Reducing the response time requires a methodical approach in order to analyze the response time with the goal of eliminating all unnecessary work.
But I'll show something completly opposite here. A performance tuning silver bullet. Do more work in order to run it faster: just add an ORDER BY to your query and its faster.