Archive for July, 2007

APPS Health Check

Posted on July 30, 2007. Filed under: HealthCheck |

Many a times we would have faced situations wherein we had to perform health checks for multiple instances especially during mass outages. DBA’s working on hosted services will understand better what iam referring to. Have you ever thought of or thinking of a script which will request for the URL & the sysadmin password once, ONLY ONCE and perform 7 checks at a same time.

Below is a simple html page which performs below tests

1) Generic Login Check
2) JTF Login Check
3) Servlets Check
4) OAM Login Check
5) Discoverer Viewer Check
6) Discoverer Launch Check
7) Forms (dev60cgi/f60cgi) Check

The script opens seven different windows for the above tests.

Login Screen

healthcheckloginpage.jpg
Code

————————————————————–

<html>
<head>
<title>Oracle APPS Health Check – Powered by OraclePitStop</title>
<script type=”text/javascript”>

function launch()
{

var htp_v = document.details.http_t.value;
var hst_v = document.details.hostname_t.value;
var dmn_v = document.details.domain_t.value;
var prt_v = document.details.port_t.value;
var usr_v = document.details.i_1.value;
var pwd_v = document.details.i_2.value;
var sid_v = document.details.sid_t.value;

full_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v;
pls_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/pls/”+sid_v+”/oraclemypage.home”;
home_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/OA_HTML/US/ICXINDEX_”+sid_v+”_”+hst_v+”.htm”;
aplogon_url=pls_url+”?i_1=”+usr_v+”&i_2=”+pwd_v+”&rmode=2&home_url=”+home_url;
discovi_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/discoverer4i/viewer?us=”+usr_v+”&pw=”+pwd_v+”&db=”+sid_v;
jtflogn_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/OA_HTML/jtflogin.jsp?username=”+usr_v;
oamlogn_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/servlets/weboam/oam/oamLogin”
servlet_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/servlets/Hello”
discopl_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/discwb4/html/discolaunch.htm”
dev60cg_url=htp_v+”://”+hst_v+”.”+dmn_v+”:”+prt_v+”/dev60cgi/f60cgi”

window.open(aplogon_url,’Aplogon’,’left=0,top=0,width=500,height=200,toolbar=1,resizable=1,scrollbars=1′);
window.open(jtflogn_url,’JTFLogin’,’left=510,top=0,width=500,height=200,toolbar=1,resizable=1,scrollbars=1′);
window.open(oamlogn_url,’OAMlogin’,’left=0,top=200,width=500,height=200,toolbar=1,resizable=1,scrollbars=1′);
window.open(servlet_url,’Servlets’,’left=510,top=200,width=500,height=200,toolbar=1,resizable=1,scrollbars=1′);
window.open(discovi_url,’Discovi’,’left=0,top=400,width=500,height=170,toolbar=1,resizable=1,scrollbars=1′);
window.open(discopl_url,’discopl’,’left=510,top=400,width=500,height=170,toolbar=1,resizable=1,scrollbars=1′);
window.open(dev60cg_url,’formslh’,’left=200,top=250,width=500,height=170,toolbar=1,resizable=1,scrollbars=1′);

}

function validateHttp(form)
{
if (form.http_t.value.length > 0)
{
var value1 = “http”
var value2 = “https”

if (form.http_t.value == value1 || form.http_t.value == value2)
{
var htp_v = form.http_t.value;
}else
{
alert(“Enter http or https. “+form.http_t.value+” is a invalid entry”);
form.http_t.focus();
return false;
}
}else
{
alert(“Enter http or https. Transfer protocol cannot be null”);
form.http_t.focus();
return false;
}

}

function validateHost(form)
{
if(notEmpty(form.hostname_t))
{
return true;
}else
{
var hst_v = form.hostname_t.value;
}
}

function validateDomain(form)
{
if (form.domain_t.value.length > 0)
{
var lastfour = form.domain_t.value.substr((form.domain_t.value.length – 4),4);

if (lastfour == “.com” )
{
var dmn_v = form.domain_t.value;
}else
{
form.domain_t.focus();
alert(“Domain value entered is not of standard. Domain should be of the format <domain_name>.<com>”)
return false;
}
}else
{
alert(“Domain Name cannot be null”);
return false;
}

}

function validatePort(form)
{
if (form.port_t.value.length > 0)
{
var anum=/(^\d+$)|(^\d+\.\d+$)/

if (anum.test(form.port_t.value))
{
testresult=true;
var prt_v = form.port_t.value;
}
else
{
alert(“Port number cannot have Characters”);
testresult=false;
form.port_t.focus();
}
return (testresult)
}else
{
alert(“Enter Port Number”);
return false;
}
}

