Feed aggregator

Oracle's Ajax-enabled contribution coming up

Omar Tazi - Thu, 2006-06-01 17:49
On May 17th during Oracle’s general session at JavaOne 2006, Thomas Kurian announced that Oracle is about to open source yet another exciting technology. Indeed, a year ago Thomas announced at JavaOne that we were going to open source our ADF Faces components which are server-side user interface components based on the JavaServer Faces standard. Thomas also announced that same year that we were going to make Eclipse better by leading a couple of initiative. Well, Oracle delivered. Today we have open sourced ADF Faces and we are leading three different Eclipse plug-ins which are Dali (O/R mapping design time for EJB30 and JPA), JSF tooling and co-leading the BPEL design time with IBM. As for the ADF Faces components (excluding the rich client or Ajax-enabled components) they have been donated to the Apache software foundation. The project is currently waiting to graduate out of incubation and more information can be found here:
http://incubator.apache.org/projects/adffaces.html

So what’s exciting about these Ajax-enabled JSF components anyway?

Oracle has enhanced its already extensive JSF component library ADF Faces, with a set of rich and interactive components that will be part of the ADF Faces Rich Client donation to the open source community. All these components leverage extensively the technique referred to as Ajax. Ajax is a Web development technique for creating interactive web applications. The intent is to make web pages feel more responsive by asynchronously exchanging data with the server, so that the page does not have to be entirely reloaded each time the user triggers an event. Ajax applications are typically more responsive and provide richer interactivity.

Oracle has already donated 100+ server-side (or thin-client) components to the Apache community. Additionally, Oracle will be donating a new set of rich Ajax-enabled components, which will bring the total number of donated components to 150+ JSF components.

The list below is a subset of the JSF rich component library that Oracle decided to contribute to the OSS community:

1- Table
The new table comes with the same functionality already provided by the current ADF Faces table component, plus some extra features that will dramatically enhance the end-user experience. The new table component comes with full support for asynchronously fetching data from the underlying services using the XMLHttpRequest object. The table provides scrolling through records, sorting, and single and multi-select out of the box, as well as built-in support for swapping columns at runtime.

2- Pop-up Menu
One of the coolest and most requested features in a rich and interactive end-user environment is the ability to right-click and display a popup menu at runtime. The new rich-client version of ADF Faces provides a popup component that can be attached to components such as a table. This will allow application developers to provide end-user actions via a popup menu that otherwise would have to be hard-coded in JavaScript. Now the developer experience is purely JSF/Java while the end-user gets the desired "thick-client" behavior in the browser.

3- Accordion
This is a common component in most desktop applications and helps the application developer optimize the use of real estate on the client side. The end-user can click on an accordion and display its content. The new ADF Faces component library comes with two different accordions: one that only displays one accordion at the time and one that can display multiple accordions at a time. So, now application developers will have the same type of functionality in the browser as they have in their desktop applications.

4- Tree
For most application developers the hardest Web widget to implement is a rich Tree widget. ADF Faces comes with a Tree widget that has built-in support for asynchronously communicating with the underlying services. When interacted with, the Tree component will not re-render the entire page, which enhances the end-user experience.

5- Menu
ADF Faces also comes with a "regular" menu component. This component can be used by application developers to create toolbars similar to what is used in desktop applications. The menu is leveraging Ajax and provides DHTML dropdown menus etc. From the application developer’s view there is no JavaScript needed to enable this JSF component - only JSF and Java.

With this new rich client component library application developers will be able to leverage Ajax to its fullest without writing a single line of JavaScript to get the rich desktop user experience on the browser. We are not sure yet if this donation is going to end up in Apache it is not up to us it is completely up to the Apache MyFaces community. Stay tuned!

Parsing XML in PL/SQL DOM and extractValue

Scott Schwab - Thu, 2006-06-01 06:16
I pulled this post from an PL/SQL-XML forum post I wrote a couple of weeks ago. I don't know if it answered the original question, but I thought it good enough to repost here.-----------------------------------------------------------------------------------------I have extracted data from XML in two waysUsing DOM to pull text values out by a value type document, with a list of , I have done theScott Schwabhttp://www.blogger.com/profile/14014003619353346507noreply@blogger.com0

