Feed aggregator

Using OSGi to explain the difference between Factory and Broker pattern

Peter O'Brien - Wed, 2011-07-20 11:53
 Creating Modular Applications in JavaAfter some heated discussions about OSGi on The Server Side decided to put together a series of articles on the topic. Quite rightly I think, Peter Kriens has the honour of getting the series started. His article on developing modular applications provides one of the clearest explanations of the differences between the Factory and Broker pattern. Put simply, the Factory must know implementation details of what it is creating, while the Broker does not, since it does not really create anything.

Peter's explanation makes it very clear why Factory is good, but just not good enough, for enterprise applications. I hope he contributes more on the series.

MOS 5.3: Search and Knowledge

Charles Schultz - Wed, 2011-07-20 09:19
After my initial MOS 5.3 post, I received some most excellent feedback and an opportunity to speak with Jan Syssauw. He was exceedingly gracious and honored me with a 1-hour phone conference in which we covered many different aspects of Search. In response, I thought it would only be appropriate to follow up here.

I have a lot of respect for Jan (pronounced Yan). He is a very good listener and has a very professional demeanor, accepting my comments (and sometimes criticism) without belying how personally he cares for his team and his product. And yet he does - Jan very much wants Search and the KB to be an awesome experience, so I appreciate that he is reaching out to see what at least one user thinks.

In retrospect, I think I may have disproportionately emphasized certain features or areas by leveling the playing field (from my point of view) and perhaps giving the impression that I thought all areas were equal and required an equal degree of attention. Let me say that I wish to correct this. :) And I'll focus first on what I think the big issues are, and leave the small things for another time.

Search SuggestionsFirst and foremost, "Search Suggestions" are a huge improvement. I initially called these "type-ahead" or "autofill", but the proper term (so I have learned) is "search suggestions". I really like the direction they are going with this. We talked about some of the nuances; for example, the issue with versions I raised in my initial post (typing "Oracle server ent" gives me several suggestions, but none of them are 11g and only one is 10g). The reason Jan gave for this was that there are lots of suggestions that kind of fall off the end of the list - if I set my preferences to see only 5 "search suggestions", then even more of those suggestions would fall off the list. Jan hopes that the more popular and more relevant suggestions will start to percolate to the top of the suggestion list. I still find it odd that Oracle 7.3 would supercede 11g.... *grin*

Need for SpeedOk, so FLASH is REALLY slow for me, and I REALLY do not like the way FLASH was implemented for MOS. However, setting FLASH aside and focusing on Search, I was struck again by a need for speed. I think these are both very related, but I am going to break it into two different paragraphs to help spell it out.

First, there are times when typing in a somewhat generic term (ie, "install"), I have to wait several seconds (I counted 9 seconds to retrieve 1.1 million records). What about first_rows_k?? *grin* Seriously, Oracle's flagship product is supposed to be the database, and they call themselves the "Information Company". While 9 seconds out of my life is peanuts, other companies (do I need to spell it out?) don't have you sitting around for a few seconds wondering how your fingernails got a little dirty. I have even filed a bug on a case where you can do a search on nothing and the backend server times out - as if I wanted to see every single document. *laugh*

Second, Jan mentioned a couple times when we were talking about setting limits for maximum number of Search Suggestions and Number of Records to Display that setting the limit higher would negatively impact performance. How much? If I want, let's get extreme, 100 search suggestions and 1000 results per page, will my search slow down to 10 seconds, or 10 minutes?

Search needs to be fast! Freakishly fast. They need Jimmy Johns to come and tell them about fast! *grin*


Preferences, options, filters....This one is quite tricky, and I partially found the right words when I spoke to Jan and I hope I communicated it clear enough. I and other customers have asked for more options, more flexibility, more controls. And by golly, Oracle delivered! We know have Preferences, various ways to set filters via PowerView, Product, Task/Intent, etc. In my opinion, the way these options are presented to the user are a bit confusing. Take for example PowerViews. PowerViews came out a little while ago (MOS 5.1, 5.2?) and thus are a separate form of customization than, say, refining a search via the Knowledge Browser options (by Product, Task, etc). If I set a PowerView to view only Solaris platforms, that affects all my searches. So even though the PowerView summary is at the top of the page, I often forget I have a PowerView set and I rather puzzled when various search results are filtered out. Imagine trying to look for patches specific to Red Hat if you have a PowerView set for Solaris. :)

I do think it is awesome that Oracle is giving us, the customer, this much flexibility and control, and I applaud that. I only hope that we can work together to make the presentation of that power and flexibility more aesthetic and easier to grasp. In some ways, it is almost like going from a FPS game with simple controls to a Flight Simulator with tons of controls. I think this issue will be a matter of acclimation and user training for advanced users that want to take advantage of such knobs and levers; all other users wanting a quick, "just get me the results like Google" approach should not have to worry about these extra bells and whistles. Perhaps one possible way to approach this is to have an "Advanced Search" preference, and consolidate all such advanced features in one area. Maybe. At the very least, have the one preference to toggle the kitchen sink on and off. :)


And some lower-priority itemsSome other low-hanging fruit we can take advantage of might be to reduce confusing by consolidating the use of "Task" and "Intent". My guess is that a bunch of folks got together and brainstormed on what to call this, but could not come to a final decision without offending others, so they compromised. :) So I will say, as one customer, just call them Tasks. Forget about "Intent". In my mind, "intent" sounds like you want to practice your ESP or something. But you knew that before I typed it, right....

Redo the way an article is displayed. For a while now, the articles slide in from right to left, squeezing the left-hand side. Either get rid of that effect, or make it happen in .4 seconds max.

I like the "intent" (tongue in cheek) behind the "auto-detection" features. When on the conference with Jan, he demonstrated what this auto-detection is currently doing; for example, if you type "install" in the search box, you wait a few seconds than get a screenful of suggested articles. At the top of the list is a box asking you to clarify your intent (hmm... there is that word again), which can be used to help filter results. A similar thing happens if you search for database (refine by product, for example). This is somewhat similar to what we developed at "The Bridge".

Certification Preparation Showcase: uCertify PrepKit

