Mod WCM Setup
The mod_wcm.so is an Apache module that provides a proxy like interface for KCML SOAP, KCML HTTP and KCML JClient applications. For KCML SOAP and KCML HTTP applications the module routes incoming requests to any free KCML instance in the correct pool of KCML instances. A separate pool is maintained for each application type. If no KCML instance is available to the module it will try to spawn a new one. The ability to spawn new instances is usually constrained by licence.
The configuration of Apache modules varies on different platform, see the links for platform-specific examples.
Apache2.4
It is recommended to upgrade to Apache 2.4 as Apache 2.2 is now considered legacy with support expected to stop in 2017 (see Apache). Versions of mod_wcm for Apache 2.4 are discussed in the operating-specific sections below, see Apache Configuration.
KCML SOAP application
To run a KCML application as a SOAP service you need special configuration in the Connection Manager. An example service:
kconf.xml:
<kconf> ... <services> ... <service> <name>K8_CVS6</name> ... <soap> <soapservice> <url>KCMLTest</url> <start>soapserver.src</start> </soapservice> </soap> </service> ... </services> ... </kconf>
The definition for this KCML SOAP service would be reachable from 'http://hostname:790/K8_CVS6/KCMLTest?WSDL'. Running a production KCML SOAP service via the connection manager alone is strongly discouraged. The architecture of the connection manager would lead to high latency for each request. To overcome this we use the Apache.
The location configured in Apache must match the service/soapservice configured in the connection manager. An example Apache config:
httpd.conf:
<Location /K8_CVS6 > Order allow,deny Allow from all # mod_filter and mod_deflate must be loaded AddOutputFilterByType deflate text/plain text/html text/css text/xml application/soap+xml </Location> <Location /K8_CVS6/KCMLTest> SetHandler kcml-soap KcmlSOAPServers localhost:790 </Location>
KCML HTTP application
To run a KCML application as a HTTP application you need special configuration in the Connection Manager. An example service:
kconf.xml:
<kconf> ... <services> ... <service> <name>K8_CVS6</name> ... <soap> <soapservice> <url>KCMLTest</url> <start>soapserver.src</start> </soapservice> </soap> </service> ... </services> ... </kconf>
Although this is a KCML HTTP application it lazily reuses the soap/soapservice configuration from the KCML SOAP example. This is because as far as the Connection manager is concerned there is no difference between the two.
All HTTP requests to 'http://localhost:790/K8_CVS6/KCMLTest' and beyond would be passed to the KCML HTTP application.
The configuration for Apache does differ from the SOAP example. This is because the module has some built in SOAP processing that is not needed for HTTP applications. An example:
<Location /K8_CVS6/K8_CVS6/KCMLTest> Order allow,deny Allow from all # mod_filter and mod_deflate must be loaded AddOutputFilterByType deflate text/plain text/html text/css text/xml application/soap+xml SetHandler kcml-http KcmlAppServers localhost:790 </Location>
Note: SetHandler is now set to kcml-http.
Note: we now use KcmlAppServers instead of KcmlSOAPServers.
KCML JClient
The module provides session management for the browser based JClient.
Apache Configuration
A quick reference guide to mod_wcm.so Apache directives can be found here
For the sensitive directive KcmlAuthSecret it is recommended you use include files for your configuration that can have permissions strictly controlled.
Apache 2.2 & 2.4 are available on most operating systems, however they have different configuration layouts
See: Operating System versions to identify the Linux distribution that is being used.
An Apache 2.4 version of mod_wcm.so is also available for 64-bit Linux operating systems.
Unix versions of mod_wcm.so are only compatible with the prefork-mpm version of Apache.
See:- System Requirements
Documentation on common Apache configuration directives is available here and here.
A guide to tuning Apache for performance can be found here.
Other Apache Modules
It is recommended you use these existing Apache modules:
Notes
xinetd
The default configuration for Connection Manager started via xinetd will limit the Connections Per Second to 50. This has sometimes proved to be to small on high usage servers. It is suggested that you set CPS to a higher value. Please refer to your xinetd documentation.