Feed aggregator

Global Temporary Tables

Robert Vollman - Sun, 2007-10-21 12:56
I listened intently to the new Oracle programmer as he described all the struggles he's been having on his first big project. As I've done many times already in his short career, I interrupt with some words of wisdom."It's time to add Global Temporary Tables to your toolbelt.""What are those?" he asks, as he opens the directory with the Oracle documentation. I smile. He has already learned Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com15

Disclosure & Bloggers

Peter Khos - Sat, 2007-10-20 13:37
With the recent "can of worms" that Jake blogged about on his Blog, I thought that Mary Ann Davidson kind of hit it on the nail when she blogged about "Disclosure".I've blogged about this previously but thought that it is worth mentioning again.Peter Khttp://www.blogger.com/profile/14068944101291927006noreply@blogger.com0

ORA-01461: can bind a LONG value only for insert into a LONG column

Vlad Sadilovskiy - Fri, 2007-10-19 15:47

Just one another issue with JDBC I think is worth mentioning. You perhaps wonder why so obvious error message could be troublesome to comprehend. Unfortunately, it speaks of things that a developer never meant to happen. It doesn’t have to be a LONG value. This error could appear when ASCII strings are bound for VARCHAR2 columns. In this case it happens when JDBC v. 10.1/2 is used with a Oracle Server 9i database configured for multi-byte character set. Before going any further, please note that according to support matrix Oracle JDBC 10g and 9i are cross supported with Oracle Server 9i and 10g.

For the testing I used two databases Oracle 10g and Oracle 9i with database character set UTF8 and JDBC

Some of the Asian language characters can consume up to 3 bytes in UTF8 encoding. But can you expect that a string composed of 1334 ASCII characters would not bind for VARCHAR2(4000)? However, it is possible. Let’s dig up little more details.

Here is how the string of 4000 “a” characters would appear to the Oracle 9iwhen bound from JDBC 10g with default properties. This bind is not spooled into the 10046 trace file. Instead it can be captured by enabling stacktrace dump on 1461 event.

 bind 19: dty=1 mxl=4001(12000) mal=00 scl=00 pre=00 oacflg=03 oacfl2=10 size=4000 offset=0
   bfp=ffffffff7cd7f060 bln=4000 avl=00flg=05