OCP Advisor - Wed, 2011-07-20 02:11
Oracle Certified Professionals Blog is introducing a new feature called Certification Preparation Showcase to introduce blog readers to certification preparation education providers and their products. These independent review will highlight the features available in the offerings so that blog readers are aware of the vendors. This blog does not endorse or recommend any specific vendor. Certification candidates should use their best judgement before buying any products or services reviewed on this blog. OCP Advisor hopes that Certification Preparation Showcase will assist blog readers in the evaluation of certification related products or services.


The first product which is being reviewed in the Cert Prep Showcase is uCertify PrepKit from uCertify LLC. The company has been offering certification preparation study kits for more than a decade. The current portfolio covers certification study material for leading companies such Microsoft, Oracle, Cisco, IBM and others. The Oracle certification exams that are covered by uCertify include OCA and OCP 11g, Oracle EBS 11i DBA OCP and OCP Java EE among others.

The certification preparation material is available as a download with a list of 15 questions diagnostic test available for free. If you have bought the kit, a license key will reach your e-mail inbox to activate the complete features of the kit. The exam PrepKit consists of a Test Engine with multiple simulated tests. For review purposes, I had downloaded 1Z0-047: Oracle SQL Expert certification kit. There are 5 full-length practice tests and 1 'Final Test' to prepare oneself for the actual exams. One can also create a custom test and a fixed time test using the question bank in the test engine.

The test kit also provides nearly 300 flash cards, study notes and tips for taking the exam. The test kit covers all the sections mentioned in the exam content on the Oracle certification website. The test engine has been built to closely resemble the testing platform one would encounter for an actual exam. So preparing for a certification exam using the PrepKit will be a familiar experience on exam day. The best benefit of a Test PrepKit like this would be to use as a test simulation tool rather than a guide to learn concepts. There are several Oracle Press and other publications available for reference guides. A hands-on practice on any database is highly recommended. If one has no access to a test database, download Oracle XE and practice commands for Oracle SQL Expert Exam. Practice makes perfect and by taking the simulated tests multiple times, the chances of success is almost assured.

OCP Advisor interviewed Ron Dayal, Customer Happiness Manager at uCertify LLC about their certification preparing offerings.

OCP Advisor: Please tell us about your company. From when did you start offering Oracle Certification prep kits?

Ron: uCertify is a leading training provider for the IT Certifications exams. For the past 15 years, uCertify has specialized in exam preparation solutions for all major certification exams, from vendors, such as Microsoft, Oracle, Adobe, CompTIA, Cisco, EC Council and more. We are available 24 x 7 x 365. All uCertify PrepKits come with a 100% money back guarantee, which is the best in the business. Students pass in their first attempt using our prepkits, else we refund the cost of the prepkit. uCertify is committed to serving its customers with innovative, reliable, and high-quality products through constant research and development, keeping in mind the latest pattern of the various exams.We began offering our prepkits for Oracle certifications back in 2003. Since then, we have continuously added to the Oracle test prep suite keeping up with Oracle’s certification offerings, including all Sun based prepkits.

OCP Advisor: When would you recommend a candidate to start using your prep kit?

Ron: We recommend that students begin using our prepkits as soon as possible. Our prepkits provides information about exam objectives, lots of study material and dozens of practice questions which not help reinforce concepts, but hones practice skills until they have achieved mastery of the subject.

OCP Advisor: Tell us how you develop the practice tests?

Ron: Our prepkits are crafted by industry experts from within uCertify, as well as from the field, They are typically certified professionals themselves, and are subject matter experts in the area of certification they are writing for. These professionals understand the problems that students face while preparing for their certification exams, and ensure that the prepkit material they author, helps student pass their certification exam in their first attempts.

OCP Advisor: You advertise a very high success rate in certification exams (98% plus) for your customers. What makes that possible?

Ron: uCertify places a very high emphasis on content quality. Our content authors, be it in-house uCertify employees, or contracted IT professionals with relevant experience, are held to extremely high standards. In addition to stringent checklists and peer reviews, several prepkits are also reviewed by ProCertLabs, a company regarded by many certification vendors, as being very qualified to review a test prep provider’s work. Every piece of material in our prepkits is authored and reviewed via a strict checklist to ensure high quality standards.

OCP Advisor: What advise would you give to Oracle certification candidates preparing for certification exams?

Ron: Practice, Practice, Practice! Invest in a high quality prepkit provider such as uCertify, and go through all study material, and take/retake the tests until they score 95% or higher in all the practice tests they take. Readers of OCP blog can use discount code: UCPREP when checking out and avail of a 10% discount.
 
Certification Test Preparation Vendors who are interested in having their products reviewed in the Certification Preparation Showcase, please e-mail OCP Advisor at ocp.advisor@gmail.com

Inviting Oracle Certified Professionals to Be Featured in OOW 2011 presentation

OCP Advisor - Tue, 2011-07-19 15:08
OCP Advisor is presenting at Oracle OpenWorld on Monday, October 3, 2011 at Moscone West Room 3000 from 5.00-6.00pm. The presentation topic is 'OCP Advisor Tips on How to Become an Oracle Certified Professional'.

If you are Oracle certified, you are invited to get in touch with me at ocp.advisor@gmail.com to be featured as one of the case studies in the presentation. As a token of appreciation, I will send Amazon gift certificates for $25 if you are selected for the case study. A special shout out to Oracle ACE and Oracle ACE Directors to participate in this collaborative presentation. The session abstract can be found here.

Oracle University Full Day Sessions at Oracle Open World 2011

OCP Advisor - Mon, 2011-07-18 02:23
Oracle University is offering a one-day training event on October 2, 2011. There are eight deep-dive training sessions to choose on the first day of Oracle OpenWorld 2011. The sessions will be held at Hotel Nikko San Francisco. The registration fee for the Oracle University event is $800 for a full day of training.

The 8 training sessions are as follows:
  1. Oracle and Exadata. The Perfect Fit!
  2. OpenWorld Certification Exam Cram: Oracle Database 11g: New Features for Administrators
  3. Oracle Exalogic Elastic Cloud Overview
  4. Making the Most of Oracle User Productivity Kit (UPK)
  5. Oracle WebLogic Server 11g: Administration Essentials
  6. Oracle Business Intelligence 11g: Overview to Analyses and Dashboards
  7. Oracle SOA Suite 11g: Administration
  8. What's New in Oracle Solaris 11

