Skip navigation.

Feed aggregator

use cron to schedule a job only once

Laurent Schneider - Mon, 2013-05-06 05:15

I wrote about not using DAY OF MONTH and DAY OF WEEK simultanously in how to cron

The correct method is to use
15 14 15 05 * /tmp/run-my-job

But… I wrote this five years ago. Hmmm ! Not that correct then since it would run every year ;-)

Ok, periodically I check for jobs are scheduled to run a specific date only

$ crontab -l|awk '$1!~/#/&&$3*$4'
15 14 15 05 * /tmp/run-my-job

I have 9 more days to remove this before it runs for the fifth time :)

Oracle Database 12c and APEX

Dimitri Gielis - Mon, 2013-05-06 02:39
The below content is based on a David Peake's presentation at OOW 2012 and APEX World 2013.

As the Oracle Database 12c is not out yet at the time of writing, note that things might be different in the final product.

The Oracle Database 12c is a major release in Oracle history, as it contains a complete redesign of the underlying architecture. Two things will come back a lot when you read about Oracle DB 12c; the Container Database (CDB) and the Pluggable Database (PDB).

The below image shows how it works; you have a container database which the memory and processes are attached at, and then you can have multiple other databases that you can just plugin.


You find more information about this architecture here.

So what does Oracle DB 12c mean for APEX?



Oracle DB 12c comes with APEX 4.2.0. You can either install APEX in the CDB or in the PDB. APEX 4.2.0 is the minimum version you can install in Oracle DB 12c.
The advantage of running APEX in the CDB is that when you upgrade APEX, all database plugged into that CDB will have the latest version of APEX.
The advantage of installing APEX in the PDB is that you can run different versions of APEX in the different databases. If APEX is installed in the CDB, you can't remove APEX from CDB$Root anymore.
But one of the first things I would do is either upgrade APEX 4.2.0 to 4.2.2 or install APEX 4.2.2 from scratch depending which option you went with.

When you upgrade from DB 11g with APEX to 12c PDB here's a screenshot of the steps to take:


When you install APEX in the Oracle database 12c, some new options will become available in APEX, build on top of some new Oracle database 12c features.

The 12c database parameter - max_string_size will allow you to upgrade your VARCHAR2 from 4k (standard) to 32K (extended).
If you look in your APEX installation you will find /core/collection_member_resize.sql. Running that script will change the APEX collection VARCHAR2 columns from 4K to 32K.

In 12c there's also a new column type that is basically an "auto numbering field", something you would typically do with a sequence and trigger. In 12c the column type is called "Identity column" and it can have following values: ALWAYS - which means a Sequence number is always used, DEFAULT set value, DEFAULT ON NULL use seq nr if null.
When you run APEX in a 12c database, SQL Workshop will allow to specify an identity column in the create table wizards. Also the Create Form/Report wizard will create the correct item type (display only).

Another new column type in 12c database is the "Invisible Column": SELECT * from
will not display invisible columns. INSERT into will not insert into invisible columns. To insert into the invisible column you must explicitly set it.
In APEX - SQL Workshop - Object browser; the column will not show up.

Data Redaction, to mask your application data dynamically, is also a new feature in Oracle 12c. Before you had to setup VPD policies and do FGAC (Fine Grained Access Control), now it becomes more native in 12c. APEX will just show you what you are allowed to see following your policy. For example depending your policy you will see a credit card number like 4541 **** **** **** or null. You can read more about data redaction and masking in a blog post of Lewis Cunningham.

Categories: Development

WebCenter Partners Week: TekStream Solutions

WebCenter Team - Mon, 2013-05-06 01:15

WebCenter Partners Near and Far:

The Oracle ecosystem of partners and alliances is vast and wide on a global scale. Within our WebCenter family, we have a rich diversity of partners offering additional value to help our customers get the most from their technology investments. As we all know - there is so much more beyond just the technology acquisition that leads to success for each implementation.

With this in mind, we've decided to spend this coming week taking a deeper look at a handful of our WebCenter partners. In the realm of blog-time, a five day period is relatively short - so if your favorite partner isn't featured this week - don't give them grief about it - this is really only a subset of our larger partner community that responded to a quick ping for participation. If you are a partner reading this and have something interesting to add to the conversation for a future feature - please contact me @ michael.snow@oracle.com and we can add you to a future partner-focused week on WebCenter Social channels.

TekStream Solutions

TekStream Solutions is an Atlanta-based technology solutions company that specializes in addressing the company-wide IT problems faced by enterprise businesses, such as consolidating and streamlining disparate content and application delivery systems and the market challenges to create “anytime, anywhere access” to data for employees, partners and customers. TekStream’s IT consulting solutions combined with its specialized IT recruiting expertise helps businesses increase efficiencies, streamline costs and remain competitive in an extremely fast-changing market. We are an Oracle Gold Partner specializing in the sales, deployment, resourcing and service of the Oracle WebCenter suite. Our mission is to use our extensive IT experience to deliver tangible business results enabling our clients to profit from the advanced use of technology. We strive to build long-term client relationships based on a shared vision for success and a relentless focus on quality delivery to exceed our client’s expectations.  
As we adapt to customer demand and solve the most valuable challenges Oracle customers face, we are happy to officially announce the launch of our new services aimed at improving the customer experience by leveraging the most complete portfolio of portal, web experience management, content, social, and collaboration technologies: Oracle WebCenter

1)    CloudStream:

TekStream’s experts discuss the complex, and extremely rewarding, next generation Oracle Cloud solutions.  Learn how TekStream’s proven methodology quickly and efficiently provides cloud-based solutions for the Oracle WebCenter Content, Imaging, Sites, and Portal family of products. Based on a world-class hosting service, CloudStream provides customers with turnkey content and information solutions delivering intelligent performance, ease of use and ease of management, and a rapid return on investment. Dig into the details and learn the top 5 value-added tips and tricks on how to significantly reduce your innovation debt while giving your company the tools and time it needs to scale. Imagine a world where your data migrations, managed services, upgrade implementations, and hosting services work in perfect harmony.  That’s the best WebCenter experience at the lowest cost. That’s CloudStream.

2)    TekStream University:

Customers engaging with TekStream University can be assured that they will receive professional and effective instruction on the Oracle WebCenter stack of products while having access to consultants who have hands-on best practices to supplement our training agenda. Available onsite, at a National training facility, or in the Virtual classroom, our consultants/trainers average over 10 years of experience in their given product expertise and are eager to share that wealth of knowledge with TekStream clients. TekStream’s experience, complemented with TekStream University’s streamlined standard training materials (including a course manual, PowerPoint presentations, and hands-on labs), ensures that students receive practical instruction that can be directly applied to their own environments.
TekStream University Datasheet

3)    WebCenter Content Connector

Oracle customers seeking to deploy WebCenter Portal (WCP) and Spaces utilizing WebCenter Content (WCC) as the foundation for easily accessing content have been faced with the dilemma of using an older version of Contribution Folders aka Folders_g, from WCC. FrameWork Folders is a long-awaited upgrade to Folders_g, providing scalability and new features. As of the current release of WCP/Spaces and WCC, there is no out-of-the-box support for WCP/Spaces to utilize the FrameWork Folders’ capabilities. TekStream has created a connector application which now allows WCP/Spaces environments to maximize the potential of content integrations with WCC utilizing FrameWork Folders.
WebCenter Content Connector Datasheet

4)    WebCenter Imaging Upgrade

