Академический Документы
Профессиональный Документы
Культура Документы
3)
An Oracle White Paper
FEB-2013
CONTENT SERVER SETUP ON ORACLE 10G IAS (10.1.3) 0
Setup Solution 4
Option 1 4
For 10.1.3.1.0 and greater 4
Option 2 7
Prior to Oracle 10g iAS, Oracle Application server had jserv installed/delivered along with it. So, the earlier
MyOracleSupport note to copy the servlets in jserv/servlets directory, create alias in httpd.conf, modify zone.properties
were valid. However, from Oracle 10g onwards, jserv is de-supported and is no longer a part of iAS
Install 10g Application server (preferably 10.1.3.0.0 ) of type standalone OPMN managed OC4J server that uses the built-
in OC4J Web server to directly receive and respond to HTTP[S] requests.
Choose the option ‘J2EE Server and Process Management’ while installing.
This does not contain the Oracle HTTP Server.
Notation: $ORACLE_HOME is the path where application server is installed.
e.g. D:\product\10.1.3\Oracle AS_1
$J2EE_HOME is $ORACLE_HOME/j2ee/home
The default http port for oc4j is 8888. You can change the port after installations, if required. Steps to change the port
after installation are:
In 10gAS – 10.1.3.1, you can login to enterprise manager and change the port as follows -
1. After logging in choose cluster topology link in breadcrumb.
2. Select Runtime Ports link in Administration region.
3. Select the edit link beside http port number.
4. Update the port number and apply.
For prior versions of 10gAS, you can manually change the port as follows -
1. Go to $ORACLE_HOME/opmn/conf
2. opmn.xml has the following line
<port id="default-web-site" range="8888" protocol="http"/>
3. Update the port number to 7777.
OPTION 1
The steps to deploy these applications are as below,
1. Add the following lines in application.xml ($J2EE_HOME /config). This must be added between the <orion-
application> and </orion-application> tags. This is to tell the container about the war files to be deployed.
<web-module id="contents" path="../../home/applications/contents.war" />
<web-module id="contentstorage" path="../../home/applications/ContentStorage.war" />
2. Add the following lines in default-web-site.xml ( $ J2EE_HOME /config). This is to tell the OC4J HTTP server about
the web module deployed with the applications. It's important to note that the application attribute must specified as
"default" since you have deployed your Web module to the default application. The name attribute should match the
ID attribute you specified for the Web module. This should be added between the <web> and </web> tags.
<web-app application="default" name="contents" load-on-startup="true" root="/" />
<web-app application="default" name="contentstorage" load-on-startup="true"
root="/contentstorage" />
(b) Remove the attribute “root” from ‘default-web-app’ element.
<default-web-app application="default" name="defaultWebApp" root=”/j2ee”/>
Should be changed to:
<default-web-app application="default" name="defaultWebApp"/>
Important Note: If any one does not want to remove root=”/j2ee” because of some business need, then one should
choose Option2 of content server installation.
• You also have to create the following directory structure under the step3/WEB-INF/classes directory – metadata and
common directories should be at the same level.
oracle
apps
fnd
metadata
Copy DatabaseClass.class (copied from <ApplicationMiddleTier> $JAVA_TOP/oracle/apps/fnd/metadata) into this
directory.
Then also under the same step3/WEB-INF/classes/oracle/apps directory create the following folders
ota (This should be at the same level as the fnd folder created above)
admin
common
util
(copy the following files from <ApplicationMiddleTier> $JAVA_TOP/oracle/apps/ota/admin/common/util)
ContentServerClientData.class
ContentServerServlet.class
ProtocolConstants.class
5. Copy the two war files, contents.war and ContentStorage.war under ( $J2EE_HOME/applications).
<End Of steps specific to option1>
NOTE: If you experience problems with your content server alter the url-pattern above as follows by removing the
“/servlets” part of the path. So it reads:
<url-pattern>/*</url-pattern>
Bounce the server and retest.
4. Create the following directory structure in the directory $J2EE_HOME/default-web-app/WEB-INF/classes
oracle
apps
fnd
common
VersionInfo.class (copy from <ApplicationMiddleTier> $JAVA_TOP/oracle/apps/fnd/common)
5. Also include the following file under the WEB-INF/classes directory
oracle
apps
fnd
metadata
DatabaseClass.class (copied from <ApplicationMiddleTier> $JAVA_TOP/oracle/apps/fnd/metadata)
java.io.tmpdir=D:\\ContentTemp
Important Note: Check that there is no extra space after any value in the above properties.
The IPs for middle tier is the IP Addresses where Oracle Applications is installed.
e.g For JUN05MST, add the IP address of ap6045rt.us.oracle.com.. These values must be seperated by a plus sign (+), any
other seperator will cause errors.
Value for "java.io.tmpdir" is a valid directory in the system where content server is installed. This will contain temporary
files that are created while uploading, importing, exporting content from content server. It must writable and have enough
free space for the largest file you may be uploading.
2. Enable directory browsing for the application contentstorage:
Login to Application server, e.g. http://10.176.126.54:80/em
Under OC4J instances table, click on OC4J instance "home".
Click on sub tab "Applications".
Click on "default" in the tree.
Click on contentstorage from Modules.
Click on Administration sub tab.
Select Configuration Properties.
Check the check box "Allow Directory Browsing".
Click on ok.
This section attempts to list the common issues that arise when configuring and utilizing and OLM content server.
1) Collect the following files immediately after the error is produced or reproduced.
(a) OC4J~home~default_group~1 file under $ORACLE_HOME\opmn\logs
You should first check this file if you get any errors. If you have made some mistakes in oc4j.properties like putting extra space
after key value pair, then that would be reflected here.
If you are having some difficulties in initialization of your main servlet class
One of the main causes of initialization problem is that you have forgotten to include some files as mentioned previously in this
document.
This file keeps the status of communication between the middle tier and content server.
POST /servlets/oracle.apps.ota.admin.common.util.ContentServerServlet?Connection=%3Copen%2F%3E&Operation=0
HTTP/1.1"
<response code>
If there is any problem with servlet initialization, then the response code will be 500 (Internal server error).
Note: If you have forgotten to remove the root=”/j2ee” from application.xml as mentioned in section 2.b of Option1, then log
line will have URL start with ‘/j2ee’
e.g.
POST /j2ee/servlets/oracle.apps.ota.admin.common.util.ContentServerServlet?Connection=%3Copen%2F%3E&Operation=0
HTTP/1.1" 404
• default-web-access-<date>.log ($J2EE_HOME\log\home_default_group_1)
• application.xml ($J2EE_HOME/config).
• default-web-site.xml ( $J2EE_HOME/config).
• web.xml ($J2EE_HOME/default-web-app/WEB-INF)
• oc4j.properties ($J2EE_HOME/config)
• ias.properties ($ORACLE_HOME/config)
• opmn.xml ($ORACLE_HOME/opmn/conf)
• ContentServerClientData.class(java)
• ContentServerServlet.class
• ProtocolConstants.class
• SystemUtils.class
• SystemUtils$JarUtility.class
For Windows based installations you can use the “findstr” command.
Open a command prompt and ‘cd’ to the correct directory.
Issue “findstr ContentServerServlet.class Header” (This is just an example)
There is quite a bit of information returned, but you will see the header information including the name and version
Question: How can one check that execute permission is given or not?
Answer: Run the “ ls –l “ unix command for files. It gives the permission set allotted to the files.
c) Check that files are not miscopied. This means the file name and class name should be same. e.g if file name is
ContentServerSevlet.class , then the class contained by this file also should be ContentServerSevlet. At least one issue was
resolved when it was found the ContentServerSevlet.class file was miscopied from the ContentServerClientData.class file.
Question: How can I check whether the file name and class name are same?
Answer: Run the ident command on file. It gives you class name as well as version.
d) Confirm with their Network/Firewall team to ensure the proper ports are open to allow communication between the two
servers to occur.
f) If there is load balancing then mention ip address of all the balancing servers.
Question: How can I find out that URL and ip address are matching.
Answer: Run the nslookup command on both content server and middle tier for each other.
nslookup <ipaddress>
Example: Run the nslookup at content server for apps instance name
Server: 130.35.249.41
Address: 130.35.249.41#53
Name: ap6045rt.us.oracle.com
Address: 140.87.205.11
h) Please refer to Note 972536.1 – Content Upload Error (Input / Output Error) for additional trouble shooting
instructions.
opmnctl status –l
b) Can also check the status by accessing the Oracle Enterprise Manager 10g Application
Answer: Type http://<contentserverip>:<port no>/servlets/ in your web browser. It should show the following screen:
Now log into the Enterprise Manager Interface and go to contents application page.
(a) Under OC4J instances table, click the name of OC4J instance name (‘home’ by default). You will reach the home page of
OC4J instance as shown in the following image.
(d) Check that ‘OtaContentServerServlet’ should appear under section Active Servlets?JSPs
(a)Check the oc4j.properties file under $J2EE_HOME/config that ‘middletier’ key has the ip address of middle tier.
(c) Check that in oc4j.properties file there is no extra space after key-value pair.
e.g.
java.io.tmpdir=D:\\ContentTemp
You can look at the following three log files to find out the cause of error:
You should first check this file if you get error. If you have made some mistakes in oc4j.properties like putting extra space after
key value pair, then that would reflect here.
One of the main causes of initialization problem is that you have forgotten to include some files as mentioned in document
above.
This file keeps the status of communication between the middle tier and content server.
POST /servlets/oracle.apps.ota.admin.common.util.ContentServerServlet?Connection=%3Copen%2F%3E&Operation=0
HTTP/1.1"
<response code>
If there is any problem with servlet initialization, then the response code will be 500 (Internal server error).
Note: If you have forgotten to remove the root=”/j2ee” from application.xml as mentioned in section 2.b of Option1, then log
line will have URL start with ‘/j2ee’
e.g.
POST /j2ee/servlets/oracle.apps.ota.admin.common.util.ContentServerServlet?Connection=%3Copen%2F%3E&Operation=0
HTTP/1.1" 404
(a) Provide value in text box against ‘Installation Directory’ (by default it is
(h) Provide all the details. You will require the password that you provide here when you log into the Manager Interface using
http://<contentserveripaddress>:<port>/em.
(i) You can also provide the OC4J instance name (by default it is ‘home’).
(n) This is the final window showing successful installation. Click Exit.
All information regarding installation, URL for manager interface, and other details are available in the readme.txt file under
$ORACLE_HOME/install directory.
2) Unzip this
4) You should see the form; fill in the name for this installation and the password you wish to use for the
installation.
5) At this point select “J2EE Server” option, possibly the third one available.
6) Now start at the beginning of this document to complete the content server installation.
cd /export/home/oracle/software/Disk1
runInstaller
Oracle Application Server SOA Suite 10.1.3.1.0 Installation
<Yes>
Automatic
<Next>
Oracle Universal Installer: Administration Settings
<Exit>
<Yes>
You can view the status of the server with the following command:
/u01/oracle/ctnt/opmn/bin/opmnctl status
http://fpscontent.MyOrg.org:8888/
Access the Oracle Container for J2EE with the following URL:
http://fpscontent.MyOrg.org:8888/j2ee
Access the Oracle Enterprise Manager 10g Application Server Control via the following
URL:
http://fpscontent.MyOrg.org:8888/em
Installation Details:
Documentation
In order to keep your system up-to-date we encourage you to regularly check for the latest
certification and software updates via MyOracleSupport.
You can access the list of ports used by the following command :
/u01/oracle/ctnt/opmn/bin/opmnctl status –l
Option 1 (pg. 4)
Modify /u01/oracle/ctnt/j2ee/home/config/application.xml
Add the following lines in application.xml ($J2EE_HOME /config).
This must be added between the <orion-application>
and </orion-application> tags. This is to tell the container about the war files to be
deployed.
Modify /u01/oracle/ctnt/j2ee/home/config/default-web-site.xml
Add the following lines in default-web-site.xml ( $ J2EE_HOME /config). This is to tell
the OC4J HTTP server about the web module deployed with the applications. It's important
to note that the application attribute must specified as "default" since you have deployed
your Web module to the default application. The name attribute should match the ID
attribute you specified for the Web module. This should be added between the <web> and
</web> tags
Step 2 On fpscontent
Log on to OEM Application Server Control
http://fpscontent.MyOrg.org:8888/em
Under OC4J instances table, click on OC4J instance "home".
Click on sub tab "Applications".
Click on "default" in the tree.
Click on contentstorage from Modules.
Click on Administration sub tab.
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com