Feed aggregator

OBIEE 11.1.1.6.12 Bundle Patch Now Available

Abhinav Agarwal - Thu, 2015-01-15 04:40
Over the weekend, and this does happen to be a long weekend in the US, on account of Labor Day in the US, Bundle Patch 11.1.1.6.12 for Oracle Business Intelligence was released, and is now available for download from the My Oracle Support portal.


This bundle patch is available for "all customers who are using Oracle Business Intelligence Enterprise Edition 11.1.1.6.0, 11.1.1.6.1, 11.1.1.6.2, 11.1.1.6.2 BP1, 11.1.1.6.4, 11.1.1.6.5, 11.1.1.6.6, 11.1.1.6.7, 11.1.1.6.8, 11.1.1.6.9, 11.1.1.6.10 and 11.1.1.6.11." (OBIEE 11g 11.1.1.6.12 is Available for Oracle Business Intelligence Enterprise Edition and Oracle Exalytics (Doc ID 1580502.1))

The constituent patches of this patch set (bundle patch) are:
  • Patch 16986663 - 11.1.1.6.12 (1 of 7) Oracle Business Intelligence Installer (BIINST) 
  • Patch 16986677 - 11.1.1.6.12 (2 of 7) Oracle Real Time Decisions (RTD) 
  • Patch 16986644 - 11.1.1.6.12 (3 of 7) Oracle Business Intelligence Publisher (BIP) 
  • Patch 16986692 - 11.1.1.6.12 (4 of 7) Oracle Business Intelligence ADF Components (BIADFCOMPS) 
  • Patch 16986703 - 11.1.1.6.12 (5 of 7) Enterprise Performance Management Components Installed from BI Installer 11.1.1.6.x (BIFNDNEPM) 
  • Patch 16986558 - 11.1.1.6.12 (6 of 7) Oracle Business Intelligence: (OBIEE) 
  • Patch 16986723 - 11.1.1.6.12 (7 of 7) Oracle Business Intelligence Platform Client Installers and MapViewer

White spaces and Map Views

Abhinav Agarwal - Thu, 2015-01-15 04:40
When working with Map Views, you can choose to collapse the map formats panel on the left.

When you do that, the panel is hidden, but white space is displayed on either side of the map view, where the panel used to be.

Currently there is no option to remove this white space through a UI setting.

However, if you are brave enough, you can remove this white space by editing the analysis XML, which is available under the "Advanced" tab of your analysis.
For the Map View in question, search for the "" property, and set the "width" value to zero. In this case below, you will see the width is set at 220 pixels. The "display" attribute has a value of "false", which is expected, since we have chosen to hide the formats panel.

So, after you set the value to zero (the number 0), click the "Apply XML" button, and return to you "Results" tab. You should see that the formats panel continues to be hidden, but now the white space is no longer there, and the entire space is being utilized by the map in the Map View.

A word of caution. First, if you edit the Map View and choose to display your map formats panel, the panel will pop back, and if you hide the panel, the white space will return. 
So this  hack is more of a final adjustment to apply to your analysis, when you are done with all the changes you want to make to your map view or map views.


That's it.

As far as hacks go, this is an easy one. It is also, as hacks go, unsupported, so you know the drill - not supported, not guaranteed to work, and you're on your own if you do decide to try it out. So, please, exercise your caution and discretion when applying this hack.

I trust you're enjoying the Oracle OpenWorld conference, currently underway in the beautiful city of San Francisco.

Abhinav,
Bangalore, Sep 25, 2013

Introduction to the BI Mobile App Designer

Abhinav Agarwal - Thu, 2015-01-15 04:40
Oracle launched a brand new addition to its Business Intelligence Mobile solution - BI Mobile App Designer, which lets you create stunning, interactive mobile apps, literally within minutes. Apps created run on mobile devices running a reasonably modern mobile browser - that can handle HTML5 and jQuery - and are available on both smartphone and tablet form factors.



Here's a short introductory video I recorded (the direct URL):


Creating your first app with the BI Mobile App Designer

Abhinav Agarwal - Thu, 2015-01-15 04:40
While creating sophisticated mobile apps that provide a rich feature set takes time, expectedly, what is wonderful about the recently launched Oracle Business Intelligence Mobile App Designer is the fact that you can be up and running without requiring a week-long training and a Master's degree in Computer Engineering.

Here's a short video I recorded on creating your first app with the BI Mobile App Designer (the direct URL on YouTube). A note of caution, and an apology of sorts - the audio in last few seconds of the video dramatically jumps up in volume. This is because I recorded these last few seconds later, and used different audio settings. I should have normalized it. I live, and I learn.




In fact, Oracle Partner Rittman Mead have introduced a QuickStart for Oracle BI Mobile App Designer package - "a five-day, fixed-price and fixed-scope engagement" - to help customers "deploy line-of-business mobile BI apps for any device, in five days." (Disclaimer: this is neither an endorsement nor a plug. I am  pointing out the availability of this new service from an Oracle Gold Partner).

