ST Patch 5752399 was not included in 12.0.4 media as it was not detected before the media was cut. Likelyhood of occurance is limited to specific hardware setup.

Solution

Apply Patch 5752399 while installation is underway.

1. Wipe out the failed installation and restart a new one.2. Closely monitor the progress to catch the time it starts copying the datafiles.3. While datafiles are being copied go ahead and apply patch 5752399 with following steps before rapidinstall calls the adcrdb.sh.1. cd /rdbms/lib2. mv config.s config.s.before57523993. cp config.s.ouibak.3 config.s4. Apply the patch 57523995. Try SQL*Plus and make sure it doesn't fail with ORA-31134. If above steps are completed before adcrdb.sh, install will continue successfully, otherwise repeat the steps but faster.

References: NOTE:565966.1

Issue 2

Unzip of appltop failed during install with the below error.

Unzip Failed:

Cannot execute install of appltop

Cause

APPL_TOP zip files were not unzipped correctly.

Solution

Unzip all the APPL_TOP zip files once more. That did not work unfortunately. Then, I downloaded the zip file which has an issue once more from edelivery and proceeded with the installation.

This issue is due to the libclntsh.so.10.1 library not being present under the lib32 folder.

Solution

1) Simply copy the file libclntsh.so.10.1 file from a workingenvironment to non-working environment into the lib32 directory.

But, this is applicable only to the same version of OS.

OR

2) You can generate libclntsh.so.10.1 by executing the following command

$10.1.3_OH/bin/genclntsh -32

3) Setting the correct oracle home to 10.1.3 then running that ./bin/genclntsh helps:

If you run with the -32 option it updates the ./lib32 version of libclntsh.so.10.1If you run without the -32 option it updates the ./lib version of libclntsh.so.10.1( and similarly if it was set to 10.1.2, libclntsh.so.10.1 will be created in 10.1.2/lib )

So it is very important to set OH to 10.1.3.

References: NOTE:413109.1

Issue 4

When attempting to open any forms, the following error occurs:

ERRORFRM-40833: Could not completely load the dynamic user exit libraries.User exit FND did not execute.

Cause

Relink generated a corrupted $FND_TOP/bin/fndfmxit.so due to missing $GMA_TOP/lib/libgma.a.

Solution

1. Copy the library libgma.a from a backup taken after installation of RUP3 patch to $GMA_TOP/lib2. Relink fndfmxit.so by running:

Thursday, November 6, 2008

Sometimes, I have faced a situation wherein the tnsping to the database is working but the JDBC connection fails. So, in order to check the JDBC connection string, one has to use a java program, which unfortunately isn't my forte.

Thankfully, my friend, Padmaraj, who is a SME on java gave me a small piece of code which works wonderfully well.

Note: Save the below java program as ReadCharacter.java, else the program won't work.

Note: Ensure that standalone OC4J is installed (unzipped) and the OC4J environment variable is set before applying patches 4178883 (Patch 11i.HC_PF.E) and 5178799 (HC_PF: 11I.HC_PF.E ROLLUP 3). See previous post for explanation.

3. Install Oracle 10gAS 10.1.2.0.2 on a server other than that hosting Oracle Apps (EBS). If it is installed on the same server as EBS (web tier - if one has a multi-node install), it does make life simple!

4. Copy over the APPL_TOP and the JAVA_TOP from the Oracle Applications EBS web tier to the Oracle 10g AS server.

5. Create a new OC4J Instance in the newly installed Oracle 10g AS.

6. Enter the OC4J Instance name (say HTB) and click on CREATE.

7. Click "OK" on the confirmation page.

8. New OC4J Instance HTB seen in the front page.

9. Replace the JDBC library files in <10gas_oracle_home>/jdbc/lib with the JDBC library files from $JAVA_TOP using the following commands:

2. Note 364439.1 argues that checking ad_bugs for applied patches might not always be the good idea to check whether a given patch or a list of patches are applied. Instead it lists the below pl/sql procedure that can be used.

Many a time, one is faced with a situation where one needs to monitor a process to its completion. For example, if one is performing a clone, one has to copy the source files to the target or if one is performing a backup of any instance, the cp or tar commands that one has fired has to be monitored to its completion.

I generally use a customised script (as below) during those situations to monitor the processes.

Friday, October 24, 2008

Note: This needs to be done on the web tier in case you have a multi-node installation.

1. Download standalone OC4J from here. As far as I know, only OC4J versions upto 10.1.2.0.2 are certified with HTB.

2. Unzip the downloaded file to any directory.

3. Install the standalone OC4J using the below command:

