Oracle9i Application Server Release Notes Release 2 (9.0.3) for Solaris Operating System (SPARC) Part Number B10015-01 |
|
This chapter describes management and security issues associated with Oracle9iAS. It covers the following topics:
This section covers the following deployment issues:
Each OC4J instance has a global application called default
that is the parent application of all applications deployed to the instance. This will use jazn-xml
as the user manager by default.
If the user manager for this application is changed to principals
, and you attempt to deploy an application using Oracle Enterprise Manager, the deployment will fail if changes are made on the Select User Manager page.
Thus, if the user manager for the default application of an OC4J instance is changed to principals
, for future application deployments using Oracle Enterprise Manager, you should not visit the Select User Manager page in the wizard. The application will be deployed successfully with principals
as its user manager. However, the summary screen of the Deployment wizard will show jazn-xml
as the user manager. Any changes you wish to make to the application's user manager can then be completed by drilling down to the Application Properties page.
There are several approaches to configure how to load an application.
This section covers the following Distributed Configuration Management (DCM) utility issues:
If you make manual changes to the configuration files for the following components:
your changes will not be reflected in the DCM repository.
To propagate your manual edits back to the DCM repository, run the following commands after making any edits, either manually or through the Oracle Enterprise Manager.
dcmctl updateconfig -ct ohs dcmctl updateconfig -ct oc4j
This is also the case if you created, modified, or deleted Database Access Descriptors (DADs) or modified the mod_plsql
cache setting using the Oracle Enterprise Manager.
See Oracle9i Application Server Administrator's Guide for details.
Concurrent administrative operations on a cluster are not supported in Oracle9iAS. Configuration information for clusters is stored in a central repository. All members of the cluster have access to this repository. This keeps configuration consistent across the cluster. Since the objects in the repository are shared across the cluster, concurrent write access to these objects is not allowed.
This section covers the following Oracle Process Management Notification (OPMN) issues:
The configuration file for OPMN, opmn.xml
, is in UTF-8 encoding. The code that parses opmn.xml
is written in C, and the data in opmn.xml
is handled as UTF-8 bytes. This causes problems when the data is not converted to the right encoding. For example, if the default encoding of your operation system is EUC-JP, the directory is created using UTF-8 data. The multibyte instance name then becomes inaccessible.
As a workaround, avoid using multibyte characters for contents such as instance names and environment variables in opmn.xml
.
If you run opmnctl restart or restart OC4J by other means, and EMD is running, you might see the following error messages in the ORACLE_HOME
/Apache/Apache/error_log
file:
[Wed Apr 3 12:09:50 2002] [error] MOD_OC4J_0082: Failed to call gethostbyname() for host name: UNAVAILABLE. [Wed Apr 3 12:09:50 2002] [error] MOD_OC4J_0019: Failed to resolve network address of worker: home_15's host: UNAVAILABLE and port: 3003. [Wed Apr 3 12:09:50 2002] [error] [client 130.35.92.190] MOD_OC4J_0138: Failed tovalidate network worker: home_15 with host: UNAVAILABLE and port: 3003. [Wed Apr 3 12:09:50 2002] [error] [client 130.35.92.190] MOD_OC4J_0141: Failed to validate host: UNAVAILABLE and port 3003 for network worker: home_15.
You can ignore these error messages since they will not cause any problems.
If you issue the opmnctl stopproc
command in a process seconds after the process was killed or abnormally terminated, the opmnctl stopproc
command might hang. This might prevent you from issuing other process-related commands.
In this situation, issue the following commands:
opmnctl reload opmnctl stopproc
If you are using dcmctl
, then the dcmctl stop
command will not hang, but fail. Issue the following commands to resolve the situation:
dcmctl updateconfig -ct opmn dcmctl stop
This section covers the following Oracle Enterprise Manager issues:
You cannot log in to the Oracle Enterprise Manager of a secondary instance after the instance is made active during deinstall of the first instance. As a workaround, perform the following steps:
ORACLE_HOME
/bin
and issue the following command with a password:
emctl set password...
emctl
. In addition, emctl stop
will not work as the password will not be accepted. When you issue emctl start
directly, assuming the Oracle Enterprise Manager service is up and running, the following option appears:
An instance of EMD is already running. Do you want to shut it down first [Y or N]
Select Y and click Enter.
The status shows the following:
Waiting for EM to initialize... Started.
With the default logging level, some of the Oracle Enterprise Manager Web Site log files become very large.
As a workaround, edit the logging properties configuration file and increase the logging level used by the Oracle Enterprise Manager software. The logging level can be set to INFO
, WARN
, or ERROR
. When it is set to INFO
, all informational messages are saved in the log files. When it is set to WARN
, all warning messages are saved to the file. To reduce the amount of disk space required by the log files, do the following:
<ORACLE_HOME>/sysman/config/logging.properties
INFO
and WARN
to ERROR
.
Oracle9i Application Server Administrator's Guide for information about restarting Oracle Enterprise Manager.
See Also:
When you log on to the Oracle9iAS home page on host xyz.oracle.com
, you may not see the rollup data. In addition, you may not see metrics on the Oracle HTTP Server and OC4J instance pages.
As a workaround, edit targets.xml
and set all instances of hostname xyz
to the complete host and domain name, such as xyz.
oracle.com
. The metrics and rollup data should be visible once you restart EMD.
If you change the ias_admin
password using emctl, then you must restart the Oracle Enterprise Manager Web Site with the following commands:
emctl stop emctl start
When the Oracle Enterprise Manager Home Page is opened, the OC4J metrics are not displayed. As a workaround, refresh the page to see the metrics.
You cannot change the ias_admin
password using a translated version of the Oracle Enterprise Manager Web site. This is because the Preferences link on the Instance Home Page is disabled.
You can change the ias_admin
password using the following command:
ORACLE_HOME/bin/emctl set password new_password
Oracle Enterprise Manager does not support multiple locales. The following components use the browser's locale when displaying pages in Oracle Enterprise Manager:
BC4J JSP, UIX JSP, and UIX XML applications from JDeveloper deployed to Oracle9iAS through the Oracle Enterprise Manager deployment functionality runtime will result in a runtime rendering data access error. This happens only if data source information is added subsequently through Oracle Enterprise Manager and not pre-packaged in the EAR file from JDeveloper.
If the EAR file generated from JDeveloper does not package the data source information or the deploy to EAR files option is chosen instead of deploy to connection, and if that information is subsequently added through the Oracle Enterprise Manager through the edit data sources functionality, then the UIX JSP and UIX XML applications cannot run successfully due to runtime rendering error.
To avoid the error, do not add the data sources information after deployment through Oracle Enterprise Manager. Instead, package the EAR file with the data sources information from JDeveloper prior to deployment through Oracle Enterprise Manager. While creating the UIX JSP or the UIX XML application from JDeveloper, instead of deploying it to an EAR file, deploy it to any existing connection, including dummy connections. That process will create an EAR file with the data sources information packaged.
If deploying to a dummy connection, although the process will result in deployment errors in JDeveloper, it will create an EAR file that includes the data source information that can be successfully deployed to Oracle9iAS.
To configure JAAS, perform the following tasks:
ORACLE_HOME
/sysman/j2ee/config/jazn.xml
in a text editor.
jazn.xml
file:
<property name="ldap.service" value="ldap://localhost:389"/> <property name="ldap.user" value="cn=oracladmin"/> <property name="policymgr.provider" value="LDAP"/>
If localhost
does not work in your environment, replace it with the actual name of your Oracle Internet Directory server. Similarly, replace the port number if your Oracle Internet Directory server does not use the default port of 389.
ldap.password
property by entering the password you used for Oracle Internet Directory server login. Be sure to include an exclamation point (!) before the password to encrypt it. For example:
<property name="ldap.password" value="!manager1234"/>
jazn.xml
file and restart the Oracle Enterprise Manager Web Site.
If the language environment is non-English, and the /usr/local/lib/tcl8.2/encoding/*.enc
Tcl interpreter encoding definition files are installed on the node, Oracle Enterprise Manager Intelligent Agent may not work properly with non-English characters. As a result, Oracle Enterprise Manager jobs may fail to execute or may return corrupted strings. If the above encoding definition files are not present, this problem should not occur.
The solution to this problem is to create empty Tcl interpreter encoding definition files at the following location:
ORACLE_HOME
/lib/tcl8.2/encoding/*.enc
To achieve this solution, perform the following steps:
% cd ORACLE_HOME/lib % mkdir tcl8.2 % cp -pr /usr/local/lib/tcl8.2/encoding tcl8.2 % cd tcl8.2/encoding
% agentctl stop % agentctl start
Note:
The |
You cannot add an Oracle9iAS 9.0.3 instance to an empty Oracle9iAS 9.0.3 cluster from an Oracle9iAS 9.0.2 Oracle Enterprise Manager. It is necessary to prevent Oracle9iAS 9.0.2x instances and Oracle9iAS 9.0.3 instances from being clustered together due to incompatibility of J2EE versions. Oracle9iAS 9.0.3 includes a special installed component type, which is unrecognizable to Oracle9iAS 9.0.2 Oracle Enterprise Manager. This special installed component type would not allow you to join a different instance type. A check is performed only when you are joining an empty cluster. If a cluster already contains instances, it only takes instances that are of the same type as those in the cluster.
Therefore, when adding an Oracle9iAS 9.0.3 instance to an empty cluster, you must go to the Oracle9iAS 9.0.3 instance and use either the dcmctl
command or Oracle Enterprise Manager user interface for Oracle9iAS 9.0.3.
This section covers the following other globalization issues:
Using Microsoft Internet Explorer 5.5 in a Simplified Chinese environment on DAS, you are unable to edit/delete Attribute on the Configure User Attribute page. For example:
http://
hostname
:
port
/oiddas/
Error on Page
.
As a workaround, use Netscape 4.7 to access the DAS component in a simplified Chinese environment.
Japanese text is not readable when running in a Japanese environment. This affects three help modules:
As a workaround, use the following procedures.
For Oracle Internet Directory Server Manageability:
jar xvf ORACLE_HOME/sysman/webapps/emd/online_help/oidsm/oidsm_help_ja.jar oidsm.hs
Shift_JIS
in the oidsm.hs
file:
<xml version='1.0' encoding="Shift_JIS">
oidsm.hs
from the EUC
format to the SJIS
format.
oidsm.hs
file with the fixed file:
jar uvf ORACLE_HOME/sysman/webapps/emd/online_help/oidsm/oidsm_help_ja.jar oidsm.hs
For Discoverer Oracle Enterprise Manager Help System:
jar xvf ORACLE_HOME/sysman/webapps/emd/online_help/disco/disco_help_ja.jar disco.hs jar xvf ORACLE_HOME/sysman/webapps/emd/online_help/disco/disco_help_ja.jar toc.xml
Shift_JIS
in the above two files:
<xml version='1.0' encoding="Shift_JIS">
disco.hs
and toc.xml
from the unicode
format to the SJIS
format.
jar uvf ORACLE_HOME/sysman/webapps/emd/online_help/disco/disco_help_ja.jar disco.hs jar uvf ORACLE_HOME/sysman/webapps/emd/online_help/disco/disco_help_ja.jar toc.xml
.jar
file, and add the following line to each file, within the <head
> section:
<meta http-equiv=content-type content="text/html; charset=Shift_JIS">
Then replace the files.
For BC4J:
jar xvf ORACLE_HOME/sysman/webapps/emd/online_help/bc4j/bc4j_help_ja.jar bc4j.hs
<view>
<label>index</label> <type>oracle.help.navigator.keywordNavigator.KeywordNavigator</type> <data engine="oracle.help.engine.XMLIndexEngine">index.xml</data>
</view>
<view>
<label>contents</label> <type>oracle.help.navigator.tocNavigator.TOCNavigator</type> <data engine="oracle.help.engine.XMLTOCEngine">toc.xml</data>
</view>
jar uvf ORACLE_HOME/sysman/webapps/emd/online_help/bc4j/bc4j_help_ja.jar bc4j.hs
For the Japanese language version only, certain graphic (.gif
) files are missing from the ORACLE_HOME
/classes/oracle/sysman/help/detailpanels_ja
directory. The workaround is to copy the gif files from the ORACLE_HOME
/classes/oracle/sysman/help/detailpanels
directory (English files). If you are using the Oracle Enterprise Manager Web Site, you should also copy the .gif
files from ORACLE_HOME
into:
ORACLE_HOME
/oem_webstage/oracle/sysman/help/detailpanels_ja
Also, some Japanese files are installed into the wrong directory. Under ORACLE_HOME
/classes/oracle/sysman/help/detailpanels_ja
and ORACLE_HOME
/oem_webstage/oracle/sysman/help/detailpanels_ja
, the following files are installed into platform-specific subdirectories:
The files are located under the /euc for solaris
subdirectory. As a workaround, copy the files for your platform from the subdirectory into the /detailpanels_ja
directory.
Language help files are missing for for Oracle HTTP Server, OC4J, and Oracle9iAS Management Pages. Instead of Japanese files, English help files are included in the following online help JAR
files:
ORACLE_HOME/sysman/webapps/emd/online_help/apch/apch_help_ja.jar ORACLE_HOME/sysman/webapps/emd/online_help/oc_4j/oc_4j_help_ja.jar ORACLE_HOME/sysman/webapps/emd/online_help/iastop/iastop_help_ja.jar
This section covers the following other management issue:
Several Oracle9iAS components require the clocks on the machines on which they run to be synchronized. You can synchronize the clocks by running the Network Time Protocol (NTP) daemon on these machines. You do this with starting xntpd
or a similar daemon processing .
On Sun SPARC Solaris 2.6, the strerror()
function returns messages in the native language. However, JDK 1.2.x and 1.3.x cannot display many localized messages of native methods correctly. It displays the message in corrupted form or displays the message in English on non-English platforms. This is a known Java issue. See bug ID 4258198 in the Java Bug database.
This section covers the following security issues:
The demonstration pages for J2EE and Web Cache, located in http://
host.domain
:
port
/J2EE.htm
are vulnerable. You must disable the all demonstration pages when exhibiting a site in order to ensure security.
The following URLs indicate some demonstration pages that are vulnerable.
Oracle HTTP Server
http://
host.domain
:
port
/cgi-bin/printenv?<script>alert(document.cookie)</script>
http://host.domain
:
port
/perl/printenv?<script>alert(document.cookie)</script> http://host.domain
:
port
/fcgi-bin/echo?<script>alert(document.cookie)</script>
OJSP Sample
http://host.domain
:
port
/ojspdemos/basic/hellouser/hellouser.jsp http://host.domain
:
port
/ojspdemos/basic/simple/welcomeuser.jsp http://host.domain
:
port
/ojspdemos/basic/simple/usebean.jsp
JSP Sample
http://host.domain
:
port
/j2ee/examples/jsp/snp/snoop.jsp?<script>alert(document.cookie)</script> http://host.domain
:
port
/j2ee/examples/jsp/cal/login.html
Servlet Sample
http://host.domain:port/j2ee/servlet/RequestParamExample http://host.domain:port/j2ee/servlet/CookieExample http://host.domain:port/j2ee/servlet/SessionExample http://host.domain:port/j2ee/servlet/SnoopServlet?<script>alert(document.cookie)</script>
To run the Oracle HTTP Server with SSL server correctly after installation in Oracle9iAS, you should create a wallet and have the certificates contained within it signed by the proper Certificate Authorities. Make sure that the SSLWallet
directive in httpd.conf
points to this new wallet rather than the default wallet provided by the installation. Oracle HTTP Server will not start if you fail to do one of the following:
iasobf -p password rootosslpassword -p password LocalSystem
and place this obfuscated password in the httpd.conf
file using the Wallet Password directive, for example WalletPassword obfuscatedPassword
. You can always put the wallet password in httpd.conf
in clear text but this is not recommended by Oracle.
This section covers the following issues regarding directing requests to OC4J instances:
This section describes how to direct requests to OC4J instances running on ORACLE_HOME
directories that are different from the one that first received the request. In other words, Oracle HTTP Server receives a request, then forwards it to an OC4J instance that belongs to a different ORACLE_HOME
directory. In that ORACLE_HOME
, OC4J instances are running, but Oracle HTTP Server may or may not be running. The ORACLE_HOME
directories can be installed on the same or different machines.
This scenario is different from clusters. In a cluster, all the Oracle9iAS instances are configured identically, and mod_oc4j
sends requests to the instances in the cluster in a round-robin fashion. See the "Application Server Clustering" chapter in the Oracle9i Application Server Administrator's Guide for details on clustering.
In this scenario, the Oracle9iAS instances do not need to be the same type. They can be different middle tier types and they can be configured differently. You can even direct requests between an infrastructure and a middle tier type.
Your environment must have the following characteristics:
ORACLE_HOME
directories must belong to the same farm, using the same metadata repository, unless users make OPMN connections manually using dcmctl addOPMNLink
.
The Oracle9i Application Server mod_oc4j Functional Overview white paper on OTN at
See Also:
http://otn.oracle.com/products/ias/ohs/content.html
ORACLE_HOME
directory must have the desired OC4J instances and the OC4J instance must be running.
The procedure for directing requests to another ORACLE_HOME
directory is to edit the Oc4jMount
directive in the ORACLE_HOME
/Apache/Apache/conf/mod_oc4j.conf
file. The directive maps URLs to OC4J instances.
By default, the directive directs requests to OC4J instances in the local Oracle home (the OC4J instances belong to the same host:port
specified in the URL).
For example, the following lines route requests that begin with /webapp
to the home
OC4J instance on the local Oracle9iAS instance:
Oc4jMount /webapp/* home
To direct requests to an OC4J instance on another ORACLE_HOME
directory, you prepend the name of the Oracle9iAS instance to the OC4J instance name, and you use the keyword instance
.
Syntax:
Oc4jMount url instance://ias_instance_name1:oc4j_instance_name [, ias_instance_ name2:oc4j_instance_name, ...] Oc4jMount url cluster://cluster_name1:oc4j_instance_name [, cluster_name2:oc4j_ instance_name, ...]
where:
instance
is a keyword.
cluster
is a keyword.
url
specifies the URL for the application.
ias_instance_nameN
specifies the names of Oracle9iAS instances. These instances can run on the same machine or different machines. The instance name includes the machine name. See Section 4.8.6, "Determining Oracle9iAS Instance Names" for details.
If you specify more than one instance name, the requests are sent to the instances in a round-robin manner.
cluster_nameN
specifies the names of the clusters to which you want to direct the requests. Oracle HTTP Server distributes the requests to the Oracle9iAS instances in the cluster. See Section 4.8.8, "Determining Cluster Names" for details.
For clustering details, see the "Application Server Clustering" chapter in the Oracle9i Application Server Administrator's Guide.
oc4j_instance_name
specifies the name of the OC4J instance name on the Oracle9iAS instance. See Section 4.8.7, "Determining OC4J Instance Names" for details.
The following lines direct the requests to instances on an Oracle9iAS instance called pw.machine2.us.oracle.com
. The instance is running on a machine called machine2.us.oracle.com
.
Oc4jMount /webapp/* instance://pw.machine2.us.oracle.com:home
The syntax allows you to specify more than one instance to which to direct the requests. You separate the instances with the comma character. For example, the following line directs /foo/*
requests to the OC4J_Foo
instance running on machine2 and machine3 (all on one line):
Oc4jMount /foo/* instance://pw.machine2.us.oracle.com:OC4J_Foo, pw.machine3.us.oracle.com:OC4J_Foo
In the above example, the pw.machine2.us.oracle.com
and the pw.machine3.us.oracle.com
Oracle9iAS instances do not need to be the same install type, but they do need to be running the OC4J_Foo
instance.
The syntax also allows you to direct requests to clusters. Oracle HTTP Server distributes the requests to the Oracle9iAS instances in the cluster.
The following example directs requests to OC4J_Foo
instances in Oracle9iAS instances in the foo_cluster
cluster.
Oc4jMount /foo/* cluster://foo_cluster:OC4J_Foo
You can determine the name of an Oracle9iAS instance by running the dcmctl
command with the whichInstance
option:
prompt> dcmctl whichInstance doctest_j2ee.machine1.us.oracle.com
The instance name contains the host name, including the domain name.
dcmctl
is in ORACLE_HOME
/dcm/bin
. If you have multiple ORACLE_HOME
directories on the same machine, run the command from the appropriate ORACLE_HOME
.
For example, to route requests from the middle tier to infrastructure OC4J instances (scenario 2), you need the name of the infrastructure instance.
prompt> cd INFRASTRUCTURE_ORACLE_HOME prompt> cd dcm/bin prompt> ./dcmctl whichInstance doctest_infra.machine1.us.oracle.com
You can determine the names of installed OC4J instances on a machine by running the dcmctl
command with the listComponents
option on that machine:
prompt> dcmctl listComponents HTTP Server home
The command returns the names of Oracle HTTP Server instances as well. You can determine the type of a component by running the dcmctl
command with the getComponentType
option:
prompt> dcmctl getComponentType -co home oc4j prompt> dcmctl getComponentType -co "HTTP Server" ohs
To route requests from the middle tier to the infrastructure OC4J instances (scenario 2), you need the OC4J_DAS
instance on the infrastructure.
You can determine the names of clusters by running the dcmctl
command with the listClusters
option.
prompt> dcmctl listClusters foo_cluster
You can edit the ORACLE_HOME
/Apache/Apache/conf/mod_oc4j.conf
file using a text editor or Oracle Enterprise Manager.
To edit the mod_oc4j.conf
file using Oracle Enterprise Manager:
http://host:1810/
where host
specifies the machine running Oracle Enterprise Manager. The default port is 1810
.
mod_oc4j.conf
.
This displays the Edit mod_oc4j.conf page.
To edit the mod_oc4j.conf
file using a text editor:
ORACLE_HOME
/Apache/Apache/conf
directory.
prompt> cd ORACLE_HOME/Apache/Apache/conf
dcmctl
with the updateConfig
parameter.
prompt> cd ORACLE_HOME/dcm/bin prompt> ./dcmctl updateConfig
prompt> ./dcmctl restart -ct ohs
|
![]() Copyright © 2002 Oracle Corporation. All Rights Reserved. |
|