Those preparing for Oracle Certification exams and attending Oracle OpenWorld 2011 may like to add this Sunday schedule to their conference calendar.

Oracle Certification Discussion Forum

OCP Advisor - Sun, 2011-07-17 07:55
Oracle Technology Network hosts dozens of discussion forums online.

One of the Technology Network Community forum that every Oracle certification candidate should visit is the Certification forum.
One can post questions and answers on this forum for certification related topics. All discussions are threaded so it is easy to find a discussion topic.

Participation on the forum is encouraged with points awarded for postings, helpful answers and correct answers. As one adds points, there are recognition levels of Pro, Expert and Guru that are awarded.
You are not alone when you are preparing for certification. There are hundreds all over the world who are preparing for the same exam and maybe thousands who have taken the exam before. Many certified professionals are regular forum members and answer your questions in a matter of hours! It is the best expert advice and it is all free!

OCP Support Form - Help Is Just A Click Away

OCP Advisor - Sat, 2011-07-16 02:13
Certification candidates have questions for the certification program team. These used to be answered via e-mail. The volume of e-mails was difficult to manage and tracking requests were quite a daunting task for the OCP Program Team. The OCP Support Form has made correspondence through e-mail redundant.



For any issues or questions about an OCP exam, please complete and submit the form below. An OCP customer service representative will contact you via email within 5 business days. It is always worthwhile to visit the OCP FAQ page before submitting the form. The answer may be already posted there.

Blogging at Pythian

Jared Still - Fri, 2011-07-15 16:11
As I started working for Pythian at the beginning of the year, I have started to blog there as well.

First post is today:  Applying External Timing Data to Untimed Events

I may still post here from time to time. Work at Pythian is quite enjoyable, but it is always so busy there is less time for blogging.  At least for me anyway, as I have non-Oracle interests to attend to as well.
Categories: DBA Blogs

Introducing Oracle Unified Directory 11g

Mark Wilcox - Fri, 2011-07-15 13:48
=> July 21, 2011 at 10:00am PT / 1:00pm ET / 19:00 CET Enterprises face many choices for managing identity data: to virtualize or not to virtualize, to synchronize data or store data. The choice of directory server means choosing between multiple vendors and compromising between features and performance. Oracle Unified Directory 11g defines a new category in the directory server market. Join us for this launch webcast to learn how Oracle Unified Directory 11g provides scalability and a complete directory server solution. Register by clicking here.

Oracle Learning Library - A Hidden Treasure Trove

OCP Advisor - Fri, 2011-07-15 04:42
The Oracle Learning Library is a hidden treasure trove of free online learning waiting for you to discover.  The content originates from a variety of sources including Oracle Technology Network and Oracle Blogs.




There are Oracle by Example (OBE) tutorials that provide hands-on, step-by-step instructions on how to implement various technology solutions to business problems. There are automated demonstration  of product features are also available. There are tutorials also available with explanation of concepts and and step-by-step instructions for a particular product or topic. Blog posts and white papers from Oracle Development and Oracle Product Managers complete the portfolio.

One hopes that Oracle Learning Library is adopted increasingly by Oracle product teams as a key channel for information sharing. I am sure in the coming months and years you will hear more about this site. Remember, you first learnt about it here!

Oracle Unified Method (OUM) Certification - Beta Exam Available

OCP Advisor - Thu, 2011-07-14 02:12
Oracle Unified Method (OUM) is now the standard implementation and support methodology for all products. I had posted about OUM Training in a posting earlier this year. The training covered Level 3 instructor-led training and training material was provided for all levels.

Oracle Certification Program team has launched Oracle Unified Method 5 Certified Implementation Specialist certification. The exam content covers the following:
  • Level 1 - Oracle Unified Method Overview and Awareness
  • Level 2 - 3 Focus Area Specific Overview: Manage, Envision and Implement
  • Level 2 - Use Case Overview
  • Level 3 - Gathering Requirements

A beta exam is now available till August 20, 2011. The exam duration will be about three hours and cover 120-150 questions. The exam price is discounted and should be a very attractive proposition to project management professionals working in the Oracle ecosystem. It is a difficult temptation to resist. I think I will register for the beta exam today.

Blog Photos are courtesy of Fotolia (www.fotolia.com) where there are 13,000,000 + images. Browse the site and learn more why so many professionals within the media and communications industry are using the site.

MOS 5.3

Charles Schultz - Thu, 2011-07-14 01:01
re: Document 1326487.1.  My Oracle Support Release 5.3 Features

I knew that new features/enhancements were coming to MOS this past weekend, and I was looking forward to seeing what they were. I had heard that Search was improving. So when I read this Release Document, I was just a little underwhelmed at the level of detail. The "Release Highlights" all sound good, but I wanted meat. And then just today I realized that the details are actually in another document, My Oracle Support Release 5.3 Detailed Benefits Table (Doc ID 1329876.1)

More details in this document. But still not quite what I was hoping for. None-the-less, I decided to look into them.

Please note, I am a bit cynical in my comments. I realize a lot of hard work went into these enhancements, and there is a ton of "stuff" going on behind the scenes that I do not know about.


[EDIT: Egads, Blogger really mucked up my tables!!! Holy off-the-page, batman!]


Knowledge preferences
Customize your preference page
Knowledge preferences page on the Settings tab allows you to customize your knowledge settings
There are only 4 things you can customize, "Search Term Suggestion" (and associated number, max of 10), "Search Intent Clarification", "Search Result Set Length" (with a measly max of 25), and default "Searched Sources". That's it. I am disappointed. The "Searched Sources" only has two options, either the KB or ALL. Some preference. Better than nothing, I guess.



Support Identifier ManagementAbility to delete multiple Support Identifiers at onceNew window added for sizing control to change number of rows displayed for Support Identifier and managed users




meh. Could be helpful for organizations with really large numbers to manage. Glad we don't.




