Monday, June 18, 2007
Change Rename hostname for Oracle Application Server Midtier
It is ok to change / rename hostname for Oracle Application Server Infrastructure and Midtier. However documentation says it does not support Oracle AS with Metadata Repository.
Simply execute the following command to change hostname for Midtier.
% $ORACLE_HOME/chgip/scripts/chgiphost.sh -mid
The script is clever enough to pick up the host information. So you just need to accept the default prompt 4 times, that's it.
Saturday, January 13, 2007
OracleAS rewrite/redirect URL to internal machine hostname
When it goes live, we’ll assign a new Domain Name to point to this machine. Hence, this machine has 2 names. Internally it is machine_hostname.domain.com and externally it is host.internet.com.
From Internet when we access this machine, here comes a strange behaviour: when we login OracleAS EM (Enterprise Manager) or perform JSP/Struct/JSF Redirect in our web application, the internal machine hostname is shown up in browser. Hence the browser shows “Page cannot be displayed”.
Amazing. What’s wrong? What happens inside JSP/Struct/JSF Redirect?
Here is the culprit:
“vi $ORACLE_HOME/Apache/Apache/conf/httpd.conf”.
You see the following information:
…
ServerName machine_hostname.domain.com
…
# UseCanonicalName: (new for 1.3) With this setting turned on, whenever
# Apache needs to construct a self-referencing URL (a URL that refers back
# to the server the response is coming from) it will use ServerName and
# Port to form a "canonical" name. With this setting off, Apache will
# use the hostname:port that the client supplied, when possible. This
# also affects SERVER_NAME and SERVER_PORT in CGI scripts.
UseCanonicalName On
Observation is,
1) ServerName is hardcoded with internal machine hostname.
2) Read the explanation of UseCanonicalName, Apache use ServerName to construct a self-referencing URL.
So, we need to set UseCanonicalName off, then Apache will use the hostname:port that the client supplied.
Problem solved. Mission accomplished.
What happens inside JSP/Struct/JSF Redirect?
public class RedirectServlet extends HttpServlet
{
public void service(HttpServletRequest req,
HttpServletResponse resp)
{
String contextPath = req.getContextPath();
String redirectStr = contextPath +
"/nextpage.jsp?param1=value1";
// Use encodeRedirectURL so that session id can be
// included in browser which doesn't support cookies.
resp.sendRedirect(resp.encodeRedirectURL(redirectStr));
}
}
Then, we use Telnet to access this servlet:% telnet machine_hostname 8080
Manually enter:
GET /servlet/RedirectServlet HTTP/1.0
You will get the reply:
HTTP1.1 302 Moved Temporarily
Location: http://machine_hostname:8080/webapp/nextpage.jsp?param1=value1
DATE: ...
Server: ...
Connection: ...
What to observe is that,
1) Redirect in fact is a 302 response from webserver.
2) The complete URL and Port are written out fully in the Location.
This is the reason why the internal machine hostname will be shown up in browser, when we login OracleAS EM (Enterprise Manager) or perform a JSP/Struct/JSF Redirect in our web application.
Please check how to let EM and Redirect return URL as expected-ly.
Run OHS at port 80 (HTTP) and port 443 (HTTPS)
By default, OracleAS HTTP Server runs at port 7777 for HTTP and port 4443 for HTTPS.
In Linux, only root user can use port less than 1024. So, in order to have OHS runs at port 80 and HTTPS runs at port 443, we need to do the following steps:
1. As oracle user,
"cd $ORACLE_HOME/Apache/Apache/conf"
2. Edit httpd.conf
"vi httpd.conf"
Search for 7777 by ":/7777"
You see:
# This port is used when starting without SSL
Port 7777
Listen 7777
Change them to:
# This port is used when starting without SSL
Port 80
Listen 80
3. Edit ssl.conf
"vi ssl.conf"
Replace all occurance of 4443 with 443.
":1,$ s/4443/443/g" or ":%s/4443/443/g"
4. As root user, "cd $ORACLE_HOME/Apache/Apache/bin". Execute:
# chmod 777 apachectl
# chown root .apachectl
# chmod 6750 .apachectl
You'll see the following:
# ll apachectl
-rwxrwxrwx 1 oracle dba 11909 Dec 8 15:11 apachectl
# ll .apachectl
-rwsr-s--- 1 root dba 1703684 Jan 16 2006 .apachectl
Ok, done.
As oracle user, you can startup OracleAS with "opmnctl startall"
Also, you can view the status with "opmnctl status -l"
Tuesday, December 12, 2006
OracleAS1012 vs OracleAS1013
A minor version difference between the number 1012 and 1013, however the underlying mechanisms and libraries have huge changes.
AS1012 | AS1013 | |
JDK Version | 1.4.2 | 1.5 |
JDBC Version | classes12.jar | ojdbc14.jar |
Corresponding JDeveloper Version | JDeveloper 1012 | JDeveloper 1013 |
Clustering | Manual joining server farm via EM | Dynamic Discovery with broadcasting address in opmn.xml |
JSF Support | Need extra tweaking | Supported |
WEB-INF/web.xml | (plain) | Define namespace such as xmlns:xsi, xsi:schemaLocation, etc, which is not compatible with AS1012 |
Misc Java libraries | Working with JDK1.4.2 | Working with JDK1.5. Not completely compatible with AS1012. |
Startup | opmnctl and emctl | opmnctl |
Enterprise Manager | http://machine:1810 | http://machine/em |
The above are the list of difference I have encountered.
What it means is that, at this point of time when you develop web application, you need to explicitly synchronize Oracle AS version and environment.
For example, you use JDeveloper 1013 to develop web application and deploy it into OracleAS1013 only. If you try to deploy it into AS1012, it is very problematic. You need to manually edit web.xml and bundle older underlying libraries (such as classes12.jar) into your EAR file.
Wednesday, November 15, 2006
SSL-enabled AS1013
So you can access your web application via https://HOST:4443. Click the bottom right hand side lock icon in IE to view the certificate is dummy.
In Linux, reference http://download-west.oracle.com/docs/cd/B25221_04/web.1013/b25211/ssl.htm to properly generate a valid SSL certificate via Oracle Wallet Manager (owm).
However, the document stops at successfully installation of certificate only. It doesn't explain how to access the web application simply via httpS://HOST (without specifying port).
We need to do the following:
1. Edit AS/Apache/Apache/conf/ssl.conf to load the correct certificate. For example,
SSLWallet = (where you install the SSL certificate) e.g /etc/ORACLE/WALLETS/oracle
2. Redirection 4443 to 443.
In Linux, ports below 1024 need to be executed by root priviledge. The simplest way is to use iptables command to redirect uncommon 4443 to common SSL port 443.
Edit /etc/rc.d/rc.local to include the following:
iptables -t nat -A PREROUTING -p tcp --dport 443 -i eth0 -j REDIRECT --to-port 4443
3. If you want to force the web server to always serve https. Meaning, when user access http://HOST/anything, they will be routed to httpS://HOST/anything automatically.
(Reference:http://forums.oracle.com/forums/thread.jspa?messageID=1430117?)
Edit AS/Apache/Apache/conf/httpd.conf to include the following:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
Friday, November 03, 2006
Oracle AS class loading sequence
<html>
<body>
<p>Show CLASSPATH: [<%= System.getProperty("java.class.path") %>]</p>
</body>
</html>
Show CLASSPATH: [oc4j.jar:
/opt/oracle/AS1012/j2ee/home/lib/ejb.jar:
/opt/oracle/AS1012/j2ee/home/lib/servlet.jar:
/opt/oracle/AS1012/j2ee/home/lib/ojsp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jndi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jdbc.jar:
/opt/oracle/AS1012/j2ee/home/iiop.jar:
/opt/oracle/AS1012/j2ee/home/iiop_gen_bin.jar:
/opt/oracle/AS1012/j2ee/home/lib/jms.jar:
/opt/oracle/AS1012/j2ee/home/lib/jta.jar:
/opt/oracle/AS1012/j2ee/home/lib/jmxri.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax77.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax88.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/ons.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/optic.jar:
/opt/oracle/AS1012/j2ee/home/../../lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/lib/connector.jar:
/opt/oracle/AS1012/j2ee/home/lib/bcel.jar:
/opt/oracle/AS1012/j2ee/home/lib/cos.jar:
/opt/oracle/AS1012/j2ee/home/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/lib/jnet.jar:
/opt/oracle/AS1012/j2ee/home/lib/jcert.jar:
/opt/oracle/AS1012/j2ee/home/lib/activation.jar:
/opt/oracle/AS1012/j2ee/home/lib/mail.jar:
/opt/oracle/AS1012/j2ee/home/../../javavm/lib/jasper.zip:
/opt/oracle/AS1012/j2ee/home/../../lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaxp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaas.jar:
/opt/oracle/AS1012/j2ee/home/jazn.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/jaxb-rt-1.0-ea.jar:
/opt/oracle/AS1012/j2ee/home/../../soap/lib/soap.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsserver.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsdl.jar:
/opt/oracle/AS1012/j2ee/home/../../rdbms/jlib/aqapi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jem.jar:
/opt/oracle/AS1012/j2ee/home/../../javacache/lib/cache.jar:
/opt/oracle/AS1012/j2ee/home/lib/http_client.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaasmodules.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/runtime12ee.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/translator.jar:
/opt/oracle/AS1012/j2ee/home/lib/crimson.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcms.jar::
/opt/oracle/AS1012/j2ee/home/applib:
/opt/oracle/AS1012/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/jlib/oraclepki.jar:
/opt/oracle/AS1012/jlib/ojpse.jar:
/opt/oracle/AS1012/jlib/ldapjclnt10.jar:
/opt/oracle/AS1012/jlib/netcfg.jar:
/opt/oracle/AS1012/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/jlib/javax-ssl-1_1.jar:
/opt/oracle/AS1012/jlib/orai18n.jar:
/opt/oracle/AS1012/owm/jlib/owm-3_0.jar:
/opt/oracle/apps/prodcomn/java:
/opt/oracle/apps/prodcomn/java/xmlparserv2.zip:
/opt/oracle/apps/prodcomn/java/ieoservers.zip:
/opt/oracle/apps/prodcomn/java/jbojdbcpatch.zip:
/opt/oracle/apps/prodcomn/java/cache.zip:
/opt/oracle/apps/prodcomn/java/bc4jdatum817.zip:
/opt/oracle/apps/prodcomn/java/jdev-rt.zip:
/opt/oracle/apps/prodcomn/java/fndoam.zip:
/opt/oracle/apps/prodcomn/java/nls_charset11.zip:
/opt/oracle/apps/prodcomn/java/jbodatum111.jar:
/opt/oracle/apps/prodcomn/java/aqapi.zip:
/opt/oracle/apps/prodcomn/java/ieoall.zip:
/opt/oracle/apps/prodcomn/java/xdoparser.zip:
/opt/oracle/apps/prodcomn/java/sax2.zip:
/opt/oracle/apps/prodcomn/java/appsborg.zip:
/opt/oracle/apps/prodcomn/java/F1J7Swing.jar:
/opt/oracle/apps/prodcomn/java/bipres.zip:
/opt/oracle/apps/prodcomn/java/jdbc14.zip:
/opt/oracle/apps/prodcomn/java/servlet.zip:
/opt/oracle/apps/prodcomn/java/ojdigsig.zip:
/opt/oracle/apps/prodcomn/java/loadjava.zip:
/opt/oracle/apps/prodcomn/java/jdbc12.zip:
/opt/oracle/apps/prodcomn/java/graphbuilder.zip:
/opt/oracle/apps/prodcomn/java/appsborg2.zip:
/opt/oracle/apps/prodcomn/java/xmlparserv2-904.zip:
/opt/oracle/apps/prodcomn/java/fwkToolbox.zip:
/opt/oracle/apps/prodcomn/java/nls_charset12.zip:
/opt/oracle/apps/prodcomn/java/owa.zip:
/opt/oracle/apps/prodcomn/java/HTBGateway.zip:
/opt/oracle/apps/prodcomn/java/jdbc111.zip:
/opt/oracle/apps/prodcomn/java/jmscommon.zip:
/opt/oracle/AS1012/BC4J/lib:
/opt/oracle/AS1012/BC4J/lib/collections.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jdomorcl.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jimdomains.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmt.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jct.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmtejb.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jctejb.jar:
/opt/oracle/AS1012/BC4J/lib/adfm.jar:
/opt/oracle/AS1012/BC4J/lib/adfmtl.jar:
/opt/oracle/AS1012/BC4J/lib/adfmweb.jar:
/opt/oracle/AS1012/jlib/ojmisc.jar:
/opt/oracle/AS1012/ord/jlib/ordim.jar:
/opt/oracle/AS1012/ord/jlib/ordhttp.jar:
/opt/oracle/AS1012/jlib/jdev-cm.jar:
/opt/oracle/AS1012/lib/dsv2.jar:
/opt/oracle/AS1012/lib/xsu12.jar::
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/classes:
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/lib/htbclnt.jar]
... in fact, how do you feel? I feel very bad about so many irrelevant libaries were loaded in AS by default. No wonder AS has huge memory requirement. And next bad thing is, my application (SessionTest) libraries only appear at the end of the CLASSPATH.
This has caused one major problem. For example, if my application needs a particular version of classes12dms.zip JDBC library (because Oracle has released so many version of JDBC drivers, I have problem with RMI Serialization), AS will never be able to load my needed classes12dms.zip because there are so many JDBC libraries existing ahead.
So, I need to force AS to load my application libraries (in classes and lib folder).
In JDeveloper1012, we'll go New->General->Deployment Descriptors->orion-web.xml. Update the file with:
<orion-web-app servlet-webdir="/">
<web-app-class-loader search-local-classes-first="true"/>
</orion-web-app>
Then, deploy the application again. And we'll see what happens to the class loading sequence:
Show CLASSPATH: [:
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/classes:
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/lib/htbclnt.jar:
oc4j.jar:/opt/oracle/AS1012/j2ee/home/lib/ejb.jar:
/opt/oracle/AS1012/j2ee/home/lib/servlet.jar:
/opt/oracle/AS1012/j2ee/home/lib/ojsp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jndi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jdbc.jar:
/opt/oracle/AS1012/j2ee/home/iiop.jar:
/opt/oracle/AS1012/j2ee/home/iiop_gen_bin.jar:
/opt/oracle/AS1012/j2ee/home/lib/jms.jar:
/opt/oracle/AS1012/j2ee/home/lib/jta.jar:
/opt/oracle/AS1012/j2ee/home/lib/jmxri.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax77.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax88.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/ons.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/optic.jar:
/opt/oracle/AS1012/j2ee/home/../../lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/lib/connector.jar:
/opt/oracle/AS1012/j2ee/home/lib/bcel.jar:
/opt/oracle/AS1012/j2ee/home/lib/cos.jar:
/opt/oracle/AS1012/j2ee/home/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/lib/jnet.jar:
/opt/oracle/AS1012/j2ee/home/lib/jcert.jar:
/opt/oracle/AS1012/j2ee/home/lib/activation.jar:
/opt/oracle/AS1012/j2ee/home/lib/mail.jar:
/opt/oracle/AS1012/j2ee/home/../../javavm/lib/jasper.zip:
/opt/oracle/AS1012/j2ee/home/../../lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaxp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaas.jar:
/opt/oracle/AS1012/j2ee/home/jazn.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/jaxb-rt-1.0-ea.jar:
/opt/oracle/AS1012/j2ee/home/../../soap/lib/soap.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsserver.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsdl.jar:
/opt/oracle/AS1012/j2ee/home/../../rdbms/jlib/aqapi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jem.jar:
/opt/oracle/AS1012/j2ee/home/../../javacache/lib/cache.jar:
/opt/oracle/AS1012/j2ee/home/lib/http_client.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaasmodules.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/runtime12ee.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/translator.jar:
/opt/oracle/AS1012/j2ee/home/lib/crimson.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcms.jar::
/opt/oracle/AS1012/j2ee/home/applib:
/opt/oracle/AS1012/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/jlib/oraclepki.jar:
/opt/oracle/AS1012/jlib/ojpse.jar:
/opt/oracle/AS1012/jlib/ldapjclnt10.jar:
/opt/oracle/AS1012/jlib/netcfg.jar:
/opt/oracle/AS1012/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/jlib/javax-ssl-1_1.jar:
/opt/oracle/AS1012/jlib/orai18n.jar:
/opt/oracle/AS1012/owm/jlib/owm-3_0.jar:
/opt/oracle/apps/prodcomn/java:
/opt/oracle/apps/prodcomn/java/xmlparserv2.zip:
/opt/oracle/apps/prodcomn/java/ieoservers.zip:
/opt/oracle/apps/prodcomn/java/jbojdbcpatch.zip:
/opt/oracle/apps/prodcomn/java/cache.zip:
/opt/oracle/apps/prodcomn/java/bc4jdatum817.zip:
/opt/oracle/apps/prodcomn/java/jdev-rt.zip:
/opt/oracle/apps/prodcomn/java/fndoam.zip:
/opt/oracle/apps/prodcomn/java/nls_charset11.zip:
/opt/oracle/apps/prodcomn/java/jbodatum111.jar:
/opt/oracle/apps/prodcomn/java/aqapi.zip:
/opt/oracle/apps/prodcomn/java/ieoall.zip:
/opt/oracle/apps/prodcomn/java/xdoparser.zip:
/opt/oracle/apps/prodcomn/java/sax2.zip:
/opt/oracle/apps/prodcomn/java/appsborg.zip:
/opt/oracle/apps/prodcomn/java/F1J7Swing.jar:
/opt/oracle/apps/prodcomn/java/bipres.zip:
/opt/oracle/apps/prodcomn/java/jdbc14.zip:
/opt/oracle/apps/prodcomn/java/servlet.zip:
/opt/oracle/apps/prodcomn/java/ojdigsig.zip:
/opt/oracle/apps/prodcomn/java/loadjava.zip:
/opt/oracle/apps/prodcomn/java/jdbc12.zip:
/opt/oracle/apps/prodcomn/java/graphbuilder.zip:
/opt/oracle/apps/prodcomn/java/appsborg2.zip:
/opt/oracle/apps/prodcomn/java/xmlparserv2-904.zip:
/opt/oracle/apps/prodcomn/java/fwkToolbox.zip:
/opt/oracle/apps/prodcomn/java/nls_charset12.zip:
/opt/oracle/apps/prodcomn/java/owa.zip:
/opt/oracle/apps/prodcomn/java/HTBGateway.zip:
/opt/oracle/apps/prodcomn/java/jdbc111.zip:
/opt/oracle/apps/prodcomn/java/jmscommon.zip:
/opt/oracle/AS1012/BC4J/lib:
/opt/oracle/AS1012/BC4J/lib/collections.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jdomorcl.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jimdomains.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmt.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jct.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmtejb.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jctejb.jar:
/opt/oracle/AS1012/BC4J/lib/adfm.jar:
/opt/oracle/AS1012/BC4J/lib/adfmtl.jar:
/opt/oracle/AS1012/BC4J/lib/adfmweb.jar:
/opt/oracle/AS1012/jlib/ojmisc.jar:
/opt/oracle/AS1012/ord/jlib/ordim.jar:
/opt/oracle/AS1012/ord/jlib/ordhttp.jar:
/opt/oracle/AS1012/jlib/jdev-cm.jar:
/opt/oracle/AS1012/lib/dsv2.jar:
/opt/oracle/AS1012/lib/xsu12.jar:]
Yes. Mission accomplished. AS is loading my application libraries first.
Monday, October 30, 2006
Oracle AS101202 Installation Step on RHEL4
Oracle AS 1012.02 installation step on RHEL4 is summarized from Reference: Oracle® Application Server Quick Installation Guide 10g Release 2 (10.1.2) for Linux x86
http://download-west.oracle.com/docs/cd/B14099_19/linux.1012/quickinstall.1012/quickinstall/toc.htm
1) System hardware requirement.
Skip. No need to check, the runInstaller script will check for you.
2) Software dependency. Cut and paste the following command.
$ rpm -q glibc glibc-common binutils gcc gcc-c++ libstdc++ libstdc++-devel openmotif21 pdksh setarch make gnome-libs sysstat compat-db control-center xscreensaver
$ rpm -qa grep compat-libstdc++
3) Edit Kernel Parameters.
Execute $ ulimit -Hn
If the value is less than 65536, edit /etc/security/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 2048
* hard nofile 65536
Edit /etc/sysctl.conf to include the following:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 256 32000 100 142
fs.file-max = 131072
kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65535
4) Edit /etc/hosts such that the machine has a proper domain name.
Eg. 10.206.100.76 as1012.domain.com as1012
5) As root, add oracle user and oinstall group.
# /usr/sbin/groupadd oinstall
# /usr/sbin/useradd -g oinstall oracle
Set password for newly created user,
# passwd oracle
6) As root user, execute xhost + to enable any user to startup graphical interface.
7) As oracle user, execute /media/cdrom/disk1/runInstaller
Saturday, October 28, 2006
Oracle AS - Clustering and remove clustering for AS1013
Reference: http://www.oracle.com/technology/products/ias/hi_av/Dynamic%20Routing.htm
In AS1013 we do not need to explicitly select multiple nodes via EM to join them into a cluster. However we configure a broadcasting address to opmn.xml of different nodes, different nodes will discover each other automatically and join as a cluster.
E.g. Running the following command for each node.
$ opmnctl config topology update discover "*225.0.0.20:8001"
$ opmnctl reload
The above command will update AS1013/opmn/conf/opmn.xml file with the following entry:
<topology>
<discover list="*225.0.0.20:8001">
</topology>
To see the cluster status in terminal,
$ opmnctl @cluster status -l
To see the individual application status,
$ opmnctl status -l -app
To see more usage of opmnctl command,
$ opmnctl usage config
When you login EM, at some point it will prompt you that only 1 EM should exist to rule the rest of AS instances.
Remove Clustering
To remove the instance from cluster, we'll execute the following command in that instance.
$ opmnctl config topology delete discover "*225.0.0.20:8001"
$ opmnctl reload
(Note: obtain the discover broadcasting value from AS1013/opmn/conf/opmn.xml)
Immediately it'll be out from the cluster.
As a stand-alone instance, it'll need to have EM running so that we can manage it easily. To explicitly startup EM, execute the following:
$ opmnctl startproc ias-component=OC4J application=ascontrol
Friday, July 14, 2006
Oracle Business Rules - 1. Getting Started
Searching Google high and low also couldn't find the layman instruction. Finally, while solving other problem, I found it! It is hiding inside 10gAS R3 Installation Guide.
The steps are as follows:
- Access the Oracle Enterprise Manager 10g Application Server Control Console using the following URL: http://hostname:port/em
- In the Groups section of the page, click on the AS Instance.
- Select the Applications tab.
- Click [Deploy] button.
- In Deploy: Select Archive page, you see Archive section on top and Deployment Plan section at bottom.
* For Archive, select "Archive is already present on the server". Then, enter the absolute path to point to $ORACLE_HOME/rules/webapps/ruleauthor.ear file, e.g. "/opt/oracle/AS1013/rules/webapps/ruleauthor.ear".
* For Deployment Plan, select "Automatically create a new deployment plan". - Enter the name of the application as ruleauthor.
- Nothing to change. Click [Deploy] button.
To deploy the online help for Oracle Business Rules Rule Author, the step is similar to above. The absolute path to the ear file is "/opt/oracle/AS1013/rules/webapps/rulehelp.ear".