Customers currently deployed on Optika, Stellent, or Oracle Imaging and Process Management (I/PM) solutions are quickly coming to terms that their existing applications have become outdated. Optika/Stellent/Oracle I/PM customers should look to enhance and expand their I/PM solutions by upgrading to Oracle WebCenter Imaging 11g, which has been updated to include mission-critical features that improve usability and functionality. TekStream provides Stellent and Oracle UCM customers with an upgrade path designed to limit the risks of data loss, loss of functionality, and reduce the overall impact to the organization that comes from large-scale upgrades.
WebCenter Imaging Upgrade Datasheet

5)    ResCare Case Study

Our client is a leading North America human services and support provider, serving more than a million people each year, at over 1,000 locations across the country. They provide residential, therapeutic, job training and educational support to people with developmental and other disabilities. Our client also provides these services to seniors who need in-home assistance, to youth with specials needs, and to adults who are experiencing barriers to employment. Our client’s business has continued to grow through organic growth and acquisition and now has annual revenue over $2B and operating their services on a national level.

TekStream resources led the requirements, design, development, testing, deployment, and post-implementation effort to streamline the high-volume invoice handling process through the automation of paper and email-based input channels, leveraging Oracle’s WebCenter Imaging, Document Capture, Forms Recognition, and EBusiness Suite Accelerator. These enterprise level tools provide an integrated solution for customers using Oracle’s EBusiness Suite solution to eliminate paper-based routing and storage, enable automated and electronic workflow approvals, reduce manual data entry of invoice information and provide visibility into the overall Accounts Payable process. In addition, this solution is capable of being used for other business processes and is supporting our client in automating their Oracle iExpense solution be providing electronic imaging for expense report receipts and in the automation of their Capital Expense approval process by automating the imaging, routing and approval of multiple documents associated with approving large scale projects.
ResCare Case Study

6)    WCC 11g Upgrade

Oracle WebCenter Content (WCC) provides industry-leading document management and records management services designed to support the most demanding enterprise. In today’s environments, organizations have multiple content management systems deployed. Most of these were purchased to support specific department needs while others are older systems that are no longer supported. WCC provides a robust content management platform that can support organizations down to the department level while providing the enterprise consistency needed to drive business at a macro level. TekStream provides strategic Services to assist companies in streamlining their content management consolidation, migration, and upgrade efforts to Oracle WCC 11g.
WCC 11g Upgrade Datasheet

7)    QuickStream Methodology

QuickStream is a four to six week service engagement aligning business stakeholders and IT organizations before a project begins; the insight provided helps organization avoid the negative business outcomes of IT project failures due to unmet quality, cost, and time expectations. QuickStream provides organizations with the tools and materials necessary for successful implementations, including:

•    Prioritized Requirements
•    High-level Technical Design, including Hardware/Software Architecture
•    Phase 1 Detailed Project Plan including Resource, Cost, and Time Estimate

QuickStream saves you the time and hassle of doing the work yourself, and gives your resources the room they need to focus on growing your business. Rest assured that TekStream offers committed and professional resources to see your project to completion and achieve excellent results.
QuickStream Datasheet

Media:

Datasheet: TekStream Company Datasheet

“TekStream - Service, Support, Software, & Sourcing”

Webinar:  WebCenter Interaction to WebCenter Portal Migration Planning

As Premier Support services come to an end for AquaLogic Interaction (ALUI) and WebCenter Interaction (WCI), now is the time to plan your migration from these legacy platforms to the WebCenter Portal platform.  While ALUI and WCI platforms have provided a long-standing portal solution over the past decade, they can no longer be considered modern portal platforms; and often leave behind an infrastructure that is heavily dependent on their feature set and functionality.  Planning a migration from these systems to Oracle's WebCenter Portal and/or WebCenter Spaces requires a proven methodology that leverages experience with both sides of the equation: this is neither the time nor the project to learn on one's feet.  In this webcast, learn how to approach and what to expect from a WCI to WebCenter Portal or Spaces migration from the TekStream Solutions migration team.  Learn More:  http://marketing.tekstream.com/wci_wcp_webinar

If you’re interested in learning how TekStream is perfectly positioned to help you achieve your goals, contact us at Info@TekStream.com or at www.tekstream.com.


Previewing the BI Forum 2013 Data Integration Masterclass

Rittman Mead Consulting - Sun, 2013-05-05 15:19

I guess it’s a British thing to not blow our own trumpet (does that translate the same over in the US?), but something I’m particularly proud about with the upcoming Rittman Mead BI Forum 2013 events is our Oracle Data Integration Masterclass, running on the Wednesday before each event properly starts, and put together by myself, Stewart Bryson and Michael Rainey. Although the main theme for the BI Forum is OBIEE, virtually every BI system that we all work with has a data warehouse of some sort underneath it, and most OBIEE professionals to one extent or another have to understand data warehousing principles, and how Oracle’s data integration tools work. So this year, we thought we’d take a deep-dive into Oracle Data Integrator and the wider Oracle Data Integration Suite, and in this preview positing I’ll be giving you a bit of a preview of what’s coming in the session – and places are still available for the US BI Forum event, and for the masterclass itself if you’ve only registered for just the main conference event.

The masterclass is made up of six sections, delivered by myself, Stewart and Michael, assumes a basic understanding of data warehousing and ETL tools but otherwise gets down into the detail of what we’ve found works well “in the field”.  Stewart Bryson, Oracle ACE and Managing Director for Rittman Mead America, will open the session with an overview of ODI and the Oracle Data Integration Suite, taking a look at the product history and walking the audience through the major elements of the ODI product architecture. If you’ve ever wondered what agents do within ODI, why there are two repositories and where WebLogic comes into it, Stewart’s session will make everything clear before we get into the rest of the details.

NewImage

Then, after coffee, Stewart will carry on and talk about what’s called the Oracle Information Management Reference Architecture, Oracle’s next-generation blueprint for data warehousing and information management that combines the best of Kimball and Inmon with new thinking around “big data” and “data discovery”. ODI and Oracle Data Integration Suite is the enabling technology for this new framework. At Rittman Mead, we use this framework for the majority of our DW customer engagements and we’ll be talking later on in the masterclass about how big data sources, for example, can be leveraged by ODI and brought into your BI environment in the same way as any other regular, relational datasource.

NewImage

The third section of the masterclass sees Michael Rainey take over the stage and talk to us about ODI’s integration with Oracle GoldenGate, Oracle’s data integration product for real-time analysis and data loading. Michael has taken part in several ODI & GoldenGate customer engagements over in the States, and has worked with Stewart in producing a number of custom ODI knowledge modules to better make use of this powerful new data integration tool. If you’ve read through any of Michael’s blog posts on ODI and Golden Gate and are interested in hearing a bit more detail on how it all works, as well as some real-world practical tips and tricks, this will be an invaluable session for you.

NewImage

So far I’ve got away with just making the tea, but straight-after Michael is my session, where I’ll be talking about ODI and its new integration with Hadoop, NoSQL and the wider “big data” technology area. I’ve been covering ODI and Hadoop in some blog posts over the past week, but there’s only so much that I can get into a blog post and this session will be the first airing of this new material, where I’ll be demoing all the main integration points and talking about what works well, and where the main value is, with this very interesting new feature.

NewImage

Then it’s back to Stewart again, where he’ll be talking about creating highly-resilient ETL code that’s also resumable, using features such as ODI 11g’s load plans and the Oracle Database’s resumable space allocation feature. Stewart and I were particularly keen to put together this session as it brings together work Stewart did a few years ago on fault-tolerant ETL in the Oracle Database, with some blog posts I put together over the 2012 Christmas break around highly-resilient ETL with ODI11g.  What this session does is explain the background to the ETL resilience features in the Oracle Database, and ODI’s use of WebLogic JEE agents, and demonstrates through some custom knowledge modules how they can be brought together for your project.

NewImage