$java -jar oc4j.jar –install

Note: During the installation, you would be asked the enter the admin username (? - I do not really remember if it asks for admin username. If not, then the default username is admin) and the password. Do remember both as they are needed to stop OC4J.

Note: It is interesting to note that the OC4J_HOME environment variable needs to be set for patches 4178883 and 5178799 to complete successfully since they run Autoconfig and during the Autoconfig run, if the environment variable OC4J_HOME is not set, then it will error with:

ERRORCODE = 1 ERRORCODE_END.end std out.mv: cannot stat `/jdbc/lib/classes12dms.jar': No such file or directorysed: can't read /tmp/tmp.txt: No such file or directorymv: cannot stat `/jdbc/lib/nls_charset12.jar': No such file or directorysed: can't read /tmp/tmp.txt: No such file or directorycp: cannot create regular file `/jdbc/lib/classes12dms.jar': No such file or directorysed: can't read /tmp/tmp.txt: No such file or directorycp: cannot create regular file `/jdbc/lib/nls_charset12.jar': No such file or directorysed: can't read /tmp/tmp.txt: No such file or directory

Where:$OC4J_HOME is the home directory where OC4J is installed.$HTBCLIENT is the directory you created under $OC4J_HOME. For example:$OC4J_HOME/htbclient.$IAS_HOME is the location where Oracle E-Business Suite installs Oracle iAS.The E-Business Suite ships with its own application server install, and$IAS_HOME refers to that installation.$JAVA_HOME is where the JDK is installed.

Please remove the following jar files if present, from the AF_CLASSPATH:bc4jdomorcl.jar and bc4jct.jar.

Note: Also modify the AF_CLASSPATH variable in the XML file so that the next time autoconfig is run, the value of the AF_CLASSPATH is not overwritten.

15. Create a file called jndi.properties under $HTBCLIENT with the following lines

Use the following case sensitive parameters (the dbc file should be located in $FND_TOP/secure):

-Djbo.323.compatible=true

-DDBCFile=<absolute path to the dbc file including the file name>

-DJTFDBCFILE=<absolute path to the dbc file including the file name>

For example (increase memory if required):

java -Xmx512M -Xms512M -DworkflowSupported=<N - if the worflow need to be disabled (OR) Y - if the workflow need to be enabled> -Djbo.323.compatible=true -DDBCFile=<absolute path to the dbc file including the file name> -DJTFDBCFILE=<absolute path to the dbc file including the file name> -jar oc4j.jar

A message is displayed indicating that the OC4J container has been initialized.

Friday, October 17, 2008

I am not sure how many people have worked with Oracle HTB (Healthcare Transaction Base), but I have been part of two projects, which involved implementation and maintenance of Oracle HTB. It was a good learning process for me and I enjoyed working on it thoroughly.

What exactly is HTB?

Below is an extract from the HTB Implementation Guide (which is for the base version 5 - 11i.HC_PF.E. The latest version I believe is 6) on what exactly is Oracle HTB:

Oracle Healthcare Transaction Base (HTB) is a comprehensive data repository and serviceinfrastructure that provides independent software vendors, system integrators, and provider organizations with a state of the art software platform that lets them build robust and scalable healthcare applications.

HTB software components let HTB based applications centralize and consolidate patient, provider, and healthcare data, including business rules that span the enterprise.

If one would like to find out their Develper patchset version, they can easily refer metalink note 232313.1 titled Information on Previous Versions of Developer 6i Patchsets. However, this note only lists the developer patchsets till patchset 15. In case anyone has an older installation, they would not know where to look.

Incidentally, one of our installations is on developer patchset 12 (forms/reports version is 6.0.8.21.3). I had a tough time to find out that we were indeed on developer patchset 12! Hence, this blog entry.

In order to find the current Developer 6i patchset version from the forms/reports 6i version, two metalink notes 266541.1 and 74145.1 are available. However, Note 266541.1 provides stale information since it does not include information on the latest two developer patchsets 18 and 19.

So, Metalink note 74145.1 seems to be the best bet in finding out the correct developer patchset version.

Note: All the metalink links that I have used are from the new metalink, which requires Adobe Flash Player 9.

One of my colleagues had started the MWA server (telnet server) and it was running on port number 9198. However, when I queried the processes (ps -ef | grep mwa), I could not find the process which had kick started the MWA server.

This had me thinking and I resolved to find the process ID. However, the utility lsof was not installed on the OS (Sun Sparc Solaris 5.10) . When I probed further (googled! actually), I found a script on onlineappsdba, which I found helpful.