Search ImprovementsSearch Term Suggestion; search box has a type-ahead feature offering search suggestions using our knowledge base dictionaryFaster search results






Here we go, the fabled Search Improvements!
I have put this to the test already and it does help a bit. The only downside is that it is only available in FLASH (of course), since FLASH slows things down for me.




Message Center on the DashboardThis new feature consolidates all the pending user action for Automated Service Request, Configurations, and new user Support Identifier requests




I had to look carefully for this - it is really small, and in the upper right-hand corner, and often occluded by the annoying green slider message box that I was told was going away. Automated Service Requests (ASR) are the domain of Sun products, thus not relavant for me personally. I could care less if a "pending user request" popped up, since I get mailed about them anyway. I am actively looking for a way to make this "Message Center" go away. Not sure why this is under the "Search Improvements" section.



Auto-detection of product namesQuickly refine your search results for a product


This is still a bit buggy. When I type "Oracle server ent", I get 8 products, 6 of which are more than 6 years old, nothing for 11g or 9i, only one for 10g. "Quickly refine"?!? Or maybe I am simply using it incorrectly - not really obvious to me.


Auto-detection of common tasks and intentsQuickly refine your search results based on selected task 


Not exactly sure how this works. Obviously, not relevant for the search bar on every page, since there is no "task" selected. And it seems you can only select a "task" once a product is selected, no way to skip right to it. When I did look for a "task", the "Customer Recommended" document was #23 out of 25. I see that it is sorted by date, but not finding any way to sort by, say, reverse date, or even "Customer Recommended" for that matter. Or even by rating. The "Refine Search" bar on the left is really slow.



'Customer Recommended' indicator on search hit listBenefit from the feedback of other users who liked knowledge base documents



Mentioned above. It is not clear exactly how a document gets the fabled rating. Seems similar to the "like" button.



More comprehensive and intelligent search tipsAdditional guidance to get the most out of the search engine


Not much to say about this one - I'll have to take their word for it. The "type-ahead" auto-fill thing is probably the most visible aspect, and I like it so far.



More search sources in the form of additional product documentationExpands the knowledge base of possible solutions



So, now, I can search for JDEdwards and Sun documentation. Umm.. yippee?



Ability to set default search source to "All Sources" (in preferences)Expands the knowledge base of possible solutions



Mentioned above, but don't oversell it. A small step in the right direction. :)



Browse / Navigation ImprovementsRedesigned Knowledge Management tab with new "Browse Knowledge" regionEasier to find content that solves your problem




Not seeing how this works. Thus not easier at all. How do I do a search for a specific product and a specific intent with my keywords? Seems like when I enter keywords in the search bar, it completely ignores what I selected for product and intent. Where are the enhancements?



Direct navigation to "premium content" using task, product and release refinementEasier to find content that solves your problem



Easier, eh? Still can't find it. I must be really stupid. :)



Removed product browse tree (in favor of Knowledge Guidance)Easier to find content that solves your problem




Umm... they just replaced "tree" with "hierarchy". And moved it into a drop-down button. Oh wait, they had that before as well.




Health RecommendationsAbility to set lifecycle (Production, Stage, Test, Development) of multiple Systems at once Easier to maintain and manage Systems and Targets





Interesting. I guess that is a good thing, and it seems to work. Gotta love the little warning message (which should be removed, imo):
"The change will take approximately 2 seconds to complete. A message will inform you of the final result."


I am not going to comment on the other 5 sections of "Health Recommendations" because I do not use them. For folks that do, I can see how these might be good things, but given what I have see so far with other "enhancements", I have to question how much of an improvement this actually is.



Guided ResolutionTask-based Advisor helps to guide through a series of steps in a taskHelps you solve problems based on the process or workflow



I have no idea what this means. Where does one find this "Task-based Advisor"? Going to have to skip this whole section because I have no idea what they are talking about. It does recall to mind the old Libraries they used to keep. Again, sounds like a good idea, just not really obvious. Or maybe I really am dumb.



My Oracle Support CommunityNew user profile enhancementAllows user to enter biographical or specialized information and the ability to control emails sent from Oracle.





Not finding anything I want to fill out in this "profile enhancement". Provide my education?? Manage Certification logos? Gah! And the only knob for "controlling emails" is a radio button that says "receive emails based on your community subscriptions". Not what I was expecting at all.



Ability to upload documents, pictures, and videosAdd information in the format that communicates your question or situation clearly 



This sounds like a good thing - I did not realize you could not do that before. But I only have 8 Community points, so....



Allow users to view and manage the documents they subscribe toHelps to manage solutions so you can solve problems faster



This made me laugh.






General notes:

  • still see annoying green slider box in upper right.
  • when displaying a document, still see the annoying "slide left" effect that takes a couple seconds.
  • Good ideas and intention. Disappointed with the implementation.
  • still hate the lack of any decent "back" functionality (a FLASH thing). Clicking through breadcrumbs erases options I might have selected earlier. (Big problem with search!!)
  • new tab for "Advanced Customer Services". Really, an advertisement?!? How do I delete that?



To Do:

  • Learn more about Health Recommendations and Guided Resolutions. Dare I have high hopes?

Oracle EBS 11i Certification: Time for Retirement

OCP Advisor - Wed, 2011-07-13 11:35
Oracle Certification program team announced on their blog that several certificaton tracks and exams will be retired on November 1, 2011.
All the certification tracks and exams have the next release already available.
For Oracle EBS 11i certificaions launched more than 5 years ago, this signifies an end of an era where EBS certification resarted again after R11.

 
The EBS 11i Certification Paths being retired are as follows:
Oracle 11i Financials Certified Professional Consultant, Payables
Oracle 11i Financials Certified Professional Consultant, Receivables
Oracle 11i Supply Chain Certified Professional Consultant, Purchasing
Oracle 11i Supply Chain Certified Professional Consultant, Order Management
11i Workflow Certified Expert
11i System Administrator Certified Expert
Oracle 11i Applications Database Administrator Certified Professional