Employees with No Usernames or entry in WF_ROLES

Jo Davis - Wed, 2006-05-31 23:39
And to list out all the active employees, their usernames and whether they have an entry in WF_ROLES:

select ppf.employee_number, ppf.full_name, fu.user_name, wr.status
from per_people_f ppf,
fnd_user fu,
wf_roles wr
where ppf.person_id =fu.employee_id (+)
and ppf.person_id =wr.orig_system_id (+)
and ppf.current_employee_flag='Y'


Run this to check everyone in the approval hierarchy is set up correctly if you are having any problems with testing transactions in Approval Manager and get the dreaded...
ORA-20001: The approver identified by the following parameters is invalid: originating system PER originating-system ID PER_ID. Please delete or replace this approver wherever they occur in AME data, including approval groups, list-modification conditions, and substitution actions. This approver does not have an entry in wf_roles. (ORIG_SYSTEM_ID=)

Oracle on Windows Server 2003 x64 Edition

Edward Whalen - Fri, 2006-05-26 08:58
Oracle has been around on Windows Server for many years (more than a decade – since NT). In that time there have been many changes to Oracle as features have been added and improved. However, in my opinion, the most significant improvement to Oracle on Windows was introduced about a year ago without much fanfare or publicity. This is the introduction of Oracle 10g on Microsoft Windows Server x64.

The introduction of Oracle on Windows Server x64 has overcome a limitation that has existed since the introduction of Oracle on Windows. The number of user sessions is limited with Oracle on Windows due to the way Oracle is architected on Windows and the basic architecture 32-bit chipset. Before I get into that, let’s review the 32-bit architecture and Oracle architecture.

The Intel x86 architecture was introduced in 1978 as a 16-bit processor. This was replaced in 1986 with a 32-bit version. I don’t think that anyone expected the 32-bit architecture to hang around this long. The 32-bit architecture allowed for up to 4 GB of virtual address space and 4 GB of RAM. This was later improved to allow 64 GB of RAM with PAE, but the virtual memory (process address) limits remain at 4 GB.

This remained in effect (for the PC server platform) until the introduction of the AMD Opteron and Intel EM64T processors. The EM64T and Opteron processors can access up to 256 Terabytes of virtual memory ( 2^48 bytes). The architecture allows this limit to be increased to a maximum of 16 exabytes (2^64 bytes). The EM64T and Opteron processors can currently address up to 1 Terabyte of physical memory ( 2^40 bytes). The architecture allows this limit to be increased to a maximum of 4 petabytes (2^52 bytes).

Oracle is made up of many independent processes (or threads) that perform independent functions. The server processes are created when a user connects into the Oracle instance and does work on behalf of the user such as retrieving data from the SGA, or reading data from the data files, modifying data in the SGA and presenting data back to the user. The background processes do work on behalf of the Oracle instance and consist of things such as the DB writer, Log writer, archiver, system and process monitors and many others. These are independent entities that make the Oracle RDBMS work.

In most operating systems the above mentioned entities are processes. In Oracle for Windows these entities are threads. The difference between a process and a thread is how memory is used. In essence, a thread is a subcomponent of a process. A process has its own memory and registers and acts somewhat independently. With the Intel x86 architecture a process can address up to 2 GB of memory, or 3 GB if the /3GB flag is used upon Windows startup. The operating system loads the process’s memory and registers into the CPU and start the process running. Whenever the process’s time slice is up or it puts itself to sleep waiting on an I/O or other resources the CPU unloads the process, loads another process’s memory and registers and starts it up. This is known as a process or context switch. The number of context switches per second can be seen in perfmon under the system object. A context switch is a very expensive operation.

In order to make this more efficient, Oracle was developed to use the Windows thread architecture. A thread is a subcomponent of a process. With a thread, multiple entities can use the same process, thus avoiding context switches. The process allocates the memory and each thread has a pointer into the same memory. The downside of using threads is that all Oracle entities, such as the server processes and background processes share the same 3 GB address space. This has caused an issue with memory, since each Oracle server process and background process can consume significant memory. The end result is that the number of Oracle user sessions can be limited on Windows. Our experiments have shown connection failures at around 300 – 400 users.