Have you checked out all the useful BI sessions at Oracle OpenWorld in San Francisco?

Best!
Abhinav,
Bangalore, Sep 25 2013

BI Mobile HD App 11.1.1.7

Abhinav Agarwal - Thu, 2015-01-15 04:40
Finally got around to writing my long overdue post on the new BI Mobile HD app. To get on with it, without much ado, not to loiter, and all that... here goes.

The new BI Mobile HD app, version 11.1.1.7.0.2094, can be downloaded from the Apple iTunes App Store (link to app preview page on iTunes).
If you already have the BI Mobile HD app installed on your iOS device, you should get an App Store notification on the availability of an upgrade. Note, that since this version is available only for iOS version 6 (and above), if you are running an older version of iOS, you will not get a notification, and will not be able to download it. If you check the Wikipedia iPhone page (link) you will see that the iPhone 3GS and later devices support iOS 6. As far as the iPad device goes, if you check the Wikipedia page (link), iPad 2 and later devices support iOS 6.



If you search for it from your supported iOS device, you will find it as the second result. The first is also an Oracle BI app - the Oracle Business Intelligence Mobile app, but that is for OBIEE version 11.1.1.5. The BI Mobile HD app is now a Universal app, and is therefore available on both smartphones and tablets. I will follow up with a post on the iPhone version later (yes, I will). Downloading and installing is a straightforward process. Tap to install. The app size is 16.1MB, and once downloaded, takes a few seconds to install.

The single biggest change you will see out of the box once the app launches is the presence of a "demo" server connection. So you can run the app without having to configure a connection. Which is very convenient. Tap to select it and the app will connect to this "OBI Mobile Public Demo Server". This server runs on the Oracle Cloud, and therefore accessible from the public Internet.

The second change is that you have a help screen to, err, help, first-time users get familiar with the interface and controls of the app. While the user interface is simple and intuitive, this screen does a good job of summarizing the different ways you can launch and navigate to the different parts of the app.

Yes, landscape and portrait orientations are well and truly supported, so flip your device this way and then that.

The other point to note is that the panel of menu navigation tabs (check this post on the first iteration of the HD app last year) at the bottom of the app - "Recent", "Favorites", "Dashboards", "Local", and "Search" - have been replaced by a slide-out navigation bar. Also, you can access the "Settings" screen by swiping right.


So, if you do launch the "Settings" screen, you will notice several new things. The first is that you can now choose where in the App to begin when you launch it - in the "Recent" tab, or the "Favorites" tab, etc... The second is that you can also choose how your content preview thumbnails should be displayed. That is, apart from the "List" and "Carousel" options that have existed, a third option - "Grid" - has been added. For what it's worth, I find that the grid layout presents more data - especially if you have the preview thumbnails generated for the content.


The carousel view continues to be useful to see which content you have accessed most recently, placing it front-and-center on your app. The swipe gesture works as before for navigating through the carousel.

Inside your content, you will notice that the Dashboard Page dropdown has been replaced by a touch-enabled flat list. You can tap any page title to switch to that dashboard page, but also swipe left or right to view other pages - if there are more pages than can be displayed at the same time. The current dashboard page is indicated by a blue color for the page and a subtle arrowhead below the page.

Coming back to the Settings screen, it is now easier to select a wallpaper - simply tap and the wallpaper is selected and immediately applied. You can see how the wallpaper looks like from within the Settings screen.
Then there is the option to select which screen you begin on - that I covered above. The option to select the format in which attachments are created when you email content from within the app lets you select three options - no attachment (i.e. only a link is included in the body of the email), HTML, and PDF.
The last row shows you your server connections, the first one being the demo server connection - that you cannot edit, and the remaining are connections you've defined.

 

New functionality introduced in the 11.1.1.7 release, including fixed headers and fixed sized dashboard sections work on the HD app also. So you can use the tap-and-drag gesture to move content within fixed sections, as well as scroll through content for views with fixed headers. Oh, and by the by, the double-tap gesture now works to maximize most views (not sure which it does not maximize for, but works for most of the views).


