Archive for the ‘Oracle E-Business Suite’ Category

Installing Oracle R12 EBS in my Living Room

By Lukas Vysusil September 26th, 2008 at 4:29 pm
Posted in Oracle E-Business Suite
Tags:

I decided to build my first sand box ever. I always wanted one, but there was no time or reason until now. Fortunately, hardware is ridiculously cheap these days compared to the past, so you can actually run full-blown Oracle Applications on your home PC without compromises.

I built a Dual Core box with 8G of RAM for an install of E-Business Suite R12. For OS I chose Oracle EL5U2, mainly because I’m used to the RH/OEL clones, and also because I expected it to be less painful than other distributions.

I started slowly, as time allowed, spending some time chasing various libraries and packages on the Net. Eventually it took me a week to realize how tedious it is to go the manual way. I got so frustrated by the dependencies that I gave up and purchased access to the ULN network.

Just to illustrate the type of struggle I went through, I found four distinct lists of required packages for 10g installation (in Oracle documentation and metalink combined). I’d recommend Note 421308.1 - Requirements For Installing Oracle10gR2 On RHEL/OEL 5 (x86_64), which summarizes the database part in a neat way. I also encourage you not to underestimate requirements of related Note 376183.1 - Defining a “default RPMs” installation of the RHEL OS.

Nevertheless, it’s just way more easy to use the oracle-validated package, which will download all dependencies for you. Well, almost all.

The next step was to prepare the machine. The only tricky part (from the DBA point of view) is to setup a DNS server, but even that went well. There are plenty of nice howtos on the web — search for keyword “rndc”.

Once I had all the required packages installed, users created, kernel parameters set, domain name resolution working, and Xvnc started, it was time to call a wizard.

(more…)

How to Tie OS-level PIDs to Oracle Database Sessions (for Apps too!)

By David Ashlock September 16th, 2008 at 5:22 pm
Posted in OracleOracle E-Business Suite
Tags:

About once a week, our team gets a request from the server admins to provide some information on why a database server is running slowly. This typically begins a painstaking process of finding the main processes on the OS side and tracing them back to database sessions (and possibly even to Oracle Apps Concurrent Requests).

As we all know, writing SQL to do this tie-back-when-the-issue-is-happening is not a good practice — there is always the chance to mis-type something or to forget a join and have the data come back as unusable for good decision-making. Not to mention that there is usually a time constraint involved when diagnosing high server load, etc.

We started fairly small with a solution to our problem and simply joined the v$process view to the v$session to get the OS process ID tied out to a database session. Once you have that information from v$session, you can start to going in other views such as v$sort_usage, v$sql, v$session_wait, v$transaction, and so on. Some of these additional views may have relevant information for your specific issue.

We had an additional issue in our case — the databases that sit on our servers run Oracle Applications, so simply tying to a database session provides only half of the picture. You also need to be able to pull information from the fnd_concurrent_requests table to be able to see if the OS process may be generated from a Concurrent Request within Oracle Apps.

Attached to this post (see bottom for link) is a general diagram that the team came up with for relating our tables together, taking RAC into consideration. (more…)

Multi-Node to Single-Node Cloning in R12 and 11i

By Vasu Balla August 21st, 2008 at 6:45 pm
Posted in OracleOracle E-Business Suite
Tags:

Anybody who has tried this multi-node to single-node cloning in 11i knows that it’s difficult and very error-prone. If we outline the Apps Tier cloning process, it looks like this (supposing we have a two-node instance with the DB and CM on one node, and Web and Forms on the other):

# CM Node
# copy all files to the target
$ perl adpreclone.pl appsTier merge

# Web Node
# copy $COMMON_TOP/clone/appl directory only to the target
$ perl adpreclone.pl appltop merge

# Target Node
$ perl adcfgclone.pl appsTier

This process is called merging appltops. It’s not as easy as it looks. Many times, the production environment might not have proper values in the fnd_nodes table, which makes adcfgclone.pl fail to properly recognize the appltops for merging.

But in R12, life is made easy. (more…)

Please join us! Pythian Europe Launch Event in Prague on Wednesday

By Peter Simecka August 1st, 2008 at 3:50 pm
Posted in MySQLNon-Tech ArticlesOracleOracle E-Business SuitePythianPythian EuropeSQL ServerSysAdmin
Tags:

Invitation - Pythian Europe Launch Party

I’m pleased to announce that there will be the formal launch of Pythian Europe at the premises of the Canadian Embassy in Prague on Wednesday the 6th of August from 17:00 to 18:30. This historic event will be announced by Mrs. Sameena Qureshi, Trade Counsellor, Embassy of Canada; and Paul Vallée, President and Founder, The Pythian Group. Present will be various members from the press (IT and Business), as well as representatives from Oracle and Sun Microsystems, the Canadian Chamber of Commerce in Prague, and many more. We will prepare some unusual and very tasty snacks and refreshments.

We would love for readers of this blog to join us, so please consider this your special, personal invitation from me. Please come if you’re in Prague on Wednesday. If you plan to attend, please contact Dan at elbl@pythian.com.