If you were to look into the task manager on a Windows system running Oracle you would see a process called oracle.exe. If you expand the columns to include thread count you would see that oracle.exe is made up of a number of threads (20-30, depending on what options you are using).

So, as you can see, the decision to use Windows threads for Oracle has turned out to be somewhat of a liability, since the virtual memory address space limitation has caused the number of supported sessions to be somewhat limited. However, the upside is that the reduction of contexts switches provides a performance improvement.

With the switch from Oracle 32-bit to Oracle 64-bit the virtual memory limitation is no longer an issue. Thus the liability has been turned into an asset. With no more session limitations and the additional advantages that you get from Oracle on Windows such as Active Directory integration, ease of use and stability it has become a great platform for Oracle. Our tests in the lab have seen no connectivity problems well over 1,000 sessions.

I am often asked by customers what platform they should choose for Oracle. I feel that there are many viable platforms. You should look at what you are comfortable with. If you are a Windows shop and are comfortable with Windows and have significant Windows expertise, then this is the platform that you should choose. Adding a foreign OS into a Windows shop just to run Oracle can be a costly mistake.

In the next few weeks I will be elaborating on some of the additional features that makes Oracle on Windows a great platform to use.

The Flashback Database Feature

Radoslav Rusinov - Thu, 2006-05-25 11:14
IntroductionThe Flashback Database is one of the most powerful new features in Oracle 10g coming as a part of Backup & Recovery enhancements.In this post you can find the result of my research and shared experience about this feature.What is the Oracle Flashback Database?Flashback Database is a part of the backup & recovery enhancements in Oracle 10g Database that are called Flashback Radoslav Rusinovhttp://www.blogger.com/profile/18163031714036680150noreply@blogger.com0

QUTE unit-testing Tip #1

Scott Schwab - Tue, 2006-05-23 11:44
I have been using Qute for a while to test my PL/SQL.  Someday soon I plan to write up a how-to for my fellow users, but till then I thought I would just post a quick hint now and then   Q) You built a Unit-Test, and now are adding Test-Cases.  Darn the table you want to check a value of does not appear in the Outcomes "Check contents of test element ..." pull down.  How can you add it?   A) Scott Schwabhttp://www.blogger.com/profile/14014003619353346507noreply@blogger.com0

Pre-Production Diagnostics Tests

Jo Davis - Tue, 2006-05-23 00:19
Metalink have rather helfully published a summary of the diagnostics tests which are useful in a pre-production situation to check config. I usually run these things just before UAT and again in Prod just before we turn it all on ;) Really useful for applications like iExpenses and iProcurement where you're implementing into an already live applications instance - no matter how good your change control is, prod will still not be the same as test ;)

To Go or Not to Go

Scott Schwab - Mon, 2006-05-15 19:51
Over the last few weeks it has become apparent that my project planning and time estimations skills need improvement. Since we don't have much of a training budget these days, I have been reading and taking some online classes through the ACM. Reading about requirement generation and UML for defining and documenting the high level design. This week weekend I was out enjoying some nice cool May Scott Schwabhttp://www.blogger.com/profile/14014003619353346507noreply@blogger.com0

Loading employees from Spreasheet

Jo Davis - Mon, 2006-05-08 20:09
Another trick I keep forgetting the name of so I'm storing it here....

Express setup tools in iProcurement is the thing that lets you upload employees from a spreadsheet. As of 11.5.10 it got moved to a concurrent program, as per Metalink Note 303087.1. Today the doco is on page 5-19 of the iProc user guide, but tomorrow it could be anywhere.

Have a great day!

ADF Faces checked in to open source !

Adam Winer - Sun, 2006-05-07 14:23

Transmitting file data .........................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
...........................................
Committed revision 404824.


... and it's done. ADF Faces has been checked into an Apache incubator at http://svn.apache.org/repos/asf/incubator/adffaces/trunk/. Now the real work begins!