Another new enhancement (enhancements are by their nature "new", so here's an example of a tautology) introduced in the 11.1.1.7.0 release of OBIEE was support for Map Views as detail views in master-detail linking. This support is not the full-blown detail support that is available for other views, and I will elaborate in a separate post, but basically you can now set up Map Views to listen to master-detail events on a specified channel. So, if you were to tap on the axis label in the bar graph on the left, on say, "USA", then the bar graph on the right and the map view both respond to that event. In the case of the map view, it zooms in and redraws itself based on the bounding rectangle for the USA.
And for Brazil, and so on...

The double-tap to maximize gesture that I talked about - 
 

And this is an example of a Map View with a bubble (proportional symbol) format with a feature theme underlain - the feature theme is based on a metric at the county level, and thus you have more than three thousand color-coded polygons.

A similar example, but this time with an image format with a heatmap format based feature theme. The heatmap format is based on district population figures.
And finally, an example from the Airlines data sample app with airline routes plotted as line formats. The lines in a Map View can be color-coded based on a measure and their size varied on a second measure. This is very much similar to how proportional symbol formats in Map Views have also worked since 2010.
 

And this is an example of such a proportional color-coded line format. You can tap on destination and origin airports to get a popup of the selected metric, and then use the underlying feature-theme based color format for additional context.


Abhinav,
Bangalore, Sep 26 2013

HBR and Junk Charts

Abhinav Agarwal - Thu, 2015-01-15 04:39
Even the best can get it wrong. Only sometimes though, one hopes.
The venerable Harvard Business Review gets data visualizations horribly wrong. They have a post on Facebook where they contrast the costs of cancer treatment in the US and India.

The cost in the US is $22,000 on average, while in India it is shown as $2,900 (I would dispute this figure, as it looks very low).
The ratios is 7.58:1 (22000÷2900)



If you measure the heights of the two circles shown to represent these costs, the ratio comes out to approximately 7.2:1. It is not completely accurate, but it is still close enough that we can ignore it.

However, when using a bubble or circle to compare two values, we are implicitly using the areas of the circles to base our comparison on.
In case you have forgotten your geometry, the area of a circle is Π×r2 (i.e., pi times the square of the radius). Using this, the ratio of the areas of the two circles is 55:1! Yikes.
Put it another way, HBR is saying that if cancer treatment in the US costs $22,000, then in India it should cost $400. Or, if it costs $2900 in India, it should cost $159,500 in the US. Either way, this is wrong.


Vishal Sikka's Appointment as Infosys CEO

Abhinav Agarwal - Thu, 2015-01-15 04:38


My article in the DNA on Vishal Sikka's appointment as CEO of Infosys was published on June 25, 2014.

This is the full text of the article:


Vishal Sikka's appointment as CEO of Infosys was by far the biggest news event for the Indian technology sector in some time. Sikka was most recently the Chief Technology Officer at the German software giant SAP, where he led the development of HANA - an in-memory analytics appliance that has proven, since its launch in 2010, to be the biggest challenger to Oracle's venerable flagship product, the Oracle Database. With the launch of Oracle Exalytics in 2012 and Oracle Database In-Memory this month, the final chapter and word on that battle between SAP and Oracle remains to be written. Vishal will watch that battle from the sidelines.



By all accounts, Vishal Sikka is an extraordinary person, and Infosys has made what could well be the turning point for the iconic Indian software services company. If well executed, five years from now people will refer to this event as the one that catapulted Infosys into a different league altogether. However, there are several open questions, challenges, as well as opportunities that confront Infosys the company, Infoscians and shareholders, that Sikka will need to resolve.

First off, is Sikka a "trophy CEO?" There will be more than one voice heard whispering that Sikka's appointment is more of a publicity gimmick meant to save face for its iconic co-founder, Narayan Murthy, who has been unable to right the floundering ship of the software services giant. Infosys has seen a steady stream of top-level attrition for some time, which had only accelerated after Murthy's return. The presence of his son Rohan Murthy was seen to grate on several senior executives, and also did not go down too well with corporate governance experts. Infosys had also lagged behind its peers in earnings growth. The hiring of a high-profile executive like Sikka has certainly restored much of the lost sheen for Infosys. To sustain that lustre, however, he will need to get some quick wins under his belt.

The single biggest question on most people's minds is how well will the new CEO adapt to the challenge of running a services organisation. This is assuming that he sees Infosys' long term future in this area of services. Other key issues include reconciling the "people versus products" dilemma. Infosys lives and grows on the back of its ability to hire more people, place them on billable projects that are offshored, and then to keep its salary expenses low - i.e. a volume business with wafer thin margins that are constantly under pressure. This is different from the hiring philosophy adopted by leading software companies and startups around the world - which is to hire the best, from the best colleges, and provide them with a challenging and yet flexible work environment. It should be clear that a single company cannot have two diametrically opposite work cultures for any extended length of time. This, of course assumes, that Sikka sees a future in Infosys beyond labor cost-arbitraged services. Infosys' CEO, in an interview to the New York Times in 2005, had stated that he did not see the company as aspiring beyond that narrow focus. Whether Sikka subscribes to that view or not is a different question.

In diversifying, it can be argued that IBM could serve as a model. It has developed excellence in the three areas of hardware, software, and services. But Infosys has neither a presence in hardware - and it is hard to imagine it getting into the hardware business for several reasons - nor does it have a particularly strong software products line of business. There is Finacle, but that too has not been performing too well. Sikka may see himself as the ideal person to incubate several successful products within Infosys. But there are several challenges here.

Firstly, there is no company, with the arguable exception of IBM, that has achieved excellence in both services and products. Not Microsoft, not Oracle, not SAP. Sikka will have to decide where he needs to focus on. Stabilize the services business and develop niche but world-class products that are augmented by services, or build a small but strong products portfolio as a separate business that is hived off from the parent company - de-facto if not in reality. One cannot hunt with the hound and run with the hare. If he decides to focus on nurturing a products line of business, he leaves the company vulnerable to cut-throat competition on one hand and the exit of talented people looking for greener pastures on the other hand.

Secondly, if Infosys under Sikka does get into products, then it will need to decide what products it builds. He cannot expect to build yet another database, or yet another operating system, or even yet another enterprise application and hope for stellar results. To use a much-used phrase, he will need to creatively disrupt the market. Here again, Sikka's pedigree points to one area - information and analytics. This is a hot area of innovation which finds itself at the intersection of multiple technology trends - cloud, in-memory computing, predictive analytics and data mining, unstructured data, social media, data visualizations, spatial analytics and location intelligence, and of course, the mother of all buzzwords - big data. A huge opportunity awaits at the intersection of analytics, the cloud, and specialized solutions. Should Infosys choose to walk down this path, the probability of success is more than fair given Sikka's background. His name will alone attract the best of talent from across the technology world. Also remember, the adoption of technology in India, despite its close to one billion mobile subscriber base, is still abysmally low. There is a crying need for innovative technology solutions that can be adopted widely and replicated across the country. The several new cities planned by the government itself presents Sikka and Infosys, and of course many other companies, with a staggering opportunity.

Thirdly, the new CEO will have the benefit of an indulgent investor community, but not for long. Given the high hopes that everyone has from him, Sikka's honeymoon period with Dalal Street may last a couple of quarters, or perhaps even a year, but not much more. The clock is ticking. The world of technology, the world over, is waiting and watching.

(The opinions expressed in this article are the author's own, and do not necessarily reflect the views of dna)

Flipakart's Billion Dollar Sale, And A Few Questions

Abhinav Agarwal - Thu, 2015-01-15 04:35
My article on Flipkart's Billion Dollar Sale and an article that appeared in a business daily on the preparations that went into it was published in  DNA on December 29, 2014.

This is the full text of the article:

A Billion Dollar Sale, And A Few Questions, by Abhinav Agarwal, published in DNA, Dec 29 2014
An article published on an online news portal (reproduced from a business daily) claimed that "Flipkart's 'Big Billion Day' was planned over more than 700,000 man hours (six months of work put in by 280 people over 14 hours every day) to get the back-end systems ready." This is a stupendous achievement by any yardstick, and all the more creditable given that Flipkart's infrastructure is nothing to scoff at to begin with, and which is rarely known to keel over during traffic surges. Despite all this preparation however, Flipkart didexperience issues during its big sale, which led to its founders issuing a public apology - an act of entrepreneurial humility that was well appreciated by many.

The article states that Flipkart "clocked a gross merchandise value (GMV) of $100 million". But what is "GMV"? According to Investopedia, Gross Merchandise Value, abbreviated as GMV, is "The total value of merchandise sold over a given period of time through a customer to customer exchange site. It is a measure of the growth of the business, or use of the site to sell merchandise owned by others." But there is some confusion as to what GMV actually means. This arises from the fact that GMV is not a standard accounting term. For instance, a search for "GMV" or for "Gross Merchandise Value" on the web site of The Institute of Chartered Accountants of India throws up zero results. GMV's definition differs based on each e-commerce vendor's assumptions. Therefore, if an item's price is marked at Rs 100, and Flipkart sells ten such items for Rs 70 each, is the GMV 700 or Rs 1000? Let us be generous and assume that GMV refers to the total sale value, before discounts - that would make it easier for Flipkart to claim they clocked in a hundred million dollars in GMV. Plus it is the logical thing to do - from a marketing perspective.
Next, the average discount offered at leading e-commerce sites like Flipkart can be 20%, 30%, or even touching 40% in some cases. It is generally understood, that at least for items like books, wholesalers get a discount of 40% off the list price from publishers. This can be lower for other categories of goods like electronics (retailers do not get the Apple iPhone at 40% off the list price - at least one hopes so!), but can be higher for other categories like clothes. Therefore, assuming a discount of 40% (on the higher end), it means that for the hundred million dollars worth of GMV, Flipkart's cost for those goods was 60 million dollars. Assuming they passed off 20% of the GMV as a discount to the end customer - and discounts were generally higher than 20% during that sale period, it leaves them with a gross profit of twenty million dollars, into which they have to squeeze all their costs, to be profitable. Hold that number in your mind for a minute.

Let us now take a closer look at the other statement in the article's sub-heading, which says, "Flipkart's 'Big Billion Day' was planned over more than 700,000 man hours (six months of work put in by 280 people over 14 hours every day) to get the back-end systems ready." If Flipkart, as the article claims, took 700,000 man hours (the politically correct phrase would be "person-hours", but we will grant the author of the article some leeway here), that translates to a little over $20 million that the company spent on this sale in getting its network infrastructure scaled up. How? My assumptions are, and there are many, many assumptions here, that the base salary for the Flipkart employees that worked on this initiative is Rs 26 lakhs per annum (yes, yes, more on this later). Second, I have taken a year as having 2080 work-hours (52 weeks, times 40 hours per week). Third, I assume that the loaded cost adds 50% on top of a person's actual salary - or Annual Guaranteed Pay (AGP) as is also sometimes referred to. Fourth, I take Rs 65 to a dollar as my exchange rate (the exchange rate was lower a couple of months back; the numbers would look worse - for Flipkart - if I were to use those). Using these assumptions, at an aggregate level, this means a hundred and thirty crores rupees, or US$20 million. You can see the calculations, and the assumptions, in the figure at the end. Hold this second figure of $20 million in your head.



Compare the two figures now. For a maximum gross profit of 20 million dollars from their big billion sale, Flipkart had to spend the same sum on upgrading their hardware and network infrastructure to deal with the traffic to their web site. Ignoring other fixed costs, did Flipkart make money, any money at all from their sale?

One could argue that there are many assumptions in my calculations, and I do agree that there are several. You can plug in your own numbers and the mileage will surely vary, but not by much, I expect. I have used three different sets of numbers (see below)



Second, the argument could be made that these are not contractors who are paid by the hour, and many worked for "over fourteen hours every day" - which is not uncommon for young, passionate employees working at hot startups (I regularly clock in 12 hour workdays, and I am no longer young, nor do I work for a start-up!) On the other hand, I could argue that Rs 26 lakh is not that wildly off the mark a figure, given that Flipkart recently made offers to fresh graduates at IIT-Kharagpur where the average salary offered was Rs 20 lakh - for engineers with zero work experience. Not everyone working on the preparation for the Big Billion Sale would have been a fresh-out-of-college greenhorn. The loaded cost factor could be more than 50%, given that Flipkart would be handing out stock options to its employees, and having other on-premise perks (the role model for all young startups seems to be Google).

But to fixate on the specifics of any one number here would be to miss the wood for the trees, in a manner of speaking. It is not the main point of my post either. The article itself reveals two hidden points. The first is that this article in the business daily is a successful implementation of a company's PR or marketing department getting its point of view across to a news organisation, not in the form of a press release, but as a news article. It lends an air of neutrality and credibility even as it presents the company's point of view, in an unquestioned manner. There is no mention of the article being a paid advertorial. Second, it also serves as an eloquent advertisement for Flipkart's formidable computing prowess and infrastructure. To that end, it serves as a signal of intent to its competitors, especially Amazon, that Flipkart won't be found wanting when it comes to competing with the big bad daddies of the global e-commerce world. In the end, however, the inescapable question remains - to drive its top-line, is Flipkart caught in a situation where the more it sells, the more it loses? Is it finding it difficult to get economies of scale? Or is it still in the growth stage, where margins and profits take a backseat to marketshare and growth? With more than a thousand crores in annual revenues, if one of the most successful e-tailers in the country finds itself in this bind, the other, smaller players will find the going much tougher. Is the online e-commerce space headed for a brutal shakeout in 2015?

Views expressed are the author's own

Annonce : Workshop DBaaS

Jean-Philippe Pinte - Thu, 2015-01-15 02:43
Un workshop sur le sujet DBaaS, à destination des partenaires Oracle, aura lieu le 4 et 5 mars à Colombes (France)
Plus de détails : http://eventreg.oracle.com/profile/web/index.cfm?PKWebId=0x1713052088

Oracle E-Business Suite 12.0 - CPU Support Ends This Quarter

Oracle E-Business Suite 12.0 Extended Support ends on January 31, 2015.  Sustaining Support does not include security fixes in the form of Critical Patch Updates (CPU).  The final 12.0 CPU will be the January 2015 CPU released on January 20th.

Oracle E-Business Suite 12.0 customers should be looking to upgrade to 12.1 or 12.2 in the near future.

For those customers unable to upgrade from 12.0 in the near future, Integrigy will be including in our web application firewall product, AppDefend, virtual patching rules for web security vulnerabilities in the Oracle E-Business Suite 12.0 which are patched in other versions (i.e., 11i, 12.1, and 12.2).  This will provide at least protection from known web security vulnerabilities in un-patched 12.0 environments.

This support timeline is different than Oracle E-Business Suite 11i which is covered by an Exception to Sustaining Support (ESS) until December 31, 2015 and includes security patches for this period.  Oracle E-Business Suite 11i customers should be planning to upgrade to 12.1 or 12.2 by the end of this year in order to stay supported with security patches and to get off the ridiculously old version of the Oracle Application Server.  Some components in the 11i installation of the Oracle Application Server on the application tier are 1999 versions.

 

Oracle E-Business Suite, Oracle Critical Patch Updates
Categories: APPS Blogs, Security Blogs

What Is Wrong With Thanet?

Pete Scott - Tue, 2015-01-13 12:25
Well that title can be taken many ways. It could be a plaintive “get your act together, Thanet!” or perhaps an appraisal of the issues that make Thanet a bit of a mess. I suppose it’s up to you to decide which. Historically, Thanet is a real place, it was an island sitting on the […]

Securing Big Data Part 6 - Classifying risk

Steve Jones - Tue, 2015-01-13 09:00
So now your Information Governance groups consider Information Security to be important you have to then think about how they should be classifying the risk.  Now there are docs out there on some of these which talk about frameworks.  British Columbia's government has one for instance that talks about High, Medium and Low risk, but for me that really misses the point and over simplifies the
Categories: Fusion Middleware

Oracle Maven Repository is Live with WebLogic Server Artifacts

Steve Button - Mon, 2015-01-12 22:17
Oracle Maven Repository 

Very. Exciting. News.

The Oracle Maven Repository has just gone live and is now available for public access, loaded with WebLogic Server artifacts from the 12.1.2 and 12.1.3 releases. 

Want free and easy access to WebLogic Server APIs, libraries and plugins - just have at it!

http://maven.oracle.com

https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle

Do The LGWRs Always Sleep For The Full Three Seconds?

This page has been permanently moved. Please CLICK HERE to be redirected.

Thanks, Craig.Do Oracle Database LGWRs (10g, 11g, 12c) Always Sleep For The Full Three Seconds?
Back in June I wrote (included a video) about the Oracle Database log writer(s) "3 second sleep rule." That's the rule we were all taught by our instructors when we started learning about Oracle yet never really knew if it was true. In that post, I demonstrated Oracle Database log writer background processes are normally put to sleep for three seconds.

In this post, I want to answer a related but different question.

Do Oracle Database log writer background processes ALWAYS sleep for the full three seconds? Our initial response would likely be, "Of course not! Because what if a foreground process commits during the three second sleep? The log writer(s) must wake up." That would make sense.

But, is this really true and what else could we learn by digging into this? I created an experiment to check this out, and that is what this post is all about.

The Experiment
In my June post I demonstrated the Three Second Rule. You will see this again below. But in this experiment we are looking for a situation when one of the 12c log writers wakes BEFORE their three second sleep.

You can download the experimental script I detail below HERE.

This is really tricky to demonstrate because of all the processes involved. There is a the Oracle foreground process and in 12c, there are multiple log writer background processes. Because this is experiment follows a timeline, I needed to gather the process activity data and then somehow merge it all together in a way that we humans can understand.

What I did was to do an operating system trace ( strace ) each process ( strace -p $lgwr )  with the timestamp option ( strace -p $lgwr -tt ) sending each process's the output to a separate file ( strace -p $lgwr -tt -o lgwr.txt ). This was done to all four processes and of course, I needed to start the scripts to run in the background. Shown directly below are the log writer strace details.

lgwr=`ps -eaf | grep $sid | grep lgwr | awk '{print $2}'`
lg00=`ps -eaf | grep $sid | grep lg00 | awk '{print $2}'`
lg01=`ps -eaf | grep $sid | grep lg01 | awk '{print $2}'`

echo "lgwr=$lgwr lg00=$lg00 lg01=$lg01"

strace -p $lgwr -tt -o lgwr.str &
strace -p $lg00 -tt -o lg00.str &
strace -p $lg01 -tt -o lg01.str &

Once the log writers were being traced, I connected to sqlplus and launched the below text in the background as well.

drop table bogus;
create table bogus as select * from dba_objects where object_id in (83395,176271,176279,176280);
select * from bogus;
commit;
exec dbms_lock.sleep(2.1);

exec dbms_lock.sleep(2.2);
exec dbms_lock.sleep(2.3);
update bogus set object_name='83395' where object_id=83395;
exec dbms_lock.sleep(3.1);
update bogus set object_name='176271' where object_id=176271;
exec dbms_lock.sleep(3.2);
update bogus set object_name='176279' where object_id=176279;
exec dbms_lock.sleep(3.3);
update bogus set object_name='176280' where object_id=176280;
exec dbms_lock.sleep(3.4);
commit;
exec dbms_lock.sleep(3.5);
update bogus set object_name='89567' where object_id=89567;
exec dbms_lock.sleep(3.6);
commit;
exec dbms_lock.sleep(3.7);
exit;

Once the sqlplus session was connected,

sqlplus system/manager @/tmp/runit.bogus &
sleep 2

I grabbed it's OS process id and started an OS trace on it as well:

svpr=`ps -eaf | grep -v grep | grep oracle$sid | awk '{print $2}' `
echo "svpr=$svpr"

strace -p $svpr -tt -o svpr.str &

Then I slept for 30 seconds, killed the tracing processes (not the log writers!):

sleep 30

for pid in `ps -eaf | grep -v grep | grep strace | awk '{print $2}'`
do
echo "killing pid $pid"
kill -2 $pid
done

Then I merged the trace files, sorted them by time, got rid of stuff in the trace files I didn't want to see and put the results into a final "clean" file.

merge=/tmp/strace.merge.bogus
rm -f $merge
for fn in lgwr lg00 lg01 svpr
do
cat ${fn}.str | awk -v FN=$fn '{print $1 " " FN " " $2 " " $3 " " $4 " " $5 " " $6 " " $7 " " $8 " " $9}' >> $merge
done

ls -ltr $merge
date
cat $merge | sort > /tmp/final.bogus

cat /tmp/final.bogus | grep -v times | grep -v getrusage | grep -v "svpr lseek" | grep -v clock_gettime | grep -v gettimeofday | grep -v "svpr read" | grep -v "svpr write" > /tmp/final.bogus.clean

The amazing thing is... this actually worked! Here is the output below:

19:11:41.981934 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {2, 200000000}) =
19:11:42.859905 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:43.986421 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:44.186404 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {2, 300000000}) =
19:11:44.982768 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:45.860871 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:46.499014 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 100000000}) =
19:11:46.989885 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:47.983782 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:48.861837 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:49.608154 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 200000000}) =
19:11:49.993520 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:50.984737 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:51.862921 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:52.817751 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 300000000}) =
19:11:52.997116 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:53.985784 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:54.863809 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:55.998974 lgwr open("/proc/41955/stat", O_RDONLY) = 19
19:11:55.999029 lgwr read(19, "41955 (ora_pmon_prod35) S 1 4195"..., 999) =
19:11:55.999075 lgwr close(19) = 0
19:11:55.999746 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:56.127326 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 400000000}) =
19:11:56.986935 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:57.864930 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:59.003212 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:59.531161 svpr semctl(7503875, 16, SETVAL, 0x7fff00000001) = 0
19:11:59.531544 lgwr semctl(7503875, 18, SETVAL, 0x7fff00000001) = 0
19:11:59.532204 lg00 pwrite(256, "\1\"\0\0\311\21\0\0\354\277\0\0\20\200{\356\220\6\0\0\r\0\0\0\367^K\5\1\0\0\0"..., 2048, 2331136) = 2048
19:11:59.532317 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {2, 480000000}) =
19:11:59.532680 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {0, 100000000}) =
19:11:59.537202 lg00 semctl(7503875, 34, SETVAL, 0x7fff00000001) = 0
19:11:59.537263 lg00 semctl(7503875, 16, SETVAL, 0x7fff00000001) = 0
19:11:59.537350 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:59.538483 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {2, 470000000}) =
19:11:59.540574 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 500000000}) =
19:12:00.865928 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:12:02.011876 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:12:02.537887 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:12:03.050381 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 600000000}) =
19:12:03.866796 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:12:05.014819 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:12:05.538797 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:12:06.657075 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 700000000}) =
19:12:06.867922 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:12:08.017814 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:12:08.539750 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:12:09.868825 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}