The related certification exams that are being retired as follows:
 1Z0-211 Oracle 11i General Ledger Fundamentals
 1Z0-212 Oracle 11i Payables Fundamentals
 1Z0-213 Oracle Receivables 11i Fundamentals
 1Z0-221 Oracle 11i Inventory Management Fundamentals
 1Z0-222 Oracle 11i Purchasing Fundamentals
 1Z0-223 Oracle 11i Order Management Fundamentals
 1Z0-231 Oracle 11i 2.6 Implement Workflow
 1Z0-232 Oracle 11i System Administration
 1Z0-233 Oracle 11i Install, Patch and Maintain Applications
 1Z0-235 Oracle 11i Applications DBA: Fundamentals I
 1Z0-236 Oracle 11i Applications DBA Fundamentals II

What does this announcement mean for those who are already certified on EBS11i?
Certification credentials will continue to be valid after the EBS11i certificatin exams are discontinued.

What does this announcement mean for those who are preparing for EBS11i certification exams?
The certification exams will be offereed through October 31, 2011
Candidates must successfully complete the required certification exams by October 31,2011.
Re-takes will not be available after this date.
Hence, be sure of passing or schedule EBS R12 certification exams instead!

Blog Photos are courtesty of Fotolia (www.fotolia.com) where there are 13,000,000 + images. Browse the site and learn more why so many professionals within the media and communications industry are using the site.

Partitioned outer join bug

Rob van Wijk - Tue, 2011-07-12 15:00
I have experienced a strange bug when constructing an example showing how a partitioned outer join works. I used a setup which resembles a situation I have consulted about recently for timeseries data. The table can hold multiple timeseries whose data is coming from multiple sources. The data itself contains volumes that are reported for every 5 minutes. This table looks like this:SQL> create Rob van Wijkhttp://www.blogger.com/profile/00499478359372903250noreply@blogger.com5

OCP Advisor To Present At Oracle OpenWorld 2011

OCP Advisor - Tue, 2011-07-12 02:31
Oracle OpenWorld 2011 conference will be held in San Francisco, CA from October 2-6, 2011. The session catalog is already available online here.  Once again, Oracle Certification blog author, OCP Advisor, has been invited to present at the conference. If you are attending the conference, please visit Moscone West Room 3000 on Monday, October 3, 2011 from 5.00-6.00pm to hear: "OCP Advisor Tips on How to Become an Oracle Certified Professional".
This is one of the 1785 sessions being presented at the mega event.  One lucky member of the audience will win a FREE certification voucher for an Oracle Certification exam!
So please mark you calendar to attend the session.

Tutorials zur SQL Model Clause

Rob van Wijk - Mon, 2011-07-11 14:59
Marcus Matzberger has translated five of my posts related to the SQL Model Clause for the German speaking Oracle community. Those posts now contain links to the German versions and I've listed them here for convenience as well.SQL Model Clause Tutorial Part OneSQL Model Clause Tutorial Part TwoSQL Model Clause Tutorial Part ThreeCalculating probabilities with N throws of a dieChoosing Between SQLRob van Wijkhttp://www.blogger.com/profile/00499478359372903250noreply@blogger.com0

SOA 11g PS3/PS4: Significant Purging Performance Improvement

Marc Kelderman - Sat, 2011-07-09 02:16
Create the following index in the *_soainfra schema to improve the purging significantly. And with significant I mean SIGNIFICANT in upper-case :-). We have loads of instances too purge, +100K. The purging first took more than one hour. After applying the index it took minutes...

CREATE INDEX DLV_MESSAGE_CIKEY_IDX1 ON DLV_MESSAGE
(CIKEY)
LOGGING
TABLESPACE SOAINFRA
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;

SOA Suite 11g: AQ a tuning tip

Marc Kelderman - Fri, 2011-07-08 06:28
When you use AQ to dequeue message to the SOA Suite, keep in mind the maximum number of connections to your database.

A 4 node OSB cluster the does the dequeue and sends the messages to a 4 node SOA11g Cluster could lead that the SOA11g server will get stucked.

The server can get overloaded in the following situation:
  • When there are a lot of messages in the queue, for example 8000+ messages.
  • You stopped the SOA11g for maintaince 
  • You disabled the AQ-Proxy service in OSB.
When you start the SOA11g environment, you will notice that alle servers and their services/processes are running normally. But...

The issue is when you want to enable the AQ-Proxy service in OSB. This will lead that all OSB servers in the cluster will dequeue the messages and sends them to SOA11g.  SOA11g is trying to process all the services, but will fail at the end.

This is because it reach the maximum number of session in the database. This is not shown in the log files. The SOA11g log file says that the database "SOALocalTxDataSource" is suspended. This is not the case if you look in the Weblogic console (!). While the database alert log file says it reach the maximum session to the database.

This overloading can be solved by setting the maximum connections to the database for the datasources "SOALocalTxDataSource" and "SOADataSource".

In our case we have a 4-node cluster. This results in:
SUM(
    ("SOALocalTxDataSource" -> Maximum Capacity * 4)
   +
    ("SOADataSource" -> Maximum Capacity * 4)
)If max capacity is 40, the total connections reach 320 sessions (!), when you enable the proxy service on OSB.

Make sure you can create enough sessions to your database.

Core ADF11: UIShell with Menu Driving a Dynamic Region

JHeadstart - Thu, 2011-07-07 21:44

In this old post in the Core ADF11 series, I explained the various options you have in designing the page and taskflow structure. The preferred approach in my opinion that maximizes flexibility and reusability, is to build the application using bounded taskflows with page fragments. You then have various ways to disclose these task flows to the user. You can use an dynamic tabs as described in this post. You can also embed the taskflows using a dynamic region in a page. The application menu then drives the content of the dynamic region: clicking a menu option will load another taskflow in the dynamic region.

 The initial drawback of this approach is that it adds some additional complexity:

  • You can no longer use standard JSF navigation with your menu, there are no pages to navigate to, only regions
  • The XMLMenuModel, an easy way to define your menu structure in XML, cannot be used as-is. The selected menu entry when using the XMLMenuModel is based on the current page, and in our design, the whole application consists of only one page, the UIShell page.
  • The dynamic region taskflow binding should contain a list of all parameters of all taskflows that can be displayed in the dynamic region.

    This is a rather ugly design, and the developer of the UIShell page would need to know all the parameters of all taskflows that might be displayed in the dynamic region. A cleaner implementation is to use the parameter map property against the taskflow binding. However, when using the parameter map, you need to do the housekeeping of changed parameter values yourself when you want the taskflow to refresh when parameters change. In other words, just specifying Refresh=ifNeeded on the taskflow binding no longer works because ADF does not detect changes in a parameter map.