Eclipse verses JDeveloper

Scott Schwab - Thu, 2006-05-04 06:51
Over the last week, I have been juggling Java IDEs, JDeveloper and Eclipse. After a week of trying both, I still don't know which I should use.If I was doing Java in the database, JDeveloper would be the easy choice. I am not, since the targeted Oracle edition is XE, and so no JVM.I use SQLDeveloper, so the look, feel, and feature set of JDeveloper has a comfort level.Using JDeveloper to Scott Schwabhttp://www.blogger.com/profile/14014003619353346507noreply@blogger.com0

Excel Tricks - How to split the AFF (or anything else) into different cells

Jo Davis - Mon, 2006-05-01 23:39
Once upon a time a management accountant (thankyou Amanda) showed me how to do this and I keep forgetting what it's called so I figure I should blog it so I don't forget and everyone else can add it to their bag of tricks ...

1) Select the range of cells that contains the text values. The range can be any number of rows tall, but no more than one column wide.
Note: There must be one or more blank columns to the right of the selected column or the data to the right of the selected column will be overwritten.

2) On the Data menu, click Text to Columns.
Follow the instructions in the Convert Text to Columns Wizard to specify how you want to divide the text into columns.

And that's how you split the accounting flexfield by it's delimiter when you're in a hurry and can't write a custom report :)

Have a great day!

Backup & Recovery Presentation

Radoslav Rusinov - Mon, 2006-05-01 09:11
Two weeks ago I had a presentation in front of Bulgarian Oracle User Group about Backup & Recovery Enhancements in Oracle 10g.The agenda of the presentation:Flash Recovery AreaFlashback Technology EnhancementsSpace Pressure & Database HangsPhysical Backup & Recovery EnhancementsIt includes information about enhancements in Oracle 10g (Release 1 and Release 2) related to Human Errors (Flashback Radoslav Rusinovhttp://www.blogger.com/profile/18163031714036680150noreply@blogger.com0

Back to Blogging

Radoslav Rusinov - Mon, 2006-05-01 09:04
Finally, after 6 months of silence I am writing my first post.In the past several months I didn’t have any free time to update my blog but now I am trying to change this. I hope that I will be able to write here much more frequently.I have a lot of interesting topics to write about. Some of them:- Presentation about Backup & Recovery Enhancements in Oracle 10g that I gave in front of the Radoslav Rusinovhttp://www.blogger.com/profile/18163031714036680150noreply@blogger.com0

The Oracle Certification Process

Eric S. Emrick - Sun, 2006-04-30 20:13

In late 1997, on what was a very shiny day (for all of DBA-kind I am sure), I proudly exited my local facility that proctored Oracle certification exams. On this glorious day I had passed the last of four exams required to obtain the coveted Oracle Certified Professional (OCP) title. I was certified on Oracle 7.3 and could not have been more proud. After waiting a few weeks to receive my certificate I brandished it in my home study. Make no mistake about it. I felt this had legitimized my 3 long years of Oracle work to date - I had reached an Oracle summit. At that time the OCP title was not nearly as pervasive as it is today. In hindsight, I suppose my enthusiasm was not entirely unjustified.

Let’s roll time forward nine years to 2006. I have not renewed my certification. For all practical purposes I am not an OCP. I certainly wouldn’t claim such on my resume having only achieved version 7.3 certification. Why haven’t I renewed my certification? After all, Oracle has bent over backwards to assist this erstwhile OCP by offering an upgrade exam. I can take a single exam and immediately upgrade my certification status to an Oracle 9i OCP. If I labored a bit more, I could take another upgrade exam and attain the highest OCP level available. Does this mean that I could, nearly overnight, claim expertise in all of the concepts and elegant nuances Oracle has built into its database since version 7.3? Professionally, on my resume, I suppose the answer is yes. Realistically, the answer is, no way!

I feel the only real way to stay current with our Oracle knowledge and exhibit the technical acumen associated with a proficient Oracle practitioner is to read (and reread) documentation and test features. There is absolutely no substitute for good old-fashioned studying in conjunction with trial and error exercises. I have interviewed dozens of Oracle Certified Professionals over the years, many of which struggled with the basics. I do believe that today, more than ever, the ubiquitous OCP title provides little insight into the qualifications of an Oracle DBA. However, I do believe that the certification process can lay an excellent framework for a strong understanding of the Oracle database. Just, not by necessity. It varies from person to person. One person with the same temporal experience with Oracle and an OCP title might appear lacking when compared to another with equal “qualifications” and accomplishments. Why? We all have different approaches to storing information for retrieval. I remember cramming for exams in college for the courses I loathed. I always seemed to make out okay. But, did I really learn the material or just buffer it long enough so that my mind could hurl it back out in the nick of time? I know, for those “undesirable” classes it was the latter. For me to learn I must:

1. Want to learn.
2. Be passionate about the topic.
3. and study, study, study.

Of course, there are exceptions to the rules, those supremely intelligent humans that roam the earth with a glut of gray matter that have little need for 3), leaving it for the rest of us to toil.