There is a lot of detail in the above output. I'm only going to make a few comments that pertain to the objectives of this post.

Oracle is using the semaphore call semtimedop to sleep. The beauty of this call, is it allow the process to be woken (that is, signaled) by another process! Keep that mind as you follow the timeline.

Here we go:

19:11:41.981934. Notice the server process' "2, 2" and later the "2,3" and "3, 1" and "3, 2"? This is the result of the dbms_lock.sleep commands contained in the sqlplus script!

19:11:42.859905. Notice lg01 and the other log writer background processes always have a "3, 0" semtimedop call? That is their "3 second sleep."

Look at the first few lgwr entries. I've listed them here:

19:11:43.986421
19:11:46.989885
19:11:49.993520
19:11:52.997116

Notice anything strange about the above times? They are all just about 3 seconds apart of from each other. That's the 3 second sleep in action. But that's not the focus of this post. So let's move on.

Read this slow: I want to focus on just one part of the output which, is shown below. Notice the server process is sleeping for 3.4 seconds. If you look at the sqlplus script (near the top of this post), immediately after the 3.4 second sleep the server process issues a commit. Therefore, because the 3.4 sleep starts at 19:11:56.1 and I'm expecting to see some log writer activity in 3.4 seconds. This would be at 19.11.59.5. This could occur in the middle of the log writer 3 second sleep, which means we will likely see a log writer kick into action before their 3 second sleep completes! Let's take a look.