I had to modify that script suitably to exclude processes not owned by the current user. I also referred another blog, to complete my script.

Wednesday, October 15, 2008

I always say that the risk of running a script in an instance wherein it is not meant to be run, is always high, if the SQL prompt in SQL*PLUS is unchanged i.e., if it is retained as "SQL>". This risk can be mitigated, to a great extent, if not fully, by customising the SQL prompt to something like 'USER@SID>'.

This can be achieved in Oracle 10g quite easily (refer my earlier post).Releases prior to Oracle 10g did not have the special pre-defined variable "_USER", which can be set in glogin.sql. However, there exist a lot of workarounds for customising the SQL Prompt and retaining it!

I have detailed below one such workaround.

1. Modify the .profile of each user and add the environment variable SQLPATH to it so that our scripts can be accessed from anywhere.

3. Whenever one wants to switch between users, use the command @connect instead of connect. If we do not use @connect, then the new user would not be displayed in the sqlprompt. This is as illustrated below:

Monday, July 28, 2008

Though this topic is unrelated any Apps DBA topics, I found it necessary to share the solution so that everyone benifits out of it!

Issue:

I used to receive the below error message whenever I tried to shutdown windows XP. A rather vexing problem, no doubt.

Cause:

This message appears because when windows is trying to shutdown and end all the running processes, the WMS idle process keeps working. Thus an end-program message appears. The two most common reasons for this are:

Scout service run by Nero 7

Microsoft Office Communicator 2005

Solution:

The fix is simple, disable the Nero 7 scout service if it is enabled.

For this, go to Start > All Programs > Nero > Tools > Nero Scout.

On this screen ,Uncheck Enable the Nero scout.

This will fix the issue for most of the users, for the rest of you who are not using Nero are most probably getting this error because of Microsoft Office Communicator 2005. For that you need to either manually exit the communicator 2005 from the system tray before you shutdown windows, or also you can use this hot-fix provided by Microsoft for WMI Idle error message.

ModSecurity is a web application firewall that can work either embedded or as a reverse proxy. It provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis. [7]

mod_security is an Apache module (for Apache 1 and 2) that provides intrusion detection and prevention for web applications. It aims at shielding web applications from known and unknown attacks, such as SQL injection attacks, cross-site scripting, path traversal attacks, etc. [6]

mod_security is an Apache module designed as a sort of web application firewall. It’s most useful for preventing SQL Injection and Cross Site Scripting (or XSS). [2]

It is also an open source project that aims to make the web application firewall technology available to everyone. [7]

SQL Injection

SQL injection is a technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is in fact an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another.

Cross-site scripting (XSS)

Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web applications which allow code injection by malicious web users into the web pages viewed by other users. Examples of such code include HTML code and client-side scripts. An exploited cross-site scripting vulnerability can be used by attackers to bypass access controls such as the same origin policy. Vulnerabilities of this kind have been exploited to craft powerful phishing attacks and browser exploits. As of 2007, cross-site scripting carried out on websites were roughly 80% of all documented security vulnerabilities. Often during an attack "everything looks fine" to the end-user who may be exposed to unauthorized access, theft of sensitive data and financial loss.

Monday, July 21, 2008

A very common question in any interview is "How do you find the size of a database?" This question can be answered in numerous ways. For e.g., some might say that the size of the database is the sum of the size of each datafile. Some might add the size of the tempfiles to the afore mentioned answer.

However, according to me, the size of the database can be calculated as below:

Thursday, July 3, 2008

Many a time, DBAs and Developers tend to run scripts, accidentally, in instances that they do not actually intend to. In extreme cases, this might result in disastrous consequences, sometimes even leading to recovering/restoring the database from a backup.

This mistake can easily be avoided if the sql prompt displays the username and/or the SID in lieu of just "SQL>".

Whenever sqlplus is invoked, 2 files are executed: glogin.sql and login.sql (if it exists) in the order mentioned. These 2 files are located under $ORACLE_HOME/sqlplus/admin.

Note: One drawback of this method, if it may be called so, is that whenever one logs in to sqlplus using /nolog option, only the '@' character is displayed as the connection to the database is yet to be established. As soon as the connection is established, the username and SID are again populated in the sqlprompt. Incidentally, this is a new feature in 10g, wherein the glogin.sql and login.sql files are executed after the connect command.

Visitors!

The following text will not be seen after you upload your website,
please keep it in order to retain your counter functionality
Insurance is one of the bare necessities of life. simply by putting attention to website offerring auto insurance quotes the purchace process can be optimized. Pity you won’t be around to collect your life insurance. counter