Linux – Apache mod_wl2.4 plugin error parseJVMID

apache-2.4clusterlinuxweblogic

I have some issues with setting an clustered environment for weblogic and Apache. The structure is like this: 1 webserver that proxies requests to a clustered environment of 3 weblogic servers.

Everytime i send the request to the apache server , the request gets unhandled. I figured out a part of the problem , but that is something that is not intended in production. whenever i add DynamicServerList On the requests fail. When i switch it to off it works, but that means whenever a server fails , apache will still send requests to that server and user experience would be 0.

EDIT 1: I am using weblogic 12c and apache2.4 for Centos 7

Here is my config file for weblogic plugin:

 <VirtualHost *:8080>

         ServerAdmin postmaster@webserver2
 
         ServerName webserver2
         DocumentRoot /var/www/webserver2/htdocs
         ErrorLog /var/log/httpd//webserver-error_log
         CustomLog /var/log/httpd/webserver-access_log forwarded
         <Directory />
                 AllowOverride all
                 Order allow,deny
                 Allow from all
         </Directory>
         DirectoryIndex index.html

        <Location />
        SetHandler weblogic-handler
        </Location>
 
 
 
 <IfModule mod_weblogic.c>
             WeblogicCluster 192.168.166.70:8001,192.168.166.71:8001,192.168.166.69:8001
         ConnectTimeoutSecs 15
         ConnectRetrySecs 10
         WLIOTimeoutSecs 600
         DynamicServerList ON
         Idempotent ON
         FileCaching ON
         KeepAliveSecs 60
         KeepAliveEnabled ON
         DebugConfigInfo ON 
        </IfModule>
 
 </VirtualHost> 

And the errors I get are the following:

[Mon Sep 14 09:54:58.480616 2015] [weblogic:error] [pid 15343:tid
140547949991680] [client 172.18.132.50:57991] <1534314422136982>
parseJVMID: could not resolve hostname '-1062689209'. Returning NULL
from parseJVMID

[Mon Sep 14 09:54:58.480681 2015] [weblogic:error]
[pid 15343:tid 140547949991680] [client 172.18.132.50:57991]
<1534314422136982> initJVMID: parseClusterServerList failure

[Mon Sep
14 09:55:28.481215 2015] [weblogic:error] [pid 15343:tid
140547949991680] [client 172.18.132.50:57991] <1534314422136982>
request [/clusterjsp/HaJsp.jsp] did NOT process
successfully………………

Best Answer

This probably has to do with the Managed Server's Listen Address. I haven't seen this error specifically, but if Listen Address is blank, WebLogic will bind to all IP addresses on the machine.
When you enable DynamicServerList, these IP addresses would be sent to the Apache plugin. If there's an IP address that the Apache server can't connect to (e.g. a backup interface), you might have issues. This is not the error I would expect to see, but I have had issues with this before where everything in your scenario was exactly the same, except for the specific error message but I also wasn't using Apache 2.4.

By the way, disabling DynamicServerList doesn't mean that Apache will keep sending requests to the downed server, thus making user experience very poor. Instead, whenever it detects that the server is down (e.g. via a series of Connection Refused errors), it will mark it as down and keep retrying from time to time. DynamicServerList is meant to avoid this and also to allow you to add Managed Servers to your Cluster without having to touch your plugin configuration.