19:11:56.127326 svpr semtimedop(7503875, {{34, -1, 0}}, 1, {3, 400000000}) =
19:11:56.986935 lg00 semtimedop(7503875, {{18, -1, 0}}, 1, {3, 0}) =
19:11:57.864930 lg01 semtimedop(7503875, {{19, -1, 0}}, 1, {3, 0}) =
19:11:59.003212 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {3, 0}) =
19:11:59.531161 svpr semctl(7503875, 16, SETVAL, 0x7fff00000001) = 0
19:11:59.531544 lgwr semctl(7503875, 18, SETVAL, 0x7fff00000001) = 0
19:11:59.532204 lg00 pwrite(256, "\1\"\0\0\311\21\0\0\354\277\0\0\20\200{\356\220\6\0\0\r\0\0\0\367^K\5\1\0\0\0"..., 2048, 2331136) = 2048
19:11:59.532317 lgwr semtimedop(7503875, {{16, -1, 0}}, 1, {2, 480000000})

We can see the server process 3.4 second sleep starting at time 19:11:56.1 and we can see the sleep end and the server process' next command begin at the expected time of 19:11:59.5. Next in the trace file output is result of the commit. The commit results in the wake of both the lgwr and lg00 background processes.

But notice the lgwr background process started one of its 3 second sleeps at 19:11:59.0 which means it doesn't want to wake until 19:12:02.0. But look at when the lgwr process woke up. It woke up at 19.11.59.5 which is clearly before the expected time of 19:12:02.0. What you just noticed was the lgwr background process was signaled to wake up before its three second sleep completed.

