You can get the following error if Oracle HTTP Server cannot start due to port conflict:
[VirtualHost: main] (98)Address already in use: make_sock: could not bind to address [::]:7777
Solution
Determine what process is already using that port, and then either change the IP:port address of Oracle HTTP Server or the port of the conflicting process.
Note:
If the OHS instance was created with the config Wizard, there is no automated port management. It is possible to create multiple instances using the same Listen port.
When too many httpd processes run on a system, the response time degrades because there are insufficient resources for normal processing.
Solution
Lower the value of MaxRequestWorkers
to a value the machine can accommodate.
You will get the following error if you try to start Oracle HTTP Server on a port below 1024:
[VirtualHost: main] (13)Permission denied: make_sock: could not bind to address [::]:443
Oracle HTTP Server will not start on ports below 1024 because root privileges are needed to bind these ports.
Solution
Follow the steps in Starting Oracle HTTP Server Instances on a Privileged Port (UNIX Only) to start Oracle HTTP Server on a Privileged Port.
You can use the following log files to help locate errors:
This log file is necessary for debugging when mod_rewrite is used. The log file produces a detailed analysis of how the rewriting engine transforms requests. The value of the LogLevel
directive controls the level of detail.
This log file enables you to record the input to and output from the CGI scripts. This should only be used in testing, and not for production servers.
See Also:
ScriptLog in the Apache HTTP Server documentation at:
http://httpd.apache.org/docs/current/mod/mod_cgi.html#scriptlog
This log file records overall server problems. Refer to Managing Oracle HTTP Server Logs for details on configuring and viewing error logs.
If you need to recover an Oracle HTTP Server instance that is installed on a remote host (that is, a host with just managed servers but no Administration Server), you must use tar
and untar
; pack.sh
and unpack.sh
do not work in this scenario.
The following are performance issues, along with their solutions, that you might encounter when running Oracle HTTP Server:
Oracle HTTP Server uses locks for its internal processing, which in turn use lock files. These files are created dynamically when the lock is created and are accessed every time the lock is taken or released. If these files reside on a slower file system (for example, network file system), then there could be severe performance degradation. To counter this issue:
On Linux:
In httpd.conf, change Mutex
fnctl:fileloc default
to Mutex
sysvsem
default
where fileloc
is the value of the directive LockFile
(two places).
On Solaris:
In httpd.conf, change Mutex
fnctl:fileloc default
to Mutex pthread default
where fileloc
is the value of the directive LockFile
(two places).
The mod_cgid module is not enabled by default. If enabled, this module uses UNIX sockets internally. If UNIX sockets reside on a slower file system (for example, network file system), a severe performance degradation could be observed. You can set the following directive to avoid the issue:
If mod_cgid is enabled, use the ScriptSock
directive to place mod_cgid's UNIX socket on a local filesystem.
If you are using mod_wl_ohs to route the requests to back-end WLS server/cluster, and the DocumentRoot is on a slower file system (for example, network file system), then every request that mod_wl_ohs routes to the backend server can experience performance issues. This can be overcome by setting WLSRequest
to ON
instead of SetHandler
weblogic-handler
.
In some extreme configurations, you might see the following message in the OHS error log:
dms_fail_shm_expansion: out of DMS shared memory in pid XXX, disabling DMS; increase DMSProcSharedMem directive from YYY
This is because of an incorrect calculation of required shared memory for OHS DMS. This can be resolved by setting DMSProcSharedMem
to a larger value than the default of 4096. Continue setting DMSProcSharedMem
50% higher until the problem is resolved. The minimum value for DMSProcSharedMem
is 256 and the maximum value is 65536.
In a configuration with a very large number of virtual hosts (hundreds or thousands), if the above workaround does not work, you can instead, set the environment variable OHS_DMS_BLOCKSIZE
to a large enough value that Oracle HTTP Server starts without error. The value of this variable is in kilobytes and a value of 524288 is a good starting point. If the error persists, continue to increase the value by 50% until Oracle HTTP Server starts without error.
If you encounter functional or performance issues when creating an Oracle HTTP Server instance on a shared filesystem, including NFS (Network File System), it might be due to filesystem accesses in the default configuration. In this case, you must update the httpd.conf file specific to your operating systems. For information on updating the this file, see Updating Oracle HTTP Server Component Configurations on a Shared Filesystem.
When running Oracle HTTP Server on AIX, if ULIMIT values of file handlers are small, Node Manager console/log throws"java.io.IOException: error=24, Too many open files" error on AIX.
Workaround
To resolve the issue, increase the ULIMIT values of file handlers as described here:
Log in as the root user.
Open /etc/security/limits file.
Edit the file and set the following values:
nofiles=8192
nofiles_hard=65536
Reboot the machine to enable the changes.