Finally, Michael concludes the masterclass with a look at a feature you’re probably vaguely aware of, intend to learn something about, but sounds a bit complex; Groovy scripting and the ODI SDK. In fact, like WLST scripting for OBIEE, learning Groovy and the SDK is the key to automating tedious tasks such as mass-importing and reverse-engineering tables and files, as well as making it possible to add functionality to ODI or integrate it with other standards-based products. In a session almost entirely made-up of live demos, Michael will take us through the basics of Groovy and the SDK, and show us a few examples of where this could add value to your data integration projects.

So there we have it – Brighton is now fully-booked up, but if you’ve already registered for the main event but want to come to the masterclass now too, you can log back into the registration site and update your booking to include the additional masterclass fee. Atlanta is running a week later and so still has a few main event passes left, and again if you’ve already registered for the main conference, use the link in your registration confirmation to go back in and add the masterclass to your booking. And – hopefully we’ll see you all in Brighton or Atlanta for the Rittman Mead BI Forum 2013 in the next two weeks!

Categories: BI & Warehousing

SLOB

Jonathan Lewis - Sun, 2013-05-05 12:21

Anyone who has used Kevin Closson’s “Silly Little Oracle Benchmark” will want to know about his significantly updated SLOB2.


Knewton (Quietly) Pivots

Michael Feldstein - Sun, 2013-05-05 11:43

Knewton CEO Jose Ferriera has an interesting and revealing blog post up about “the coming adaptive world.” In part, it is a response to a report on adaptive learning by Education Growth Advisors. Jose writes, “Despite our constant protestations to the contrary, observers often confuse Knewton with the many adaptive learning app makers who are now popping up. Or they confuse app makers with platforms. Or they think we’re all competitors.” It’s a bit of a red herring, since the report does distinguish between platform and publisher business models. That said, the meaning of the distinction between these two categories isn’t drawn terribly clearly, and it’s fair for Knewton to try to clarify its market positioning. But in doing so, Jose reveals what appears to be a shift in their thinking about the market for a platform like theirs which tells us something important about the ed tech market in general.

Knewton has always been a platform play. They don’t design educational products. They provide an analytics engine that can be used to make educational products. So they are business-to-business. They sell to other education companies. The value proposition they offer is that they have invested in data science talent and infrastructure that is more powerful and sophisticated than most education companies can manage. It’s a bit like Amazon saying, “Hey, you’re never going to have even a tiny fraction of the experience that we have running unbelievably massive systems that can never go down. Why don’t you just leave that part of things to us by using Amazon Web Services and focus your attention on building the parts of your product that are specific to you?” This is a reasonable pitch for a company like Knewton to make, in my view. The issue that I have had with the company’s public marketing is that there has been a little too much “WHEEEEEEE!” in it:

Click here to view the embedded video.

I think there is a certain ethical responsibility to demystify these technologies in order to help educators and students alike understand when and how they can be helpful. I also think that demystification makes good business sense from Knewton’s perspective. The company simply isn’t going to get good results (and therefore repeat engagements) by hooking up random customer content to their analytics engine. They need content that has been designed for analytics in some real sense in order to produce meaningful insights. They need customers to come to them having some idea of what capabilities they want to design into the product from the beginning.

And that’s where Jose’s post gets interesting. He writes,

Sure — it’s straightforward enough to wire up a simple, self-contained adaptive app, based on a pre-determined, limited decision-tree. But how much better would that app be if it contained an effectively unlimited amount of back-end content? If all of its assessment items had been algorithmically “normed” so that they resulted in exact concept proficiency data for each student? Or if the app pre-acted to the learning modalities of each student? Or if it “started hot” so that from Day 1 of a student taking a new course, all her prior concept proficiencies and learning styles had been preloaded?

Knewton makes possible all these things and more. Today, Knewton functionality includes pinpoint student proficiency measurement, content efficacy measurement (yes, we can tell you how effective your content is), student engagement optimization, atomic-concept adaptive learning, and concept-level analytics. Next year we’re adding “adaptive tutoring,” which combines the wisdom of crowds with Knewton’s network to find the perfect people online right now to give you real-time help.

Hmm. Assessment items being “algorithmically ‘normed’ so that they resulted in exact concept proficiency data for each student?” “Pinpoint student proficiency measurement?” Gee, that sounds suspiciously like Item Response Theory. And if you can find your way past Knewton’s marketing to their tech blog, you will find out that, in fact, Item Response Theory is exactly what Knewton uses for this. Still missing is a straightforward explanation of what ITR can and cannot do well as well as the kind of content design investment that Knewton’s customers would have to make to take advantage of this capability. It’s not as simple as sprinkling a little machine learning fairy dust on your content. Customers that come to Knewton without that understanding of the investment they will need to make are going to end up spending a lot more time and money than they anticipated. But the larger point is that framing specific capabilities that Knewton customers can think about in advance is a start toward positioning themselves as a real infrastructure platform company. Likewise, “adaptive tutoring,” which appears to be a whizzy name for expertise recommendation, is a specific function that app designers can think about when they are building out new services, whether it is math tutoring or college counseling or career counseling. This positioning begins to enable app developers to think about what they can do with learning analytics services. Jose writes, “Until recently, only large learning companies and university systems could use the Knewton platform. But now our enterprise API is flexible enough for a much wider audience. We’re happy to partner with anybody — even so-called ‘competitors.’ We can’t quite say “yes” to everyone who wants to work with us yet, but our capacity is growing by leaps and bounds every day.”

And there is the pivot. Up until now, Knewton has been focusing on the big publishers—particularly Pearson, with whom it has a big partnership deal. One reason for that certainly could be that their APIs were not ready for smaller players before now. But I suspect another driver is the huge growth in ed tech startups in general and companies claiming to have some sort of adaptive learning products in particular. Arguably, a market exists today where one didn’t exist a couple of years ago. I say “arguably” because it remains to be seen whether this onslaught of small companies is just the result of an investment bubble or a sustainable trend. Most of these companies are never destined for IPO, and it’s not clear what the long-term appetite is for acquisition in this sort of volume or, lacking that appetite, how many of these companies are geared up to be small but self-sustaining businesses for the rest of their natural lives. (The fact that so many of them are looking for venture money is not a good sign.) In any event, an analytics infrastructure like Knewton absolutely could make many of these small companies potentially interesting and sustainable on significantly less startup cash by providing them with infrastructure, in the same way that AWS makes it easier and cheaper for all sorts of internet startups to form. But in order to become that sort of trusted backbone, they have to stop talking like magicians and start talking like infrastructure partners.

The post Knewton (Quietly) Pivots appeared first on e-Literate.

Not a Fan of Public Synonyms, Here is Why

Eddie Awad - Sat, 2013-05-04 17:38

Tom is not not a fan of public synonyms, here is why:

  • public synonyms pollute the namespace.
  • public synonyms can lead to security issues.
  • public synonyms can lead to a maintenance headache.
  • public synonyms are public – no one owns them.

So, instead of public synonyms… Continue reading...

© Eddie Awad's Blog, 2013. | Permalink | 2 comments | Topic: Oracle | Tags:

Related articles:

New Oracle Magazine Article on Integrating OBIEE 11g with Oracle WebCenter Portal: Spaces

Rittman Mead Consulting - Sat, 2013-05-04 16:38

NewImageJust a short note to say that my latest Oracle Magazine article is now online, and talks about integrating OBIEE 11g with Oracle WebCenter Portal: Spaces, the “spiritual successor” to Oracle Portal. “New Spaces for BI” introduces Portal: Spaces talks about the high-level benefits of integration, and then goes through a step-by-step example where BI content gets added to a Portal : Spaces team website.