But why did the lgwr need to be woken up? Because the server process' redo must be immediately written.

But it gets even better because the lgwr background process doesn't do the redo write! The lgwr process signals the lg00 process to do the write, which we can see occurs at time 19:11:59:5. Wow. Amazing!

What We Can Learn From This
Personally, I love these kinds of postings because we can see Oracle in action and demonstrating what we believe to be true. So what does all this actually demonstrate? Here's a list:

  1. We can see the 12c log writers involved. Not only lgwr.
  2. All log writer background process initiate a sleep for the default three seconds. I have seen situations where it is not three seconds, but it appears the default is three seconds.
  3. The server process signals the lgwr process to write immediately after a commit is issued.
  4. The server process signals the lgwr process to write using a semaphore.
  5. The log writers (starting in 12c) can signal each other using semaphores. We saw lgwr signal the lg00 background process to write.
  6. The server process was performing updates over 10+ a second period, yet its redo was not written to disk until it committed. This demonstrates that ALL redo is not flushed every three seconds. (This is probably not what you learned... unless you joined one of my Oracle Performance Firefighting classes.)
  7. The log writers while normally put to sleep for three seconds, can be woken in the middle for an urgent task (like writing committed data to an online redo log).

I hope you enjoyed this post!

Thanks for reading,

Craig.
Categories: DBA Blogs