Am I a better DBA than I was nine years ago? I certainly hope so. Could I augment the breadth and depth of my Oracle knowledge by revisiting the certification process? Absolutely. But, couldn’t I really do the same by studying the material covered by the exams? After all, I am passionate about the topic and want to learn. I know. I know. It sounds like a really cheap excuse. Read the material, but, uh hum, skip the exams right? How convenient.

For those of you with your OCP please don’t think I am minimizing your achievements. I am certainly not doing so. I believe that the Oracle certification process can yield a very productive learning experience, insofar as we really take the time to authentically learn the material we are studying. It has been my experience, that if I have ostensibly forgotten what I have learned, as long as I truly understood the material while in the learning process, re-learning can be a very quick enterprise.

By the way, I think I will take the upgrade exams this year. But, this time I refuse to cram. I will revisit the exam topics with a cheerful willingness, as the science of Oracle database administration is a very exciting and challenging branch of knowledge.

UKOUG - Northern Technology day (and the rest)

Neil Jarvis - Fri, 2006-04-28 08:18
Today, the day after the UK oracle user groups first Northern technical day. Didn’t have time to add this yesterday, as I had to catch the final light of the day playing golf, to unwind from the day.

Yesterday started, ironically on Wednesday night, arriving a little late to meet the Geordie, the Scotsman and the only Southerner (or is that East Midlander). No, this is not the start of a regional joke.

I think the idea of the pre-‘technical day’ briefing was to go through the presentations and order for the day. NOT. Actually it was to get as much booze down in as little time as possible. Unfortunately, for my lateness I was several gallons behind – and that was just consumed by the Geordie.

As for the day, Niall’s two presentations were incredibly polished and professionally presented (as always); Apples to Oranges (comparing oracle in UNIX and windows) gave some food for thought and areas to go away and test yourself; ‘Oracle SE Real Application Clusters’ provided insight into Nial’s experience with installing RAC and also provided invaluable information to try it yourself.

Pete Finnigan presented ‘Many ways to become a DBA’ – the DBA role that is. He has an excellent web site highlighting all the issues with Oracle and provides solutions to these. My advice is to visit his site and check out your corporate database security. You will be very surprise (or shocked)

Joel Goodman, an excellent speaker and instructor for Oracle Education gave a presentation on Automatic Storage Management. He is a brilliant speaker and I could listen to him all day but unfortunately we could only provide 75 minutes. If you get the opportunity go and see Joel sometime.

The final presentation of the day, I had to chair, was Paul Langan from the University of Liverpool. He talked about his experience with installing RAC on Windows. When you put together the presentation from Paul, Nail and Joel you came away from some valuable information on installing RAC

Jonathan Lewis closed the day. The other stream was chaired by Lisa and to see comments by her please visit her blog.

Over 90 delegates attended the day, which is a good start for the future. A few colleagues of mine attended and some colleagues I used to work with were also there. I’d like to mention Neil Johnston who was attending his first visit to OUG and I hope the experience was valuable and enjoyable and I hope he will attend again and possibly, sometime, present at a SIG or conference.