Fortunately, you can address this complexity quite easily by creating some simple, yet powerful infrastructure classes that hide most of the complexity from your development team. (The full source of these classes can be found in the sample application, download links are at the bottom of this post)

  • A DynamicRegionManager class that keeps track of the current task flow and current parameter map 
  • A TaskFlowConfigBean for each task flow that contains the actual task flow document path, the task flow parameters and a flag whether the parameter values have been changed.
  • A RegionNavigationHandler that subclasses the standard navigation handler to provide JSF-like navigation to a region taskflow.
  • A RegionXMLMenuModel class that subclasses the standard XMLMenuModel class to ensure the proper menu tab is selected based on the currently displayed taskflow in the dynamic region. 

The following picture illustrates how this UIShell concept works at runtime.

The UIShell page (with extension .jsf in JDeveloper 11.1.2 and with extension .jspx in JDeveloper 11.1.1.x) contains a dynamic region. The taskflow binding in the page definition of UIShell gets the currently displayed taskflow from the DynamicRegionManager class that is registered as a managed bean under the name mainRegionManager. The actual task flow id and task flow parameters are supplied by the TaskFlowConfigBean. The DynamicRegionManager manages the current taskflow based on a logical name, for example Jobs. When method setCurrentTaskFlowName is called on the DynamicRegionManager with value Jobs (and we will later see how we use the RegionNavigationHandler to do this), the DynamicRegionManager looks up the corresponding TaskFlowConfigBean by suffixing the Jobs task flow name with TaskFlowConfig.he methods getCurrentTaskFlowId and getCurrentParamMap and currentParamMapChanged then obtain and return the correct values using the JobsTaskFlowConfig bean.

Using this technique, you can configure your dynamic region completely declarative, there is no need to write any Java code. All you need to do is configure the mainRegionManager and task flow config beans, as shown below. 

In this sample, I configured the required managed beans in adfc-config.xml. When using ADF Libraries that contain task flows you want to show in the UIShell dynamic region, it is more elegant to define the TaskFlowConfigBean inside the ADF library. I usually define this bean in the adfc-config file of the task flow itself, below the  <task-flow-definition/> section.  It needs to be outside this section, otherwise the bean cannot be found by the DynamicRegionManager bean that is defined in the unbounded task together with the UIShell page. The advantage of this approach is that the config bean is placed in the same file as the task flow it refers to, the disadvantage is that beans defined outside the </task-flow-definition> section are not visible in the overview tab of a bounded task flow.

To set the current task flow name on the DynamicRegionManager, we use a custom RegionNavigationHandler class that you register in the faces-config.xml.

This class extends the default navigation handler, and overrides the handleNavigation method. The code is shown below. If the outcome contains a colon, the part after the colon contains the task flow name that should be set in the dynamic region.


With this class in place, we can use the action property on command components again to do region navigation, just like we are used to for normal JSF navigation, or navigation between page fragments inside a bounded task flow. The complete flow is as follows:

  • The menu item has the action property set to uishell:Jobs.
  • The region navigation handler set the current task flow name on the Dynamic region manager to Jobs (and navigates to UIShell page if needed) 
  • The dynamic region manager picks up the current task flow id and current parameters from the JobsTaskFlowConfig bean.

The last part of the puzzle is the RegionXMLMenuModel class that subclasses the standard XMLMenuModel class. This class overrides the getFocusRowKey method to return the focus path based on the current task flow region name.

With this class defined in the menu model managed bean, the menu will correctly display the selected tab.   

In a future post I will discuss how the same concepts can be applied to a UIShell page with dynamic tabs.

Downloads:

Categories: Development

Purging SOA Suite 11g, the Extreme Edition

Marc Kelderman - Thu, 2011-06-30 18:10
Did you ever wondered how purging is working in SOA 11g? I tried to look into the scripts from PS1 until PS4. From PS3 they redesigned the concept and focussed on scheduling and parallel execution. My experiences are mixed; parallel execution is nice, but adding some indexes solves our performance issue with purging of 400K+ instances. A document is made to describe what the best purging approach is.

It does not describe my approach :-). I think the PL/SQL packages are to complicated. This is due to the fact that the data model is not documented and does not contain (optional) foreign-keys. This makes the data model not efficient to understand if you have issues with it.

We discovered, in our production environment, that not all instances where purged. It was not possible to force the purge script to delete all the instances. Discussing with Oracle, results that purging can be done, via Enterprise Manager (EM). With EM you can delete them..., only one-by-one. If you have 40K+ of instances, this is not the way to go.

So, I dived into the various purging scripts from PS4 and try to understand them. I want a script that deletes ALL the instances older than X days. And yes, deleting all the instances, I could loose messages.

So this is my current result; an SQLPlus script that can be executed at any time (scheduled with crontab or windows scheduler).

spool soa11g_purge_script.log

set echo on
set verify on
set timing on

-- delete all instances older then 3 days
define days=3

alter session set current_schema=kim1_soainfra;
alter session set nls_date_format='yyyymmdd hh24mi';

variable cur_datetime varchar2(13)
exec select (sysdate - &days) into :cur_datetime from dual;

