WebLogic Server Frequently Asked Questions
Q. How does the Apache HTTP Server Plug-In work?
A. For information on how a plug-in works, see Installing and Configuring the Apache HTTP Server Plug-In in Using Web Server Plugins With WebLogic Server.
Q. How does the plug-in route the request for a sticky session?
A. If the browser sends a cookie, we look for "JSESSIONID" (configurable by a parameter called "CookieName") in the "Cookie: " header.
If the cookie is disabled and URL re-writing is used, the session id is encoded in the URL. In WebLogic Server 5.1 and earlier, it was encoded in the query string:
In WebLogic Server 6.0 and later, it was encoded in the parameter:
If no session is found in the query string or parameter and if it is small enough to be read into memory, WebLogic Server looks for the session in the postdata.
Q. What is new for debugging a plug-in in WebLogic Server 6.0?
"Debug = ON" logs only informational and error messages
HFC : headers from the client, informational, and error messages
HTW : headers sent to wls, informational and error messages
HFW : headers sent from wls, informational and error messages
HTC : headers sent to the client, informational and error messages
ALL : everything
OFF : nothing -- default(should be used in production)
The log file is configurable for 6.1. For later versions of WebLogic Server, the
WLLogFile was introduced to configure the debug filename and location.
Q. What is expected in the wlproxy.log?
Every request looks like the following:
"================New Request: [GET / HTTP/1.1] ================="
PathTrim, DefaultFileName, and PathPrepend will be performed in order. The final request will be logged as the following: "Fri Jun 22 14:24:40 2001 The request string is '/index.jsp'"
Looking for session information and determining the primary:
"Fri Jun 22 14:24:40 2001 Initializing lastIndex=0 for a list of length=1 Fri Jun 22 14:24:40 2001 create a new server node: id='qa89:443' server_name='mint.beasys.com', port='18080'"
Init SSL if SecureProxy is set to ON:
"Fri Jun 22 14:24:40 2001 INFO: SSL is configured Fri Jun 22 14:24:40 2001 INFO: Initializing SSL library Fri Jun 22 14:24:40 2001 Loaded 1 trusted CA's Fri Jun 22 14:24:40 2001 INFO: Successfully initialized SSL Fri Jun 22 14:24:40 2001 INFO: SSL configured successfully"
Initial connection being made:
"Fri Jun 22 14:24:40 2001 general list: trying connect to '172.17.9.180'/443 Fri Jun 22 14:24:40 2001 Connected to 172.17.9.180:443"
Client headers and the post data (if present) being read:
"Fri Jun 22 14:24:40 2001 Hdrs from clnt:[Accept]=[image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*]"
Client headers and the post data (if any) being sent:
"Fri Jun 22 14:24:40 2001 Hdrs to WLS:[Accept]=[image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*]"
Response headers being obtained from WebLogic Server:
"Fri Jun 22 14:24:46 2001 Hdrs from WLS:[Set-Cookie]=[JSESSIONID=OzI19WqYmFnRviHEu5gKLvot42ABeD8NPWnF0jW6cawSGcrp2mru!4038528127411848936!-1408169548!80!443; path=/] Fri Jun 22 14:24:46 2001 parsed all headers OK"
Response headers being sent to WebLogic Server and indicating if the connection is close or keep-alive is here:
"Fri Jun 22 14:24:46 2001 Hdrs to client:[Date]=[Fri, 22 Jun 2001 21:24:48 GMT] Fri Jun 22 14:24:46 2001 Hdrs to client:[Server]=[WebLogic WebLogic Server 6.1 beta 06/21/2001 10:44:44 #122398 - internal build by jlee on client jlee.qa89] Fri Jun 22 14:24:46 2001 canRecycle: conn=1 status=200 isKA=0 clen=2705 isCTE=0 Fri Jun 22 14:24:46 2001 closeConnection in load_utils: deleting URL* Fri Jun 22 14:24:46 2001 INFO: Closing SSL context Fri Jun 22 14:24:46 2001 INFO: sysSend 23 Fri Jun 22 14:24:46 2001 INFO: Error after SSLClose, socket may already have been closed by peer Fri Jun 22 14:24:46 2001 r->status=200 returning 0"
Q. What changed in the 6.1 plug-in?
A. The following changed:
- HTTP1.1 support -- chunk-transferred and keep-alive (except for apache1.3.x)
- Session parsing (this breaks the backward compatibility)
- SSL support from the plug-in to WebLogic Server
Q. What is static list, dynamic list, and general list?
A. They are defined as follows:
- Static list: the initial server list defined in the config file
- Dynamic list: the current server list sent by wls upon a successful request
- General list: the current server list (could be static or dynamic) besides the primary and secondary servers associated with the current request
Q. Does the plug-in support two-way SSL?
A. No. But the plug-in can be set-up to require the client certificate and pass it on to WebLogic Server. For example:
SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
Q. Sometimes a reponse from WebLogic Server to the plug-in contains the Set-Cookie header.
Is this normal?
A. Yes. WebLogic Server will send the
Set-Cookie header in the response if the
Cookie header is missing from the request or
X-WebLogic-Force-Cookie is detected. If the plug-in fails to connect to a bad server, the plug-in will send the header
X-WebLogic-Force-Cookie: true to the next available server to force the client to update the corresponding cookie which contains the correct session information.
Q. If I install mod_wl_ssl.so with mod_perl to Apache 1.3.19, why does Segmentation Fault (11)
occur in mod_wl_ssl.so when I access WebLogic via the plug-in?
A. The server could be any 6.x and the operating system could be any version of Solaris. The environment is WebLogic Server 6.x (Use
mod_wl_ssl.so), Solaris 2.x.
In order to avoid getting Segmentation Fault (11), add a
VirtualHost block for HTTP as in the following example:
# General setup for the virtual host
For the SSL port, also use the IP address in:
Use any valid DNS name for the ServerName.