Solaris and High Wait I/O CPU

Eric S. Emrick - Tue, 2006-04-25 17:11
A few days back a familiar little situation surfaced. Someone monitoring the OS was making claims that a particular machine was running at 100% cpu utilization during a period when a portion of the application was running slower than normal. The assertion being made was our system had a cpu shortage.

Given the fact that the application was running on a Solaris platform I looked at the vmstat history logs kept for just such an investigation. Per vmstat, for the time in question, there was plenty of idle cpu. Immediately, I thought this person must have been looking at the sar data on the machine in question. Sure enough, the sar data indicated a very low percentage of idle cpu. As you might have guessed, the percentage of time the system was waiting for I/O was rather large according to sar and, consequently, low idle time was being reported. I explained that it was typical for this system to run a high wait I/O percentage as reported by sar; after all, it is a database server with many processors. I also explained that low idle time as reported by sar does not necessarily mean a cpu bottleneck exists.

I remembered reading in Adrian Cockroft’s book, Sun Performance Tuning, that vmstat lumps wait I/O into idle time. So, naturally I was confident in my counter-assertion that our cpu utilization was just fine. I assuredly reached for my copy of the Sun Performance Tuning book to show where I had read this information years ago. I searched the index of the book and gave the book a cursory once-over to no avail. I started doubting whether I had reached for the wrong text! A bit frustrated I decide to perform a full book scan. Low and behold, I only got past two pages before my memory was vindicated. On page 3 it reads. “Whenever there are any blocked processes, all cpu idle time is treated as wait for I/O time! The vmstat command correctly includes wait for I/O in its idle value…” Viola!

The clock interrupt handler in the Solaris operating system runs every 10ms (or at least used to) to get cpu utilization information. It will search the state structure for each cpu and find that each cpu is in one of five states: user, system, idle, waiting for I/O or quiesced. Based on my understanding, the quiesced state is not really indicated by a value stored in a structure or variable associated with a cpu. It is simply the state when a cpu is not running user, system or idle threads and not waiting for I/O.

The point is, a high value for wait I/O generated from sar on a Solaris platform does not indicate a cpu bottleneck. Moreover, high wait I/O values do not necessarily indicate an I/O bottleneck. However, an I/O bottleneck could very easy manifest in high wait I/O percentages. You really need to look at your I/O service times to determine if the I/O subsystem is performing poorly.

For those wanting to know more on the algorithm used by Solaris to calculate idle and wait I/O cpu percentages read here. It is a bit dated, but describes how wait I/O is tallied in the Solaris operating system (at least in earlier versions). Interestingly enough this article cites Sun Performance Tuning, my trusty reference.

Multiple OC4J containers on one server

Wijaya Kusumo - Tue, 2006-04-25 05:56
In development, very often we want to have a controlled, dedicated environment for testing the new codes. This is why sometimes I find having multiple OC4J containers running on a single machine is very helpful. In this way, restarting one container will not affect other “projects”.One problem with this is port contention. In my Oracle Containers for J2EE 10g (10.1.3.0.0), the HTTP server is

DbVisualizer for Oracle work

Scott Schwab - Thu, 2006-04-20 19:24
While I trend to stay with open source tools for Oracle work, I do have to recommend a commercial software package. DbVisualizer from Minq Software is saving me some significant time. Yes it is another tool to run queries within, yes it is another browser of your schema, but two useful features I have found areIts ability to make entity relation graphs of just part of a schema, with easy Scott Schwabhttp://www.blogger.com/profile/14014003619353346507noreply@blogger.com0

Requirement writing

Scott Schwab - Wed, 2006-04-12 21:31
"Ah, I wish I knew what I should be doing", a statement I have made too often in my career. Oh well one way to address it is to have requirements, good requirements, testable requirements. Writing good requirements is hard, and so I have taken a break from my usual reading and have gone back to reading Mastering the Requirement Process.The problem with reading this book is its competition, I Scott Schwabhttp://www.blogger.com/profile/14014003619353346507noreply@blogger.com0

Pages

Subscribe to Oracle FAQ aggregator