function validateSid(form)
{
if(notEmpty(form.sid_t))
{
return true;
}else
{
var sid_v = form.sid_t.value;
}
}

function validateUser(form)
{
if(notEmpty(form.i_1))
{
return true;
}else
{
var usr_v = form.i_1.value;
}
}

function validatePwd(form)
{
if(notEmpty(form.i_2))
{
return true;
}else
{
var pwd_v = form.i_2.value;
}
}

function notEmpty(elem)
{
var str = elem.value;

if(str.length == 0)
{
alert(“You must fill in all required fields (*)”);
return false;
} else
{
return true;
}
}

</script>
</head>
<body>

<h2 style=”font-family:verdana;color:blue” align=”left”>
<font color=”#FF3300″>Oracle APPS – Health Check</font> </h2><b><hr></b>
<form name=details onsubmit=”javascript:launch();” METHOD=”POST” >
<center><br><br>
<table style=”font-family:verdana;font-size:80%;color:green”>
<tr>
<td><sup>*</sup> http / https </td>
<td><INPUT TYPE=”text” NAME=”http_t” VALUE=”” SIZE=”30″ MAXLENGTH=”30″ onBlur=”return validateHttp(this.form)”></td>
</tr>
<td><sup>*</sup> Hostname</td>
<td><INPUT TYPE=”text” NAME=”hostname_t” VALUE=”” SIZE=”30″ MAXLENGTH=”30″ onBlur=”return validateHost(this.form)”></td>
</tr>
<tr>
<td><sup>*</sup> Domain</td>
<td><INPUT TYPE=”text” NAME=”domain_t” VALUE=”” SIZE=”30″ MAXLENGTH=”30″ onBlur=”return validateDomain(this.form)”></td>
</tr>
<tr>
<td><sup>*</sup> Port</td>
<td><INPUT TYPE=”text” NAME=”port_t” VALUE=”” SIZE=”30″ MAXLENGTH=”30″ onBlur=”return validatePort(this.form)”></td>
<td>Enter 443 if port is https</td>
</tr>
<tr>
<td><sup>*</sup> SID</td>
<td><INPUT TYPE=”text” NAME=”sid_t” VALUE=”” SIZE=30 MAXLENGTH=”30″ onBlur=”return validateSid(this.form)”></td>
</tr>
<tr>
<td><sup>*</sup> Username</td>
<td><INPUT TYPE=”text” NAME=”i_1″ VALUE=”” SIZE=”30″ MAXLENGTH=”30″ onBlur=”return validateUser(this.form)”></td>
</tr>
<tr>
<td><sup>*</sup> Password</td>
<td><INPUT TYPE=”password” NAME=”i_2″ VALUE=”” SIZE=”30″ MAXLENGTH=”30″ onBlur=”return validatePwd(this.form)”></td>
</tr>
<tr>
<td></td><td><Input type=submit value=”Launch” >Powered by
<a href=”https://oraclepitstop.wordpress.com/”>OraclePitStop</a><p style=”font-family:verdana;color:black”> </p></center></td>
</tr>
</table>
</center>
</form>
</body>
</html>

————————————————————–
Feel free to incorporate your customizations.

cheers,
OraclePitStop

Advertisements
Read Full Post | Make a Comment ( 7 so far )

Discoverer4i Troubleshooting

Posted on July 26, 2007. Filed under: Discoverer |

Below are the errors which we had encountered post upgrade of 
Discoverer4i wherein the discoverer component doesn't startup. 
This post will be a running document, wherein it will be updated 
as and when we encounter a new issue and obviously a solution 
to that 🙂

First -> Make sure Jserv is up and running. 

Issue 1 
OAD Fatal Error in oad.log

$ORACLE_HOME/discwb4/util > vi oad.log
               "oad.log" 3 lines, 184 characters
               OAD: Fatal Error [Cross-device link].

Solution

Make sure VBROKER_ADM environment variable is set up 
correctly.


Issue 2

Unable to create repository file: 
$ORACLE_HOME/vbroker/adm/impl_dir/impl_rep. in oad.log

Solution

Add this line in $ORACLE_HOME/discwb4/discwb4.sh
            TMPDIR=/dchpgi/applmgr/product/806/discwb4/tmp 
            export TMPDIR


Issue 3

DISCOVERER VIEWER is not working.
Abstract: DISCOVERER VIEWER DOES NOT WORK WITH THE 
PARAMETER "SHOW_GRAPHS=TRUE" 

Solution