DNS Setup for Effective 11i DR Failover

By Vasu Balla July 28th, 2008 at 12:37 pm
Posted in Oracle E-Business Suite
Tags:

One of the main goals in architecting a Disaster Recovery (DR) solution is to make a DR failover transparent to the end users. Too often, users must reboot their desktops, clear their browser cache and the jinitiator jar cache, and so on, even when we have made sure that the post-failover URL of the 11i instance is the same. After a failover of an 11i instance from a primary site to a DR site, if the user can operate without changing anything in his desktop, only then can we say that the goal is achieved.

In most cases the culprits are: forgetting the DNS setup for the hostnames of Middle Tiers, or the load balancer, if one is used; and the caching of DNS entries at the different levels in the network. A quick look at the caching section of Wikipedia’s page on DNS gives some idea of I’m talking about. Because of the default settings, the old IP address gets cached in the user’s desktop and in caching DNS servers in the network. As a result, the user’s desktop is still trying to reach the old server, which is now offline.

The best fix for these kind of DNS side effects is to change the TTL (Time To Live) parameter of the DNS entry for the hostname from the default value to a smaller one. I prefer setting it to a value a little smaller than the time you take to failover. That is, if you take 60 minutes to failover from Primary to Secondary datacenter, then set the TTL to 50 minutes.

Let’s take an example here. Let’s say our 11i instance has the URL http://apps.example.com:8000, the primary instance being windsor, the secondary ottawa. And we have two load balancers: one at primary site and one at the secondary, with hostnames lb.windsor.example.com and lb.ottawa.example.com respectively. If the DNS is set up with default values, it will look like this:

(more…)

Oracle R12 Certified for Linux 64-bit on the x86_64 Platform

By Vasu Balla July 15th, 2008 at 10:51 am
Posted in Oracle E-Business Suite
Tags:

Oracle R12 is certified to install on 64-bit Linux for X86_64 platforms. Yeah, I know that’s old news. The interesting part here is it’s not “pure” 64-bit software like the Oracle Database on Linux 64-bit: R12 is taking advantage of the OS’s capability to run 32-bit executables.

If we look at metalink note 416305.1, there is a big list of 32-bit RPMs in the pre-req packages list for R12 on 64-bit Linux. This is not something new — 11i on Solaris, HP-UX, and AIX also had the same behaviour.

11i doesn’t take advantage of 64-bit capabilities of the OS at full scale. It runs in 32-bit mode even on a 64-bit OS, as all its executables are 32-bit. One place where 11i does use the 64-bit feature is the “Memory Based Planner” program, which is part of the Advanced Supply Chain Planning (ASCP) module. Oracle shipped a 64-bit version of the program only for the Solaris, AIX, and HP-UX platforms, while the Linux version had just the 32-bit version. I have seen customers who added a Solaris Middle Tier to their Linux 11i instances just to run this 64-bit Planner program, spending all the dollars they saved with Linux middle tiers thus far, in consulting fees to add that extra Solaris middle tier node.

The good news for R12 customers is that, we don’t need a Solaris, AIX or HP-UX middle tier any more to run the 64-bit Planner program. Oracle has started shipping 64-bit Planner (MSONWL64.exe) for Linux 64-bit from version 12.0.3 onwards. Check Metalink note 254810.1 for details.

If you are a early adopter of R12 with a version earlier than 12.0.3, its time to patch up to 12.0.3 or 12.0.4. and migrate to the Linux 64-bit platform. This migration to Linux 64-bit should not be a big hassle, as it is binary-compatible with Linux 32-bit. I expect it be as simple as 1) copy, 2) relink, and 3) startup. I will, however, find out the exact method, and post here in the blog.

Oracle Apps 11.5.9: Post-Clone Fails if DBA_JOBS Not Turned Off

By Balraj Chahal July 4th, 2008 at 12:28 pm
Posted in Oracle E-Business Suite
Tags:

We recently had an issue with a client while cloning a huge database. The result was that we had to restore the whole database as the post-clone corrupted the existing database. Pain! It took another fourteen hours to restore.

This may help you to troubleshoot the issue.

/sbox/oracle/product/920/appsutil/clone/bin$ perl adcfgclone.pl dbTier

Errors in the Alert.log after Clone failure

Completed: ALTER DATABASE ENABLE PUBLIC THREAD 3Shutting down instance: further logons disabled
Shutting down instance (normal)License high water mark = 5Mon Apr 14 14:49:00 2008

Errors in file /sbox/oracle/product/920/admin/Prod/bdump/sbox1_j001_2453612.trc:

ORA-12012: error on auto execute of job 16303
ORA-12008: error in materialized view refresh path
ORA-28112: failed to execute policy function
ORA-06512: at “SYS.DBMS_SNAPSHOT”, line 820
ORA-06512: at “SYS.DBMS_SNAPSHOT”, line 877
ORA-06512: at “SYS.DBMS_IREFRESH”, line 683
ORA-06512: at “SYS.DBMS_REFRESH”, line 195ORA-06512: at line 1~