Writing this article brought back a few memories, as I wrote the article for OTN back in 2005 on integrating Oracle Discoverer with Oracle Portal, with the same end-objective of creating a composite intranet-style web application that placed BI content alongside more “line-of-business” web portlets. The technology has come on a lot since the time of that article – apart from Discoverer, we were using Oracle Application Server 10g (pre-BEA and WebLogic), Portal itself and Oracle Database 10g, and whilst the approach in the other article worked, you didn’t have a lot of control over the layout and there was a weird mechanism in the background that showed you cached data, rather than live data in the Discoverer port lets. But the basic principal was the same though – register the Discoverer End-User Layer as a Portlet provider, as we do with OBIEE 11g’s Presentation Services catalog in the Oracle Magazine article, and then users can drag and drop their favourite BI content into their corporate portal.

Also, if you’re interested, I covered OBIEE 11g and WebCenter integration in a lot more detail back towards the end of 2012, with a series of postings on the blog starting with an introduction to Oracle WebCenter and WebCenter Portal, a more detailed look at OBIEE and WebCenter Portal : Spaces integration, and then finally a posting on leveraging the WebCenter Portal : Framework ADF toolkit with OBIEE 11g to programmatically bring together BI content and a portal framework as a custom ADF application.

Categories: BI & Warehousing

It’s a dirty job

Michael Dinh - Sat, 2013-05-04 15:50

Before, I worked for organization that frowned upon database jobs and only uses cron job.
Now, it’s just the opposite and I get to learn about dbms_scheduler job.

Create job to run PLSQL_BLOCK every 5 minutes at: 21,22,23 (24 hour format)

LAX:(MDINH@db01)> @createjob

SYSDATE
-------------------
2013-05-04 12:29:55

LAX:(MDINH@db01)> begin
  2   dbms_scheduler.create_job (
  3    job_name => 'DIRTY_JOB',
  4    job_type => 'PLSQL_BLOCK',
  5    job_action => 'BEGIN NULL; END;',
  6    start_date => trunc(sysdate)+21/24,
  7    repeat_interval => 'FREQ=minutely; BYHOUR=21,22,23; INTERVAL=5',
  8    end_date => NULL,
  9    enabled => TRUE);
 10  end;
 11  /

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> @@checkjob dirty
LAX:(MDINH@db01)> set lines 200 veri off echo off
-- dba_scheduler_jobs

JOB_NAME                       REPEAT_INTERVAL                                              NEXT_RUN_DATE
------------------------------ ------------------------------------------------------------ ----------------------------------------
DIRTY_JOB                      FREQ=minutely; BYHOUR=21,22,23; INTERVAL=5                   04-MAY-13 09.00.00.000000 PM -07:00

-- dba_scheduler_job_run_details

no rows selected

-- FORCE RUN_JOB
LAX:(MDINH@db01)> exec dbms_scheduler.RUN_JOB('DIRTY_JOB');

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> @@checkjob dirty
LAX:(MDINH@db01)> set lines 200 veri off echo off
-- dba_scheduler_jobs

JOB_NAME                       REPEAT_INTERVAL                                              NEXT_RUN_DATE
------------------------------ ------------------------------------------------------------ ----------------------------------------
DIRTY_JOB                      FREQ=minutely; BYHOUR=21,22,23; INTERVAL=5                   04-MAY-13 09.00.00.000000 PM -07:00

-- dba_scheduler_job_run_details

LOG_DATE                            JOB_NAME                       STATUS     ACTUAL_START_DATE                   RUN_DURATION
----------------------------------- ------------------------------ ---------- ----------------------------------- ---------------
04-MAY-13 12.29.55.112836 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.29.55.111618 PM -07:00 +000 00:00:00

!!! Shoot – do not want to wail until 21:00 to know results !!!
– CHANGE START_DATE & REPEAT_INTERVAL

LAX:(MDINH@db01)> exec dbms_scheduler.SET_ATTRIBUTE(name=>'DIRTY_JOB',attribute=>'start_date',value=>SYSDATE);

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> exec dbms_scheduler.SET_ATTRIBUTE(name=>'DIRTY_JOB',attribute=>'repeat_interval',value=>'FREQ=minutely;BYHOUR=12,13;INTERVAL=5');

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> @@checkjob dirty
LAX:(MDINH@db01)> set lines 200 veri off echo off
-- dba_scheduler_jobs

JOB_NAME                       REPEAT_INTERVAL                                              NEXT_RUN_DATE
------------------------------ ------------------------------------------------------------ ----------------------------------------
DIRTY_JOB                      FREQ=minutely;BYHOUR=12,13;INTERVAL=5                        04-MAY-13 12.34.55.000000 PM -07:00

-- dba_scheduler_job_run_details

LOG_DATE                            JOB_NAME                       STATUS     ACTUAL_START_DATE                   RUN_DURATION
----------------------------------- ------------------------------ ---------- ----------------------------------- ---------------
04-MAY-13 12.29.55.112836 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.29.55.111618 PM -07:00 +000 00:00:00

Back from lunch and looks good.

Job did not run after 14:00 as expected.

LAX:(MDINH@db01)> select sysdate from dual;
-------------------
2013-05-04 14:10:43

LAX:(MDINH@db01)> @checkjob dirty
-- dba_scheduler_jobs

JOB_NAME                       REPEAT_INTERVAL                                              NEXT_RUN_DATE
------------------------------ ------------------------------------------------------------ ----------------------------------------
DIRTY_JOB                      FREQ=minutely;BYHOUR=12,13;INTERVAL=5                        05-MAY-13 12.04.55.000000 PM -07:00

-- dba_scheduler_job_run_details

LOG_DATE                            JOB_NAME                       STATUS     ACTUAL_START_DATE                   RUN_DURATION
----------------------------------- ------------------------------ ---------- ----------------------------------- ---------------
04-MAY-13 12.29.55.112836 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.29.55.111618 PM -07:00 +000 00:00:00
04-MAY-13 12.34.55.045811 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.34.55.038072 PM -07:00 +000 00:00:00
04-MAY-13 12.39.55.050034 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.39.55.040566 PM -07:00 +000 00:00:00
04-MAY-13 12.44.55.079379 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.44.55.057040 PM -07:00 +000 00:00:00
04-MAY-13 12.49.55.132232 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.49.55.124111 PM -07:00 +000 00:00:00
04-MAY-13 12.54.55.238525 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.54.55.230027 PM -07:00 +000 00:00:00
04-MAY-13 12.59.55.046174 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.59.55.037725 PM -07:00 +000 00:00:00
04-MAY-13 01.04.55.057574 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.04.55.049089 PM -07:00 +000 00:00:00
04-MAY-13 01.09.55.043001 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.09.55.038407 PM -07:00 +000 00:00:00
04-MAY-13 01.14.55.058771 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.14.55.053925 PM -07:00 +000 00:00:00
04-MAY-13 01.19.55.048791 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.19.55.039703 PM -07:00 +000 00:00:00
04-MAY-13 01.24.55.038104 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.24.55.029655 PM -07:00 +000 00:00:00
04-MAY-13 01.29.55.046963 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.29.55.041092 PM -07:00 +000 00:00:00
04-MAY-13 01.34.55.063285 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.34.55.055247 PM -07:00 +000 00:00:00
04-MAY-13 01.39.55.050528 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.39.55.041886 PM -07:00 +000 00:00:00
04-MAY-13 01.44.55.042718 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.44.55.023271 PM -07:00 +000 00:00:00
04-MAY-13 01.49.55.056224 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.49.55.051302 PM -07:00 +000 00:00:00
04-MAY-13 01.54.55.046269 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.54.55.037763 PM -07:00 +000 00:00:00
04-MAY-13 01.59.55.059423 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.59.55.051539 PM -07:00 +000 00:00:00