prompt Purging data until:
print cur_datetime
--
-- Purge the MEDIATOR data
--
delete from mediator_case_instance a where exists (select b.id from mediator_instance b where b.id = a.instance_id and b.created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from mediator_audit_document a where exists (select b.id from mediator_instance b where b.id = a.instance_id and b.created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from mediator_callback a where exists (select b.id from mediator_instance b where b.id = a.instance_id and b.created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from mediator_group_status a where exists (select b.id from mediator_instance b where b.group_id = a.group_id and b.created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi'));

delete from mediator_payload where modify_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from mediator_deferred_message where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from mediator_resequencer_message where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from mediator_case_detail where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from mediator_correlation where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from mediator_instance where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
commit;

--
-- Purge the BPEL data
--
delete from headers_properties where modify_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from ag_instance where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from audit_counter where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from audit_trail where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from audit_details where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from ci_indexes where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from work_item where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from wi_fault where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from xml_document_ref a where exists (select b.document_id from xml_document b where b.document_id = a.document_id and b.doc_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from xml_document where doc_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from document_dlv_msg_ref where dlv_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from document_ci_ref where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from dlv_subscription where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from dlv_message where receive_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from rejected_msg_native_payload where rm_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from instance_payload where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from test_details a where exists (select b.cikey from cube_instance b where b.cikey = a.cikey and b.creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from cube_scope where modify_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from cube_instance where creation_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
commit;

--
-- Purge the BPM data
--
delete from bpm_audit_query where create_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from bpm_measurement_actions where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from bpm_measurement_action_exceps where ci_partition_date < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from bpm_cube_auditinstance where cipartitiondate < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from bpm_cube_taskperformance where creationdate < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from bpm_cube_processperformance where creationdate < to_date(:cur_datetime, 'yyyymmdd hh24mi');
commit;

--
-- Purge the WORKFLOW data
--
delete from wftask_tl a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wftaskhistory a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wftaskhistory_tl a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfcomments a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfmessageattribute a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfattachment a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfassignee a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfreviewer a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfcollectiontarget a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfroutingslip a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfnotification a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wftasktimer a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wftaskerror a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfheaderprops a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wfevidence a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wftaskassignmentstatistic a where exists (select b.taskid from wftask b where a.taskid = b.taskid and b.createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from wftaskaggregation where taskcreateddate < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from wftask where createddate < to_date(:cur_datetime, 'yyyymmdd hh24mi');
commit;

--
-- Purge the COMPOSITE data
--
delete from composite_sensor_value where date_value < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from composite_instance_assoc where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from attachment c where exists (select a.key from attachment_ref a where a.key = c.key and exists (select b.ecid from composite_instance b where b.ecid = a.ecid and b.created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi')));
delete from attachment_ref a where exists (select b.ecid from composite_instance b where b.ecid = a.ecid and b.created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi'));
delete from composite_instance_fault where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from reference_instance where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from component_instance where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');
delete from composite_instance where created_time < to_date(:cur_datetime, 'yyyymmdd hh24mi');

commit;

--
-- Reclaim disk space
--
alter table mediator_case_instance enable row movement;
alter table mediator_case_instance shrink space;
alter table mediator_case_instance disable row movement;
alter table mediator_audit_document enable row movement;
alter table mediator_audit_document shrink space;
alter table mediator_audit_document disable row movement;
alter table mediator_callback enable row movement;
alter table mediator_callback shrink space;
alter table mediator_callback disable row movement;
alter table mediator_group_status enable row movement;
alter table mediator_group_status shrink space;
alter table mediator_group_status disable row movement;
alter table mediator_payload enable row movement;
alter table mediator_payload shrink space;
alter table mediator_payload disable row movement;
alter table mediator_deferred_message enable row movement;
alter table mediator_deferred_message shrink space;
alter table mediator_deferred_message disable row movement;
alter table mediator_resequencer_message enable row movement;
alter table mediator_resequencer_message shrink space;
alter table mediator_resequencer_message disable row movement;
alter table mediator_case_detail enable row movement;
alter table mediator_case_detail shrink space;
alter table mediator_case_detail disable row movement;
alter table mediator_correlation enable row movement;
alter table mediator_correlation shrink space;
alter table mediator_correlation disable row movement;
alter table mediator_instance enable row movement;
alter table mediator_instance shrink space;
alter table mediator_instance disable row movement;
alter table headers_properties enable row movement;
alter table headers_properties shrink space;
alter table headers_properties disable row movement;
alter table ag_instance enable row movement;
alter table ag_instance shrink space;
alter table ag_instance disable row movement;
alter table audit_counter enable row movement;
alter table audit_counter shrink space;
alter table audit_counter disable row movement;
alter table audit_trail enable row movement;
alter table audit_trail shrink space;
alter table audit_trail disable row movement;
alter table audit_details enable row movement;
alter table audit_details shrink space;
alter table audit_details disable row movement;
alter table ci_indexes enable row movement;
alter table ci_indexes shrink space;
alter table ci_indexes disable row movement;
alter table work_item enable row movement;
alter table work_item shrink space;
alter table work_item disable row movement;
alter table wi_fault enable row movement;
alter table wi_fault shrink space;
alter table wi_fault disable row movement;
alter table xml_document_ref enable row movement;
alter table xml_document_ref shrink space;
alter table xml_document_ref disable row movement;
alter table document_dlv_msg_ref enable row movement;
alter table document_dlv_msg_ref shrink space;
alter table document_dlv_msg_ref disable row movement;
alter table document_ci_ref enable row movement;
alter table document_ci_ref shrink space;
alter table document_ci_ref disable row movement;
alter table dlv_subscription enable row movement;
alter table dlv_subscription shrink space;
alter table dlv_subscription disable row movement;
alter table dlv_message enable row movement;
alter table dlv_message shrink space;
alter table dlv_message disable row movement;
alter table rejected_msg_native_payload enable row movement;
alter table rejected_msg_native_payload shrink space;
alter table rejected_msg_native_payload disable row movement;
alter table instance_payload enable row movement;
alter table instance_payload shrink space;
alter table instance_payload disable row movement;
alter table test_details enable row movement;
alter table test_details shrink space;
alter table test_details disable row movement;
alter table cube_scope enable row movement;
alter table cube_scope shrink space;
alter table cube_scope disable row movement;
alter table cube_instance enable row movement;
alter table cube_instance shrink space;
alter table cube_instance disable row movement;
alter table bpm_audit_query enable row movement;
alter table bpm_audit_query shrink space;
alter table bpm_audit_query disable row movement;
alter table bpm_measurement_actions enable row movement;
alter table bpm_measurement_actions shrink space;
alter table bpm_measurement_actions disable row movement;
alter table bpm_measurement_action_exceps enable row movement;
alter table bpm_measurement_action_exceps shrink space;
alter table bpm_measurement_action_exceps disable row movement;
alter table bpm_cube_auditinstance enable row movement;
alter table bpm_cube_auditinstance shrink space;
alter table bpm_cube_auditinstance disable row movement;
alter table bpm_cube_taskperformance enable row movement;
alter table bpm_cube_taskperformance shrink space;
alter table bpm_cube_taskperformance disable row movement;
alter table bpm_cube_processperformance enable row movement;
alter table bpm_cube_processperformance shrink space;
alter table bpm_cube_processperformance disable row movement;
alter table wftask_tl enable row movement;
alter table wftask_tl shrink space;
alter table wftask_tl disable row movement;
alter table wftaskhistory enable row movement;
alter table wftaskhistory shrink space;
alter table wftaskhistory disable row movement;
alter table wftaskhistory_tl enable row movement;
alter table wftaskhistory_tl shrink space;
alter table wftaskhistory_tl disable row movement;
alter table wfcomments enable row movement;
alter table wfcomments shrink space;
alter table wfcomments disable row movement;
alter table wfmessageattribute enable row movement;
alter table wfmessageattribute shrink space;
alter table wfmessageattribute disable row movement;
alter table wfattachment enable row movement;
alter table wfattachment shrink space;
alter table wfattachment disable row movement;
alter table wfassignee enable row movement;
alter table wfassignee shrink space;
alter table wfassignee disable row movement;
alter table wfreviewer enable row movement;
alter table wfreviewer shrink space;
alter table wfreviewer disable row movement;
alter table wfcollectiontarget enable row movement;
alter table wfcollectiontarget shrink space;
alter table wfcollectiontarget disable row movement;
alter table wfroutingslip enable row movement;
alter table wfroutingslip shrink space;
alter table wfroutingslip disable row movement;
alter table wfnotification enable row movement;
alter table wfnotification shrink space;
alter table wfnotification disable row movement;
alter table wftasktimer enable row movement;
alter table wftasktimer shrink space;
alter table wftasktimer disable row movement;
alter table wftaskerror enable row movement;
alter table wftaskerror shrink space;
alter table wftaskerror disable row movement;
alter table wfheaderprops enable row movement;
alter table wfheaderprops shrink space;
alter table wfheaderprops disable row movement;
alter table wfevidence enable row movement;
alter table wfevidence shrink space;
alter table wfevidence disable row movement;
alter table wftaskassignmentstatistic enable row movement;
alter table wftaskassignmentstatistic shrink space;
alter table wftaskassignmentstatistic disable row movement;
alter table wftaskaggregation enable row movement;
alter table wftaskaggregation shrink space;
alter table wftaskaggregation disable row movement;
alter table wftask enable row movement;
alter table wftask shrink space;
alter table wftask disable row movement;
alter table composite_sensor_value enable row movement;
alter table composite_sensor_value shrink space;
alter table composite_sensor_value disable row movement;
alter table composite_instance_assoc enable row movement;
alter table composite_instance_assoc shrink space;
alter table composite_instance_assoc disable row movement;
alter table attachment enable row movement;
alter table attachment shrink space;
alter table attachment disable row movement;
alter table attachment_ref enable row movement;
alter table attachment_ref shrink space;
alter table attachment_ref disable row movement;
alter table composite_instance_fault enable row movement;
alter table composite_instance_fault shrink space;
alter table composite_instance_fault disable row movement;
alter table reference_instance enable row movement;
alter table reference_instance shrink space;
alter table reference_instance disable row movement;
alter table component_instance enable row movement;
alter table component_instance shrink space;
alter table component_instance disable row movement;
alter table composite_instance enable row movement;
alter table composite_instance shrink space;
alter table composite_instance disable row movement;

alter table audit_details modify lob (bin) (shrink space);
alter table composite_instance_fault modify lob (error_message) (shrink space);
alter table composite_instance_fault modify lob (stack_trace) (shrink space);
alter table cube_scope modify lob (scope_bin) (shrink space);
alter table reference_instance modify lob (error_message) (shrink space);
alter table reference_instance modify lob (stack_trace) (shrink space);
alter table test_definitions modify lob (definition) (shrink space);
alter table wi_fault modify lob (message) (shrink space);
alter table xml_document modify lob (document) (shrink space);

alter index ad_pk rebuild online;
alter index at_pk rebuild online;
alter index ci_creation_date rebuild online;
alter index ci_custom3 rebuild online;
alter index ci_ecid rebuild online;
alter index ci_name_rev_state rebuild online;
alter index ci_pk rebuild online;
alter index composite_instance_cidn rebuild online;
alter index composite_instance_co_id rebuild online;
alter index composite_instance_created rebuild online;
alter index composite_instance_ecid rebuild online;
alter index composite_instance_id rebuild online;
alter index composite_instance_state rebuild online;
alter index cs_pk rebuild online;
alter index dm_conversation rebuild online;
alter index dm_pk rebuild online;
alter index doc_dlv_msg_guid_index rebuild online;
alter index doc_store_pk rebuild online;
alter index ds_conversation rebuild online;
alter index ds_conv_state rebuild online;
alter index ds_fk rebuild online;
alter index ds_pk rebuild online;
alter index header_properties_pk rebuild online;
alter index instance_payload_key rebuild online;
alter index reference_instance_cdn_state rebuild online;
alter index reference_instance_co_id rebuild online;
alter index reference_instance_ecid rebuild online;
alter index reference_instance_id rebuild online;
alter index reference_instance_state rebuild online;
alter index reference_instance_time_cdn rebuild online;
alter index state_type_date rebuild online;
alter index wf_crdate_cikey rebuild online;
alter index wf_crdate_type rebuild online;
alter index wf_fk2 rebuild online;
alter index wifault_pk rebuild online;
alter index wi_expired rebuild online;
alter index wi_key_crdate_state rebuild online;
alter index wi_pk rebuild online;
alter index wi_stranded rebuild online;
alter index xml_doc_reference_pk rebuild online

spool off

Pages

Subscribe to Oracle FAQ aggregator