Explanation

(more…)

Get to Know the 11i Context File Better

By Vasu Balla June 11th, 2008 at 11:33 am
Posted in Oracle E-Business Suite
Tags:

From my previous post on TXK rollup patch, you already know the significance of adctxinf.tmp file in $AD_TOP/admin/template directory. It has wealth of information about different XML tags in the Context XML file of an Apps 11i instance. In relation to the same file, now I want to share with you all a small XSL (XML style sheet) file I wrote back in 2005. It makes adctxinf.tmp much more readable; all tags are presented in a tabular format in the browser.

For users of Microsoft Internet Explorer, Firefox, and Safari, go directly to this link to view the file. Those of you who want to have an offline copy, download that file and vasu.xsl to same directory and open adctxinf.xml in any app of your choice. Its just a very simple XSL file, but it should make life a little easier. My goal when I wrote this stylesheet was to make the Context XML file itself much more human-readable. But I never got much time to work on that.

It’s true — XML is for machines; HTML is for humans.

Resolving High Water Enqueue Contention

By Riyaj Shamsudeen May 21st, 2008 at 11:43 am
Posted in OracleOracle E-Business Suite
Tags:

Recently, I had a few email exchanges — on the Oracle-l list and offline — about HW enqueue contention. A few interesting observations emerged from test cases I created during that discussion.

HW Enqueue

When a session needs access to a resource, it requests a lock on that resource in a specific mode. Internally, lock and resource structures are used to control access to a resource. Enqueues, as the name suggests, have a First In/First Out queuing mechanism. You can find more information about the internals of locks in my paper, printed in 2001, Internals of locks.

Segments have a High Water Mark (HWM) indicating that blocks below that HWM have been formatted. New tables or truncated tables (that is, truncated without a reuse storage clause), have the HWM value set to the segment header block — meaning, there are zero blocks below the HWM. As new rows are inserted or existing rows updated (increasing row length), more blocks are added to the free lists, and the HWM is bumped up to reflect these new blocks. HW enqueues are acquired in Exclusive mode before updating the HWM, and essentially, HW enqueues operate as a serializing mechanism for HWM updates.

In non-ASSM tablespaces, the HWM is bumped up by five blocks at a time. (Actually, the undocumented parameter _bump_highwater_mark_count controls this behavior, and it defaults to five.) Heavy inserts into a table can result in increased HWM activity leading to HW enqueue contention. This issue is prevalent if the table has LOB columns or if the row length is large.

Measuring HW Enqueue Contention

We will use a few test cases to see how the underlying extent size and table structures are affecting HW enqueue contention. But first we need to find a way to measure the total number of gets on HW enqueue. If the total number of gets on the HW enqueue is reduced, enqueue contention can be relieved.

The fixed table x$ksqst stores statistics about the total number of enqueue gets, and the successes and failures of those gets at the instance level. For example, to see total number of gets on HW enqueue, the following query can be used. (The ksqstreq column indicates total number of gets; ksqstwat shows the total number of waits.) (more…)

When (and How) Europe Met Pythian

By Peter Simecka May 12th, 2008 at 11:59 pm
Posted in Non-Tech ArticlesOracleOracle E-Business SuitePythianPythian Europe
Tags:

Thanks to Paul for announcing the founding of Pythian Europe. Paul finished his blog by inviting me to tell you the story about “how we met Pythian”. Here it is.

As I get older, I am starting to see some symbolic links connecting significant moments of my life. I realize now that the link to Pythian started 20 years ago in Prague in the year 1988. Let me share with you the trip. Although in Soviet Union, Mikhail Gorbachev began to moderate the totalitarian regime by introducing Perestrojka, the government of Czechoslovakia was still ruling with an iron hand.

I worked as a VMS administrator on a Czechoslovak clone of the VAX computer and, by the way, I became an expert in backup/restore, an expertise I had to exercise several times per week due to frequent crashes of our 29MB disks (also a East European clone). Besides administering VAX/VMS systems, I had to write hundreds of lines of Assembler, Fortran, and C code, just to handle inserts, updates, and queries for records in a few data files.

One day a colleague of mine brought me a tape, which he had smuggled from Vienna (there was an embargo on US software imports). On the back of the tape was written, “Oracle V4 for VAX/VMS.” Oracle V4 was released in 1984, the year I knew better as the title of the famous George Orwell novel. Out of curiosity I installed it after hours.

The “Readme1st” said to run one script with a strange extension — “.SQL”. Some program called UFI logged in as scott/tiger into a “database” and did SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO AND DNAME = 'SALES', and then increased the salaries of all salesmen by 10% by one simple UPDATE command.

I was so fascinated that I spent the whole night playing with SQL, as I did on many evenings over the next two years. Once, after returning from a political demonstration in Old Town Square, I escaped back into my SQL world. Despite tanks running the crowds down and the imprisonment of the dissident Vaclav Havel, I perceived strongly that regime change was as inevitable as the victory of SQL.

(more…)