The file $IAS_ORACLE_HOME/Apache/Apache/htdocs/
disco4iv/html/disco4iv.html has to have the entry 
show_graphs="false" instead of show_graphs="true". 
This is the fix and the relevant bug is 2664219.


Issue 4

DISCOVERER VIEWER  Page is blank and also hanging for long time

Solution

Correct the entry for the TNS in discwb.sh to point to correct 
TNS_ADMIN value. 
echo $TNS_ADMIN can be used to get the value.
Bounce the apache and start the services.


Issue 5

INTERNAL SERVER ERROR on Viewer Page

Solution

Check these values
wrapper.classpath=$IAS_ORACLE_HOME/Apache/Apache/htdocs/
disco4iv/disco4iv.jar was added in  viewer4i.properties file  
before the translator.zip

It should be in two separate lines

wrapper.classpath=$IAS_ORACLE_HOME/Apache/Apache/htdocs/
disco4iv/disco4iv.jar
wrapper.classpath=$IAS_ORACLE_HOME/sqlj/lib/translator.zip


Issue 6

Unable to find the Locator.ior file. Error message in 
Discoverer viewer page

Solution

vi $IAS_ORACLE_HOME/Apache/Apache/htdocs/disco4iv/html/
disco4iv.xml
Locator name="Hostname.domainname_PortOracleDiscoverer
Locator4" 
path="$IAS_ORACLE_HOME/Apache/Apache/htdocs/discwb4/
applet/"/>

Modify the Alias (file or path) to the Real URL:

$IAS_ORACLE_HOME//Apache/Apache/htdocs/disco4iv/html/
disco4iv.xml
servlet.Viewer.code=oracle.discoiv.Disco4iv
servlet.Viewer.initArgs=config=file:$IAS_ORACLE_HOME/
Apache/Apache/htdocs/disco4iv/html/disco4iv.xml


Issue 7

Discoverer BIS report not working.

Solution

To resolve errors accessing Discoverer BIS report 
(login as SYSADMIN, on Selfservice application -> 
Disco BIS Report)
Add FND_DEBUG_DIR=$APPLCSF/tmp ; 
export FND_DEBUG_DIR in $ORACLE_HOME/discwb4/discwb.sh 
and bounce discoverer services.


Issue 8

Unable to start locator session while starting discoverer services

Solution

Go to $ORACLE_HOME/discwb4
Verify values in discwb4.sh
vi discwb4.sh
INSTANCE_NAME=Hostname.DomainName_Port
TMPDIR=$ORACLE_HOME/discwb4/tmp
Export TMPDIR
Save and exit the file
cd $VBROKER_ADM
pwd
$ORACLE_HOME/vbroker/adm
cd impl_dir
mv impl_rep impl_rep_bkp
mv impl_rep~ impl_rep~_bkp
Run Registerall.sh will create these new folders.
ls
README README.txt impl_rep impl_rep_bkp impl_rep~ 
impl_rep~_bkp


Issue 9

Unable to start Gatekeeper services

Solution

Go to $IAS_ORACLE_HOME/Apache/htdocs/discwb4/applet 
directory
Check exterior_port in 
$ORACLE_HOME/vbroker/bin/gatekeeper.properties and 
$APACHE_TOP/Apache/htdocs/discwb4/applet/
gatekeeper.properties
Check the gatekeeper.log file for errors like 
'unable to bind to port' or other errors.
Fix the error and restart the gatekeeper.



cheers,
OraclePitStop Team
Read Full Post | Make a Comment ( None so far )

Diagnostics and R12

Posted on July 11, 2007. Filed under: R12 |

This post is to share something that i found recently with R12.

All the Diagnostics tests that we see in 11i have not been ported to R12 yet.
In 11i, System Administration –> Diagnostics –> Diagnostics test gives me a huge list of applications and its corresponding registered tests to run.

11i Diag tests 1

11i Diag tests 2

Following the same navigation in R12 gives me only a curtailed list of applications.

R12 Diag tests

Metalink Note reference : 167000.1 and 226429.1

As per the notes, we have registered IZU as a product (3636980) and applied the baseline patch 4630372 (R12.IZU.A) and also the latest Diag patch 5856584 (R12 March’07)

Hint:
(1) Please read the readme file carefully before applying these patches. For eg, ‘u’ driver of he patch 3636980 should not be run. The patch is meant just for registering the product.

(2) To keep a tab on the latest Diag patches, follow metalink Note: 167000.1

Hope this tip was useful.

Thanks,
Oracle Pitstop team.

Read Full Post | Make a Comment ( 3 so far )

Liked it here?
Why not try sites on the blogroll...