19 rows selected.

LAX:(MDINH@db01)> @dropjob

LAX:(MDINH@db01)> exec dbms_scheduler.DISABLE ('DIRTY_JOB',TRUE);

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> exec dbms_scheduler.STOP_JOB('DIRTY_JOB',TRUE);
BEGIN dbms_scheduler.STOP_JOB('DIRTY_JOB',TRUE); END;

*
ERROR at line 1:
ORA-27366: job "MDINH.DIRTY_JOB" is not running
ORA-06512: at "SYS.DBMS_ISCHED", line 199
ORA-06512: at "SYS.DBMS_SCHEDULER", line 557
ORA-06512: at line 1

LAX:(MDINH@db01)> exec dbms_scheduler.DROP_JOB('DIRTY_JOB',TRUE);

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> @@checkjob dirty
LAX:(MDINH@db01)> set lines 200 veri off echo off
-- dba_scheduler_jobs

no rows selected

-- dba_scheduler_job_run_details

LOG_DATE                            JOB_NAME                       STATUS     ACTUAL_START_DATE                   RUN_DURATION
----------------------------------- ------------------------------ ---------- ----------------------------------- ---------------
04-MAY-13 12.29.55.112836 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.29.55.111618 PM -07:00 +000 00:00:00
04-MAY-13 12.34.55.045811 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.34.55.038072 PM -07:00 +000 00:00:00
04-MAY-13 12.39.55.050034 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.39.55.040566 PM -07:00 +000 00:00:00
04-MAY-13 12.44.55.079379 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.44.55.057040 PM -07:00 +000 00:00:00
04-MAY-13 12.49.55.132232 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.49.55.124111 PM -07:00 +000 00:00:00
04-MAY-13 12.54.55.238525 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.54.55.230027 PM -07:00 +000 00:00:00
04-MAY-13 12.59.55.046174 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 12.59.55.037725 PM -07:00 +000 00:00:00
04-MAY-13 01.04.55.057574 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.04.55.049089 PM -07:00 +000 00:00:00
04-MAY-13 01.09.55.043001 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.09.55.038407 PM -07:00 +000 00:00:00
04-MAY-13 01.14.55.058771 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.14.55.053925 PM -07:00 +000 00:00:00
04-MAY-13 01.19.55.048791 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.19.55.039703 PM -07:00 +000 00:00:00
04-MAY-13 01.24.55.038104 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.24.55.029655 PM -07:00 +000 00:00:00
04-MAY-13 01.29.55.046963 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.29.55.041092 PM -07:00 +000 00:00:00
04-MAY-13 01.34.55.063285 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.34.55.055247 PM -07:00 +000 00:00:00
04-MAY-13 01.39.55.050528 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.39.55.041886 PM -07:00 +000 00:00:00
04-MAY-13 01.44.55.042718 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.44.55.023271 PM -07:00 +000 00:00:00
04-MAY-13 01.49.55.056224 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.49.55.051302 PM -07:00 +000 00:00:00
04-MAY-13 01.54.55.046269 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.54.55.037763 PM -07:00 +000 00:00:00
04-MAY-13 01.59.55.059423 PM -07:00 DIRTY_JOB                      SUCCEEDED  04-MAY-13 01.59.55.051539 PM -07:00 +000 00:00:00

19 rows selected.

LAX:(MDINH@db01)> exec dbms_scheduler.PURGE_LOG();

PL/SQL procedure successfully completed.

LAX:(MDINH@db01)> @checkjob dirty
-- dba_scheduler_jobs

no rows selected

-- dba_scheduler_job_run_details

no rows selected

LAX:(MDINH@db01)>

 

SCRIPTS Used:

$ cat checkjob.sql

set lines 200 veri off echo off
set pages 1000
col JOB_NAME for a30
col NEXT_RUN_DATE for a40
col REPEAT_INTERVAL for a60
col ACTUAL_START_DATE for a35
col LOG_DATE for a35
col RUN_DURATION for a15
col STATUS for a10
pro -- dba_scheduler_jobs
select job_name,repeat_interval,next_run_date from dba_scheduler_jobs where regexp_like(job_name,'&1','i');
pro -- dba_scheduler_job_run_details
select log_date,job_name,status,actual_start_date,run_duration
from dba_scheduler_job_run_details
where regexp_like(job_name,'&1','i')
order by actual_start_date asc;

$ cat createjob.sql

select sysdate from dual;
set echo on
begin
 dbms_scheduler.create_job (
  job_name => 'DIRTY_JOB',
  job_type => 'PLSQL_BLOCK',
  job_action => 'BEGIN NULL; END;',
  start_date => trunc(sysdate)+21/24,
  repeat_interval => 'FREQ=minutely; BYHOUR=21,22,23; INTERVAL=5',
  end_date => NULL,
  enabled => TRUE);
end;
/
@@checkjob dirty
pro -- FORCE RUN_JOB
set echo on
exec dbms_scheduler.RUN_JOB('DIRTY_JOB');
@@checkjob dirty
pro !!! Shoot - do not want to wail until 21:00 to know results !!!
pro -- CHANGE START_DATE REPEAT_INTERVAL
set echo on
exec dbms_scheduler.SET_ATTRIBUTE(name=>'DIRTY_JOB',attribute=>'start_date',value=>SYSDATE);
exec dbms_scheduler.SET_ATTRIBUTE(name=>'DIRTY_JOB',attribute=>'repeat_interval',value=>'FREQ=minutely;BYHOUR=12,13;INTERVAL=5');
@@checkjob dirty

$ cat dropjob.sql

set echo on
exec dbms_scheduler.DISABLE ('DIRTY_JOB',TRUE);
exec dbms_scheduler.STOP_JOB('DIRTY_JOB',TRUE);
exec dbms_scheduler.DROP_JOB('DIRTY_JOB',TRUE);
@@checkjob dirty

exec dbms_scheduler.PURGE_LOG();

What kind of jobs are you doing or using?


JDeveloper 11g (11.1.2.4.0) Startup Mystery - JDK 1.6.0_24 Not Supported (1.6.0_35 Required)

Andrejus Baranovski - Sat, 2013-05-04 14:59
New JDeveloper 11g (11.1.2.4.0) on Windows fails to start with embarrassing error after fresh installation, this is known issue and Oracle is fixing it. Seems like Oracle engineers missed it and released JDeveloper 11g (11.1.2.4) with wrong JDK. Once you install JDeveloper 11g (11.1.2.4.0) and try to start it, JDK error is reported - Java version 1.6.0_24 not supported. The minimum version required is 1.6.0_35 and JDEV startup stops, basically unusable:


If you go and check installation contents for JDeveloper 11g (11.1.2.4.0), you will see only JDK 1.6.0_24 packaged. This looks like a mistake to me:


Workaround (until Oracle will fix it in JDeveloper 11g (11.1.2.4.0)) is to install required JDK 1.6.0_35 manually by yourself and point it during JDEV startup:


With manually installed JDK 1.6.0_35 JDEV works:


Still this is quite funny - why JDK 1.6.0_24 would be included if JDEV requires JDK version 1.6.0_35.

Speak at PyOhio

Catherine Devlin - Sat, 2013-05-04 09:53

Have you responded yet to PyOhio's Call For Proposals (due date: June 1)? You should. Here's why.