Oracle Server 10g. Note, that when you test this scenario, there are no errors – Oracle Server 10g  is perfectly fine with the 12000 bytes in the private buffer.

  oacdty=01 mxl=4001(12000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=871 siz=4000 off=0
  kxsbbbfp=ffffffff7b55a0c0  bln=4000  avl=4000  flg=05

According to Metalink Note: 3756847.8 this problem was introduced in some 10.1 versions of JDBC, but was fixed in 10.2. However, it is not enabled by default. Following JDBC connection property enables the fix.

java.util.Properties props = new java.util.Properties();

And here is how the bind looks like after the fix is enabled.

Oracle Server 9i:

bind 19: dty=1 mxl=4000(4000) mal=00 scl=00 pre=00 oacflg=03 oacfl2=10 size=4000 offset=0
   bfp=ffffffff7cd56088 bln=4000 avl=4000 flg=05

Oracle Server 10g:

  oacdty=01 mxl=4000(4000) mxlc=00 mal=00 scl=00 pre=00
  oacflg=03 fl2=1000010 frm=01 csi=871 siz=4000 off=0
  kxsbbbfp=ffffffff7b56f060  bln=4000 avl=4000flg=05

There is no need in enabling this fix for 10g/10g setup. 10g version of the trace is shown just for comparison purposes.

In conclusion I want to clarify that this article describes the unexpected behavior with legitimate length values. However, there are other cases when apparently correct values fail to insert with same message. I.e. already mentioned strings that, when using UTF8 for database character set, can expand from 4000 Asian language characters to up to 12000 byte values. In these cases, Notes: 241358.1, 370438.1 recommend different workarounds. Note: 445072.1  has decent example of getting the length of encoded string and suggests converting VARCHAR2 columns into CLOB if encoded string length exceeds maximum length of VARCHAR2 type.

Run Flow Manufacturing without other Oracle Applications

Chris Grillone - Fri, 2007-10-19 11:49
Running Oracle Flow Mfg standalone has been done in the past. The company used the applications from a corporate office to design balanced flow lines and inform each plant how to set up their lines. This was a constant changing process asthey had lots of new product and volume changes.

To do this, they implemented an instance of Oracle Manufacturing and Flow. They interfaced their Inventory Master and BOM file from Baan to Oracle. They imported Forecasts directly to be used for line balancing andkanban sizing. If they need to execute within Oracle they would then need to export the inventory transactions back to the legacy system.

Additional data files can be interfaced as needed.


Mary Ann Davidson - Wed, 2007-10-17 12:01

Many corporations have corporate ethics policies. I take a refresher ethics class online once a year at Oracle and despite the fact I think I am pretty ethical, I always get at least one question wrong.  (I think that means I am learning at least one new thing when I take the class.)


One of the areas most corporate policies cover is the area of conflicts of interest. For example, at Oracle, if you are asked to serve on an advisory board or board of directors of a company, you need to get multiple approvals. Approval is generally only given under certain circumstances that include consideration of whether there is a potential conflict of interest. For example, serving on an advisory board of a company in direct competition with Oracle would most likely not be approved.


Even in the ordinary course of business, potential conflicts of interest can arise and you are expected to disclose these. I don't know if it's my Midwestern upbringing or going to a university with a very strong honor code, but I am really big on disclosure. Probably ad nauseum disclosure: if I think something is even approaching a gray area of ethics, I email our corporate compliance officer to ask if there is an issue. And the reason is that at some point it is not merely the company's ethics policy that governs my disclosure, it's my personal integrity. I would hate to have someone think I said or did something where I appeared to be "independent" but in reality had an "angle" that was tainted by my being a stakeholder in some way.


Disclosure forces you to be honest with yourself as well as other people. If you have an axe to grind about something, you need to disclose who sharpens your axe if it is material to the discussion. And it often is.


There are many written or unwritten ethics codes that cover issues of disclosure in the business world. People who write about securities or recommend them are generally either prohibited from owning stock in companies they write about, or they have to disclose it. Imagine reading "Investment Kahuna-ette's" column in (insert name of well-respected business publication here), going out to buy the stock Ms. Kahuna-ette touted, and come to find out, she went long on the stock before the article came out (meaning, she bought the stock and hoped the price would rise). You'd feel as if Ms. Investment Kahuna-ette pumped the stock just so she'd make money, right? And if Ms. Investment Kahuna-ette did not disclose that in her column (not in subparagraph III, second sentence on some fine print document nobody could possibly be expected to find let alone read), you'd feel as if she cheated. Because she did cheat. People get fired for that.


One of the real downsides to the democratization of opinions that Web 2.0 represents is that where bloggers are competing with or crowding out "professionals," they are not necessarily adopting the code of ethics that some of the professionals have or at least pretend to have. This includes issues around disclosure.


I read an article over the weekend about how influential bloggers are to the restaurant business. On the face of it, there is nothing wrong with word of mouth spreading a restaurant's reputation; how many of us have had friends or relatives in town and asked our "foodie" friends for a restaurant recommendation? However, some of these bloggers are so successful that they quit their day jobs and blog for a living: their revenue is through advertising. So now, they are "professionals" and ought to be governed by a code of ethics. But few are.


Here's what I mean: professional restaurant reviewers as a matter of course (and ethics) pay for their own meals at the restaurants so they can't be accused of being "on the take." However, the "new breed" of online restaurant reviewers are apparently, as a matter of course, wooed by restaurants through "receptions" (read, "free food and drink"), after which their reviews becomes positive, what a surprise. Or, a blogger's parents who had a horrible restaurant experience were sent meal coupons (after their online blogger child ripped the restaurant). The blogger subsequently gave a rave review to the restaurant that supplied the meal coupons to his parents.


Now, maybe the food was really fabulous (I can't imagine any self-respecting "foodie" calling artfully presented dog food anything but "dog food," even if it was free, high end and organic dog food). However, in none of the above cases did the Influential Blogger disclose that he or she had gotten something of value for free from the restaurant. It doesn't mean they weren't entitled to an opinion, it means that they should have disclosed the freebie(s) because it likely "taints" their opinion. Or at least gives the appearance of tainting it, which is just as bad.

Other disclosure issues arise from people's business models and 
business relationships. For example, a lot of firms that are industry
analysts, since they analyze and recommend products, also work with
product vendors to guide their product directions. Many of them are
very good in their sectors and can add value to vendors trying to
ensure they solve the right customer problems. It becomes a problem
if there is de facto or implicit "tit for tat" (meaning, if the vendor does
not purchase consulting "advice," the analyst firm's "product reviews"
of the vendor suffer). It's also a problem, in my opinion, if the analyst
firm does not disclose (as they issue reports) which firms they "consult"
for and which not.* One does have to ask the question, how objective
can you be if the people whose products you review are also paying
you to give them advice? At least disclose that there is a relationship
and let the reader decide how important that relationship is.
Appearances matter.

So, what does disclosure have to do with security? A lot, as it happens, and not just the age-old "full vs. responsible disclosure" issue. Many security professionals, me included, have opinions and beliefs and we blog about them. For a lot of us, our associations don't need an explicit disclosure because they are already obvious. I don't add a disclaimer when I say something positive about Oracle in my blog because hey, I work for Oracle, my blog is hosted by Oracle, my email address has "oracle.com" in it; nobody could reasonably expect that I have a hidden agenda if I say something positive about Oracle. 

It would be different, however, if I blogged on another web site where I had a totally different email id (let's say, a hotmail account), and I claimed to be the world's biggest Oracle security fan and did not disclose that I was a security executive with the company. Any sane person's response if I did that and it came out that LuvOracleSecurity@hotmail.com (which is a made up email address as far as I know) is lil' ol' me, would be, "Hey, who are you kidding here?" And they'd be right. It's not ethical. Not even close to being ethical. ("Slimy" is the word that comes to mind.)


As with other sectors of life, in the security community, many people have relationships that they do not disclose that either explicitly or implicitly influence their opinions, business judgment and/or public statements. They ought to - but often do not  - disclose them.


For example, many security researchers also work for vendors from time to time to help them find vulnerabilities in the software. If you are a vendor, you figure if someone is a good researcher (has found a number of product vulnerabilities and worked with you well as "an independent") and you feel you can trust him/her, it can be helpful to have the researcher in to help you improve your product. We actually hired one of these individuals to run our ethical hacking team - a smart guy, good at finding vulnerabilities, and an ethical person.


Many vendors hire third parties to help them improve their products (disclosure: we have hired and do hire third parties to perform product assessments in addition to using our own internal ethical hacking team). Also, typically, you have some contractual restrictions on what the researchers can do with the information they find under contract. Most of these items are covered by a confidential disclosure agreement (sometimes called a non-disclosure agreement) and the thinking behind it is, "Hey, I am paying you to tell me about what you find so I can fix it, and I want time to fix it. So, Mr. Researcher, I don't want you doing a paper about this until some period after you report the bug and I fix it, to make sure customers are protected, and I don't want you ever releasing exploit code because I think it puts people at risk." Fair enough.


So, where does disclosure come into it? Just this: since many researchers who do "work for hire" for vendors are prevented from talking about what they are working on for Vendor X, they can - and often do - start talking about Vendor Y. Researchers do not generally have big PR agencies working for them and creating a media splash is "free marketing" that works pretty well. And because controversy sells, they may not be saying nice things about Vendor Y. None of this is necessarily a problem if Vendor Y is actually in the wrong. If you are guilty of tormenting small mammals, and a third party says so publicly, you have no cause to complain that you were wronged. Be nice to the critters and your PR problem goes away. But to the extent that the researcher is prohibited from talking at all about Vendor X, or does not disclose that he does work for hire for them, his opinion is potentially tainted to the extent he speaks about Vendor X or others in their market sectors. Just like the restaurant reviewers, if Vendor X paid me or gave me something for free, and I now say glowing, wonderful things about their product, I ought to disclose that I am or have been on their payroll or that I am getting freebies.


Even if we debate responsible disclosure (about the vulnerabilities themselves, which is another charged area) there should be no debate about the ethics of disclosing business relationships if you are going to set yourself up as "an independent expert." If you are on someone's payroll, you are not independent anymore, though you may still be an expert.


Quite honestly, even if you cannot speak or are restricted in how you speak about Vendor X, you need to disclose that or you have no moral leg to stand on in discussing disclosure - of any kind - with anybody. You might still be right in what you say, but at least the reader can correctly surmise that you might not be telling all you know about Vendor X - because you can't.  If I am evaluating an expert's opinion, knowing what he cannot say or is not saying is at least as important as knowing what he can and does say.


I have a final thought on what is at the core of the disclosure issue for me, and that is the age-old but never surpassed virtues of honor and integrity. I mentioned earlier that I had gone to a university with a strong honor code: the University of Virginia. The single biggest reason I went there wasn't the beautiful architecture, though it is stupendous. Many buildings were designed by Thomas Jefferson: in 1976, Jefferson's Lawn and Rotunda were named the most outstanding architectural achievement in 200 years of American history by the American Institute of Architects (AIA). It wasn't the beauty of The University though there is that: the only time I have experienced love at first sight was seeing UVA in fall when I went there as a high school senior to check it out. I applied to UVA, and only UVA, and got in. It wasn't the fact that the engineering program was designed to turn out well-rounded graduates (I had to read More's Utopia and Plato's Republic as an engineering school requirement!), though that appeals to my literary side.


Nope, I went to UVA because they had an honor code that means something. It's one of the oldest honor codes in the country, and there is still a single sanction for honor violations: dismissal. Because there are no degrees of honor. If you think that there are degrees of honor, and cheating, lying and stealing are all excusable depending on day of the week, your mood, or your "value system," then you are welcome to attend another university: UVA does not want you there, and they make that clear in their recruiting materials. And as a graduate, I don't want people attending there who do not believe in and subscribe to the honor code. There is a beautiful gateway at UVA at one of the entrances, on which is incised: "Enter by this gateway and seek the way of honor, the light of truth and the will to work for men." Says it all.


The University recently sent a number of alumni/ae a link to some new ads they are going to run during televised football games. The emphasis in these ads was "diversity." And I was upset, but not because I have anything against diversity, if by that one means "commitment to the highest standards of academic excellence by all members of the university community, regardless of background." But what the school stands for, really and truly stands for, that makes it different from all others is the honor code, and that is what the ads should have stressed. Furthermore, in matters of honor, there should be no diversity. Whoever you are, wherever you come from, you live by the University of Virginia honor code, with its single sanction, or you go someplace else. A single code for all, and a single sanction for violations: dismissal.


There are precious few bastions in this country that have not fallen by the wayside to "everyone does it," "lying, cheating and stealing are just 'different values' that need to be tolerated," and "you can't expect people to live up to some arcane old ideal." (Except that I can and I do expect it.) One of these bastions is the University of Virginia. The other bastions include the service academies: the Naval Academy, the Military Academy, the Air Force Academy, the Coast Guard Academy. And for many of these schools, part of the honor code includes creating a community of honor: "A cadet will not lie, cheat or steal, nor tolerate those who do."


West Point has a single, straightforward motto that every cadet remembers because it is engraved on the West Point coat of arms. It is "Duty, Honor, Country." It was also among the last phrases to be quoted by GEN Douglas MacArthur at his stirring farewell address: "In my dreams I hear again the crash of guns, the rattle of musketry, the strange, mournful mutter of the battlefield. But in the evening of my memory I come back to West Point. Always there echoes and re-echoes: Duty, Honor, Country."


Need I add that "Duty, Honor, Country" is a lot worthier ideal than "Me, myself, and I," which seems to be the ruling ethos of so many?


For me, the issues around disclosure are not really as complicated as people seem to think they are. It goes back to honor. Honorable men and women disclose the nature of relationships when the existence of that relationship gives the appearance of - or substance to - a tainting of their opinions or a conflict of interest. If there is, as yet, no professional code of ethics in the security community, it is time we had one, and we can start with acting honorably as individuals: if your opinion looks to be or is influenced by a business relationship, disclose the relationship. You may still be right in what you say when you have an axe to grind, but the reader will know who sharpens your axe.


* Note: even if the vendor does not want the relationship disclosed for a variety of reasons, an analyst firm typically can say that they consult to players in the same space.  It has the same disclosure effect for their allegedly impartial reviews, but saves the initial vendor's confidentiality requirement.  This type of arrangement is common in the securities industry.


For more information:


Book of the week: Mr. Pip by Lloyd Jones. I do not generally like much modern fiction, especially as so much is of the post-modernist drivel variety.  However, a single great book can change your life, which happens to be the conceit of this story. After a revolution breaks out on Bougainville, the last white man on the island becomes a teacher, and he teaches the children by reading them Dicken's Great Expectations. A magical, special book that enriches your soul.


About the University of Virginia Honor Code:




A virtual tour of Jefferson's Academical Village at:




Pictures of UVA:




A link on honor codes:




General Douglas MacArthur's Farewell Speech at West Point:




The Coat of Arms of West Point:




A great biography of Douglas MacArthur is still American Caesar by William Manchester, which you can find at:




(I found out a few years ago that my dad had actually met Douglas MacArthur a couple of times while serving in Japan after WWII. How cool is that?)


Identifying mutex holder

Fairlie Rego - Tue, 2007-10-16 20:55
In my previous post on flushing a cursor we see that a process is waiting on a mutex. In this post we will try to identify the holder from a systemstate dump

• Find the process executing the purge API. In this case it was process 22
• Open the systemstate dump and go to PROCESS 22
• Under this (if the systemstate is at level 266) you will see the short stack of the process


As can be seen from the above stack it includes the function kxsPurgeCursor() which contains this piece of functionality (to flush the cursor)

• Under the session state object of this process you will see that the session is waiting on

waiting for 'cursor: pin X' blocking sess=0x0 seq=9208 wait_time=0 seconds since wait started=0 idn=dbabc3c, value=1, where|sleeps=e00000629

wait_time=0 indicates the session is waiting at the time this process was dumped.

• If you scroll down further in the same process state object and search for idn=dbabc3c

KGX Atomic Operation Log 3d6e12a08
Mutex 3da75c7d0(0, 1) idn dbabc3c oper GET_EXCL

Hence this process is waiting to acquire the mutex in exclusive mode.

• To find the process holding the mutex search on the string "dbabc3c oper"

You will find something like the below

KGX Atomic Operation Log 3d6e671e0
Mutex 3da75c7d0(0, 1) idn dbabc3c oper SHRD

Search the process holding this.
In vi editor you can use ?PROCESS which will lead you to


Hence Process 15 is holding the mutex and this is the process doing the merge join Cartesian in Session 1.

We're a little disappointed about Doris Lessing

Fake Larry Ellison - Tue, 2007-10-16 01:53

My wife Melanie really thought she was going to win the Nobel Prize in Literature this year. Don't ask me why. I mean, all of her books have been out of print for years now. And even when they were still in print, the only people who read them were desperate stay-at-home-moms and gay men and horny teenage girls who kept vibrators under their mattresses. But she still thought she was going to win. I warned her. I told her she was cruising for a bruising. Before we got married I said, Melanie, only 11 women have won the Nobel Prize in Literature in 106 years. And she said that she knew that and she wasn't going to get her hopes up or anything. But did she listen to me? No, she did not. She started crying her eyes out last Friday when I was supposed to be closing the deal with BEA Systems. It sort of frigged everything up. Anyway, that's what I was this weekend -- a shoulder to cry on. You're jealous, I know.

Blog Action Day

Peter Khos - Mon, 2007-10-15 22:18
Today is Blog Action Day where each blogger is to blog about the environment related to their topic/theme.I am in IT so what can I blog about which would be relevant. Well, I recently attended Gartner Symposium ITxpo where "Green IT" is a key theme for the Symposium and Gartner expects this to be an ongoing theme for the IT industry for the next 3 to 5 years.Michael Dell as one of the keynote Peter Khttp://www.blogger.com/profile/14068944101291927006noreply@blogger.com0

Multi-Foundation on UNIX

Mark Vakoc - Mon, 2007-10-15 19:43
Today I wanted to setup multi-foundation on the same enterprise server on my Linux based server. I had an existing server that I wanted to "clone" to create two additional installs for testing various tools releases. The primary was installed using platform pack and was already upgraded to 8.97 using SM.

I wanted to take advantage of the multiple instance support in EnterpriseOne that allows multiple instances to run under the same OS user. Typical multi-foundation setups operate each enterprise server install as a different OS user. This works fine, but with the advent of server manager and it's management agents it would require installing and operating a separate managed home for each OS user. This setup works fine, but operating under the same OS user requires only a single agent install which seems like a good idea.

The first think I did was to stop the existing enterprise server using SM. In a shell I performed a recursive copy of the base directory (/u02/jdedwards/e812 in this case) to /u02/jdedwards/port6015 and /u02/jdedwards/port6016). Back in server manager I created two new instances by registering these new installations with unique instance names.

Using SM I went through and modified all the configuration items that were install specific. I went through each configuration category and looked for those settings that referenced the old install path and updated them accordingly. Off the top of my head I had to change the following settings
  • Install Path
  • Build Area
  • XTS Repository
  • JDE and JDEDEBUG log configurations
  • jdelog.properties log file configurations
  • Compiler and associated locations
There are also some settings that are not install location specific that I knew add to be modified. These include
  • The JDENET listen and connect ports (set to 6015 and 6016)
  • The IPC Start Key (set to unique, non-overlapping values)
Since these new servers were a copy of an existing install I had to modify some of the startup scripts to use the new install paths. These scripts were located in the SharedScripts folder found underneath the base install. This included changing the paths in
  • enterpriseone.sh
If you are on a release earlier than 8.11SP1 (and thus prior to the platform pack installer) the settings are instead contained in the .oneworld located in the user's home location.  Since this single file defines paths that would be different for each enterprise server instance it is better to use multiple OS users in this case.

Finally, since I'd be running these servers under the same OS user I had to modify the RunOneWorld.sh and EndOneWorld.sh scripts to set the variable "MULTIPLE_INSTANCE" to 1. This instructs the scripts to be aware that multiple foundations are running under the same OS user. I made this change for all servers, including the original server used as the source.

Back in SM I tried to start all my new servers. The new servers all failed to start. Looking at the SM logs and a little digging later I realized a problem in the logic in the RunOneWorld.sh script that determines if processes are already running. The script makes a series of calls to the ps application and filters based on OS user and the JDENET port. Since my new installs included the JDENET port in the path (6015 and 6016) it was incorrectly thinking the startup script itself was an existing E1 process and failed start the server. I changed the install locations so they didn't include the 6015 and 6016 values in the path and all worked.

This is probably not a typical setup but once configured it works very well. There are a few notes I'd like to mention.

First, when performing my initial installation plan I had anticipated these additional ports and defined them initially. This is probably not normal, so one would have to modify their original plan to add the new ports. This creates many of the DB records required for the server such as the F965* tables and the package discovery tables (812 and later).

Secondly one must be aware of the changes made to RunOneworld.sh and EndOneWorld.sh to set the MULTIPLE_INSTANCE=1 line. Since these scripts are delivered with the tools release they will be overwritten with each new tools release I upgrade the servers to. I'll have to go back and modify those.

Although this isn't a true step by step guide to configuring multi-foundation I hope it helps the experienced CNCs with some guidance to configuring this sort of configuration.

Flow Demo at Oracle Open World

Chris Grillone - Mon, 2007-10-15 18:25
The famous Pen demo will be at OOW on Wednesday from 2:30-5:30 PM in Space 2 - Mascone West. Draft marketing collateral:This hands-on demonstration highlights Flow Manufacturing and Configurator in a Lean Manufacturing Enterprise. The demonstration begins with a customer, an audience member, ordering a configured-to-order pen using iStore. The sales order is then sent to Order Management and released to manufacturing where a Flow schedule is created. The Flow schedule is executed with two line operations using the HTML Flow Execution Workstation, demonstrating both simple attached documents and video for assembly instructions. Bar code scanning and RFID from Warehouse Management System are used in this complete manufacturing process demonstration. Although this demonstration is provided at an executive level, all manufacturing data is built to support the Flow schedule and will be available to allow the audience members to dive deeper into specific Flow Manufacturing features, such as line design and balance, mixed model map workbench and Kanban execution. Come marvel at our use of a forklift in the demo!

WF_DEFERRED Queue is having few million messages in "Ready" State

Madhu Thatamsetty - Mon, 2007-10-15 03:55
I would like to publish this blog post in the form of a set of questions and answers that will help you resolve a situation if "Ready" state messages in WF_DEFERRED queue are in few millions and Workflow Deferred Agent listener is down from years which caused the pile up of records in WF_DEFERRED Queue.Q1. How do I find out in first place WF_DEFERRED Queue is having millions of records inMadhu Sudhanhttp://www.blogger.com/profile/11947987602520523332noreply@blogger.com9

Payroll Reversal Pack K Rollup 2

RameshKumar Shanmugam - Sun, 2007-10-14 15:44
HRMS Family Pack RUP 2 was released on Jun 2007.
Due to current project schedule i didn't had much time to test the new functionality.
This week i had the chance to install the PF K RUP 2 to my test instance, the lot of functionality which i was expecting is here now...

The first thing which i would like to highlight is Payroll Reversal functionality.
If you want to reverse assignments that have been processed as part of a payroll run or QuickPay run, you can now reverse them as a group by assignment set instead of reversing by individual assignment only. Any assignment sets that you use for reversals can also use the normal assignment set features such as:
  • Include or exclude specific assignments
  • Make formula-based amendments

The original reversal by single assignment is still available, and you can continue to access it from the Assignment window.

Payroll Reversal Details http://ramesh-oraclehrms.blogspot.com/2007/09/payroll-reversal.html

Defining Assignment Set http://ramesh-oraclehrms.blogspot.com/2007/08/assignment-set.html

Try it out!!!

Categories: APPS Blogs

Flushing a single cursor

Fairlie Rego - Fri, 2007-10-12 19:33
In a very intensive OLTP environment plan stability is of utmost importance as a single sub optimal query can bring the system down to its knees.

Using sql outlines and sql profiles is always not possible if you have an application with more
than a million lines of code and any one of the thousands of sql statements could have a plan flip.

In 11g there is a new procedure in the DBMS_SHARED_POOL package which helps you flush out a single cursor.
There is a typo in the syntax portion of the documentation in
which I will try to get corrected in the next week.

PURGE Procedure
This procedure purges the named object or specified heap(s) of the object.


name VARCHAR2,

Table 118-4 KEEP Procedure Parameters

Parameter Description
name Name of the object to keep.
The value for this identifier is the concatenation of the address and hash_value columns from the v$sqlarea view. This is displayed by the SIZES procedure.

Currently, TABLE and VIEW objects may not be kept.

flag (Optional) If this is not specified, then the package assumes that the first parameter is the name of a package/procedure/function and resolves the name.
Set to 'P' or 'p' to fully specify that the input is the name of a package/procedure/function.

Set to 'T' or 't' to specify that the input is the name of a type.

Set to 'R' or 'r' to specify that the input is the name of a trigger.

Set to 'Q' or 'q' to specify that the input is the name of a sequence.

In case the first argument is a cursor address and hash-value, the parameter should be set to any character except 'P' or 'p' or 'Q' or 'q' or 'R' or 'r' or 'T' or 't'.

heaps Heaps to be purged. For example, if heap 0 and heap 6 are to be purged:
1<<0 | 1<<6 => hex 0x41 => decimal 65, so specify heaps =>65.Default is 1, that is, heap 0 which means the whole object would be purged

This feature was introduced via the fix in bug 5614566 and I actually know a customer who has this applied on top of


SQL> exec dbms_shared_pool.purge('00000003DE576D40,353632309','C',65); ==> purge heap 0 and heap 6

PL/SQL procedure successfully completed.

This would actually not work against a cursor which is currently executing.(pinned)

Session 1:
Do a massive Merge Join Cartesian
select * from dba_objects a, dba_objects b, dba_objects c;

Session 2:
Identify the sql address and hash value and try to purge the cursor..

exec dbms_shared_pool.purge('00000003DE825198,3691928467','C',65); ==> This hangs

and this session is waiting on "cursor: pin X" requesting an exclusive mutex pin for the cursor object whilst it has already been pinned by session 1

Session 3
select event,p1,p2 from v$session where username='SYS' and type='USER';
----------------------------------------- ---------- ----------
cursor: pin X 3691928467 1

The p1 value here is the Hash value of the cursor we are trying to flush.

From the short stack of the process which is executing the purge API a function called kxsPurgeCursor is called which would try to take a mutex (since _kks_use_mutex_pin is TRUE by default)
The purge completes only after you cancel the sql in session 1 and exit from the same
or kill the session executing the sql.

11g on Linux x86_64 is out!

Renaps' Blog - Fri, 2007-10-12 19:15

This morning, I was surprised to learn that the Linux x86_64 announcement release was not in this Oracle New Downloads RSS Feed. I got aware of the news reading Niall Litchfield Blog. I guess news travels faster via the Oracle blog community! , also, I thought Oracle would have normally released 11g for other o/s prior to releasing the Linux x86_64 version. In any case, I will download this release now.

It is now available here: Oracle 11g on Linux x86_64.

I have been waiting for this release for a while since two of my databases are stuck to 32 bits as they need to send and receive data using “hsodbc” (only available for 32bit) for an ERP software.

Heterogeneous systems are quite common, and I am pretty sure that many of the enhancement requests for Generic Connectivity were focused on making them available for 64-bit platforms.
Metalink Note:361676.1, Is Generic Connectivity Available On The LINUX Or Windows 64-bit Platforms? , explains that Generic Connectivity will be available on Linux Red Hat 64-bit and SUSE 64-bit with 11gR1.

Another reason that makes me appreciate this new release is that I ran through several issues while trying to run Oracle with larger SGA’s on 32 bits platforms. I used RAMFS and HugePages to enable the use of 8 to 10GB of SGAs. The following links helped me in this process:

Tuning and Optimizing Red Hat Enterprise Linux for Oracle 9i and 10g Databases

Metalink Note: 317141.1, How to Configure RHEL 4 32-bit for Very Large Memory with ramfs and HugePages

I am hoping that “hsodbc” will work fine on 11g x86_64; I’ll keep you posted on my findings…

Categories: DBA Blogs

ORA-06502: PL/SQL: numeric or value error: host bind array too small

Mike Moore - Fri, 2007-10-12 16:12
ORA-06502: PL/SQL: numeric or value error: host bind array too small

With 10gR2 dbms_output has been improved to handle more that 255 characters. I ran into this problem when I forgot to consider that it is the CLIENT ( not necessiarily the db server) that must be 10gR2. The PL/SQL procedure would run fine for me because I happened to have the 10gR2 client installed on my PC. Our QA had an older version of the client and kept running into this ora-06502.

So, it's probably not a good idea to drop those string chunking procedures until you are sure that everybody is off of the older clients.

Friends, forgive me

Fake Larry Ellison - Fri, 2007-10-12 14:51
You woke up this morning and saw the news about our bid for BEA Systems and you thought, what the fuck? Larry lied to us a couple weeks ago when he said he didn't care about those Beaturds. He tricked us, didn't he? Well, yes. And friends, I know what you're thinking right now. Listen, I'm sorry about misleading you. Just believe me when I say that I really want to tell you what we're doing with BEA Systems. But all I can say right now is that I can't say much. It's just one of those things. So have a good weekend and try not to toilet paper my house or egg my Karmann Ghia, okay?

As if three Google jets weren't enough...

Fake Larry Ellison - Thu, 2007-10-11 23:17

Larry and Sergey and Eric just had to get another one. See here. I called Eric this afternoon to verify. He said, yes, the rumors are true. Apparently Larry wanted all three of them to have their own planes so they could each fly one and have dogfights over LA, and he wanted this new 757 so he could fly it from home with a special version of Microsoft Flight Simulator X. The best part about the 757 is that it runs on a special hybrid blend of dollar bills and ethanol. Larry's convinced that inflation is going to get so high in a couple months that the dollar won't be worth anything, so he wants to burn green backs to reduce the number of bills in circulation which will in turn help decrease inflation. Eric also said that passengers can actually fuel the aircraft while it's flying by sticking bills into the little plastic box right next to the stripper pole.

In the face of adversity, Red Hat tries to act natural

Fake Larry Ellison - Thu, 2007-10-11 13:58

It's no secret that Shit for Brains thinks he owns Linux, or at least part of it. And it's also no secret that Red Hat thinks SFB is full of shit. But every couple months Stevie B. hints at an intellectual property lawsuit just to keep everybody on their toes. This time around, however, Red Hat says it isn't going to push back. They say they're just going to smile and nod and act like everything is normal. My lawyers are following the whole thing very closely. They say that Novell caving in was a good sign and that soon enough we'll be able to sue Microsoft for violating our patents. No joke. And we're talking large sums of money here, people. When you consider the fact that every computer running Windows has a little relational database inside, you'll see the scale of what I'm talking about. So we're almost ready to start entering into license negotiations with Microsoft. We think they should pay us about $10,000 per Windows installation. That's fair, right?

Jimbo's coming to town

Fake Larry Ellison - Thu, 2007-10-11 09:46

Actually he's already been here for a while. But now he's moving the whole Wikimedia enchilada out here to the Valley. See here. I guess this means Wikipedia is out of the woods now, eh? Because last time I checked Jimbo was thinking about selling ads on encyclopedia pages. I think the real problem is that the dude can't get away from Wikipedia. He wants to be the next Bill Gates or whatever, but he just can't shake this rinky-dink non-profit he started. I hear that people always come up to the guy and call him the Wikipedia man. That and his rag-tag band of college student contributers always want him to speak at their schools. He must just hate that. And who can blame him? When you want to live on a sailboat with beautiful women hanging off each arm, you need money. Serious money. Money you're not going to be able to make with a non-profit organization. So I'm thinking about calling the guy. Maybe I'll invite him golfing and sailing and then offer him a job at Oracle. Either way, I'd like another friend. The guy's obviously smart, even if he does insist on using MySQL.


Subscribe to Oracle FAQ aggregator