Chapter 5. Settings for IBM WebSphere Application Server

In this chapter, you will find required settings for the deployment of the CoreMedia system into IBM WebSphere Application Server:

  • Settings for the operating system of IBM WebSphere

  • JVM properties

  • Property for better performance

  • The order of the class loaders

  • ORB configuration properties

  • Java Authentication and Authorization Service (JAAS) properties

OS Level Settings

For the operation system on which IBM WebSphere runs, you have to set the following properties at least to the specified values:

Key Value
process limit 5000
filelimit limit 25000

Table 5.1.  Operating system settings


JVM Settings

For a single WebSphere instance with all Blueprint applications deployed, you need at least the following memory settings:

KeyValueDescription
initialHeapSize4096Initial memory for JVM
maximumHeapSize6144Maximum memory for JVM

Table 5.2. JVM Settings


JVM System Properties

You have to set the following JVM system properties in IBM WebSphere as described below.

keysolr.solr.home
example value/var/coremedia/solr-home
description Directory where Solr configuration and plugin settings are stored. Instead of setting this value here, which requires a restart of WebSphere, you can set it within the web.xml file of the Solr web application. A more detailed description can be found in Section 4.2.2.9, “Solr Home Configuration”.
keyclient.encoding.override
valueUTF-8
description When deployed in a WebSphere server, Solr does not handle non-ASCII characters correctly (such as German umlauts ä, ö, ü). In order to fix this, add this property.
keycoremedia.logging.directory
example value/var/log/coremedia
description Directory where CoreMedia component logs are stored.
keycom.coremedia.orb.jndiName
valuejava:comp/ORB
description

The communication between CoreMedia components is based on CORBA. It is recommended to inject the ORB provided by WebSphere into all deployed CoreMedia servers and UAPI clients.

Alternatively to JVM system properties, you can add this property in the application.properties file, located in the WEB-INF folder of each web application.

Make sure that if you set this property, that the host on this port is resolvable by all clients. the section called “Port Settings” describes where you set this value.

Table 5.3. JVM System Properties


To set the memory settings and JVM system properties, follow this click path:

ServersServer TypesWebSphere application serversServer NameJava and Process ManagementProcess definitionJava Virtual Machine

Enter the JVM system properties into the Generic JVM arguments field as shown in Figure 5.1, “Define JVM Arguments in WebSphere”.

Define JVM Arguments in WebSphere

Figure 5.1. Define JVM Arguments in WebSphere


Port Settings

If you inject the IBM WebSphere ORB into all servers and UAPI clients, you need to make sure that the host name set for this port can be resolved by the client. You will find the ORB ports host setting at the following click path: ServersServer TypesWebSphere application serversServer NamePortsORB_LISTENER_ADRESS

Set full qualified name for ORB port

Figure 5.2. Set full qualified name for ORB port


Security Settings

CoreMedia command line clients, as installed by the standard deployment, are not able to connect to a Content Server running in WebSphere Application Server using an SSL encrypted CORBA connection. Therefore, in order to use these tools, the WAS must also accept unencrypted communication. Use the following steps to configure the server:

  1. In WebSphere go to the following window:

    ServersServer TypesWebSphere application serversServer NameSecuritySecurity DomainRMI/IIOP securityCSlv2 inbound communicationTransport

  2. Change the entry from SSL-required to SSL-supported.

Now, the clients communicate with the Content Server in the WebSphere Application Server through an unsecured CORBA connection. However, all clients that support SSL encoding use a secure connection.

For additional security, remote access to the clear-text CORBA port can be restricted using operating system and firewall means.

Improve Performance

For better performance of the CoreMedia web applications deployed to the WebSphere Application Server, it is highly recommended to set the following property in the same place as the properties described in the previous section.

  • Set local hostname caching to true:

    com.ibm.cacheLocalHost=true

Class loader Order

CoreMedia components can be successfully deployed in a WebSphere environment using the class loader configuration PARENT_LAST, set for each web application module.

In order to enable this class loader order, select in the WebSphere Administration Console:

ApplicationsWebSphere enterprise applicationsApplication NameManage ModulesClasses loaded with local class loader first (parent last)

Java Authentication and Authorization Service (JAAS)

CoreMedia content servers use a custom JAAS Login module, named JaasCap with the settings, described in Table 5.4, “ Java Authentication and Authorization Service (JAAS) ”. In Create JAAS module is described how you have to create the module.

Key Value
loginType application
loginModules hox.corem.server.CapLoginModule
authStrategies SUFFICIENT

Table 5.4.  Java Authentication and Authorization Service (JAAS)


The login module requires the following predicates as custom properties:

Key Value
predicate.1.class hox.corem.login.NameLoginPredicate
predicate.1.args negative=true,editor.regex=(serverdump|publisher|auto-actor|watchdog|workflow|webserver|importer|feeder), filesystem.regex=(serverdump|publisher|auto-actor|watchdog|workflow|webserver|importer|feeder)
predicate.2.class hox.corem.login.NameLoginPredicate
predicate.2.args webserver.regex=webserver,publisher.regex=publisher,replicator.regex=replicator,workflow.regex=workflow,feeder.regex=feeder
predicate.3.class hox.corem.login.NameLoginPredicate
predicate.3.args editor.regex=.*,debug.regex=.*,filesystem.regex=.*,importer.regex=.*,system.regex=.*

Table 5.5.  Custom JAAS LoginModule Properties


Create the JAAS login module with the settings given above as follows:

Create JAAS module

  1. Create a custom Login Module named JaasCap with class name hox.corem.server.CapLoginModule in the WebSphere Administration Console under:

    SecurityGlobal SecurityJava Authentication and Authorization ServiceApplication logins

  2. Set its authentication strategy to SUFFICIENT.

  3. The JAAS predicates are located in the jaas.conf file, under WEB-INF/properties/corem of a Content Server's installation folder.

    Add each predicate as a custom property to the newly configured hox.corem.server.CapLoginModule in WebSphere (see Figure 5.3, “Custom JAAS LoginModule”).

Custom JAAS LoginModule

Figure 5.3. Custom JAAS LoginModule


Web Container Settings

In order to run CAE web applications in IBM WebSphere you have to set two properties for the web container in WebSphere. For each property create a new custom property in the WebSphere Administration Console under: Application serversServer NameWeb containerCustom properties

key com.ibm.wsspi.jsp.evalQuotedAndEscapedExpression
example value true
descriptionThere is a known issue in WebSphere's environment concerning the evaluation of Taglib functions within single quotes. Set this property to true in order to enable this functionality.
key com.ibm.ws.webcontainer.extractHostHeaderPort
example value true
descriptionSet the trusthostheaderport and the com.ibm.ws.webcontainer.extractHostHeaderPort custom property to true to return the port number from the request host header first. http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/rweb_custom_props.html?cp=SSEQTP_8.5.5%2F1-17-5-994
key trusthostheaderport
example value true
descriptionSet the trusthostheaderport and the com.ibm.ws.webcontainer.extractHostHeaderPort custom property to true to return the port number from the request host header first. http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/rweb_custom_props.html?cp=SSEQTP_8.5.5%2F1-17-5-994
key httpsIndicatorHeader
example value X-Forwarded-HTTPS
descriptionThe SSL offloader must be configured to add a special header indicating that the original request was over HTTPS. On the proxy / loadbalancer, make sure to inject this header as request header. See http://www-01.ibm.com/support/docview.wss?uid=swg21221253 for a detailed description. Add for example this to your virtualhost configuration for Apache: RequestHeader set X-Forwarded-HTTPS "true"

Table 5.6.  Web Container Settings