Why you should speak at PyOhio
  • We need you. We have a great group of people who contribute talks, but we don't ever want that group to become a stagnant pool - we want to always be drawing in new contributors with a variety of backgrounds, perspectives, and interests. Unless your clone sibling just submitted a talk, we need your contribution!
  • Meet people. You'll always meet people at PyOhio, of course, but speaking makes you a beacon to the other people who share your interests.
  • Practice. We all know public speaking is an important skill, but it's hard to muster the courage to get real-life practice in it. PyOhio is perfect because of the friendliness of the Python community - everybody there wants you to succeed. Hone your skills with us, among friends... you can go speak at snotty places later!
  • Push yourself. That skill you've been wanting to learn, or that package you know you need to polish up for release? Committing to speak on it is a surefire way to break the curse of "haven't quite gotten around to it"! Sometimes we call this "embarrassment-driven development".
  • But I'm not an expert

    Perfect. Because the great curse of expert teachers is that they can forget what it was like to be a beginner. So dive into something you want to learn, take careful notes as you go about what confused you and how you resolved it, and you'll blaze a trail that you can guide other beginners along. Your non-expert perspective will make you a great teacher!

    Team up

    You can draw on that friendly community to help you present, too! Share a presentation with somebody more or less experienced to make an expert-beginner duet, or have a friend cover an aspect of your topic that they know better. Get a friend to review your talk as you develop it. Shop your ideas around your local Python usergroup and see what suggestions they have.

    Many ways to contribute

    PyOhio is not all about talks, of course (for me, the talks are kind of the excuse we use to get together and do the other stuff.) Also consider proposing something like

    • a tutorial
    • an Open Space
    • a Sprint
    • a Lightning Talk (actually, you propose these on-the-spot, but you can get it ready in advance)

    Thank you, and spread the word!

    Play python with twitter streaming

    Surachart Opun - Sat, 2013-05-04 08:28
    I was interested in how to do twitter streaming. I tried to find out on the internet and got many examples. I tested it with python code(tweepy). I got data in JSON format. I thought it's a good idea, if I was able insert this data into mongodb.
    So. I created my application on twitter and tested some a little bit code.
    [surachart@centos ~]$ ./mongo/bin/mongo
    MongoDB shell version: 2.2.2
    connecting to: test
    >
    > db.twittertest.find()
    > db.twittertest.find()Used some code on the internet and changed a bit to insert data into database.
    [surachart@centos ~]$ cat ./test-tweeter.py
    #!/usr/bin/python
    import tweepy
    import pymongo
    import json

    consumer_key = "..."
    consumer_secret = "..."
    access_token_key = "..."
    access_token_secret = "..."


    auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth1.set_access_token(access_token_key, access_token_secret)

    class StreamListener(tweepy.StreamListener):
        def on_status(self, tweet):
            print tweet.text

        def on_error(self, status_code):
            print 'Error: ' + repr(status_code)
            return False

        def on_data(self, data):
            print 'Ok! Inserting Data.'
            from pymongo import MongoClient
            client = MongoClient()
            client = MongoClient('localhost', 27017)
            db = client.test
            test_id = db.twittertest.insert(json.loads(data))

    l = StreamListener()
    streamer = tweepy.Stream(auth=auth1, listener=l)
    streamer.filter(track=['oracle'])I filtered by using word 'oracle'.
    [surachart@centos ~]$ ./test-tweeter.py
    Ok! Inserting Data.

    [surachart@centos ~]$ ./mongo/bin/mongo
    MongoDB shell version: 2.2.2
    connecting to: test
    >
    > db.twittertest.find()
    { "_id" : ObjectId("51851511cdc8722152c28171"), "contributors" : null, "truncated" : false, "text" : "Job Opportunity for Oracle PL/SQL Developers with HTML/Web development experience for 6+ Months(Contract) for Las...: http://t.co/p6p8cfV6qF", "in_reply_to_status_id" : null, "id" : NumberLong("330684010961448962"), "favorite_count" : 0, "source" : "<a href=\"http://www.linkedin.com/\" rel=\"nofollow\">LinkedIn</a>", "retweeted" : false, "coordinates" : null, "entities" : { "symbols" : [ ], "user_mentions" : [ ], "hashtags" : [ ], "urls" : [     {       "url" : "http://t.co/p6p8cfV6qF",       "indices" : [   118,    140 ],  "expanded_url" : "http://lnkd.in/G-hhiX",       "display_url" : "lnkd.in/G-hhiX" } ] }, "in_reply_to_screen_name" : null, "id_str" : "330684010961448962", "retweet_count" : 0, "in_reply_to_user_id" : null, "favorited" : false, "user" : { "follow_request_sent" : null, "profile_use_background_image" : true, "default_profile_image" : true, "id" : 360409067, "verified" : false, "profile_image_url_https" : "https://si0.twimg.com/sticky/default_profile_images/default_profile_4_normal.png", "profile_sidebar_fill_color" : "DDEEF6", "profile_text_color" : "333333", "followers_count" : 22, "profile_sidebar_border_color" : "C0DEED", "id_str" : "360409067", "profile_background_color" : "C0DEED", "listed_count" : 1, "profile_background_image_url_https" : "https://si0.twimg.com/images/themes/theme1/bg.png", "utc_offset" : null, "statuses_count" : 1777, "description" : null, "friends_count" : 0, "location" : "", "profile_link_color" : "0084B4", "profile_image_url" : "http://a0.twimg.com/sticky/default_profile_images/default_profile_4_normal.png", "following" : null, "geo_enabled" : false, "profile_background_image_url" : "http://a0.twimg.com/images/themes/theme1/bg.png", "name" : "Anand P. Sharma", "lang" : "en", "profile_background_tile" : false, "favourites_count" : 0, "screen_name" : "anandph123", "notifications" : null, "url" : null, "created_at" : "Tue Aug 23 04:52:03 +0000 2011", "contributors_enabled" : false, "time_zone" : null, "protected" : false, "default_profile" : true, "is_translator" : false }, "geo" : null, "in_reply_to_user_id_str" : null, "possibly_sensitive" : false, "lang" : "en", "created_at" : "Sat May 04 14:03:06 +0000 2013", "filter_level" : "medium", "in_reply_to_status_id_str" : null, "place" : null }
    >I was able to insert data...  and I will play with it later.


    Written By: Surachart Opun http://surachartopun.com
    Categories: DBA Blogs

    ipython-sql for multi-database comparisons

    Catherine Devlin - Fri, 2013-05-03 17:27

    For my newest ipython-sql trick, I needed to compare some queries run across different databases. How hard would it be to get side-by-side results into tidy IPython Notebook output?

    Not hard at all, it turns out, if you're willing to violate basic principles of human decency.

    That's an itty-bitty image, so here's the crazy part:


    class SQL_Comparitor(object):
    def __init__(self, *connection_strings):
    self.connection_strings = connection_strings
    def run(self, qry):
    dframes = []
    for connection_string in self.connection_strings:
    result = %sql $connection_string $qry

    Did you catch that? I used %sql magic and IPython variable substitution inside an instance method. It feels so wrong! But it works! Provided you're running within IPython, of course; normal Python will not under any circumstances run an unholy perlish abomination like this. I'm just really amazed that we can use IPython tricks inside class definitions, but it's real.

    Since the result is a Pandas DataFrame, it's easy to apply transformations. For instance, say you only want the rows where the values are different:


    diff = results[results['svr1/db1_Value'] != results['svr2/db2_Value']]
    HTML(diff.to_html())

    I'm not sure how to distribute this class, since it's small and it's not actually valid Python, just valid IPython. For now I've made a gist (and its nbviewer version).

    Gartner PCC 2013 Wrap Up

    WebCenter Team - Fri, 2013-05-03 15:38

    Social. Mobility. Context awareness. Nontraditional content. User experience. Consumerization. This confluence of trends is creating unprecedented opportunities but also unprecedented exposure and risk.

    This year's Gartner Portals, Content & Collaboration Summit provided attendees the opportunity to learn how to exploit these trends now, as to not fall behind better positioned competitors. The Gartner PCC Summit delivered the tools and insights needed to tap into unprecedented portals, content and collaboration opportunities. Disruptive trends are yielding an array of business-critical imperatives: Deliver secure access across a widening range of devices. Mine and leverage nontraditional content. Use social software to drive efficiency and innovation. Exploit context-aware computing.

    This summit represented the single most important event in the portals, content and collaboration space, where IT and business leaders gathered to learn from the latest Gartner research and interact with 24+ Gartner analysts, peers and solution leaders. We had a great week in San Diego, and we were able to experience new research and innovative thinking in a variety of session formats that drilled down to some of the most critical industry topics and trends.

    Oracle was proud to be a Silver sponsor of the show this year, with a breakfast session given by Josh Lannin, Senior Director of Product Management for WebCenter and a booth on the show floor. Did you attend the Gartner PCC Summit this year? What were your thoughts or reactions?

    APEX Ice Cream - Oracle ACE Cookbook

    Dimitri Gielis - Fri, 2013-05-03 15:34
    The warm days are coming... time for some APEX Ice Cream! 
    People in my close environment, they know I can't resist ice cream and chocolate! So what I did was I bought a real ice cream machine, so I could make my ice cream myself :-)

    The different ways and flavours you can make your ice cream is unlimited ... anyway, this is how it looks like when you put your cream into the ice machine and wait 30 minutes.

    So, is this blog post about making ice cream? Not really... I just wanted to bring under your attention that under the lead of Lewis Cunningham some Oracle ACE and ACE Directors created a real cookbook (for food)!
    Lewis came up with the idea and did the hard work of putting everything together. There's a nice video of Lewis explaining why he wanted to do it. In 2008, it was actually Lewis who put forward my name to become an Oracle ACE Director which I will be forever thankful. When he raised the idea about the cookbook, I didn't have to think long to put the recipe in to make one of my favourite desserts; home made ice cream with chocolate sauce, I call it "APEX Ice Cream". You can read in the recipe why :-)
    I embedded the cookbook from Scribd below:
    ACE Cookbook by Lewis Cunningham

    If you want to make your ice cream responsive...

    Here's how a version of a desktop version of APEX Ice Cream looks like:


    And here's the smarth phone version, I didn't remove any content as you can see, it's just a bit closer together... APEX Ice Cream is why to good to show less on a smaller plate ;-)


    Enjoy!
    Categories: Development

    Things to be considerd before/after the OS patch deployment

    Syed Jaffar - Fri, 2013-05-03 13:29
    The objective of this write-up is to emphasize the importance of considering things like verifying the patch compatibility and  relinking the Oracle home after patching the underlying Operating System (OS)  in any Oracle environment. I would like to share an incident (a little story) that we encountered a few days ago in one of our non-production RAC environments where the Clusterware stack didn't start after the OS patch deployment.

    As part of the patching policy set in the organization, our HPUX admin scheduled the latest quarterly HPUX v11.3x OS patch deployment activity on all servers, and a non-RAC and Oracle RAC environments have patched in the context. Though the patching activity went smoothly on both the environments,  we faced issues starting the Cluster stack in the Cluster environment. When the cluster stack status was verified, we have noticed that the Cluster Synchronization Daemon process (cssd) was in 'STARTING' state, as shown below:


    $ ./crsctl stat res -init -t --------------------------------------------------------------------------------Name           Target  State        Server                   State details       --------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.asm      1        ONLINE  OFFLINE      rac1                     ora.cluster_interconnect.haip      1        ONLINE  OFFLINE      rac1                     ora.crsd      1        ONLINE  OFFLINE      rac1                     ora.cssd      1        ONLINE  OFFLINE      rac1                     STARTING                ora.cssdmonitor      1        ONLINE  ONLINE       rac1                      

    Oracle High Availability Daemon process (ohsd) started without any issues, however, the crsd couldn't be started on any of the nodes after the patch deployment . Upon examining the ocssd.log, it was found that some how the voting disks were not able to discover by the process, hence, the crsd process couldn't start and the following messages appeared in the ocssd.log:
    CRS-1714:Unable to discover any voting files2013-04-23 18:47:16.553: [ SKGFD][6]Discovery with str:/dev/rdsk/c0t5d5,/dev/rdsk/c0t5d4:
    2013-04-23 18:47:16.553: [ SKGFD][6]UFS discovery with :/dev/rdsk/c0t5d5:2013-04-23 18:47:16.559: [ SKGFD][6]Fetching UFS disk :/dev/rdsk/c0t5d5:2013-04-23 18:47:16.559: [ SKGFD][6]OSS discovery with :/dev/rdsk/c0t5d5:2013-04-23 18:47:16.559: [ SKGFD][6]Discovery advancing to nxt string :/dev/rdsk/c0t5d4:2013-04-23 18:47:16.559: [ SKGFD][6]UFS discovery with :/dev/rdsk/c0t5d4:2013-04-23 18:47:16.564: [ SKGFD][6]Fetching UFS disk :/dev/rdsk/c0t5d4:2013-04-23 18:47:16.564: [ SKGFD][6]OSS discovery with :/dev/rdsk/c0t5d4:2013-04-23 18:47:16.564: [ CSSD][6]clssnmvDiskVerify: Successful discovery of 0 disks2013-04-23 18:47:16.564: [ CSSD][6]clssnmCompleteInitVFDiscovery: Completing initial voting file discovery2013-04-23 18:47:16.564: [ CSSD][6]clssnmvFindInitialConfigs: No voting files found
    From the messages it was pretty clear that for some reasons the voting disks (placed on the shared storage) are inaccessible to the node/s. When searched over the internet and in the My Oracle Support (MOS) with the combination of error codes, all the links were pointing to verify the ownership and permission on the voting disks. We found there were no issues with regards to the ownership and permissions on the voting disks, we even dumped the the disks with the DD command found no corruption and no ownership/permission issues.  After 1 hour of hard struggles, there was a little hope about the issue when we come across of a MOS note (id 1508899.1) that explained an incident close to ours.According the note, this issue was due to a bug : 14810756 and the workaround is to apply patch: 14810756 or rollback the OS patch PHCO_43004. There was no chance of applying the patch for us as we were not able to start-up the cluster, hence, we verified with the OS admin whether PHCO_43004 is part of the bundle patch that deployed a while ago on HPUX 11.3x plat form. The OS admin then confirmed us that the particular patch is indeed part of the patch bundle deployed a while ago. We then requested the OS admin to roll-back the patch in the context to try our luck. After rolling back the patch from a node, Clusterstack successfully started on the node. We did the same on the rest of the nodes and everything came back successfully.The MOS note states that the issue likely to happen during the execution of the rootupgrade.sh script as part of the the cluster upgrade from 11.2.0.2 to 11.2.0.3 on the HPUX 11.3x platform, and when the voting disks is placed on disk/raw devices.We fail to understand why the HP didn't mentioned about this behavior despite there were similar issues recorded and addressed on the HP forums.
    Conclusion:The motive of his blog entry is emphasize the importance of verifying the compatibility of the PATCH before deploying in any environment.Also, it is highly advised to relink the binaries manually right after the OS patch deployment. The following demonstrates how to relink the binaries in 11gR2 GI RAC env.:
    as the root user:Unlock the CRS (ensure cluster stack is not running on the server)$GRID_HOME/crs/install/rootcrs.pl -unlock
    cd $ORACLE_HOME/rdbms/libmake -f ins_rdbms.mk rac_on ioracle

    References:
    • How to Check Whether Oracle Binary/Instance is RAC Enabled and Relink Oracle Binary in RAC [ID 284785.1]
    • hp-ux: 11gR2 GI Fails to Start or rootupgrade.sh Fails with "clsfmt: Received unexpected error 4 from skgfifi for file" if PHCO_43004 is Applied [ID 1508899.1]



    Star Rating in ADF Mobile Applications

    Shay Shmeltzer - Fri, 2013-05-03 13:01

    The new Oracle JDeveloper 11.1.2.4 just went out with a bunch of new features for ADF Mobile developers. Read more about it here - or watch this video.

    One small feature that somehow got left out from the above two links is that there is a new UI component offered in ADF Mobile now - Star Rating.

    The official tag name is dvtm:ratingGauge - and you can find it in the DVT Mobile AMX component palette under the Gauge section.

    You can configure how many stars you want to show for your rating in the data section of the property inspector, and you can even specify to advance in half steps.

    The component supports multiple shapes that you can choose from - star, diamond, circle, rectangle

    You can also specify a different shape to be displayed for the unselected spots.

    The code for the above 3 components is:
          <dvtm:ratingGauge id="ratingGauge1" value="2.5" maxValue="3" shape="circle"/>
          <dvtm:ratingGauge id="ratingGauge2" unselectedShape="dot" inputIncrement="half"/>
          <dvtm:ratingGauge id="ratingGauge3" shape="diamond"/>

    Categories: Development

    Enteprise Manager - looking at some myths

    Hans Forbrich - Fri, 2013-05-03 12:20
    Over the years, I've encountered myths around nearly every Oracle product.  Lately the number of challenges around Enterprise Manager seem to have increased.

    Blue Medora has created several Cloud Control extensions (plugins) and asked me to blog as a guest on their site.  I've decided to challenge some of the current myths.

    Feel free to read my comments there at

    http://www.bluemedora.com/blog/debunking-some-persistent-myths-about-oracle-enterprise-manager
    Categories: DBA Blogs

    Direct IO and db_writer_processes=36 on HP-UX reduced free buffer waits

    Bobby Durrett's DBA Blog - Fri, 2013-05-03 11:48

    In my previous post I explained that setting db_writer_processes=1, dbwr_io_slaves=32 made a 2-3 times reduction in run time of my test of 15 concurrent updates.

    Further testing has shown that an even greater improvement – really 10 times – can be made by switching to direct IO and maxing out the db writer processes.

    To switch my test database to direct IO I had to do two things:

    1. Ask one of our Unix administrators to remount the filesystem that contains the datafile being tested using these options: mincache=direct,convosync=direct
    2. Change this parameter: filesystemio_options=directIO

    Then I switched to what the documentation says is the maximum number of db writers:

    1. db_writer_processes=36
    2. dbwr_io_slaves=0

    I had setup a test that generated free buffer waits by changing my update statements to update more blocks than could be held in the buffer cache and I had set log_checkpoint_interval back to its default of 0 so we wouldn’t get frequent checkpoints.  I also increased the redo logs to 2 gig so they wouldn’t switch and checkpoint frequently.  So, my test was getting plenty of free buffer waits and it took roughly 30 minutes for my 15 concurrent update statements to update 1 million rows each.  This was with my current production settings of db_writer_processes=4 and dbwr_io_slaves=0.

    Here is a profile of the time spent by one update statement with no direct io and db_writer_processes=4 and dbwr_io_slaves=0:

    TIMESOURCE                    SECONDS PERCENTAGE
    -------------------------- ---------- ----------
    TOTAL_TIME                       2503        100
    free buffer waits                2097         84
    db file scattered read            253         10
    CPU                                61          2
    UNACCOUNTED_TIME                   57          2
    db file sequential read            26          1
    latch: redo copy                    5          0
    events in waitclass Other           2          0
    log buffer space                    1          0

    Here is a profile with the direct io options and db_writer_processes=36, dbwr_io_slaves=0:

    TIMESOURCE                    SECONDS PERCENTAGE
    -------------------------- ---------- ----------
    TOTAL_TIME                        171        100
    free buffer waits                  51         30
    UNACCOUNTED_TIME                   41         24
    db file scattered read             34         20
    CPU                                23         13
    log buffer space                   16          9
    events in waitclass Other           3          2
    latch: redo copy                    2          1

    Incredible.  Thanks to Jonathan Lewis and Mark Powell for all of their patient discussion of this issue with me on our forum thread.

    So, I guess the bottom line is that if you can’t get your filesystems mounted with direct IO options then the IO slaves may be the way to go in certain scenarios.  But, with direct IO it appears that upping the number of db writers is better than using IO slaves, at least in a scenario like mine were you have many concurrent updates filling the buffer cache with updated blocks and waiting on free buffer waits.

    - Bobby

    Categories: DBA Blogs

    Blackboard Changes Underway: Jay Bhatt Interview and Management Changes

    Michael Feldstein - Fri, 2013-05-03 10:51

    There is an interesting article today from Bill Flook , who has covered Blackboard as a business, including the story of Michael Chasen’s departure in late 2012 along with two rounds of layoffs.

    Blackboard Inc. has been a company in transition long before CEO Michael Chasen announced his upcoming departure.

    In fact, the presence of Blackboard’s longtime chief has been its most visible constant. So the big question coming out of Monday’s news is this: What will the ed-tech behemoth look like, sans Chasen? [snip]

    If anything, it’s surprising that Chasen stayed on so long after the private equity buyout. He and Providence had “mutually sat down and worked out the right time frame for there to be a transition,” Chasen said in an interview Monday afternoon. “I’ve been here 15 years,” he said. “While I love Blackboard, and I think there is huge opportunity in front of us, I’ve been doing this since I was 25 years old and looking for there to be a good time for me to phase out.”

    Today we are starting to get more insight into the changes, based on Bill’s interview with Jay Bhatt, Blackboard’s new CEO, and coverage of management changes at the company.

    What hasn’t changed are the external pressures. Competitors in the core learning management system (LMS) market like Instructure and Desire2Learn are eating into Blackboard’s once-dominant market share. Open source is challenging the traditional licensed software model, just as mobile and cloud-based services challenge native desktop software. Blackboard is an internationally recognizable brand, with a broad array of products and a powerful private equity player behind it. It is, however, still seen as the legacy player.

    In his first in-depth interview since joining Blackboard, Bhatt laid out his vision for navigating those challenges. And with less than half a year in the role, he’s marked off two key areas of investment: the online program management market, and international.

    Bhatt emphasized the need to grow top-line revenue.

    Bhatt was equally emphatic about what his mission at Blackboard isn’t.

    “Make no mistake, our goal is to be a top-line growth company,” he said. “Obviously, we want to be profitable, and we want to generate the returns that our investors want. But we need to grow the top line. Software companies that grow the top line effectively are really adding value to their industry, they’re not just monetizing their industry.”

    According to the article, there have been some significant management changes at Blackboard as well. Tim Hill (president of global marketing), Siegfried Behrens (president of global sales, recently hired from Microsoft) and David Mills (VP of R&D, formerly of ANGEL and MoodleRooms, key visionary behind xpLor) have all left the company in the past two weeks. Kayvon Beykpour (general manager of Blackboard Mobile and co-founder of TerriblyClever) is also on a leave of absence. Matthew Small has been promoted to president of international, and Jim Kelly from McGraw-Hill has been hired as VP of business development.

    Bill indicates that he will have more information and insight on Blackboard’s future direction coming out soon. Read the whole article here.

    The post Blackboard Changes Underway: Jay Bhatt Interview and Management Changes appeared first on e-Literate.