After you install and configure IBM® Business Process Manager, you
must customize your environment so that it can function properly as
a cluster with a web server.
Before you begin
Note: This page describes only the additional
IBM BPM configuration
that is required after configuring a web server in your WebSphere
Application Server cell, as described in
Implementing a web server plug-in. Also note
that sticky sessions, or session affinity, are required for proper
clustering behavior, as described in the technote
Cluster installation with a load balancer and sticky
sessions. Finally, some
IBM BPM applications
enforce HTTPS, and therefore also rely on a secure connection between
the web server and WebSphere Application Server. See the links under
"Related information" for more details.
This task uses the
setBPMVirtualHost and
setBPMDefaultVirtualHost commands,
which are run using the AdminTask object of the wsadmin scripting
client. To run the commands, the following prerequisites must be met:
- The commands must be run on the deployment manager node.
- If the deployment manager is stopped, use the wsadmin
-conntype none option to run the commands in disconnected
mode.
- If the deployment manager is running, you must connect with a
user ID that has WebSphere Application Server configurator privileges.
Do not use the wsadmin -conntype none option.
Start the wsadmin scripting client from the deployment_manager_profile/bin directory.
The setBPMVirtualHost and setBPMDefaultVirtualHost commands
do not write to a log file, but the wsadmin scripting client always
writes a profile_root/logs/wsadmin.traceout log
file where you will find exception stack traces and other information.
Make
sure that the Process Server or Process Center has been installed
and configured, and that you have configured the deployment environment.
You cannot start the cluster until you have completed the procedures
in this topic.
About this task
If you use a web server as an entry point into your network,
you must configure virtual host information about the web server so
that IBM BPM generates
URLs that are based on the host name of the web server.
Procedure
The following procedure describes the steps to follow
for a simple configuration. For an advanced configuration, refer to
the topic "Configuring IBM BPM endpoints to match your topology."
- Stop the deployment manager.
- Start the wsadmin scripting client from the deployment
manager profile /bin directory:
wsadmin -conntype none -lang jython
- Get the deployment environment object.
Note: The
sample below assumes a deployment environment name of De1 .
This should be adapted to the deployment environment name you chose
during configuration.
dePath = '/Cell:/BPMCellConfigExtension:/BPMDeploymentEnvironment:De1/'
- Create the virtual host object for your web server:
webserver_vh = AdminTask.setBPMVirtualHost( [ '-de', 'De1', '-name', 'webserver_vh', '-transportProtocol', 'https', '-hostname', 'webserver.example.com' ] )
- Point to the newly created IBM BPM virtual host from:
- The EXTERNAL_CLIENT endpoint scenario. The EXTERNAL_CLIENT
endpoint scenario causes all user traffic to use the web server, while internal traffic (between BPM
components and other clients within your data center) continues to connect to the current server's
web container. If you also want internal traffic to use the web server, set it as the virtual host
for INTERNAL_CLIENT.
Find the BPMURL object for the
EXTERNAL_CLIENT endpoint
scenario:
for item in AdminUtilities.convertToList(AdminConfig.getid(dePath+'BPMURLS:/BPMURL:/')):
if AdminConfig.showAttribute(item,'scenario') == 'EXTERNAL_CLIENT': bpmurl= item; break;
print bpmurl
Important: Because Jython relies on indentation to identify the contents of a loop, the space
character before the if statement is required, and pressing
enter twice is necessary to execute the loop.
Set the web server
virtual host for the
EXTERNAL_CLIENT BPMURL and save your changes:
AdminConfig.modify(bpmurl, [['virtualHost',webserver_vh]])
- Save your changes.
AdminConfig.save()
- Restart the deployment manager.
- Map each application's web modules to your web server. This is in addition to the cluster mapping that is done when the deployment environment is
created. For more details, see Mapping modules to servers.
Note: Existing applications are mapped to the web server by default when it is created if
Application mapping to the web server is set to
ALL.
If the default cluster mappings are removed, the application does not function properly.
When web
module mappings are changed, you must regenerate the web server plug-in and propagate it to the web
server. For more information, see Plug-ins configuration.