How to create a pub/sub application with MongoDB ? Introduction

Tugdual Grall - Mon, 2015-01-12 09:30
In this article we will see how to create a pub/sub application (messaging, chat, notification), and this fully based on MongoDB (without any message broker like RabbitMQ, JMS, ... ). So, what needs to be done to achieve such thing: an application "publish" a message. In our case, we simply save a document into MongoDB another application, or thread, subscribe to these events and will received Tugdual Grallhttps://plus.google.com/103667961621022786141noreply@blogger.com2

Securing Big Data Part 5 - your Big Data Security team

Steve Jones - Mon, 2015-01-12 09:00
What does your security team look like today? Or the IT equivalent, "the folks that say no".  The point is that in most companies information security isn't actually something that is considered important.  How do I know this?  Well because basically most IT Security teams are the equivalent of the nightclub bouncers, they aren't the people who own the club, they aren't as important as the
Categories: Fusion Middleware

Oracle ZFS Network Attached Storage ZS4-4 System for Oracle Database 12c

VitalSoftTech - Sun, 2015-01-11 19:02
Oracle has recently announced its latest generation of Network-attached Storage or NAS system namely the Oracle ZFS Storage ZS4-4. With the new Oracle Database 12c in place, ZS4-4 is capable of providing some brand new exciting features, which in the words of Oracle VP, Mr. John Fowler expand Oracle’s leadership in NAS performance. New Capabilities […]
Categories: DBA Blogs

EBS 12.2 Blocking a Concurrent Program while Online Patching

Senthil Rajendran - Sat, 2015-01-10 22:36
Will there be a need to Blocking a Concurrent Program while Online Patching in EBS 12.2 , if so then here are the steps.

  • Use the Concurrent Program window or page to edit your concurrent program definition.
  • Select the Incompatibilities button to open the Incompatible Programs window.
  • Add a new global incompatibility rule for your program with the following program:
    • Application Name: Applications DBA
    • Program Name: Online Patching In Progress (internal name: ADZDPATCH) concurrent program

    Pages

    Subscribe to Oracle FAQ aggregator