bea.com | products | dev2dev | support | askBEA

Download Docs | Site Map | Glossary
Search

WebLogic Server Frequently Asked Questions

FAQs: Plug-Ins

- How does the Apache HTTP Server Plug-In work?

- How does the plug-in route the request for a sticky session?

- What is new for debugging a plug-in in WebLogic Server 6.0?

- What is expected in the wlproxy.log?

- What has changed in the 6.1 plug-in?

- What is static list, dynamic list, and general list?

- Does the 6.1 plug-in support two-way SSL?

- Sometimes a reponse from WebLogic Server to the plug-in contains the Set-Cookie header. Is this normal?

- 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?

- How do I install Apache 2.0.x so that I do not get the "Can't dlopen() a library containing Thread Local Storage: /usr/lib/libcl.2" error?

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:

?WebLogicSession=my_dumy_session

In WebLogic Server 6.0 and later, it was encoded in the parameter:

;JSESSIONID=my_dummy_session

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 has changed in the 6.1 plug-in?

A. The following has 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 6.1 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:

>     apache ssl

>     SSLVerifyClient require

>     SSLVerifyDepth 10

>     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
>     DocumentRoot "/export/home/happy/local/apache_1.3.19/htdocs"
>     ServerName happy1
>     ServerAdmin happy@happyville
>     ErrorLog /export/home/happy/local/apache_1.3.19/logs/error_log
>     TransferLog /export/home/happy/local/apache_1.3.19/logs/access_log
>     </VirtualHost>

For the SSL port, also use the IP address in:

>     <VirtualHost 206.189.223.111:443>

Use any valid DNS name for the ServerName.

Q. How do I install Apache 2.0.x so that I do not get the "Can't dlopen() a library containing Thread Local Storage: /usr/lib/libcl.2" error?

A. To install Apache 2.0.x so that you do not get this error, set the following environment variable:

1) before building the Apache server export CFLAGS="-lcl -lpthread"

2) before starting the Apache server export LD_PRELOAD="/usr/lib/libcl.2"

Follow these steps to build the Apache2.0.x server:

1)export CFLAGS="-lcl -lpthread"

2)./configure --prefix=$INSTALLATION_DIRECTORY --enable-so --with-mpm=worker

3)make

4)make install