Is7.4 Admin Admin
Is7.4 Admin Admin
Is7.4 Admin Admin
Configuration Guide
Intershop 7
Administration and Configuration Guide
Document ID: ENF7-45-03-02
System Administration
Overview
Knowledge Assumed
This guide assumes familiarity with:
n The system structure of your enterprise
This includes existing network systems and servers, including any hardware and
software elements of your system which are integrated with Intershop 7. You
should be familiar with the basic concepts and tasks of system administration.
n Basic Intershop 7 architecture
This includes the Intershop 7 architecture in terms of its business applications,
software components and processes.
n Your enterprise's Intershop 7 installation
If you are not responsible for your enterprise's Intershop 7 installation, contact
the person responsible to learn about its structure.
Typographical Conventions
The following typographical conventions are used throughout the document:
• blue color
Highlights cross-references to other parts of this guide or links to external
resources, such as other documents of the Intershop Knowledge Base or other
web sites.
• italic typeface
Highlights special words, e.g., names of files and directories, cartridges, and
packages, as well as references to external resources that are not directly linked.
• monospaced typeface
Chapter Overview
This guide is divided into the following chapters:
n Chapter 1: System Administration Overview (this chapter)
Gives a general overview of the Intershop 7 components and administration
tasks.
n Chapter 2: Intershop 7 Administration
Outlines the configuration framework, Web server and Web Adapter
configuration, the application server configuration, and the Intershop 7
application configuration, including ORM and data source setup. It details
the logging options for each server, and gives an overview of data replication
concepts and processes.
n Chapter 3: System Management
Details the functionality of the System Management Console (SMC) and
describes how to use it for system administration tasks in Intershop 7.
n Chapter 4: References
Summarizes command line tools, Intershop 7 placeholders as well as important
Tomcat and node manager settings, and outlines how to enable optional
Intershop 7 components.
Figure 1. Intershop 7 components
NOTE: On Web gateway and application server layer, multiple server instances forming a so-called
cluster are possible.
The subsequent sections discuss these layers and their components in more detail.
The Web Adapter agent, which is running on every Web Gateway host as a daemon
process,
• Invalidates pages in the page cache based on pre-defined keywords (see Page
Cache Options),
• Removes invalidated pages from the cache,
• Generates request logs and error logs (see Web Adapter Logging Options),
• Requests, typically after data replications, Intershop 7 pages to fill the page
cache (see Page Cache Pre-Fetching)
• Sends statistical data to the application servers. By default, these statistics are
written to Web Adapter log files (see Web Adapter Statistics.
Note that the Web Adapter does not need to access static content locations within
the Intershop 7 shared file system. Requests for static content are forwarded to and
resolved by a special resource servlet running on the application servers. To resolve
the request for static content, the resource servlet uses the cartridge configuration
of the site to which the request is addressed.
Application Server
The application server provides the operating environment for the Intershop 7
application and any custom cartridge providing business logic.
Apart from default applications, the application server deploys two additional web
applications:
n Intershop 7 Loader Application
This application loads and initializes the Intershop 7 application.
n Cluster Management Console (Administration Console)
This is a Web frontend application used to manage the application server
instances in an Intershop 7 cluster.
Intershop 7 Application
The Intershop 7 application itself consists of the internal servlet engine, the ORM
engine and the core cartridge providing the necessary technical functionality and
basic business logic, as well as business component and application cartridges
providing the framework for any business logic built on top of Intershop 7. These
sub-components are discussed below.
ORM Engine
The ORM engine (Object-Relational Mapping engine) forms the persistence layer.
It consists of multiple sub-frameworks that perform tasks like loading and parsing
of deployment descriptors, providing meta-information for the generation of SQL
statements or switching between different transactional and non-transactional
states of an object.
The features of the ORM engine include:
• Object-Relational Mapping (inheritance between persistent objects with
abstract superclasses, mapping of concrete leaf classes to tables)
• Caching of persistent objects and relations between them
• Transaction handling (begin, commit, rollback, store, object lock)
• JDBC functionality (Oracle 11g JDBC driver)
• Logging of SQL statements and transaction boundaries
Core Cartridge
Each server process deploys the core cartridge. The functionality provided by the
core cartridge can be split into two groups, one with more technical functionality
and one with basic business logic. The technical features include:
• Logging
• Request processing
• Template processing
• Pipeline execution
• Mail sending
• Search framework
• Cache management
• Configuration framework
• Job Scheduler
• Import/Export framework
• Data replication
Oracle Client
To complete the functionality of Intershop 7, an Oracle Client must be installed
along with the Intershop Application Server. The Oracle Client provides necessary
features for, e.g., import/export processes.
Application Initialization
The Intershop 7 application is started inside the underlying application server by
means of a special loader application (EnfinitySuite). The loader application, which
is deployed as a *.war file, is J2EE compliant and independent from the application
server used.
Main purpose of the loader application is to load and initialize the application
resources. Loader application and Intershop 7 application run inside the same JVM.
Due to the loader mechanism, the Intershop 7 application itself does not need to be
packaged and deployed as a *.war file. Intershop 7 cartridges are stored in the ISF
instance.
Note that Intershop 7 runs autonomously inside the application server, providing all
the services which the application needs for execution. The Intershop 7 application
also provides its own engine for servlet and JSP processing.
On Windows, you must share the ISF directory when using the ISF in a distributed
installation where it is accessed from a remote IAS host. By default, the share
is available to members of user group "Everyone" with full control. For security
reasons, it is recommended to restrict availablity of the share to the application
server user only.
The share directory contains the Intershop Shared Files, a component providing
resources that are shared between different Intershop 7 servers belonging to a
cluster. The table below gives an overview of the share directory.
Table 1. ISF directory structure
In addition to the main and share directories, a number of files are created during
the installation of Intershop 7.
Table 2. Files outside the installation directory
Directory Description
/var/opt/intershop Main directory of the system registry
eserver.conf Instance registration file used for startup/shutdown
setup Installation directory of the system registry
uninstall Contains the Java Runtime Environment and the
uninstall Java class file.
log Setup log directory
Administration Overview
This section gives a general overview of maintenance tasks, which will be further
detailed in the following chapters.
Administration Interfaces
Intershop 7 system administration and configuration is performed using the
following tools:
n The system configuration files
Most options that control the Intershop 7 system behavior are stored in
*.properties files. To customize Intershop 7 options, i.e., to actually change the
Intershop 7 configuration, edit these configuration (*.properties) files using a
plain text editor. The *.properties files resemble the key = value notation as
defined in the standard Java class java.util.Properties. Properties can model the
following types of values:
• Integer: A positive or negative integer
It is generally a good idea to make a backup copy of the file before making
changes.
n The Configuration Framework
The Configuration Framework provides Intershop 7 administrators with an
interface (like getstring(), integer(), properties()) for loading configurations across
installations via the Configuration Manager. The data source(s) can be anything
from which a configuration can be loaded (such as a file, database table, external
resource, etc.).
Intershop 7 behavior settings are set by means of key = value pairs (found in
property files, preference tables, etc.), within ConfigurationSets (data stores)
defined in configuration.xml. The context (e.g. a domain, an instance, or server
cluster specific settings) determines the values that are returned by the set. The
Configuration Manager:
• Set-up is defined by the configuration.xml file, the central component of the
framework. This file contains the instructions for the configuration engine
instance (including the scopes and the configuration set URI)
• Assembles the configuration engine instance that locates the URI (via the
Finder) and creates ConfigurationSets (via the Reader)
For more information see Configuration Framework.
n The Cluster Management Console (Administration Console)
This is a Web frontend application used to manage the application server
instances in an Intershop 7 cluster and the applications running on them.
n The System Management Console
The System Management Console is an ISML-based Web front application used
to manage scheduled jobs, and to monitor certain application functionality in
Intershop 7.
Task Overview
Basically, the Intershop 7 administration comprises the following main tasks:
n Component Configuration
For Intershop 7 to function properly in your environment and according to
the intended business scenario, you may have to adjust the settings for the
individual components. See
• Web Server Settings
• Web Adapter Settings
• Intershop 7 Application Settings
n System Control and Monitoring
System control and monitoring with respect to the Intershop 7 application is
generally performed via the System Management Console (SMC), see Schedule
Management, Logging Options, License Auditing, Site Management, Monitor
the System State, and Installation Maintenance.
n Logging
The logging options are configured for each Intershop 7 component separately.
Refer to the sections Web Adapter Logging Options, or Application Logging (or
the SMC section Logging Options), respectively.
n Data Replication Administration
Basic administration tasks related to data replication include connecting source
and target system and executing an initial data replication process. For details,
see Preparing for Data Replication. Once the basic configurations are in place,
the system administrator creates and monitors data replication processes in
the central administration front end. For more information, refer to the "Central
Administration User Guide".
Intershop 7 Administration
n Configuration Scope
Each configuration source (a file, database, etc.) belongs to a special scope. If the
Scope is dependent on a higher-ranking Scope, configuration values are taken
from the higher-ranking scope. The values are then applied to initializing the
Finder and Sets.
You can use placeholders in the attributes defined in the configuration.xml file.
<scope name="system" />
<scope name="ish" depends="system" />
<set finder="system" scope="system,ish,startup,instance,cluster,
server,domain" />
<set finder="property" scope="ish,startup,instance,cluster,
server,domain" required="true" filename="${system.intershop.HomeDirectory}
/intershop.properties" />
Scopes specify where to look for configurations (or rather, the context of
application for the writer, reader and finder) across an entire system or within a
specific domain. Some scopes have dependencies on other scopes higher up in the
heirarchy. For example the instance scope configuration depends on some startup
scope properties that must first load some system scope properties. Therefore in
our example, the instance scope has a dependency on the system scope. The scope
defines the extent of application for the configuration.
The order of configuration sets is important. Within configuration.xml, the sets must
be ordered in the sequence they are loaded. This also means that the first value for
a specific key is applied. If the same key is found later in the list of configurations,
the value is discarded. See Table 5, “Configurations Locations” for a list of where
to place your configurations. Configurations should be loaded in the following
sequence:
1. System properties
Define properties from the system.
2. <IS.INSTANCE.DIR>/intershop.properties
For IS_HOME properties.
3. <IS.INSTANCE.SHARE>/system/config/cluster/environment.properties
Defines one value for the current environment.
4. <IS.INSTANCE.SHARE>/system/config/servers/[IP]/[INSTANCE_ID]/
[environment]_[feature].xml
IP configuration is assigned to instances; this only includes the parameter(s) for
a single machine.
5. Preference table
Defines properties in the data base that can be read from/written to in the
backoffice.
6. <IS.INSTANCE.SHARE>/system/config/domains/[domain]/
[environment]_[feature].xml
Defines domain specific business configuration.
7. <IS.INSTANCE.SHARE>/system/config/cartridges/
[environment]_[feature].xml
Defines the default configuration of the cartridge.
8. <IS.INSTANCE.SHARE>/system/config/cluster/[environment]_[feature].xml
Defines the configuration for this cluster.
For every ConfigurationSet the finders and writers must be registered and the
reader classes must be declared within configuration.xml.
Table 3. List of Finders
The Writer saves the configuration. You must define at least one writer that
will retrieve the values of your configuration set. Below is the syntax for writer
registration and a list of available writers:
Table 4. List of Writers
Writer Description
transient Updates the given configuration set.
property Writes the configuration set to the given URI as a property file,
subsequently updates the given configuration set.
Arranging ConfigurationSets
The range or extent of the configuration is determined by the configuration
scope where the configuration sources are located. Scopes are defined in the
configuration.xml file and are dependent on scopes higher up in the scope
hierarchy. If the configuration you want to load depends on values of a broader
scope, these must be loaded first.
For example, if you load a configuration for a specific instance (scope="instance"),
you must first load the startup configuration (the startup scope), which in turn
is dependent on the system properties (contained in intershop.HomeDirectory)
contained in the startup scope. Thus, a configuration for the instance scope cannot
be properly loaded unless the configuration values on which it depends (derived
from startup scope, higher in the hierarchy) are loaded first.
Another thing to keep in mind is the use of *.properties files and the use of
preferences. Preference databases hold values that tend to be applied to business
data (e.g. data centers) across an installation, and are generally not application
specific. Property files on the other hand are typically system processes (e.g.
services for a single location) where a single property file holds settings, or an XML
file that contains all of the property files handles the settings. Depending on the
order of the ConfigurationSets in the configuration.xml file, you should save your
configurations as designated by the table below.
Table 5. Configurations Locations
Configuration is Location
applicable to...
Domain or site-specific IS_SHARE/system/config/domains/<domain-name>
Domain or site/cartridge IS_SHARE/system/cartridges/<cartridge>/release/config or
specific IS_TARGET/<cartridge>/release/config (depends on the
cartridge location)
Configuration is Location
applicable to...
Cartridge configuration IS_SHARE/system/config/cartridges
Instance or server specific IS_SHARE/system/config/servers
The environment for your configurations must be placed in the filename of the
configuration files. The file environment.properties defines the current environment
that you are in (for example, datacenter1). Within this file there exists the key =
value pair environment = <value>.
You can view the the configuration for a specific scope (Application Server in our
example) by doing the following:
1. Open the SMC
2. Select Monitoring
3. Application Server
4. Select Configuration Values
5. Select the Scopes drop-down where you can view the properties that
belong to the scope
NOTE: Support for other Web servers, such as Netscape Enterprise/iPlanet or IIS, can be acquired
on request.
SSL Support
Intershop 7 requires SSL support. Basically, there are two ways to enable SSL
support. One option is to encrypt/decrypt SSL communication within the Web
server itself (internal SSL encryption), the other option is to use an external
hardware unit (SSL box).
and use a "#" sign to comment out and, consequently, disable the SSL module.
3. (Re)start the Web server.
Use a Web browser to check whether the Apache HTTP Server cannot serve
https requests anymore.
NOTE: Intershop 7 requires SSL support. If you disable internal SSL encryption in the Web server,
you must use an SSL box instead.
To enable the SSL box support with Intershop 7, make sure to configure the Web
server and the Intershop 7 Web Adapter as follows:
• Web server
Create multiple "Listen" directives and a virtual host for the new port. Refer to
your web server documentation for details.
• Intershop 7 Web Adapter
For each Web Adapter, configure the port for decrypted https and the original
SSL port in the respective webadapter.properties file.
sslbox.webserver.port=81
sslbox.public.port=443
The application server does not need to be configured for this; it can rely on
correct X-IS-SERVER_PORT_SECURE and X-IS-HOST headers for its operation.
This adds the wastatistics handler, enabling the Web Adapter to accept requests
like http://<host>:<port>/INTERSHOP/wastatistics.
The Web server responds to such requests with either an HTTP response code "200
(OK)" displaying a single-line HTML page "Up" if this Web Adapter can contact an
application server's configuration servlet, or an HTTP response code "500 (Internal
Server Error)" displaying a HTML page "Down" if no configuration servlet could be
contacted.
NOTE: The response statuses can be configured using the Web Adapter configuration file. See
HTTP Status Response Configuration.
Load balancers can be set up to send such requests periodically and thus, exclude
unreachable or "Down" state Web Adapters from the normal request distribution.
For more detailed information on those scenarios, refer to your load balancer
documentation.
Configuration Servlets
Central WA configuration data, such as timeout settings, servlet names and
dynamic registration information about available server groups (see Server Group
Definition), sites and application servers, is provided by configuration servlets.
Every application server runs a configuration servlet. In order to query the required
information, the Web Adapter periodically performs HTTP calls to an available
configuration servlet.
The local webadapter.properties file in <IS.INSTANCE.DIR>/webadapter/ must
list all configuration servlets in the cluster. The Web Adapter cannot process
requests without at least one responsive configuration servlet and a valid
property file. Contact with one configuration servlet is sufficient because every
configuration servlet is capable of providing the necessary configuration data
about the entire cluster. Fail-over functionality, however, is only available if the local
webadapter.properties file lists all the configuration servlets available in the cluster. If
one configuration servlet fails, the Web Adapter tries all other configuration servlets
to find a responsive configuration servlet.
The cs.url.<n> properties in the webadapter.properties file specify the access URLs
of each application server's configuration servlet, for example:
cs.url.0=http://<host1>:10054/servlet/ConfigurationServlet
cs.url.1=http://<host2>:10054/servlet/ConfigurationServlet
or
cs.url.0=http://<host1>:10054/servlet/ConfigurationServlet
cs.url.1=http://<host1>:10064/servlet/ConfigurationServlet
Request Log
The request log contains information
• about incoming client requests
• about requests issued by the Web Adapter
NOTE: The request log also traces requests with errors. However, erroneous requests are logged
only if they contain "socket receive errors" (e.g., receive timeout), "application server errors" (e.g.,
HTTP status code 40x) or "depth errors" (if the maximum nesting level of includes was reached).
If you want to supply a different path, change the setting as needed and remove
the '#' character to enable this property.
For efficiency, the log entries are not written separately with each request. Instead,
they are buffered in memory until a configurable size or interval is exceeded. The
default settings are:
requestlog.enabled = true
requestlog.buffersize = 500000
requestlog.flushinterval = 10
requestlog.switchinterval = 86400
where buffersize defines the size (in bytes) of the memory where log entries are
buffered before they are written to disk, and flushinterval specifies the time
(in seconds) between flushes of the buffer to disk. The property switchinterval
specifies the interval (in seconds) when a new log file is created.
In addition, the following properties are available to control the request log
behavior, in particular, to reduce the log file size:
Table 6. Additional request log settings
Column Description
1 Request start time in milliseconds after 1970-01-01
2 Remote IP number (content of the CGI variable REMOTE_ADDR)
3 Remote user (content of the CGI variable REMOTE_USER)
4 Server name (content of the CGI variable SERVER_NAME)
Column Description
5 Server port (content of the CGI variable SERVER_PORT)
6 Runtime of the request in milliseconds, measured from the incoming request
until the response is sent to the Web server API
7 Request path information followed by the (optional) query-string
(<PATH_INFO>[?<QUERY_STRING>])
8 User agent (content of the CGI variable USER_AGENT)
9 Cookie(s) that were sent along with the request (content of the HTTP header
COOKIE)
10 Referrer of the requested page (content of the HTTP header REFERRER)
11 Session ID used for the request (may differ from the SID in PATH_INFO or Cookie
if the Web Adapter has assigned a new one)
12 Request ID, built as <key>-<level>-<index>, where <key> is a unique identifier
for the request and all its <wainclude>s created from host ID, process ID, time
and counter <level> is the current <wainclude> recursion depth; starting with
0 for a client request; 1 or more decimal digits <index> is the serial counter to
distinguish subsequent <wainclude>s at the same recursion level; starting with 0;
2 or more decimal digits
13 Source of the response, either: <host>:<port> – indicates that an application
server response was received and delivered from this server pc – indicates that
a pagecache response was delivered <host>:<port>:pc – indicates that an
application server response was received and delivered from this server and that
it was written into the pagecache for later reuse
14 Response status; values < 100 indicate a "200 OK" application server response
with the "X-Error" header value set; values >= 100 && < 1000 indicate the HTTP
status code, if a "X-IS-HTTPResponseStatus" response header is present, its
value wins over the actual HTTP status code; values >= 1000 indicate a handled
processing error, hence a error message is also written to the webadapter.log,
1013 (RECV_ERROR) means no response received due to socket timeout etc.,
1015 (DEPTH_ERROR) means a <wainclude> tag in the response cannot be
resolved since "include.maxdepth" is already reached
15 Time to receive the request from the client (in milliseconds). Includes the time
required to receive POST content and to parse the URL and HTTP headers.
16 Waiting time in the request's queue to get an application server thread or to find
a valid cache file (in milliseconds)
17 Time (in milliseconds) to send a request to the application server and receive a
valid response back. If the response is already present within the page cache, the
time for opening and reading the cache file is logged.
18 Time to parse the response and resolve all contained includes (in milliseconds)
19 Time (in milliseconds) required for transferring the response to the Web server.
Determined by the length of the response, the Web server buffer size to cache it,
and the connection speed between the client browser and the Web server.
20 Request method, such as GET or POST
21 The PGID, which was internally used during request processing. The column will
be empty if no personalization is involved in request and response.Note: This is
not necessarily the PGID, which is present in the client request URL. In the case
that the WA has thrown away an invalid SPGID or the AS has assigned a new
PGID to the session, the new value wins.
22 PGID state, single letter code to keep track of personalization state changes:
n -> new: no valid PGID in request; a new one is used in response URLs u -
>unchanged: request PGID used unchanged in response URLs c -> changed:
Column Description
valid PGID in request; but a new one is used in response URLs r -> removed:
valid PGID in request; none is used in response URLs empty: no personalization
is involved in request and response. Note: c and r imply that an AS request
is executed and that the response is not cached. n in conjunction with pc in
column 13 indicates an "PGID distribution page" case.
23 personalized flag, 0|1 according to <iscontent personalized="false"|"true" >, and
empty if no personalization is involved in request and response.
24 Single letter to tag the request type: p: pipeline request s: .servlet request
25 Response size as indicated in the HTTP headers. For includes the content-length
of the received response is logged. For top-level requests, the content length of
the aggregated, outgoing client response is logged, followed by a colon (":") and
the content length of the internally received response. For <wainclude>s, the
content length of the internally received response is logged. -1 if no response
size is available with streamed responses or in error conditions.
26 For top-level requests, the number of bytes transmitted to the hosting web
server API. -1 indicates an error. For <wainclude>s, always 0.
27 Secure flag, 0|1 - this flag is set to 1 if the request was detected as secure request,
otherwise it is set to 0.
28 Robot flag, 0|1 - this flag is set to 1 if the request was detected as originating from
a robot, otherwise it is set to 0.
29 Binary flag, 0|1 - this flag is set to 1 if the response has set the header X-IS-BINARY,
otherwise it is set to 0. This facilitates page impression tracking, for example,
when images are delivered via pipelines.
30 For top-level requests, the HTTP status code sent to the client with the outgoing
response. This status code may be passed as is from the response, set via a "X-IS-
HTTPResponseStatus" response header or set by the WA with its own error pages.
For <wainclude>s, always empty.
31 Page name, the value of the "X-IS-PageName" HTTP response header (or empty).
Property Description
webadapterAgent.log.level Controls the logging verbosity (DEBUG, INFO,
WARN, ERROR, FATAL). Default: INFO.
webadapterAgent.requestLog. Specifies the target pipeline for uploading
upload.pathInfo the access log files. The default value
should not be changed: /BOS/root/-/-/-/
WriteFileFromRequest-Start.
webadapterAgent.requestLog. Specifies the target pipeline for clearing
serverTest.pathInfo the upload. The default value should
not be changed: /BOS/root/-/-/-/
WriteFileFromRequest-CheckServerAvailability.
webadapterAgent.requestLog. chunkSize Specifies the chunk size (in Byte) for log file
uploads. Default: 2000000.
Property Description
webadapterAgent.requestLog. pushInterval Specifies the time interval (in seconds)
between upload operations. Default: 10.
Error Log
The error log will be written by the Web Adapter to indicate error situations. The
name of this file is configurable in the local webadapter.properties file. The default is
#errorlog.file=/<IS.INSTANCE.DIR>/webadapter/log/webadapter.log
If you want to supply a different path, change the setting as needed and remove
the '#' character to enable this property.
In addition, errorlog.file can be configured with strftime() conversion specifiers
for time-based rotation, like .../webadapter-%Y-%m-%d.log.
The overall log level is configured using the property errorlog.level. The value can
be one of OFF, FATAL, ERROR, WARN, INFO, VERBOSE or DEBUG. The default value is
#errorlog.level = INFO
NOTE: It is not recommended to use VERBOSE or DEBUG log levels with production systems.
Note that the process-id/thread-id entries may differ according to the environment.
These entries provide a unique identifier for a request handler within the machine.
For the multiprocessed Apache Web server, it is actually a combination of parent-
process-id/process-id; multithreaded servers use process-id/thread-id.
The request-id is assigned to every incoming request. It is also used in the Web
Adapter request log and in the application server error log.
NOTE: The Web Adapter opens and closes the log output file with each logged message. It is
possible to remove or rename the log file of a running Web Adapter.
Intershop 7 supports site-specific error pages. To this end, the Web Adapter looks
up error pages in the following sequence until it finds a valid page:
(1) <errorpage.dir>/<site>/<page>
(2) <errorpage.dir>/<hostname>/<page>
(3) <errorpage.dir>/<ip>/<page>
(4) <errorpage.dir>/<page>
where
n <errorpage.dir>
is the error page base directory as configured in the property errorpage.dir of
the local webadapter.properties file
n <site>
is the Intershop 7 site name of the request
NOTE: In some cases, the Web Adapter does not know the site name, e.g., in short URL requests.
n <hostname>
is the host name taken from the Host HTTP request header or – as a fallback –
from the HTTP server configuration (with Apache, ServerName)
n <ip>
is the resolved IPv4 address of the host
n <page>
is majorerror.html, overload.html, or url_error.html, depending on the error
condition.
Symbolic links from <host>/<ip> to <site> can be used to provide the correct error
pages in case the site context is unknown but a dedicated host name exists.
Configures the pipeline to which the statistics data will be sent. The default
configuration is:
monitor.pathinfo = /BOS/SMC/-/-/-/WebadapterStatistics-Push
n monitor.pushinterval
n monitor.propertyInterval
Configures the time (in seconds) between transmissions of the full set of
Web Adapter properties to the application server. Additional transmissions
(pushes) within this interval do not contain these properties. The default
value is 600. If set to 0, the properties are sent only in case the Web Adapter
properties have changed.
monitor.propertyInterval = 600
Defines the directory where the log file will be stored. Make sure that the
specified directory exists. Default:
LogDirectory = <IS.INSTANCE.SHARE>/system/log
n DatePattern
Defines the file name and the rollover of the log file. DatePattern must
match a pattern as defined in java.text.SimpleDateFormat. Default:
DatePattern = yyyy-MM-dd
The command prefix wa_ can be modified to match your preferences. Intershop,
however, recommends to use a prefix that is simple, short and unique enough.
When enabled, the interface supports URLs like
http[s]://.../<url-path>[;<prefix><cmd>[=<args>][;...]][?<url-query>]
Command Description
<prefix>help Writes the general help or the first given command's help
[;<prefix><cmd>...] message, if any.
<prefix>keep Stores the given commands in the requesting HTTP user-agent.
[;<prefix><cmd>...] These commands will apply to all subsequent requests without an
URL command parameter.
<prefix>source= Overrides the automatic server selection or session/server
<addr>:<port> affinity and uses the given application server. If applicable,
generates a new session ID, which stores this server assignment.
This command implies <prefix>flags=no-pc. Add
<prefix>flags=pc to use the pagecache in its normal way; add
<prefix>flags=pc_write to update the cache from the given
server's response. Responds with 503 Service Unavailable
if the given server is not present at all or not assigned to the
request's server group.
<prefix>flags= Skips or forces the selected features while processing the request.
<flag>[,<flag>...]
• [no-]pc_read controls the pagecache filesystem look-up
• [no-]pc_write controls the pagecache filesystem update
• [no-]pc shortcut for [no-]pc_read and [no-]pc_write
<prefix>trace[=plain| Writes a "request processing trace" instead of or into the outgoing
comment|markup] response:
• plain delivers the trace as "text/plain" message instead of the
actual response (default)
• comment inserts the trace as an HTML comment to be
displayed using the user agent's "View source" function
• markup appends the trace to the visible HTML markup
To restrict the control interface access for a defined IP range, for example, edit the
Web server configuration accordingly. That is, in <IS.INSTANCE.DIR>/httpd/conf/
extra/httpd-webadapter.conf, add something like
<LocationMatch ;wa_>
Require ip 10.0.0.0/8
</LocationMatch>
NOTE: Intershop recommends to restrict the access to the control interface for production systems.
The placeholder %v is to be used "as is" as the actual SID or PGID cookie value.
Another placeholder, %s, expands to the request's site name (or an empty string),
which is useful in the PGID name definition.
For detailed information about the <Set-Cookie> syntax, refer to RFC 2109 (http://
www.ietf.org/rfc/rfc2109.txt).
Robot Detection
The Web Adapter can be configured to render responses without session ID or
personalization group ID occurences if the client is recognized as a robot. This
detection can be based either on the user agent request header or on a client IP
address.
session.skipForUserAgent.0=googlebot
session.skipForUserAgent.1=spider
session.skipForRemoteAddr.0=10.0.*
session.skipForRemoteAddr.1=127.0.0.1
If the client address cannot be determined from the connection (because of proxies,
load balancers or SSL boxes, for instance), it can be read from the HTTP request
header using
request.remoteAddrHeader=X-Forwarded-For
• <IS.INSTANCE.SHARE>/system/config/cluster/robot-addresses.txt
# comment
10.0.*
127.0.0.1
NOTE: These files are not present in the default installation, but are intended to be created
manually.
hh/hh/hhhhhhhhhhhhhhhhhhhhhhhhhh
If you want to supply a different path, change the setting as needed and remove
the '#' character to enable this property.
CAUTION: Do not store the page cache in a networked Intershop Shared Files instance, such as a ISF
connected via NFS. The increase in network traffic resulting from such a configuration significantly
reduces overall system performance.
<site> is taken from the request URL, <version> is a site attribute retrieved from the
configuration servlet. It is a timestamp that increases whenever the page cache of
a site is invalidated. After page cache invalidation, the Web Adapter will start to use
the new directory and after a while there will be no more open handles in the old
one, allowing the old directory to be removed completely.
The last two sub-directories and the filename itself are created from a hash value
printed in hex-format. The hash value is derived from a unique key string built from
the following request data (some verbatim and some shortened to internal codes):
<siteStatus>#<method>#<SERVER_PORT_SECURE>#<Host>#<serviceType>#
<PATH_INFO>[;pgid=<pgid>][?<QUERY_STRING>][#<postContent>]
Property Description
pagecache.static.enabled [.<site>] Enables (true) or disables (false) the static or, respectively,
pagecache.pipeline.enabled pipeline response cache. Default: true.
[.<site>]
pagecache.pageRegeneration Unix systems only: If a page is found in
Maxage the cache, which has expired less than
pagecache.pageRegeneration pagecache.pageRegenerationMaxage
Phase seconds ago, it is made valid for the next
pagecache.pageRegenerationPhase seconds before the
request is forwarded to the application server.
pagecache.ignore.# Defines a list of query attributes which are to be ignored
in the page cache lookup, mainly intended to ignore
unwanted x/y coordinates included with image button
clicks.
Property Description
pagecache.allowAuthorization Enables the Web adapter to read/write its page cache
with the Authorization header. For security reasons, false
is the default value.
pagecache.monitor Enables the request/hit accounting in .wastatistics.
shm.key Unix systems only: Settings to control the shared
memory setup for multiprocessed Apache HTTP servers.
shm.size
Specify the unique identifier, the shared memory
shm.crashRecoveryLimit segment size, the access lock file and the shared
memory reinitialization behavior.
Property Description
webadapterAgent.pageCache. Specifies the server group intended to handle page
invalidationList.serverGroup cache invalidation requests. The default value should not
be changed: BOS.
webadapterAgent.pageCache. Specifies the servlet intended to handle page cache
invalidationList.servlet invalidation requests. The default value should not be
changed: /Pagecache.
webadapterAgent.pageCache. Specifies the time interval (in seconds) between requests
pageClearInterval to invalidate expired pages. Default: 60.
webadapterAgent.pageCache. Specifies the time interval (in seconds) between requests
siteClearInterval to delete deprecated page cache directories. Default:
86400.
webadapterAgent.pageCache. Can specify a comma seperated list of time intervals
siteClearForbidden (hh:mm-hh:mm), in which the page cache clearing
is forbidden. Commented by default (cache clearing
possible).
webadapterAgent.pageCache. Specifies the page cache index processors to use
index.processors globally.
webadapterAgent.pageCache. Can specify site-specific page cache index processors.
index.<site>.processors
webadapterAgent.pageCache. Can enable or disable (true|false) page cache indexing
index.<site>.enabled for a specific site.
webadapterAgent.pageCache. Switches the deletion of outdated page cache files on
expiredFiles.delete (true, default) or off (false).
webadapterAgent.pageCache. Specifies a time in seconds (default: 300) after which
expiredFiles.deletionDelay outdated page cache files can be deleted (to avoid Web
Adapter access conflicts).
webadapterAgent.pageCache. Specifies a time interval in seconds (default: 1800) after
expiredFiles.deletionInterval which outdated page cache files are searched and
deleted.
The default value is true for both properties which is the recommended value
for production systems. This ensures that it is always the application itself which
determines the caching behavior (via enabling or disabling the page cache at
application level), and not the clients. In a development environment, it may be
advisable to set the properties to false. This way, developers can verify changes
immediately by simply using the browser's refresh function, without having to
disable the page cache.
This means, if a crawler run is started explicitly from the SMC while a scheduled
crawler is already running, the previous process is stopped immediately, and the
new crawler request is processed.
In custom projects, any pipeline can trigger the Web crawler using the
PrefetchPageCache pipelet from the core cartridge.
Property Description
webadapterAgent. true disables the Web crawling functionality for the local host. The
crawl.disabled default value is false.
webadapterAgent. Defines the IP address of the Web Adapter. The default value is
crawl.localaddress 127.0.0.1.
The following table lists the possible Web crawler configuration properties.
Table 14. Web crawler configuration
Property Description
webadapterAgent. Intended to be used in the crawler_<site_name>.properties,
crawl.starturl as it defines the URL where to start to crawl the Intershop 7
pages. Multiple start URL are possible using the pattern
webadapterAgent.crawl.starturl.1=http://...
webadapterAgent.crawl.starturl.2=http://...
webadapterAgent. Specifies the maximum duration of a crawler run in milliseconds.
crawl.maxduration When the specified time is reached, the crawler run is stopped.
If the value is not set or set to -1, the maximum duration is not
limited. The default value is -1.
webadapterAgent. Specifies a time when running crawlers are stopped to give
crawl.crawluntil way to usual business traffic. The allowed format is HH:MM, e.g.,
06:30.
webadapterAgent. Specifies the maximum number of requests per minute issued
crawl.maxrate by the crawler. If the value is not set or set to -1, the requests are
sent as fast as possible. The default value is -1.
webadapterAgent. Specifies the number of links followed, starting from the start
crawl.maxdepth URL. With crawl depth 0, for example, only pages from the start
URL will be fetched, with crawl depth 1, pages are fetched from
the start URL and all links included in the start URL response, etc.
If the value is not set or set to -1, the maximum crawling depth is
not restricted. The default value is -1.
webadapterAgent. A crawling run can be distributed over multiple threads. Note
crawl.threadcount that crawling is always anonymous, i.e., no state information
is kept between single requests, and cookies are disabled. The
default value is 5.
webadapterAgent. Specifies a URL pattern (regular expression) that
crawl.denyurl prevents a link to be followed. Several patterns can be
specified appending number suffixes to the property
name, like webadapterAgent.crawl.denyurl.1=
webadapterAgent.crawl.denyurl.2=
webadapterAgent. Specifies a URL pattern (regular expression) that must be
crawl.allowurl matched for a link to be followed. Several patterns can
be specified appending number suffixes to the property
name, like webadapterAgent.crawl.allowurl.1=
webadapterAgent.crawl.allowurl.2=
webadapterAgent. Specifies a link text pattern (regular expression) that
crawl.denytext prevents a link to be followed. Several patterns can be
specified appending number suffixes to the property
name, like webadapterAgent.crawl.denytext.1=
webadapterAgent.crawl.denytext.2=
webadapterAgent. Specifies a link text pattern (regular expression) that must
crawl.allowtext be matched for a link to be followed. Several patterns can
be specified appending number suffixes to the property
name, like webadapterAgent.crawl.allowtext.1=
webadapterAgent.crawl.allowtext.2=
Property Description
webadapterAgent. Specifies the maximum time (in milliseconds) for waiting for
crawl.sockettimeout socket reads. If the value is not set or set to -1, the timeout check
is disabled. Note that in case of a timeout, only the concerned
request is cancelled. The default value is 0.
webadapterAgent. Specifies the maximum time (in milliseconds) for obtaining a
crawl.connectiontimeout connection. If the value is not set or set to -1, the timeout check
is disabled. Note that in case of a timeout, only the concerned
request is cancelled. The default value is 0.
webadapterAgent. Specifies the user agent header to allow for the Web crawler to
crawl.useragent be detected as a Web robot.
webadapterAgent. Specifies the types of the response content that will be parsed
crawl.contenttypes for further links. Note that content of the default types will be
parsed in any case, even if no value is set. The default values is
text/html application/xhtml+xml.
webadapterAgent. Specifies the tag attributes that are considered as links. Note that
crawl.linktagattributes the default tag attributes are considered in any case, even if no
value is set. The default value is A/href AREA/href LINK/
href EMBED/src FRAME/src IFRAME/src INPUT/src
IMG/src SCRIPT/src BODY/background.
webadapterAgent. To be used in conjunction with .replacetemplate, can
crawl.replacepattern specify, for example, JavaScript link patterns (as regular
expressions) that must be replaced to be followed.
webadapterAgent. To be used in conjunction with .replacepattern, specifies
crawl.replacetemplate the URL template that replaces the given link pattern. For
example, with webadapterAgent.crawl.replacepattern=
[Jj]ava[Ss]cript:goSH\('(.+)'\)
webadapterAgent.crawl.replacetemplate=
http://www.myshop.com/shops/$1/, the link
JavaScript:goSH('music') will be replaced with http://
www.myshop.com/shops/music/.
webadapterAgent. Can specify crawler start times. Four fields, separated by spaces,
crawl.starttime define minute, hour, day of week and day of month using a
cron-like syntax (each field can contain multiple values or value
ranges separated by commas, asterisks mean 'any', the first day
of week is Sunday = 1.) For example, 0 23 start any day at 23:00;
0 23 * * start any day at 23:00; 0 1 2-6 start from Monday to
Friday at 01:00; 0 6,22 * 1,5,15-17 start at the 1st, 5th, 15th,
16th and 17th of each month at 06:00 and 22:00
and add the intended value to server.groups. For example, to set up a server
group for Data Replication processes:
• Edit the global property file and add Data Replication, making the configuration
available to all web adapters.
server.groups = WFS, BOS, DataRep
• Assign the web adapters (see Web Adapter Configuration Files) to a particular
server group by editing the property file.
NOTE: The more server groups are used, the longer the session IDs generated by the system will be.
#####################################################################
## service control
##
## Configures the regular HTTP response status of the 'wastatus'
## handler. This could be useful to exclude a running WA instance
## from load-balancing (before planned HTTP server maintenance).
## Set:
##
## 200 - to report a 'up' state (default)
## 500 - to report a 'down' state (not distinguishable from real failure)
## 503 - to report a 'down' state (with a distinct 'maintenance' code)
##
## Requires an appropriate front-end load-balancer configuration
## to be recognized - and a reset to "200" to resume operation!
#wastatus.defaultResponse = 200
#wastatus.defaultResponse = 500
#wastatus.defaultResponse = 503
For more information on SSL box support, see SSL Box Support.
n lb.filterperiod
The default setting for session-bound requests is:
session.lb.filterperiod = 120
As a rule of thumb, a small lb.filterperiod makes the Web Adapter react more
quickly to server performance (load) changes but also makes it more sensitive
to disturbance. Fewer requests are used to compute the quality indicator, so it is
more likely that a few expensive requests in close succession would degrade the
apparent server performance.
n lb.qualityweight
The default setting for session-bound requests is:
session.lb.qualityweight = 1
n lb.initialTimeFactor
Each newly registered application server starts with a processing time measure
determined by the filtered response time of the application server that is
currently fastest, multiplied with the value of the property lb.initialTimeFactor.
A larger property value means that the request load for this application server
increases slower after server startup to avoid server overload due to initially
short response times. If the value is too large however, the application server
might stay idle for a longer period of time. The default value is 5.0.
n lb.connectPenaltyFactor
If an application server request fails temporarily due to a connect error or
timeout, the application server is charged with a penalty time to decrease
its probability to get new sessions or requests. The lb.connectPenaltyFactor
controls the penalty time. The default value that is suitable for most situations
is 1.5. Larger values lead to a larger adjustment of the application server
probability, so that multiple connect problems have a higher impact on the
number of sessions and requests that will get assigned to this application
server. They may be used in deployments with many application server threads
where a connect error indicates serious or rare overload situations. However,
in high-load situations larger values can also cause an unstable, uneven load
distribution due to over-reaction to single connect problems.
Change the default settings only if necessary, as they are sensitive. An indication
for load balancing problems might be a very uneven and unstable workload
distribution among the application servers over a longer period of time. Keep in
mind that there might be a number of other issues that lead to uneven application
server load, for example single sessions that introduce an exceptional high load
on the system, or back office activities like data updates as well as Intershop 7 jobs
running on certain application servers.
Each application server process (not host) - uniquely known to the Web Adapter
by <IP>:<port> - is assigned exactly one weight value. The built-in default weight
is 1. Custom values are specified using the lb.serverWeight* settings in the
webadapter.properties file. These settings can be either global or specific per
netmask, host or server process, using
lb.serverWeight = <weight>
lb.serverWeight.<CIDR> = <weight>
lb.serverWeight.<IP> = <weight>
lb.serverWeight.<IP>.<port> = <weight>
where <CIDR> is the netmask in CIDR notation, <IP> is the IPv4 network address
in decimal dotted notation, <port> is the TCP port number, and <weight> is the
integral weight value (0..99999). The last matching setting - the most specific one -
wins.
NOTE: Settings in the local <IS.INSTANCE.DIR>/webadapter/webadapter.properties file will win over
<IS.INSTANCE.SHARE>/.../webadapter.properties only if they provide an equal or better match. A local
lb.serverWeight = 10 will not override a shared lb.serverWeight.10.0.0.1 = 20.
When using this load-balancing algorithm, keep the following issues in mind:
• Choose your (integral) weight values so that you can adjust their relations
exactly enough: Use "10/20" instead of "1/2". Later, if you see that the "double
capacity" assumption is wrong, you can adjust it to "10/18".
• Check the webadapter.log. Invalid settings are ignored with a warning here. You
do not want a flooded log and an incomplete cluster setup in production.
• A weight of 0 can be used to exclude a server from getting new sessions or new
single requests. However, it will still receive requests from the existing sessions,
which are bound to it. But it could help to exclude a server from production
load, e.g., for an upcoming local patch testing.
• The effective server weight configuration can be monitored in the
.wastatistics dump. If the feature is in use, there is a new "weight" column in
the per-server statistics. Also, the successfully parsed lb.serverWeight* settings
are reported. The "( <n> matches)" output indicates how many servers got
their actual weight setting from this particular rule. This may help in complex
configurations like determining, for example, if a new rule exactly selects the 16
servers that were intended.
webadapter.properties settings:
lb.serverWeight = 40
lb.serverWeight.10.0.29.64/26 = 80
/is-bin/INTERSHOP.wastatistics output:
single: server ... ms_f weight WFS BOS TEST
0 10.0.29.19:10099 1 40 0.1667 0.3333 -
1 10.0.29.20:10099 1 40 0.1667 - -
2 10.0.29.64:10099 1 80 0.3333 0.6667 1.0000
3 10.0.29.65:10099 1 80 0.3333 - -
...
properties:
...
lb.serverWeight = 40 ( 2 matches)
lb.serverWeight.10.0.29.64/26 = 80 ( 2 matches)
If you want to change a certain setting for a single server instance, copy
the corresponding property from the shared file appserver.properties in
<IS.INSTANCE.SHARE>/system/config/cluster/ to the configuration file of the server
instance in <IS.INSTANCE.SHARE>/system/config/servers/<IS.AS.HOSTNAME>/
<IS.INSTANCE.ID> and edit it as needed. The settings in the local properties file will
override the global application settings.
NOTE: Technically, all properties described in this section can be set as server instance specific.
Event Settings
The messaging cartridge is the Intershop 7 component used to send event
messages inside an Intershop 7 cluster. It implements an API that integrates simple
multicast messaging in addition to an extensible framework for adapting external
messaging systems to Intershop 7. Currently, JMS and JGroups are supported out of
the box; additional systems can be implemented on a project-specific base.
There are four types of events that are distributed. Each type uses a dedicated
messaging channel. The name of the messaging channel is identical with the prefix
of its corresponding configuration properties:
• General application server events (event manager of the core cartridge)
intershop.event, to be configured in <IS.INSTANCE.SHARE>/system/config/
cluster/appserver.properties.
For details about configuring general event messaging, see Application Server
Event Settings.
• Cache engine message events (cache cartridge)
intershop.cacheengine.wrapped, to be configured in <IS.INSTANCE.SHARE>/
system/config/cluster/cache.properties.
For details about configuring cache engine messaging, see Cache Engine
Messaging Settings.
• ORM cache synchronization events (orm cartridge)
intershop.cacheSync, to be configured in <IS.INSTANCE.SHARE>/system/config/
cluster/orm.properties.
For details about configuring ORM cache synchronization events, see PO Cache
Synchronization Settings.
• Tomcat cluster management events (TCM module)
NOTE: If there are several Intershop 7 clusters in one subnet, a cluster may receive events from a
foreign cluster if both clusters happen to be using the same messaging channel (address) and port.
In this case, you have to specify a unique messaging channel and port for each cluster.
Property Description
messengerClass Sets the messenger class to be used (required), the
default is com.intershop.beehive.messaging.internal.
multicast.MulticastMessenger.
multicastAddress Sets the class D IP address of the multicast group
(required).
multicastPort Sets the UDP port for the multicast group (required).
multicastInterface Sets the IP of the nework interface for outgoing packets.
multicastTimeToLive Sets the time to live for the multicast socket, used for
multicast routing.
multicastReceiveBufferSize Sets the size of the ReceiveBuffer for packets, should be
configured in the underlying operating system as well.
multicastListenerThreads Sets the number of spawned threads for receiving
multicast packets.
multicastPacketSize Sets the size of the byte array for the receive()
method of the multicast listener threads and therefore
the maximum size of a packet, maximum is 64k.
Property Description
messengerClass Sets the messenger class to be used (required), the
default is com.intershop.beehive.messaging.internal.
jgroups.JGroupsMessenger.
jgroupsChannelName Sets the JGroups channel (required), a message sent
to a channel is received by all clients registered to this
channel.
jgroupsProtocolStackConfigFile Optional configuration for the underlying protocol stack
used by JGroups.
jgroupsRequestTimeout Sets the request timeout for message sending. When a
message is sent and the client does not respond within
the request timeout, the delivery counts as failed. Setting
this to 0 means wait indefinitely.
groupsResenderRequestTimeout Sets the rquest timeout for the message resender.
jgroupsAcknowledge Enables message acknowledgements (true|false).
jgroupsSyncAcknowledge If message acknowledgment is enabled, specifies
whether to do it synchronously. If so, the message
sender thread waits for all acknowledgments to arrive
before continuing. Otherwise the acknowledgment is
delegated to a future listener.
jgroupsRunnerThreadSleep Specifies how long the run() method of the messenger
thread will sleep (0 = no sleep).
jgroupsResenderThreadSleep Specifies how long the message resender threads waits
between resend attempts.
Property Description
messengerClass Sets the messenger class to be used (required), the
default is com.intershop.beehive.messaging.internal.jms.
JmsMessenger.
jmsBackend Sets the type of the JMS provider backend (hornetq|
activemq). This parameter is required.
jmsProviderURL Needed to lookup the JMS components with JNDI on
the JMS server. This parameter is required.
jmsTopicName Sets the name of the JMS topic the messages are sent
to / received from.
jmsReceiveMessagesSync Sets how the JMS messenger receives messages.
Synchronously means the receive() happens in the
messenger thread. Asychronously means a separate
listener thread is spawned.
jmsSessionAcknowledgeMode The mode JMS messages are acknowledged.
Property Description
jmsPublisherDeliveryMode The deliveryMode for the topic publisher, sets if the
JMS server stores the messages in a database so they
could be redelivered after JMS server restart. If this is
wanted the JMS server has to be configured accordingly.
See javax.jms.MessageProduce.
jmsDisableMessageId Sets if a message id is added to the JMS message header.
Reduces the message size if not set.
jmsDisableMessageTimestamp Sets if a timestamp ID is added to the JMS message
header. Reduces the message size if not set.
jmsRunnerThreadSleep This sets how long the run() method of the messenger
thread will sleep (0 = no sleep). This is the fallback
configuration if values are not set in the configuration
(defined in the messenger class).
NOTE: If you intend to use other messaging systems than the default multicast, you must
enable and adjust the corresponding intershop.event properties (see Event Settings).
Fail-Over Settings
An Intershop 7 application process sends out event messages (default multicast)
regarding its own status every couple of seconds and receives similar data from
the other applications in the cluster. In this way, each application is able to track
all running applications in the cluster and maintain a list of known applications. To
remove applications that have become unavailable, this list is cleaned up regularly
by an expiration thread. Each registered application that does not re-register itself
within a certain time-out period becomes unknown and is removed.
The fail-over timing can be configured in the appserver.properties file. The
following options are available:
n intershop.registration.registrationTime
The time in seconds after which each application repeats the broadcast of its
own registration event, that is, the multicast message containing the host IP,
port and server groups. The default value is 10.
n intershop.registration.expirationTime
The time in seconds after which a registration at another application becomes
invalid. The default value is 30.
NOTE: This value must be larger than the value for intershop.registration.
registrationTime.
The Web Adapter regularly updates its configuration by querying the configuration
servlet and thus controls the time after which an "expired" application is
unregistered. This poll interval is configured in the global webadapter.properties file.
The default setting is
# Configuration Servlet Communication Options
cs.poll.interval = 10
n intershop.servletEngine.connector.port
This defines the port which the internal servlet engine opens to handle
incoming traffic from the Web Adapter. This port must be unique for each
application instance on a host. The installation default setting, as defined in the
local appserver#.properties, for one application in the first Intershop 7 instance is:
intershop.servletEngine.connector.port=10054
n intershop.servletEngine.connector.minProcessors
Each incoming request requires a thread to process it for the duration of
that request. Upon server startup, the internal servlet engine creates a
number of request processing threads, based on the value configured for the
minProcessors attribute. In a standard installation, the value should be set to 10.
intershop.servletEngine.connector.minProcessors=10
n intershop.servletEngine.connector.maxProcessors
If more simultaneous requests are received than can be handled by the currently
available request processing threads, additional threads will be created up
to the configured maximum (the value of the maxProcessors attribute). In a
standard installation, the value should be set to 75.
intershop.servletEngine.connector.maxProcessors=75
n intershop.servletEngine.connector.acceptCount
If still more simultaneous requests are received, they are stacked up inside the
server socket, up to the configured maximum (the value of the acceptCount
attribute). Any further simultaneous requests will receive "connection refused"
errors, until resources are available to process them. In a standard installation,
the value should be set to 300.
intershop.servletEngine.connector.acceptCount=300
n intershop.servletEngine.connector.address
This property can be used to define a specific IP address from which requests
are accepted. This can be used, for example, to route traffic for ORM cache
synchronization and Web front traffic through separate interfaces (see
Multihomed Hosts). If no address is provided (default), the servlet engine
accepts requests from all available network interfaces.
Application Logging
The Intershop 7 logging framework is used to log application events. Intershop 7
sends logging messages via SLF4J, which interfaces to logback as logging system.
The combination of SLF4J and logback allows Intershop 7 to produce more detailed
log information and to integrate third-party APIs (log4j, Jakarta Commons Logging,
java.util.logging, etc.) into its logging framework.
The application log files are located in the directory <IS.INSTANCE.SHARE>/system/
log/. The available options are controlled via logback configuration files logback-
*.xml and the Intershop 7-specific logging configuration files. For details about the
configuration, refer to Application Logging: Configuration.
n Filter
Adding filters to appenders allows for selecting log events according to various
criteria. With respect to filters, consider the following aspects:
n LevelFilter vs. ThesholdFilter
Fixed-level filters accept or deny events of the specified level, whereas
threshold filters can accept or deny events of higher or lower levels, too.
n EvaluatorFilter
Evaluator filters decide whether to accept or deny the log request based on
Java expressions that may check the logging event for specific criteria, like
levels, logger names, MDC contents, message texts, etc.
Evaluation expressions can be Java blocks, see http://logback.qos.ch/
manual/filters.html#evalutatorFilter.
n Turbo Filter
As opposed to filters assigned to appenders, turbo filters apply globally. They
preselect the output before the actual logging event is created. Intershop 7
generates a TurboThresholdFilter automatically based on the lowest level defined
for any appender.
n Layout
Layouts format the log output and return a string. In the initial configuration,
Intershop 7 uses PatternLayout, which allows for customizing the output string
based on a configurable conversion pattern.
<layout> must be enclosed in <encoder>, see http://logback.qos.ch/manual/
layouts.html.
n Mapped Diagnostic Context (MDC)
MDCs can be seen as additional logging context definitions that enrich the
logging events and, consequently, allow for further filtering options.
Intershop 7 provides a configurable mechanism to enrich the MDC API. These
customizations are configured in <IS.INSTANCE.SHARE>/system/config/cluster/
logging.properties. By default, the following MDC enhancements are avialable:
Table 19. MDC objects in Intershop 7
intershop.logging.mdc.<type>.class=<fully_qualified_class_name>
intershop.logging.mdc.<type>.attr.<attr1_ID>=<Java_expression>
intershop.logging.mdc.<type>.attr.<attr2_ID>=<Java_expression>
intershop.logging.dynamicfiletarget.encoding=
intershop.logging.dynamicfiletarget.pattern=
[%date{yyyy-MM-dd HH:mm:ss.SSS z}]
[%thread] %-5level %logger{36} - %msg%n
NOTE: If no encoding is specified, Intershop 7 uses the default platform encoding when writing
log output.
• level filters and category assignments for existing appenders as changed via the
SMC, see Changing the Logging Settings.
• appender settings that control specific appender behavior, like, for example,
intershop.logging.appender.buffer.flushInterval, which defines the
interval that appenders with <immediateFlush>false</immediateFlush> (as set,
for example, in logback-main.xml) are flushed.
• the level of logback status messages (ERROR, WARN, INFO) that are passed to
system.err and automatically appended to the application server log files, as
well as the number of status messages stored with each application server, e.g.,
intershop.logging.engine.statuslogging.level=WARN
intershop.logging.engine.statusbuffer.size=500
Column Description
1 Date, time and time zone (in square brackets), e.g., [2008-04-16 12:34:55.501 CEST
+0200]
2 Log level
3 Host name or IP address
4 Intershop 7 instance, e.g., ES1
5 Application server ID, e.g., appserver0
6 [Site name]
7 [Request application URL identifier]
8 Log category, i.e., the class name
9 [Marker], set by the log message author
10 Request type, e.g., storefront, job, backoffice, etc.
11 [Session ID]
12 [Request ID]
13 Java thread name (in double quotation marks)
14 Log message
Following the example above, these properties could look like this:
intershop.user.cookie.domain=.myshop.com
intershop.user.authenticationstatetokencookie.domain=.myshop.com
intershop.basket.cookie.domain=.myshop.com
intershop.abtest.cookie.domain=.myshop.com
intershop.recentlyvieweditems.cookie.domain=.myshop.com
within the same session, the client passes the authentication token which is then
compared with the token stored at the session.
NOTE: The authentication security mechanism only works with clients allowing for cookies.
For server maintenance or troubleshooting, you may wish to disable the automatic
schedule execution. In this case, edit the property intershop.job.enabled and set
it to false.
The maximum number of schedules that can be run in parallel is controlled by
the property intershop.job.maxJobNumber. A schedule is locked and marked
as "running" in the database before execution; and the scheduled pipeline
itself may open another database transaction. This means, a schedule needs
at least one and may have at most two database connections. Therefore,
intershop.job.maxJobNumber is limited to the maximum number of server
database connections divided by two. The installation default is
intershop.job.maxJobNumber=5
The number of days that a finished scheduled job will be available is controlled
using intershop.job.history.expiration. The installation default value is
intershop.job.history.expiration=2
Note that in the example above, <SYSTEM.HOST.NAME> refers to the URL that is
visible externally. In typical deployment scenarios using multiple Web Adapters
connected to a load balancer, <SYSTEM.HOST.NAME> therefore refers to the DNS
name and port belonging to the virtual IP of the load balancing device, and not to
the DNS name and port of the machine hosting the Web server. This would only be
the case if only one Web server is used, without an additional load balancer.
URL Handling
Generally, there are four options for modifying Intershop 7 URLs:
n URL configuration
URL configuration (or URL renaming) enables you to configure the first part of
the URLs that comes immediately after the host name. Additionally, you can
adjust the mapping parameters to specify the content that is triggered, such as
pipelines, static resources (images) and so on.
URL configuration is enabled and configured in the global appserver.properties
file. For more details, see URL Configuration.
n URL rewriting
URL rewriting is a mechanism that enables Intershop 7 sites to publish search
engine friendly URLs. URL rewriting is only available for pipeline calls. For
example, you can define rules so that you can predefine parameters like locale
or currency for specific domains and exclude them from the visible URL.
The rules to be applied for rewriting the URLs are set in cartridge-specific
urlrewrite.properties files. For more details, see URL Rewriting.
n URL parameter whitelisting
Dubious web sites or users may intend to infect Intershop 7 URLs with bad
parameters. This would lead to a massive downgrade of the cache hit ratio for
the page cache and to an increased page cache size, which could finally result in
a bad application server performance due to unnecessary requests.
URL parameter whitelisting is a mechanism that allows Intershop 7 to restrict
URL requests to an allowed set of URL parameters. In the context of URL
rewriting (see above), incoming requests can be checked for the valid set of
parameters. As a result, invalid parameters are dropped and ignored.
URL parameter whitelisting is enabled using the cartridge-specific
urlrewrite.properties files. The set of allowed parameters can be defined
upon development at the pipeline start node or using a specific
pipelinewhitelistparameters.properties file. For more details, see URL Parameter
Whitelisting.
n Short links
Short links are "hard-coded abbreviations" for complete Intershop 7 URLs, which
are used to map target URLs to short, search engine-friendly URLs. Short links
are managed in the Intershop 7 back office. For more information, refer to the
Intershop 7 user guide Managing Online Shops.
NOTE: With respect to URL handling, make sure to procure the intended DNS name entries.
URL Configuration
By default, the Intershop 7 URL is structured as shown in the following:
http[s]://[servername]:[port]/[individualpart]/
[indvidual mapping parameter]/[servergroup]/[site id]/[locale]/
[application URL identifier]/[currency]/[pipeline to call]
With the default parameters in an Intershop 7 installation, it might look like this:
https://myserver:443/INTERSHOP/web/WFS/
PrimeTech-PrimeTechSpecials-Site/de_DE/-/USD/ViewUserAccount-Start?
The first character of the prefix must be a forward slash ("/"), the allowed
characters include a-z,A-Z,0-9,-,_,/. The prefix must contain at least two
characters, the maximum number is 64 (including the start slash).
CAUTION: Do not uncomment this key. To disable the prefix, leave the value empty.
n intershop.urlmapping.*.webadapter
Specify the Web Adapter mapping parameters for individual request types, for
example
intershop.urlmapping.pipeline.webadapter=${intershop.urlmapping.urlPrefix}/web
...
intershop.urlmapping.static.webadapter=${intershop.urlmapping.urlPrefix}/static
...
Parameter Description
intershop.urlmapping. Default value is set to either /INTERSHOP or /is-bin/intershop, and
urlPrefix can be changed.
/INTERSHOP/web Calls a pipeline.
Parameter Description
/INTERSHOP/wsrp You can set this parameter for WSRP (portal) requests.
/INTERSHOP/rest Set this parameter for REST requests.
/INTERSHOP/static Set this parameter for static content such as images.
/INTERSHOP/dist Set this parameter for static system resources.
/INTERSHOP/servlet Calls a servlet.
/soap Set this parameter for SOAP requests.
/INTERSHOP/wastatus Set this parameter for Web Adapter status requests.
/INTERSHOP/wastatistics Set this parameter for Web Adapter statistics requests.
URL Rewriting
As already mentioned, URL rewriting provides one of several means that help
optimizing Intershop 7 sites for search engines. The default implementation of
Intershop 7's URL Rewrite Handler uses cartridge-specific configuration files to
retrieve the rules that define how Intershop 7 URLs are transformed into search
engine friendly URLs.
NOTE: URL rewriting is only available for pipeline calls, not for static content like images.
URL rewriting is enabled individually per site via the Site Management module
of the System Management Console (SMC, see General Site Preferences). The
properties
intershop.urlrewrite.CheckSource
intershop.urlrewrite.CheckSourceInterval
as included in the global appserver.properties file, control the monitoring status and
refreshing behavior for the URL rewriting (see also Miscellaneous Options).
The global urlrewrite.properties file, located in <IS.INSTANCE.SHARE>/system/config/
cluster, allows for defining general rules that apply to the entire Intershop 7 cluster.
These general rules may be used to:
n Remove default URL parameters by defining a mapping to (multiple) host
name(s)
You can remove the default URL parameters domain, group, locale, appurlid
and currency by defining an appropriate mapping to one or multiple
host names. Assuming, for example, that the US/Dollar version of the
PrimeTechSpecials reference storefront is running on www.primetech.com and
www.techshop.com, the corresponding host name parameter settings would be:
If you want, as an alternative example, just a locale segment after the domain
name and before the rest of the Intershop 7 URL, use
domainsplitting.host_1.shortpathpattern = /${locale}${PATH}
Together with
domainsplitting.host_1.shortpathpattern = /${appurlid}${PATH}
URL parameter whitelisting is enabled individually for each cartridge using the
cartridge-specific urlrewrite.properties file located in <IS.INSTANCE.SHARE>/system/
cartridges/<cartridge_name>/release/urlrewrite. The corresponding switch is
rules.restrictToWhitelistedParameters, which is set false by default.
<parametername1>[/<parametertype1>], <parametername2>[/<parametertype2>]
In case mandatory parameters are missing, Intershop 7 writes an entry into the
ERROR and WARN log files, but continues processing the request with the available
parameters.
n intershop.template.CheckSourceInterval
This property determines in which interval (in seconds) the server checks
whether the *.isml template of a requested page has been updated. If the
interval is over, the server will search all possible locations for relevant *.isml
template, following the standard lookup hierarchy. Hence, the server first checks
the current site (for a site-specific version template version), then all cartridges
in the order set for the site. This behavior makes sure that major changes are
detected, in particular updates that make use of the Intershop 7 overload
mechanism.
A value of 0 means that a complete lookup is performed on each request. In this
case, the setting for CheckSourceModified has no effect.
n intershop.template.CheckSourceModified
As has been described in the context of the CheckSourceInterval, the
server performs a complete lookup to check for updated or new *.isml
templates whenever the configured interval is over. With the property
CheckSourceModified set to true, it is possible to enforce a limited check for
updated *.isml intervals on each request within the configured time interval.
The check is limited in the sense that the server only considers the current
known location of the template. Hence, the server will specifically check the
template which has been used when serving the page the last time, but not
other possible locations (such as sites or cartridges higher in the cartridge
hierarchy).
Sample Configuration 1
intershop.template.CheckSource=true
intershop.template.CheckSourceInterval=0
intershop.template.CheckSourceModified=true
On each request for a page, the server performs a complete lookup to check for
updates to the respective *.isml templates.
CAUTION: This configuration imposes considerable demands on server resources and can have
a negative impact on the overall performance of your system, in particular if the ISF is located on
a remote host.
Sample Configuration 2
intershop.template.CheckSource=true
intershop.template.CheckSourceInterval=3600
intershop.template.CheckSourceModified=true
The server performs a complete lookup for updated templates if the interval
between two requests to the same page exceeds an hour. If the page is requested
again at an earlier point (e.g., after 10 minutes), the server only checks the current
known location of the template for updates.
Sample Configuration 3
intershop.template.CheckSource=true
intershop.template.CheckSourceInterval=3600
intershop.template.CheckSourceModified=false
The server performs a complete lookup for updated templates if the interval
between two requests to the same page exceeds an hour. No checks are performed
if the page is requested again at an earlier point.
The parameter determines the character encoding used during the template
conversion process, i.e., the process which converts ISML templates to JSP and
Java classes, and finally compiles the Java classes into class files. Consequently,
this property also determines the encoding of the HTML page which is sent back
to the client browser when serving a request. Moreover, the default encoding
is used to interpret post data that may be transmitted by the client. If no value
for the parameter intershop.template.DefaultContentEncoding is provided, the
default value UTF-8 is assumed, which is the recommended character encoding for
Intershop 7 to work with.
The property intershop.template.DefaultContentEncoding complements
the charset attribute of the <ISCONTENT> tag. While the property
intershop.template.DefaultContentEncoding specifies the encoding used during
the actual template conversion process, the charset attribute of the <ISCONTENT>
tag specifies the character encoding used when the ISML-to-JSP compiler reads the
ISML template before starting the conversion. This makes it possible to use special
character encodings for managing and writing ISML templates, while still using
UTF-8 during template conversion.
For additional information on character encoding during template conversion, see
the Application Programming Guide.
#
# Alternative 3: DataSource via JDBC Driver
intershop.jdbc.dataSourceFactory=\
com.intershop.beehive.core.capi.jdbc.oracle.OracleUcpDataSourceFactory
intershop.jdbc.dataSourceName=defaultDB
#
# intershop.jdbc.url
#
# 3.1. Single standalone database instance
#
# 3.1.1 SID thin-style based, default.
#
intershop.jdbc.url=jdbc:oracle:thin:@<@IS.AS.DBCONNECTION.HOSTNAME@>:\
<@IS.AS.DBCONNECTION.PORT@>:<@IS.AS.DBCONNECTION.SID@>
#
# 3.1.2 SERVICE_NAME thin-style based are supported only by the JDBC
# thin driver. The syntax is: @//hostname:port/service_name
#
#intershop.jdbc.url=jdbc:oracle:thin:@//<@IS.AS.DBCONNECTION.HOSTNAME@>:\
#<@IS.AS.DBCONNECTION.PORT@>/service_name
#
# 3.2. Real Application Cluster (RAC)
#
# 3.2.1 RAC with Single Client Access Name (SCAN)
#
# Note: The URL jdbc:oracle:thin:@//cluster_alias:port/service_name does
# not work within Oracle 11.2.0.1.0 and throws NullPointerExceptions at
# oracle.ucp.jdbc.oracle.OracleDatabaseInstanceInfoList.markUpInstanceForUpEvent
#
# The only valid URL for RAC systems with SCAN and Oracle 11.2.0.1.0
# intershop.jdbc.url=jdbc:oracle:thin:@
# (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias)(PORT=port))
# (CONNECT_DATA=(SERVICE_NAME=service_name)))
#
# Oracle 11.2.0.2.0 valid URLs
# intershop.jdbc.url=jdbc:oracle:thin:@//cluster_alias:port/service_name
# intershop.jdbc.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
# (HOST=cluster_alias)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=service_name)))
#
# 3.2.2 RAC with all addresses
#
#intershop.jdbc.url=jdbc:oracle:thin:@(DESCRIPTION=\
#(ADDRESS=(PROTOCOL=TCP)(HOST=rac-node1)(PORT=port))\
#(ADDRESS=(PROTOCOL=TCP)(HOST=rac-node2)(PORT=port))\
#(ADDRESS=........................................))\
#(ADDRESS=(PROTOCOL=TCP)(HOST=rac-nodeN)(PORT=port))\
#(LOAD_BALANCE=YES)\
#(CONNECT_DATA=(SERVICE_NAME=service_name)))
#
########################################
intershop.jdbc.driverType=thin
intershop.jdbc.networkProtocol=tcp
intershop.jdbc.portNumber=<@IS.AS.DBCONNECTION.PORT@>
intershop.jdbc.databaseName=<@IS.AS.DBCONNECTION.SID@>
# common options (used for DataSource via JDBC Driver and Oracle Tools support)
intershop.jdbc.serverName=<@IS.AS.DBCONNECTION.TNSALIAS@>
intershop.jdbc.user=<@IS.AS.DBCONNECTION.USER@>
intershop.jdbc.password=<@IS.AS.DBCONNECTION.PASSWD@>
# Oracle Real Application Cluster (RAC) - JDBC Fast Connection Failover (FCF)
# configuration via:
# * Remote Oracle Notification Service (ONS) subscription configuration and
# * Client-side daemon "ons.jar" file located within the appserver CLASSPATH.
#
# Download "ons.jar" from:
# * 10gR2: see otn.oracle.com
# * 11gR2: ORACLE_HOME/opmn/lib/ons.jar (database server)
#
# Determine Real Application Cluster (RAC) Oracle Notification Services (ONS) ports
# contacting your DBA. The following Oracle grid infrastructure tool determines the
# remote ONS daemon ports and status on the Oracle RAC nodes:
# * 10gR2: onsctl ping
# * 11gR2: onsctl debug
#
# Syntax:
# intershop.jdbc.rac.fastConnectionFailover=false|true
# - enable or disable JDBC FCF, default false.
# intershop.jdbc.rac.remoteONSConfig=nodes=host:port[,host:port,...]
# - nodes ONS configuration attribute,
# a list of host:port pairs separated by comma (,)
Property Description
intershop.jdbc.driver Determines the driver class to use when connecting to
an existing data source via JDBC.
intershop.jdbc.url Specifies the database URL to use when connecting to
an existing data source via JDBC.
The following table lists the required settings for connecting to a data source via
JNDI.
Property Description
intershop.jdbc.dataSourceFactory Specifies the JNDI data source factory class to use.
intershop.jdbc.jndiLookupName Specifies the JNDI context to which this data source is to
be bound.
intershop.jndi.contextFactory Determines the context factory class that reads the initial
context.
intershop.jndi.providerURL Specifies the URL to when connecting to the naming
service for the context factory.
The following table lists the required settings for creating a new data source using
the JDBC Driver, Intershop 7's default option.
Table 28. Creating a data source using JDBC Driver
Property Description
intershop.jdbc.dataSourceFactory Determines the factory class that creates the JDBC data
source instance for the specified database type.
intershop.jdbc.dataSourceName Specifies the name of the particular database
as specified during the Intershop 7 installation
(<DB.NAME>).
intershop.jdbc.url Specifies the database to be contacted. This setting,
which is specific for Oracle data sources only, combines
some of the database connection parameters
mentioned below, such as driver type and database
server, into one single URL-like string for convenience.
NOTE: Settings made here overwrite those in the single
properties.
intershop.jdbc.driverType Specifies the type of the database driver. The Intershop 7
standard is thin.
intershop.jdbc.networkProtocol Specifies the network protocol used to communicate
with the database server. The default is tcp.
intershop.jdbc.portNumber Specifies the port number where the database server
listens for requests (<DB.LISTENER.PORT>).
intershop.jdbc.databaseName Specifies the name of the particular database
as specified during the Intershop 7 installation
(<DB.NAME>).
UCP Settings
The following table lists the common settings for the Universal Connection Pool
(UCP). In the orm.properties file it is neccesary that the following properties and
values are set. It is recommended that you use the settings for this feature as it
offers better performance. For more information about the properties and values,
please see Oracle UCP documentation.
Table 29. UCP Settings
Property Description
intershop.jdbc.ucp. Pool data source class=
ConnectionFactory oracle.jdbc.pool.OracleDataSource
ClassName
intershop.jdbc.ucp. Name of the Connection Pool= orm
ConnectionPoolName
Property Description
intershop.jdbc.ucp. A description Oracle UCP connection pool-enabled data source.
Description
intershop.jdbc.ucp. The role name for the data source
RoleName
intershop.jdbc.ucp. Name of the data source=
DataSourceName ${intershop.jdbc.dataSourceName}
intershop.jdbc.ucp. Name of the database= ${intershop.jdbc.databaseName}
DatabaseName
intershop.jdbc.ucp. Name of the database server=
ServerName ${intershop.jdbc.serverName}
intershop.jdbc.ucp. The network protocol=
NetworkProtocol ${intershop.jdbc.networkProtocol}
intershop.jdbc.ucp. The port number used by the database=
PortNumber ${intershop.jdbc.portNumber}
Property Description
intershop.jdbc.ucp.URL The URL used to access the database=
${intershop.jdbc.url}
intershop.jdbc.ucp.User The username used to access the URL=
${intershop.jdbc.user}
intershop.jdbc.ucp. The password used to access the URL=
Password ${intershop.jdbc.password}
Property Description
intershop.jdbc.ucp. The initial number of cached connections allowed=
InitialPoolSize ${intershop.jdbc.connectionCacheInitialLimit}
intershop.jdbc.ucp. The minimum number of cached connections allowed=
MinPoolSize ${intershop.jdbc.connectionCacheMinLimit}
intershop.jdbc.ucp. The maximum number of cached connections allowed=
MaxPoolSize ${intershop.jdbc.connectionCacheMaxLimit}
intershop.jdbc.ucp. Timeout for stale connections=
InactiveConnection ${intershop.jdbc.connectionCacheInactivityTimeout}
Timeout
intershop.jdbc.ucp. Each connection is checked every time it is acquired. This is
ValidateConnection commented out by default, but may be useful by some systems.
OnBorrow See Note below.
intershop.jdbc.ucp. Default value is 10
MaxStatements
You can view the UCP-enabled data sources information (configuration, general
and Fast Connection Failover (FCF) statistics) in Monitor the System State.
Additionally you can perform background monitoring from the SMC, by selecting
Monitoring > Background > Configurations. Here you can see JDBC connection
data, such as available, active and total connections.
Property Description
intershop.jdbc.rac. Enables (true) or disables (false) the JDBC FCF feature for
fastConnectionFailover Intershop 7.
intershop.jdbc.rac. Lists the Oracle Notification Services (ONS) hosts and ports, or, if
remoteONSConfig applicable, the Single Client Access Name (SCAN) and port.
intershop.jdbc.ucp. Maps to
FastConnection ${intershop.jdbc.rac.fastConnectionFailover}.
FailoverEnabled
intershop.jdbc.ucp. Maps to ${intershop.jdbc.rac.remoteONSConfig}
ONSConfiguration
The Oracle grid infrastructure tools onsctl and srvctl determine the remote ONS
daemon ports, SCAN host or hosts and the status on the Oracle RAC nodes. The
following commands, which are to be triggered on the database host, produce the
necessary information:
onsctl debug
CAUTION: Make sure to contact your DBA to help determine the appropriate RAC, ONS and SCAN
information of your database environment if you intend to setup Intershop 7 for FCF.
Property Description
intershop.jdbc.user Specifies the database user account name as
specified during the Intershop 7 installation
(<IS.AS.DBCONNECTION.USER>).
intershop.jdbc.password Specifies the database password as
specified during the Intershop 7 installation
(<IS.AS.DBCONNECTION.PASSWD>).
Property Description
intershop.jdbc.password.encrypted Specifies whether the database password is encrypted
(true|false). This property is optional, a missing value
means false.
System administrators may want to encrypt the database password, passed and
stored as plain text upon installation. To this end, Intershop 7 provides an ANT
script that generates an encrypted password. To encrypt, for example, the password
"intershop", use the following command (with the Intershop 7 build environment
properly set, e.g., as user isas#):
ant -Dpassword=intershop pwd-encrypt
Property Description
intershop.jdbc.serverName Specifies the database server name as specified during
the Intershop 7 installation, usually the Oracle TNS name
(<IS.AS.DBCONNECTION.TNSALIAS>).
intershop.jdbc. Specifies the initial number of connections in the
connectionCacheInitialLimit JDBC shared connection pool, that is, the database
connections of the Intershop 7 application established
via JDBC (default: 5).
intershop.jdbc. Specifies the minimum number of connections in the
connectionCacheMinLimit JDBC shared connection pool, default: 5.
intershop.jdbc. Specifies the maximum number of connections in the
connectionCacheMaxLimit JDBC shared connection pool, default: 150.
intershop.jdbc. Specifies the maximum period (in minutes) a connection
connectionCacheInactivityTimeout can be unused (default: 30). When the period expires,
the connection is closed and its resources are freed.
intershop.jdbc.tablespaces.index Used by the dbinit process. This property specifies the
tablespace name for indexes. The value IS_INDX is used
by the Intershop 7 database initialization. If you connect
your Intershop 7 to a different database instance, change
this property according to your tablespace name.
intershop.jdbc.tablespaces. Used by the dbinit process. This property specifies
contextIndex the tablespace name for context indexes. The value
IS_INDX_CTX is used by the Intershop 7 database
initialization. If you connect your Intershop 7 to a
different database instance, change this property
according to your tablespace name.
intershop.jdbc.tablespaces.users Specifies the tablespace name for users, by default:
IS_USERS.
Property Description
intershop.jdbc.tablespaces.temp Specifies the tablespace name for temporary data, by
default: IS_TEMP.
NOTE: Using the syntax intershop.jdbc.connectionCache*, you can specify additional database
connection settings by appending the Oracle property name. Refer to the Oracle documentation
for further information.
The next table lists general database connection settings that are controlled by the
Intershop 7 core cartridge.
Table 35. core database connection properties
Property Description
intershop.cartridges.core.jdbc. Specifies the number of possible shared read
numberOfSharedReadConnections connections that are kept beyond the request. This
connection pool receives read-only SQL statements
that are used, for example, by the Intershop 7 search
framework. The default value is 5.
intershop.cartridges.core.jdbc. Specifies the maximum number of cached database
maxCachedCursors cursors, distributed over the shared read connections.
The default value is 25.
n intershop.cache.RefreshOnDBInit
Normally, the dbinit import refreshes the PO cache after every import step to
update any object dependencies. As there are no import dependencies in a
dbinit, you can switch it off by setting this property to false. This accelerates the
dbinit considerably.
n intershop.cache.flushSessionDictionaries
Specifies whether to delete all session-specific key-value pairs when a cache
refresh event is triggered. By default, this option is switched off (false).
#intershop.cacheSync.messengerClass=
com.intershop.beehive.messaging.internal.multicast.MulticastMessenger
#intershop.cacheSync.multicastAddress=239.1.0.0
#intershop.cacheSync.multicastPort=1111
#intershop.cacheSync.multicastInterface=
#intershop.cacheSync.multicastTimeToLive=
#intershop.cacheSync.multicastReceiveBufferSize=1048576
#intershop.cacheSync.multicastListenerThreads=5
#intershop.cacheSync.multicastPacketSize=65000
Change the settings as needed and remove the comment character # to enable
them.
n intershop.cacheSync.messengerClass
This required setting specifies the messenger class to be used, the default is
com.intershop.beehive.messaging.internal.multicast.MulticastMessenger.
n intershop.cacheSync.multicastAddress
This parameter defines the IP address of the multicast group. The parameter
is set to 239.1.0.0 by default. This parameter must be set identically on all
machines that are members of the same multicast group, that is, on all machines
hosting application servers in the same Intershop 7 cluster.
NOTE: Make sure that in your cluster, intershop.cacheSync.multicastAddress is
different from intershop.event.multicastAddress.
n intershop.cacheSync.multicastPort
Use this parameter to specify the multicast port number. The default value is
1111. This parameter must be set identically on all machines that are members
of the same multicast group, that is, on all machines hosting application servers
in the same Intershop 7 cluster.
NOTE: Make sure that in your cluster, intershop.cachSync.port is different from
intershop.event.multicastPort.
n intershop.cacheSync.multicastInterface
If more than one network adapter is available, you can specify the adapter to
be used for multicast communication. If this parameter is not set, your system's
default adapter is used.
n intershop.cacheSync.multicastTimeToLive
This parameter specifies the time-to-live of the multicast packet to control the
scope of the multicasts. The default time-to-live value is 1. Increasing the time-
to-live value is necessary if the application servers of a cluster belong to different
subnets that are connected by routers. Note that in this case, the routers must
also be configured to pass the IP multicast traffic between the connected
application server subnets.
n intershop.cacheSync.multicastReceiveBufferSize
This setting defines the receive buffer size for cache synchronization events. The
default value is 1 MB. Consider increasing this value if custom code performs
mass data operations through the ORM layer or the number of application
servers in the cluster exceeds 10.
n intershop.cacheSync.multicastListenerThreads
This parameter defines the number of handler threads for cache synchronization
events. The default value is 5. Consider increasing this value if custom code
performs mass data operations through the ORM layer or the number of
application servers in the cluster exceeds 10.
n intershop.cacheSync.multicastPacketSize
This parameter sets the maximum size of a multicast packet.
NOTE: If you intend to use other messaging systems than the default multicast, you must enable
and adjust the corresponding intershop.cacheSync properties (see Event Settings).
n intershop.search.indexcreation.retriever.queueLength
Defines the length of the queue that feeds the unpacker, that is, the queue to
which the retriever writes. The default value is 1000.
n intershop.search.indexcreation.unpack.queuelength
Defines the length of the queue that feeds the index writer, that is, the queue to
which the unpacker writes. The default value is 1000.
TIP: To allow for a search feature-specific configuration, the global values can be overwritten. To
this end, system administrators can define properties that contain the FeatureID (as set by the
search engine adapter cartridge), like, for example, intershop.search.SFProductSearch.
solr.indexcreation.network.corePoolSize.
Cache Engine
The Cache Engine provides a mechanism to manage and perform cache operations
(clear, enable/disable, configure, etc.) for all Intershop 7 caches on all application
servers within the installation. The Cache Engine is implemented within the
cartridge Cache. The Intershop 7 administrator can monitor the cache efficiency and
size, refresh the information, and change certain values for some caches.
Cache management via the Cache Engine is made possible by means of Java
MBeans. MBeans are manageable resources in Java, and in Intershop 7 MBeans are
managed with JMX tools (see Java Visual VM and JConsole). It should be noted that
the cache engine handles a number of operations and thus, there is no UI specific to
the Cache Engine in Intershop 7 SMC or back office.
There are four cache groups that are managed via the cache engine:
• ORMCache (persistent objects)
• ObjectCache (Least Recently Used or LRU)
• PageCache
• SearchIndexReloadable
intershop.cacheengine.wrapped.messengerClass=
com.intershop.beehive.messaging.internal.multicast.MulticastMessenger
intershop.cacheengine.wrapped.multicastAddress=239.1.2.3
intershop.cacheengine.wrapped.multicastPort=1234
#intershop.cacheengine.wrapped.multicastInterface=
#intershop.cacheengine.wrapped.multicastTimeToLive=
#intershop.cacheengine.wrapped.multicastReceiveBufferSize=1048576
intershop.cacheengine.wrapped.multicastListenerThreads=5
intershop.cacheengine.wrapped.multicastPacketSize=65000
Since the administrator must from time to time clear one or more caches, it is
important that they are cleared in the following order:
1. ORM
2. ObjectCache
3. SearchIndex
4. PageCache
When clearing the PageCache, it is neccesary that the site has 'page caching'
selected as well as 'keyword processing' and 'text indexing' selected. You can view/
change the attributes for each site by entering the SMC > Site Management >
<your-site-name>-Site - Page Cache.
You must know the ID of each online logical CPU on the machine. Depending on
the hardware configuration used, the IDs of the logical CPUs may not be allocated
in consecutive order.
Set the affinity of a server process to a logical CPU in the server instance specific
configuration file appserver#.properties, located in <IS.INSTANCE.SHARE>/system/
config/servers/<HOST.ID>/<INSTANCE.ID>. The according key is
intershop.cpu.id=
If this line is commented out or no value is set, the server process will run unbound,
i.e., on all logical CPUs. Otherwise, the server process will run on the specified
logical CPU. However, if the specified logical CPU does not exist or is switched off,
then the server process will run unbound to ensure that Intershop 7 continues
running uninterrupted.
NOTE: Binding a server process of the Intershop 7 application to a specific logical CPU moves this
application server process to the specified logical CPU. This means that this server process will no
longer reside on any other logical CPU.
Depending on the Intershop 7 license you have acquired, CPU binding may be
necessary in order to meet the license conditions. For example, if you have acquired
a single CPU license for Intershop 7, you have to bind Intershop 7 to a single logical
CPU on a multi-core/multi-processor machine.
NOTE: Do not hesitate to contact Intershop if you have questions regarding the number of (logical)
CPUs supported by your Intershop 7 license.
Note that this property is part of the orm.properties file (in <IS.INSTANCE.SHARE>/
system/config/cluster/), which defines settings applicable to all hosts in a
cluster. However, to define a machine-specific interface address, you have
to add this property to the corresponding local appserver#.properties file in
<IS.INSTANCE.SHARE>/system/config/servers/<HOST.ID>/<INSTANCE.ID>/. This
overloads any cluster-wide setting in the orm.properties.
n intershop.event.multicastInterface
Specifies the IP interface to be used for event multicast. Edit the property in the
corresponding local appserver#.properties file in <IS.INSTANCE.SHARE>/system/
config/servers/<HOST.ID>/<INSTANCE.ID>/.
intershop.event.multicastInterface=192.168.3.1
n intershop.servletEngine.connector.address
Specifies the IP interface to be used for Web Adapter traffic. Edit the property
in the corresponding local appserver#.properties file in <IS.INSTANCE.SHARE>/
system/config/servers/<HOST.ID>/<INSTANCE.ID>/.
intershop.servletEngine.connector.address=192.168.3.1
The system domain settings, as listed below for illustration purposes, are enabled
with the Intershop 7 core. They serve as a fallback, but they can, however, be
customized using the usercredentialrules.properties file.
system.PasswordValidators = PasswordExpressionValidator,
PasswordHistoryValidator
system.PasswordExpirationNotificationPeriod = 5
system.PasswordExpirationPeriod = 90
system.LoginFailureLockoutCount = 6
system.LoginFailureLockoutDuration = 30
system.UserLoginExpression = 1,256,^\\S+$
system.UserLoginDescription = The login name must be between 1 and 256
characters long and can contain any characters with the exception of
whitespace characters.
system.PasswordLoginExpression = 5,256,^\\S+$
system.PasswordLoginDescription = The password must be between 5 and
256 characters long and can contain any characters with the exception
of whitespace characters.
system.PasswordRepeatPreventionCount = 4
system.PasswordRepeatPreventionDescription = The password must not
repeat the previous 4 passwords.
n <domain>.PasswordExpirationNotificationPeriod
Specifies the number of days a user is warned before the password expires.
During this period, the user can choose whether to update the password or to
continue without changing the password upon login.
n <domain>.PasswordExpirationPeriod
Specifies the number of days a password is valid. After this period has expired,
the user is prompted to change the password immediately upon a login
attempt.
n <domain>.LoginFailureLockoutCount
Specifies the maximum number of login attempts a back-office user can make
using a wrong password. After this number is reached, the user account is
locked for the period defined in <domain>.LoginFailureLockoutDuration.
NOTE: A locked user account can be unlocked manually via the User Manager in the Intershop 7
back office.
n <domain>.LoginFailureLockoutDuration
Specifies the time (in minutes) a user account is locked after the number of
failed login attempts (<domain>.LoginFailureLockoutCount) has been reached.
n <domain>.UserLoginExpression
Specifies the rules to apply for the minimum and the maximum login length as
well as the allowed characters, using the following syntax:
<domain>.UserLoginExpression = <minimum length>,<maximum length>,
<regular expression>
n <domain>.UserPasswordDescription[_Locale]
Specifies a (locale-specific) description of the defined password rules, which is
displayed to the user.
n <domain>.PasswordRepeatPreventionCount
Specifies the number of previous passwords a user cannot reuse. That is, a value
of 4 would prevent a user from reusing one of his four last passwords.
n <domain>.PasswordRepeatPreventionDescription[_Locale]
Specifies a (locale-specific) warning, which is displayed to the user stating the
number of previous passwords not to be reused.
n staging.objects.locking.acquisition.namedResourceThreshold
Specifies the threshold to switch from instance resource acquisition to named
resource acquisition for publish-to-live processes. The default value is 150 (a
sensible value depends on your system performance). Note that this property is
evaluated only if intershop.locking.correlatedLockingEnabled=true.
The value must be provided in seconds. Note that the value should be at least as
large as the value for cs.poll.interval (which controls the interval in which the Web
Adapter checks for available application servers in a cluster, see Fail-Over Settings),
plus some additional time to complete any active request it may have received from
the Web Adapter. For example, if cs.poll.interval is set to 10 seconds (which is the
default setting), intershop.shutdown.gracePeriod might be set to 30 seconds.
Property Description
intershop.encryption.<#>.id Specifies the ID of the encryption/decryption
passphrase.
intershop.encryption.<#>.algorithm Specifies the algorithm used for encrypting/decrypting
sensitive data.
intershop.encryption.<#>.default Specifies whether the current encryption/decryption
settings constitute the default (true|false).
intershop.encryption.keystore. Specifies the name of the provider class that manages
provider the encryption key.
Property Description
intershop.encryption.keystore. Specifies the name of the Java keystore file. Its base
filename directory is <IS.INSTANCE.SHARE>/sytem/config/cluster,
and the default value is intershop.keystore.
intershop.encryption.keystore. Specifies the variable part of the current keystore
password password, intended to be modified by Intershop 7
administrators. Can contain up to 90 alphanumeric
characters.
intershop.encryption.keystore. Specifies the variable part of the new keystore password
password.change in case it is modified.
intershop.encryption.keystore. Controls whether Intershop 7 does create (true) or does
create not create (false) a new keystore file on server start if
there is none available.
intershop.encryption.random. Specifies the name of the file that contains the random
filename part of the keystore password. Its base directory is
<IS.INSTANCE.SHARE>/sytem/config/cluster, and the
default value is random.
intershop.encryption.random. Specifies the name of the new file that contains the
filename.change random part of the keystore password in case it is
modified.
intershop.encryption.random. Controls whether Intershop 7 does create (true) or does
create not create (false) a new random part file on server start
if there is none available.
There are dedicated properties files that define default values for the automatically
generated SEO-specific meta texts, MetaTexts.properties. There may be individual
files for each application or site and, for unknown applications or sites, for the entire
cluster. These files are located in
• for individual applications
<IS.INSTANCE.SHARE>/sites/<site>/<version>/applications/<application>/seo
• for individual sites
<IS.INSTANCE.SHARE>/sites/<site>/<version>/units/<site>/seo
• for the cluster
<IS.INSTANCE.SHARE>/system/config/cluster/seo
By default, Intershop 7 provides the following keys (and example values for the
reference storefront) in the MetaTexts_*.properties:
CategoryTitleSuffix=\ always special prices for\
CategoryDescriptionSpecial=\ always special prices for\
CategoryDescriptionAnd=\ and\
CategoryKeywordsSuffix=\ Buying online, shop, PrimeTech
ProductTitleSuffix=\ favourable buying at PrimeTech
ProductKeywordsSuffix=\ Buying online, shop, PrimeTech
For more complex scenarios that require authentication, secure transport etc., use
the properties listed in the table below. These properties are supported by the
standard javax.mail.Session implementation.
Table 40. Secure mail server settings
Once prepared, system administrators can then switch on or off this feature, and set
specific performance parameters. The corresponding configuration is defined in
• <IS.INSTANCE.SHARE>/system/cartridges/bc_foundation/release/impex/config/
UserExport.properties for user profile data exports, and
• <IS.INSTANCE.SHARE>/system/cartridges/cartridges/bc_mvc/release/impex/config/
ExportCatalog.properties for product data exports.
Miscellaneous Options
The appserver.properties file offers some additional options that determine certain
aspects of the application server behavior. The following table lists and explains
these settings.
Table 42. Miscellaneous application server properties
Prepare Locales
Add Locales
The configuration file localization.properties lists the locales to be added to the
system in the following syntax
key = <ISOLanguageCode> <ISOCountryCode> <ISOCurrencyCode>
<usedAsLeadLocale>
for example,
japanese = ja JP JPY false
Delete Locale
To delete existing locales, use the key deleteLocales in localization.properties. Each
locale to be deleted must be identified by its ISOLanguageCode and ISOCountryCode
joined by an underscore. To delete Japanese and German, for exapmple, use
deleteLocales = ja_JP de_DE
shortQuantityNegativePattern = - #,##0.###
shortQuantityPositivePattern = #,##0.###
longQuantityNegativePattern = - #,##0.### *
longQuantityPositivePattern = #,##0.### *
quantityGroupingCharacter = ,
quantityDecimalCharacter = .
inputDecimalNegativePattern = -#,##0.00
inputDecimalPositivePattern = #,##0.00
inputCurrencyNegativePattern = -#,##0.00
inputCurrencyPositivePattern = #,##0.00
inputDatePattern = dd.MM.yyyy
inputTimePattern = HH:mm
inputDateTimePattern = dd.MM.yyyy HH:mm
inputIntegerNegativePattern = -#,##0
inputIntegerPositivePattern = #,##0
inputQuantityNegativePattern = -#,##0.###
inputQuantityPositivePattern = #,##0.###
inputDatePatternUserHint = TT.MM.JJJJ
inputTimePatternUserHint = SS:MM
priceImpexDateTimePattern = dd.MM.yyyy HH:mm:ss
Adjust the patterns according to the locale to be added and save the file as, for
example, ja_JP.properties in <IS.INSTANCE.SHARE>/system/config/cluster/.
NOTE: The syntax of the patterns is identical to that documented in the JDK API specification for
the classes DecimalFormat and SimpleDateFormat.
Key Description
Default.channel Used to specify either the default channel or the
default organization to which the tax data belong
Default.organization
(optional). If not specified, each jurisdiction and tax
class must be specifically assigned to a channel or
organization.
Key Description
Jurisdiction.<jid>.name Specifies the name for the tax jurisdiction.
Jurisdiction.<jid>.channel Specifies either the channel to which the
tax jurisdiction belongs if different from
Jurisdiction.<jid>. organization
Default.channel or the organization to which
the tax jurisdiction belongs if different from
Default.organization (optional).
Jurisdiction.<jid>.default Specifies whether this is the default jurisdiction, false
if not specified (optional).
Jurisdiction.<jid>.mapping. Specifies a jurisdiction-country assignment. Make sure
<n>.country to specify all relevant names, identifiers etc. that may
occur in your system for each country, like Germany
and DE for Germany.
Jurisdiction.<jid>.mapping. Specifies a jurisdiction-state assignment (optional).
<n>.state
n Tax Classes
NOTE: <cid> serves as tax class ID. It is also used as an identifier to group the attributes for
a tax class.
Table 45. Tax class properties
Key Description
Class.<cid>.code Specifies the tax class code.
Class.<cid>.name Specifies the name of the tax class.
Class.<cid>.channel Specifies either the channel to which the tax class
belongs if different from Default.channel or the
Class.<cid>.organization
organization to which the tax class belongs if different
from Default.organization (optional).
Class.<cid>.description Specifies a short description of the tax class.
Class.<cid>.default Specifies whether this is the default tax class, false if
not specified (optional).
n Tax Rates
Table 46. Tax rate properties
Key Description
Rate.<jid>.<cid>.value Specifies the tax rate in the format xx.yyy, e.g., for
7.5%, set 0.075.
Rate.<jid>.<cid>.validfrom Specifies a valid-from date in the dd.mm.yyyy,
e.g., 16.01.2004. Optional when .previous rate
becomes invalid and .value becomes valid.
Rate.<jid>.<cid>.previous Specifies an optional tax rate valid previous to
.validfrom (format xx.yyy).
Key Description
Sharing.<id>.from.channel Used to specify either the channel or the
organization that provides its tax data set to
Sharing.<id>.from.organization
other channels/organizations.
Sharing.<id>.to.channel Used to specify either the channel or the
organization that uses the tax data set
Sharing.<id>.to.organization
provided by other channels/organizations.
Sharing.<id>.relationDefinitionName Used to specify the relation definition name,
either TAX_CLASS or TAX_JURISDICTION
The following lines illustrate the tax data settings using one of Intershop 7's demo
channels as an example.
# ### 1. Domain specification #######
Default.channel=PrimeTech-PrimeTechSpecials
# ### 2. Tax Jurisdictions ##########
Jurisdiction.GERMANY.name=Germany
Jurisdiction.GERMANY.default=true
Jurisdiction.GERMANY.mapping.1.country=Germany
Jurisdiction.GERMANY.mapping.2.country=DE
Jurisdiction.OTHER.name=Outside Germany
# ### 3. Tax Classes ################
Class.NORMAL.name=FullTax
Class.NORMAL.description=Full Tax charged
Class.NORMAL.default=true
Class.REDUCED.name=ReducedTax
Class.REDUCED.description=Reduced Tax charged
Class.ZERO.name=NoTax
Class.ZERO.description=No Tax charged
# ### 4. Tax Rates ##################
Rate.GERMANY.NORMAL.value=0.19
Rate.GERMANY.REDUCED.value=0.07
Rate.GERMANY.ZERO.value=0.0
Rate.OTHER.NORMAL.value=0.0
# ### 5. Sharing tax data sets ######
Sharing.1.from.channel=PrimeTech-PrimeTechSpecials
Sharing.1.to.channel=PrimeTech-ResellerChannel
Prepare Currencies
The currency configuration file lists those currencies that should be enabled in the
server, and, optionally, names a currency to be set as the lead currency.
NOTE: Currencies not listed in the configuration file are disabled in the database. If the current lead
currency is not listed as an active currency and no other currency is named as the lead currency,
then the lead currency is not disabled.
Applying this file to a standard Intershop 7 installation, the currency EUR would
replace USD as lead currency and USD would be no longer be listed as an active
currency in the system.
This file lists the enabled exchange rates in the following syntax:
ExchangeRate.<n>.From=<ISOCurrencyCode>
ExchangeRate.<n>.To =<ISOCurrencyCode>
ExchangeRate.<n>.Rate=a.b
where a.b is the from-to exchange rate with a dot (.) as decimal separator. For
example, the following file
ExchangeRate.1.From=EUR
ExchangeRate.1.To =GBP
ExchangeRate.1.Rate=0.67
would delete all existing exchange rates apart from EUR to GBP and change the
existing EUR-GBP rate to 0.67 (1 EUR is worth 0.67 GBP).
Data Replication
Intershop 7 features powerful replication mechanisms to transfer data between
separated systems. Generally, two different approaches are available:
n Data Replication
Data replication is a special mechanism used to transfer large amounts of data
between two Intershop 7 clusters, i.e., from a source to a target system via fast
mass-data operations.
n Product Data Feeds
Generally, product data feeds are used to transfer data to external systems other
than Intershop 7. As a special use case, however, it can be used to selectively
transfer small sets of particular product data between two Intershop 7 clusters.
The sections that follow describe the data replication process. A brief introduction
to product data feeds (in comparison to data replication) is provided in Data
Replication Versus Product Data Feeds. For a more detailed discussion of concepts
and processes related to product data feeds, see the guide Managing Online Shops.
To get an idea of the 'moving' parts of a data replication process, below are the
important concepts that must be clearly understood:
• Cluster
The Intershop 7 system consisting of the synchronized database account,
synchronized Intershop Shared Files, Intershop Application Servers and
Intershop Web Servers
• Sub Cluster
A sub cluster is the local part of an Intershop 7 in each data center (one database
account, one Intershop Shared Files instance).
• Edit System
The source Intershop 7 sub-cluster
• Live System
The target Intershop 7 sub-cluster
• Data Center
A data center is a physical location of one or more Intershop 7 cluster
• Edit Schema
The database schema of the edit system
• Live Schema
The database schema of the live system
• Edit User
The user working with the edit system
• Live User
The user working with the live system
• DNS Switch
Domain Name Service switch
• Data Replication
Basic Architecture
The data replication mechanism relates two systems: a source system and a target
system. The data replication process makes no assumptions about whether a
system is online or offline.
Figure 4. Data Replication Architecture
The target system includes one or more application servers, the Web server, the
Web Adapter and a target database account. The number of application servers,
Web servers and Web Adapters is irrelevant to the data replication mechanism as
long as the requirements are met in order to process incoming requests properly.
The source system also includes one or more application servers, Web server, Web
Adapters and a source database account. Again, the number of application servers,
Web server and Web Adapters is irrelevant to the data replication mechanism.
Typically, the sizing requirements for a source system are lower, as the source
system does not have to process online requests.
A source system can be connected to multiple target clusters. However, each
data replication process is directed at exactly one replication target cluster. It is
not possible to update multiple target clusters from a source system in one data
replication process.
Within environments having more than one data center, a distributed target system
cluster is possible. Though physically there are multiple target systems, from a
data replication point of view they are considered a single target system cluster (or
rather, a target cluster). Therefore, the source system simultaneously updates all
target systems belonging to the same target cluster. However, it is not possible to
NOTE: Local data replication can have significant performance advantages over remote data
replication.
Role Concept
Two basic user roles for data replication can be distinguished:
n Data Replication Manager
Data replication managers operate within a particular business unit (channel,
enterprise, sales partner). They do not need any technical knowledge of
data replication. They create replication tasks and assign them to the system
administrator for execution. For example, the data replication manager could be
an editor who maintains product and catalog information of a sales channel of
the source system. The editor then creates the task to replicate the data to the
sales channel of the target cluster.
n System Administrator
System administrators act as data replication managers of the system unit
(central e-selling administration). The system administrators supervise the data
replication technically across the whole system. They receive the replication
tasks from the data replication managers of the individual business units and
combine them to data replication processes for execution. Additionally, they
set up and initialize target clusters, trigger the rollback of publication processes,
monitor and control the process progress.
For each data replication task, the data replication manager must define
n Start Date
The start date sets the earliest time at which a replication task can be executed.
n Replication Groups
To each replication task, one or more data replication groups are assigned. Data
replication groups identify the content to be replicated. Each replication group
refers to a certain content domain. For example, the data replication group
"Organization" includes the organization profile, the departments, the users and
roles, and all preferences defined for an organization.
NOTE: A target cluster can consist of multiple target systems, all of which belong to the same
ClusterID
n Replication Tasks
Each replication process executes one or more replication tasks as submitted by
the responsible data replication managers. Only replication tasks whose start
date has been reached can be included with a replication process.
n Activation Rules
Data replication processes can be started manually, or as scheduled jobs at
predefined times.
n Data Replication Type
The data replication type determines which data replication phases are
executed for a replication process. See What Happens During Data Replication?.
n Phase 1: Identification
The content to be replicated (database tables, file system directories) is selected.
n Phase 2: Preparation
During this phase, the content involved in the current replication process is
prepared. For example, the database tables will be analyzed to guarantee
optimal execution plans for SQL statements used during the replication process.
Moreover, there are built indexes of the staging directories, which are then
moved into the distribution directory <IS.INSTANCE.SHARE>/dist/idx.
n Phase 3: Synchronization
The replication process merges content to be replicated (new content of source
system), with content that should not be changed (old content of target cluster
belonging to other domains). During the synchronization phase, the old content
of the target cluster that should not be changed is replicated to physical shadow
containers (tables or directories).
n Phase 4: Replication
During the replication phase, the new content is copied to the shadow container
of the target cluster. Database content and file system content is handled
separately.
The prepared index files are compared to the existing indexes in the live system.
Thus, the static content changes are determined, and the corresponding files are
transferred.
n Phase 5: Publication
The final step of the data replication process is to publish the replicated content,
for example by performing a switch between live and shadow tables (full
replication of database content) or between active and inactive directories
(replication of file system content). As a result, any new or changed data is
available for online users, and deleted data does not longer appear in the Web
front.
NOTE: The publication does not take place if any of the preceding steps has ended with an
error.
The process details for the individual phases differ depending on the content type
to be replicated and the staging processor used to execute the replication process.
Full Replication
In case of full replication, database content is transferred from the source to the
target cluster regardless of changes. Full replication is used for most types of
database content, except tables that are writable in the target cluster (such as user
data on a system used as live system.) The full replication mechanism relies on
synonym tables, linked to a live and a shadow table.
Delta Replication
In case of delta replication, only content which has actually changed is transferred
from the source to the target cluster. The replicated content is directly inserted into
the live tables. Delta replication is used for database data which is writable in the
target cluster.
determines which replication phases are actually performed for the respective data
replication task. The following replication types are available:
n Data Transfer
This process transfers the data to the target cluster, involving preparation,
synchronization and replication. However, it does not trigger a table or directory
switch (publication).
n Data Publishing
This process publishes data that have already been transferred to the target
cluster. The process triggers all necessary table and directory switches as well as
concomitant database commits to persist the changes (publication and cache
refresh).
NOTE: Data publishing can only be executed on the results of a process of type "Data Transfer"
executed immediately before. Note also that with database content which is writeable in the
target cluster, hence replicated via delta replication, data transfer and data publishing cannot
be separated.
NOTE: Undo is not available for replication processes that include Delta Replication, e.g. users
or promotions.
Initialization
When replication begins, initialization starts as part of either the "Data Transfer"
or "Data Transfer and Publishing" processes for tables. In Intershop 7 the system
creates the "infrastructure" required for the replication process, including tables
designated for replication. Initialization cannot be selected individually from the
backoffice but rather starts automatically. A request to export the source system
database is followed by import into the target system database. Additionally, a
synonym with the original table name, special views, deletion triggers and deletion
tables (depending on whether full or delta replication is defined for the table) is
created.
For example, assume a partner organization Miller working in the partner channel
Reseller Channel of the sales organization PrimeTech. In case the organization
Miller wants to replicate master repository data, then Miller, Reseller Channel and
PrimeTech also have to exist on the target cluster.
NOTE: It is not possible to replicate content into the repository of a different organization, or an
organization working in a different channel.
When using product data feeds to transfer product data to a target cluster, the
following specific issues are important:
n System Environment
Before product data feeds to a target cluster can be used, the system
administrator has to set up source and target cluster and prepare them for data
transfer. The steps are identical to the steps necessary to prepare source and
target cluster for data replication. Refer to Preparing for Data Replication.
n Modification of Live Tables
Transferring product data from a source to a target cluster using product data
feeds directly affects the target cluster's live tables. In contrast to product data
transfer using data replication, no switching of tables is involved.
n Direct Access
For local replication scenarios, an alternative mechanism is available. The
database user of the source system (e.g. intershop_edit) can grant direct access
rights to selected tables to the target cluster. The target cluster can then access
tables of this user directly, as shown below.
SQL>select tname from intershop_edit.tab;
Using the default users and passwords of a standard server installation, this SQL
command could look as follows:
SQL> create database link ISEDITING connect to INTERSHOP_EDIT
identified by INTERSHOP_EDIT using 'ISEDITING.world';
As an alternative, you can create the database link without a TNS alias entry
in <ora_home>/network/admin/tnsnames.ora by executing the following SQL
command:
SQL> create database link ISEDITING connect to INTERSHOP_EDIT
identified by INTERSHOP_EDIT using
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=<STAGING.EDIT.DB.HOSTNAME>)
(PORT=<STAGING.EDIT.DB.LISTENER.PORT>))
(CONNECT_DATA=(SID=<STAGING.EDIT.DB.SID>)))';
To see if the database link works, you can, for example, execute the following SQL
command:
SQL> select tname from tab@ISEDITING;
This command should not return any errors, and it should list the respective table
names of the source system database.
NOTE: For more information about the replication-clusters.xml file,, refer to Source System
Configuration.
NOTE: Keep in mind that the target systems that are not used in the replication process must be
flagged active="false" in replication-clusters.xml. The URL of the source system is not required
in the configuration, though it is used to download file content, because it is already known from
appserver.properties.
This setting triggers the creation of special tables for database replication
during database initialization via dbinit (see step 3 below).
3. You can provide a name for the target cluster as a value for
staging.system.name. This name (which can be an arbitrary string) will be
used to refer to the target cluster in the central administration front end of
the source system.
staging.system.name=Sample Target cluster
The data replication mechanism allows for additional database table inclusion
at a later time in regular operation. Therefore, each time a replication process
of type "Data Transfer" or "Data Transfer and Publication" is started, the process
automatically checks if new tables must be initialized.
The staging.properties file has three main sections: for general system configuration,
live system configuration, and staging processor configuration. Each section is
described below.
n staging.system.type
Defines the system type within a data replication environment. Accepted
values are none, live and editing. With the types live and editing, the database
is capable of storing replicated data, so these types can easily be switched.
With the staging type none, there are no database tables prepared for data
replication, so after changing none to live or editing, the database must be
reinitialized using dbinit.
The default value in a non-staging environment is editing.
n staging.system.name
States the name of the system. Note that the actual definition of the system
name is done in replication-clusters.xml, the staging.properties file keeps it for
information purposes only. The default value is the host name.
Timeout Settings
After the replicated data has been published in the target cluster's database or file
system, the system's caches must be refreshed. In case of timeouts upon cache
refreshing, the replication process continues executing, but errors are logged
accordingly. As the page cache may contain inconsistent data after a replication
timeout, remove the cache in the according Intershop 7 application and restart the
application.
The timeout settings apply only to the target cluster. They define the maximum
time the replication process waits for the related cache to be refreshed before
logging an error.
NOTE: Enable these jobs only if you are using the data replication functionality on your systems.
SyncLiveWithEditingStagingProcess
If a replication process fails, e.g., because the source system crashes after a
replication process has been started, resources on the target cluster remain
locked. This job regularly checks if there are any replication processes with status
FAILED, and releases the locked resources. The pipeline executed in this job is
SyncLiveWithEditingStagingProcess-Start of the core cartridge. The job is prepared by
the core cartridge into the domain root. Hence, to configure the job, log on to the
SMC and select the site root.
By default, the job is enabled and configured to run every 1440 minutes (once
a day), which is the recommended setting. In case of evident failures, Intershop
recommends to trigger the job manually.
Logging
As all application log files, the log files for data replication are located in the
<IS.INSTANCE.SHARE>/system/log/ directory.
System Management
Overview
This chapter provides a reference to the System Management Console (SMC). It
describes how to use the SMC in order to perform basic administration tasks in an
Intershop 7 cluster, such as managing scheduled jobs, managing logging options,
and monitoring the application functionality:
n Navigate the SMC
This section explains how to access, log in to, and navigate the SMC.
n Schedule Management
This section describes how to control scheduled jobs in the Intershop 7 system.
n Logging Options
This section outlines how to change the logging options of the Intershop 7
application.
n File Browser
This section describes the SMC File Browser tool.
n License Auditing
This section describes how to generate a license report as required by your
purchasing contract and license agreement.
n Site Management
This section describes the site management features like server group
assignments or page cache behavior, for instance.
n Monitor the System State
This section outlines the monitoring functionality of the SMC.
n Installation Maintenance
This section describes the installation maintenance features of the SMC.
where <SYSTEM.HOST> is either the IP or DNS name of the machine hosting the
Intershop 7 Web Gateway.
2. Log in as administrator.
In a default Intershop 7 installation, use the following credentials:
• Login: admin
• Password: !InterShop00!
NOTE: For security reasons, you should change this password. See Change the SMC
Password.
This screen is sub-divided into two areas: a navigation bar on the left and the main
page area on the right, which displays lists or dialogs associated with the module
selected in the navigation bar.
The navigation bar comprises the following sections:
n Schedules
Allows for controlling scheduled jobs in the Intershop 7 system. See Schedule
Management.
n Logging
Allows for specifying the level of detail recorded in the application log files. See
Logging Options.
n License Report
Allows for generating a license report, according to your Intershop 7 purchasing
contract and license agreement. See License Auditing.
n Site Management
Allows for controlling global settings for the sites served by the Intershop 7
system. See Site Management.
n Monitoring
Allows for monitoring the server functionality. See Monitor the System State.
n Installation Maintenance
Allows for collecting vital information about the Intershop 7 system and
transferring it to Intershop Support. See Installation Maintenance.
In addition, the quick access buttons located above the main page area provide
immediate access to certain functionality:
n Home
Opens the front end start page.
n Change Password
Opens the user detail view for the current user (admin) to change the password.
n Logoff
Logs off the user (admin) from the current session and displays the log on
screen.
2. Enter the old password, the new password and the new password
confirmation in the corresponding fields.
3. Click Apply.
Your password has now been changed.
Schedule Management
Using the Schedules module, the Intershop 7 system administrator can control all
scheduled jobs created in the system, regardless of their original site assignment,
permission, etc. In addition, this module allows for creating, editing or deleting
scheduled jobs in any of the system sites.
2. Select the application server where you intend to change the job processor
status.
Click the checkbox next to the server to select it.
3. Click Enable or Disable, as appropriate.
The job processor state is set as required and made persistent in the local
properties file of the corresponding application server (<IS.INSTANCE.SHARE>/
system/config/servers/<HOST.ID>/<INSTANCE.ID>/appserver<#>.properties). The
new job processor status is published within the cluster via the servers' event
messaging information.
The job schedules overview allows for filtering the schedules list by domain,
operation state, server, instance and host machine. In addition, the schedules
list can be sorted by name, domain, last run, last duration and operation state
through clicking the corresponding attribute in the table head.
Field Description
Name A unique name for the schedule. Duplicate entries are rejected.
Description A description of the schedule.
Enabled (checkbox) Select this checkbox to enable (activate) the schedule.
Application Select the application where the scheduled pipeline shall run.
Pipeline The name of the scheduled pipeline.
Start Node The start node of the scheduled pipeline.
Host Name Specify the host where the scheduled pipeline shall run. (If left
blank, it may run on any host in the cluster.)
Installation ID Specify the Intershop 7 instance where the scheduled
pipeline shall run, e.g., ES1. The installation ID is stored in the
intershop.properties file of the respective instance as value of the
property IS_INSTALLATION. If no ID is provided, the schedule
can run in any instance in the cluster.
Server Name Specify the application server where the scheduled pipeline
shall run. (If left blank, it runs on the application server where
the automatic job processing is enabled.)
Field Description
Server Group Specify the application server group where the scheduled
pipeline shall run. (If left blank, it runs in the default server
group set for the application.)
Data Center Specify, if applicable, the data center that the scheduled
pipeline shall use.
Run Once (radio button) Select this option to run the schedule once.
Recurring Interval (radio Select this option for the schedule to run at recurring intervals.
button)
Run Time Set the time when the pipeline starts running.
Active Set the period during which the specified recurring interval is
active.
Every (radio button) Select this option for the schedule to run at the specified
recurrence pattern.
On these days (radio Select this option for the schedule to run on the selected
button) day(s).
n <concurrent>
Child element of <chain> or <sequence>. Includes jobs or pipelines to be
executed in parallel. The attribute name is used in the SMC module Monitoring|
Locking|Processes.
n <sequence>
Child element of <chain> or <concurrent>. Includes jobs or pipelines to be
executed sequentially in the given order. The attribute name is used in the SMC
module Monitoring|Locking|Processes.
n <job>
Child element of <sequence> or <concurrent>. Specifies a job to be executed
within the chain. The next table lists the attributes for <job>.
Attribute Description
job Specifies the name of the job as defined in the SMC Schedules
module (mandatory).
name Specifies a display name for this job to be used in the
Monitoring|Locking|Processes module.
domain Can define a specific domain for the job execution (optional). By
default, the chain element job is executed in the domain of the
process chain.
allsites Can specify whether the job executes in all domains (true|false),
default is false.
concurrent With allsites=true, can specify whether the job executes in
parallel in all domains (true|false), default is false.
n <pipeline>
Child element of <sequence> or <concurrent>. Specifies a pipeline to be
executed within the chain. The next table lists the attributes for <pipeline>.
Table 50. Attributes of the process chain element <pipeline>
Attribute Description
pipeline Specifies the name of the pipeline to be executed.
name Specifies a display name for this pipeline to be used in the
Monitoring|Locking|Processes module.
domain Can define a specific domain for the pipeline execution
(optional). By default, the chain element pipeline is executed in
the domain of the process chain.
startnode Can define a specifc pipeline start node (optional), default is
Start.
login Can define the login name that the pipeline to be executed
may require.
password Can define the password if the pipeline to be executed requires
a specific login.
n <error>
Optional child element of <sequence>. Specifies a dedicated <job> or
<pipeline> that is to be executed in case the preceding jobs or pipelines within
the <sequence> have failed.
NOTE: Make sure that <error> is the last element within the corresponding <sequence>.
n <parameter>
Optional child element of <pipeline>. Can specify the parameter that the
pipeline to be executed may require.
n <description>
Optional child element of <sequence>, <concurrent>, <job> or <pipeline>.
Specifies a description to be displayed in the SMC module Monitoring|Locking|
Processes.
n <ignore>
Optional child element of <sequence>, <concurrent>, <job> or <pipeline>.
Can specify status codes (SUCCESS|WARNING|FAILURE|ERROR|NOTFOUND|
INTERRUPTED) returned from the corresponding chain element upon execution
that should be ignored for rest of the process chain execution. This way, the
process chain execution can continue in case of errors in one of its sub tasks.
Logging Options
Using the SMC Logging module, you can customize the existing logging appenders
defined for your Intershop 7 instance. The settings specified in this SMC module are
written to <IS.INSTANCE.SHARE>/system/config/cluster/logging.properties.
For information about basic logging framework concepts, refer to Application
Logging.
To check the logging status for an application server, click the server name in the
list. This opens the Logging status detail view for the selected server.
Settings Scope
As with most application properties, you can define global (cluster-wide) logging
settings, or define them locally for each application server, where local settings
overwrite global settings.
To decide whether to use global or local settings for an application server:
1. In the SMC Navigation Bar, select Logging.
The Logging Settings overview page is displayed.
2. Select the intended application server.
The detail view for the application server is displayed.
3. Open the Logging Settings tab.
Figure 16. Application server logging settings
5. Click Apply.
If you choose to use cluster-wide settings, the actual logging options are not
editable in this dialog.
NOTE: The further logging options apply to both the cluster-wide and the application server-
specific settings.
NOTE: Uploaded files are automatically activated, i.e., the corresponding logging settings are
applied without further user interaction.
NOTE: Upon file deletion, only the appenders defined with this file are deactivated, possibly
defined other settings still remain active as long as the server is up.
An empty level filter (set to none) indicates that this appender currently has not
assigned a customizable level filter. This means, any log events to be recorded by
this appender only pass the filters defined in the preceding filter chain (turbo filters,
category filters).
NOTE: If there is no category assigned, the appender does not record any log output.
NOTE: The further logging options apply to both the cluster-wide and the application server-
specific settings.
Managing Categories
NOTE: The category lists delivered by the SMC Logging module only display categories that are
known to the logging system at the given time. A category is known if it is explicitly mentioned
in a configuration file or after the corresponding application code has issued a log request for this
category.
Assigning Categories
To add category assignments for an appender:
1. Open the Logging Settings for the cluster or an application server.
2. In the Appender section, click the appender to change.
The appender's detail page is displayed.
3. In the Assigned Categories section, select the required categories.
Before setting the required category level, you must select a root category (with
additivity="false") that limits the appender inheritance (see Application
Logging: Basic Concepts).
The category drop-down list allows for selecting all sub categories of the given
root category that are not already included.
Figure 18. Assigning a category to an appender
Unassigning Categories
To remove a category assignment from an appender:
1. Open the Logging Settings for the cluster or an application server.
2. In the Appender section, click the appender to change.
The appender's detail page is displayed.
3. In the Assigned Categories list, select the category assignments to remove.
Use the checkbox to select the intended categories.
4. Click Unassign.
The category assignment is removed from the appender.
File Browser
The File Browser enables Intershop 7 directory browsing and zip-compressed
download from the SMC. This tool enables administrators to quickly browse the
Intershop 7 directories without requiring access to the file system as only the SMC
login is required. With this tool, it is possible to view and download files from any
server within an Intershop 7 cluster.
Figure 20. SMC file browser
By default, all directories are hidden. System folders are made available by
configuring the property file located at <IS_SHARE>/system/config/apps/
intershop.enfinity.SMC/filebrowser.properties. Here you can specify directories
and sub directories for viewing and download by using the IS path alias (such as
${IS_SHARE};${IS_HOME}) or without the alias (such as c:/share/**** or /var/***)
depending on your operating system. To set a directory to 'browsable'(viewable),
edit the property file per the following:
filebrowser.dir.browsable=${IS_SHARE}/system/log;${IS_HOME}/webadapter/
log;/var/log
The above example sets three log directories as viewable by the file browser. These
are separated by a semi-colon (;).
Conversely you can specify a set of files or sub directories as hidden with a regular
expression even if the directory is viewable. To hide a file within the above defined
directories, edit the property file per the following:
filebrowser.files.hidden.regexp=.*zip
The above example hides all files that end with 'zip' from being able to be viewed in
the file browser.
License Auditing
Intershop is authorized to request license reports from Intershop 7 customers. Use
the License Report module to generate a license report and to send it to Intershop,
according to your purchasing contract and license agreement.
CAUTION: With multi-core technology, each CPU core is considered a CPU for licensing purposes.
2. Specify a start and end date, and click Generate to start the report
generation.
The license report contains the contents of your license.xml file, lists all installed
cartridges and provides general cluster information.
3. Specify the e-mail addresses of the report's recipient and sender.
Your purchasing contract or license agreement should specify an e-mail
address where generated license reports are to be sent, for example
[email protected].
Site Management
Using the SMC Site Management module, the system administrator can control
global settings for the sites served by the Intershop 7 system.
To edit the setting for a site, click the site name in the list. This will open the site's
detail page. The site's detail page contains three tabs, General, Page Cache and
Applications, which allow for setting the corresponding preferences.
n Server Group
Allows for assigning the site to a dedicated server group (see Server Group
Definition). If not set, the default group WFS is used.
n HTTPS
Allows for securing the online access to the site using the secure protocol HTTPS
for pages defined as "secure URLs" (like, for example, checkout pages or profile
pages).
NOTE: For development environments, all HTTPS links can be deactivated. This setting is stored
in the user session as well as in the page cache. When toggling HTTPS, it may be necessary to
flush or deactivate caches and remove the user sessions.
n URLRewriteSiteName
Specifies the name of the site if URL rewriting is enabled.
NOTE: Not specifying this value may cause URL rewriting rules to malfunction.
n URL Rewriting
Allows for applying the URL rewriting mechanism in order to enable the site to
publish search engine friendly URLs.
n Status
Allows for setting the online status of the site.
Table 52. Site statuses
Status Description
Live The site is accessible.
Maintenance The site is only available to back office operators. Storefront requests
addressed to the site are blocked.
Disabled The site is only available for system administrators in the SMC or Central
Administration Front End. Back office and storefront requests to the site
are blocked.
Application Settings
The Applications tab lists all applications that are attached to the current site.
Clicking an application entry opens the application detail page that displays
relevant information about the selected application.
Figure 26. A site's application list
The General tab of the application detail view shows important information like
type, name, URL ID, and status (default, enabled).
Figure 27. General application data
The Cartridge Structure tab lists all cartridges used by the current application.
Figure 28. Application cartridges
The REST API tab lists all ressources of the current application that are accessible
using REST calls.
Figure 29. Application REST ressources
Monitoring Sub-Modules
The Monitoring section in the navigation bar comprises the following sub-modules,
each providing the corresponding detailed information:
• Application Server
• Java VM
• OR Mapping
• JDBC
• Cartridges
• Performance
• Background
• Database Status
• Locking
• Services
• Additional Monitoring Options
Monitoring Options
The following tables outline the available monitoring options, sub-section by sub-
section.
n Application Server
n Java VM
n OR Mapping
n JDBC
n Cartridges
n Performance
n Background
CAUTION: The Configuration dialog allows for specifying a new monitor pipeline. Unless you
have implemented a custom monitor pipeline or added a custom start node to the existing
one, Intershop strongly recommends to keep the default settings.
n Database Status
NOTE: Before you can monitor the database status, you have to execute the script
DBMonitorGrants.sql, located in <IS.INSTANCE.DIR>/bin.
Table 60. Database Status Monitoring
n Locking
n Services
This section summarizes the service providers that are integrated into your
system. The overview page lists the services and their statuses in the site and
application server contexts, grouped by service type.
Clicking a service name opens a detail view, which is divided into two tabs.
The Monitoring tab shows more, fine-grained operation details, whereas the
Maintenance tab provides options to enable/disable, ping or test the current
service.
n Additional Monitoring Options
Enable CIC/runtime sensors artifacts tracking for pipelines, pagelets and
templates. Follow the instructions below to perform this action.
1. Select Monitoring > Performance > Configuration from within the SMC.
2. Select the monitoring types you want to activate and click "Apply".
3. Mark the box "Trace artifact structure for activated sensors" and click
"Apply".
Trace artifact structure for activated sensors and click "Apply".
All further requests will trace the corresponding hierarchy to a log file (/share/
system/logs/monitor-$hostName-$installationID-artifact-structures.log). Entries
will be of format:
Timestamp|requestID|root ArtifactPath
with
ArtifactPath = ArtifactID
What is JMX?
JMX refers to the Java Management Extension, a framework for application and
network management in the Java programming language. Using JMX technology,
a given resource is instrumented by one or more Java objects known as Managed
Beans, or MBeans. These MBeans are registered in an MBean server. Through the
MBean server, resources exposed via MBeans can be accessed by management
applications (JMX clients) in order to
• Read and change application parameters during runtime
• Provide statistical data (performance, resource usage, logs, errors, etc.)
• Receive notifications in case of errors
• Monitor critical system components.
NOTE: The current release of Intershop 7 provides support for standard MBeans, which define
their management operations and attributes by a static Java interface. Other MBean types are not
supported.
MBean Registration
A standard MBean consists of a Java interface (with the suffix MBean) and an
implementation class. Each cartridge registers the MBeans which it provides.
Registered MBeans are then loaded during application server startup and
integrated with the MBean server of the underlying application server.
To register MBeans, you have to provide an mbeans.properties file within the
classpath directory javasource/resources/<cartridge-name>/naming of your
cartridge. The mbeans.properties file defines the respective "MBean-Classname" to
"JMX-ObjectName" mappings. The general schema for MBean entries is
mbean_class_name=mbean_object_name
The MBean class name needs to be fully qualified. The JMX object name is
used to register the MBean at the MBean server. It has to be compliant with the
notation of a java.management.ObjectName (e.g. domain: key1 = value1 , key2
= value2). The sample below shows the respective configuration entry for the
LoggerAdministrationMBean, provided by the core cartridge.
com.intershop.beehive.core.capi.mbean.LoggingAdmin=com.intershop.enfinity:
name=com.intershop.beehive.core.capi.mbean.LoggerAdministrationMBean,
type=AdministrationMBean
Here you can see the virtual machine where your application is running and
the Java home folder where the application is located. Here you can also view
system properties.
• Monitor
Here you can see memory and performance, CPU usage, classes loaded and
threads.
• Threads
This tab opens with a view of 'All Threads' on a timeline, and allows you to create
a thread dump to save and analyze later. The drop-down menu allows you to
see 'All', 'Live', 'Finished' and 'Selected' application threads.
• Sampler
Sampler provides you with a profile of your application performance. You
can generate graphs for specific threads, as well as see the objects that are
consuming system resources.
• MBeans
This tab allows you to view all MBeans registered with the platform MBean
server. As Administrator, you will be primarily concerned with monitoring and
performing operations for the following:
• Under com.intershop.enfinity, you can view the attributes of and monitor
application MBeans, view the attributes of cartridge MBeans and via
ClearableCaches view and perform operations on the ORM, Object and
PageCache MBeans.
• Under oracle.ucp.admin and oracle.ucp.admin.UniversalConnectionPoolMBean
you can view attributes and perform operations on the Intershop 7 Oracle
database pool connections.
When you select an MBean and view the attributes, where the value is bold, you can
double-click the value and it is shown as a graph or chart. For example, some cache
MBeans allow you to view the number of cache hits for a particular resource.
Open JConsole in the Intershop 7 folder located in engine\jdk\bin. Double-click
jconsole.exe. JConsole automatically monitors the VM on the Tomcat server in
which the application is opened. You can connect to a different host at any time by
selecting 'Connection | New Connection' and entering the neccesary information.
The table below lists the tabs and the monitoring options:
Table 62. JConsole Tabs
NOTE: Garbage collection (GC) the process of releasing memory used by objects no longer being
referenced and can have dramatic effects on performance. See Oracle JConsole documentation
for more details.
NOTE: For detailed information on the resources that are instrumented by the MBeans, you
need to inspect the MBeans using a JMX management application such as MX4j HTTP Adaptor or
MBeansInspector.
Installation Maintenance
Using the SMC Installation Maintenance module, the system administrator can
collect vital information about the Intershop 7 system and transfer it to Intershop
Support.
Table 64. Startup information
NOTE: Some cluster information options (ORM Cache, Loaded Pipelets, Locking Conflicts) may be
time and ressource consuming and may impact the system performance. They should be enabled
only if the information is crucial to the system maintenance.
The generated report information files are available in the Information Files
manager. For further details, see Managing Information Files.
NOTE: Depending on the JVM size, generating a heap dump will hold the system for some time
and requires an according amount of free disc space. Intershop recommends to create heap dumps
sequentially if several application servers are involved.
The dump files are created in a VisualVM-compatible format, which allows for
a convenient visual representation of the dump data. The generated files are
available in the Information Files manager. For further details, see Managing
Information Files.
E-Mailing Files
To e-mail generated report or dump files:
1. In the SMC Navigation Bar, open Installation Maintenance|Information
Files.
This opens the Information Files detail page, displaying a list of generated files.
2. Select the file(s) to be e-mailed.
Mark the corresponding checkbox(es).
NOTE: Larger files cannot be sent by e-mail and therefore cannot be selected. The
corresponding limit is controlled by the property intershop.mail.attachment.maxsize
in cluster_information.properties.
3. Click Send.
This opens the e-mail dialog as illustrated in the figure below.
Reference
NOTE: For all Ant task targets defined in <IS.INSTANCE.DIR>/tools/misc/build.xml, the switch -
Dis.share allows for using an optional ISF.
The following tables list the placeholders used by the Intershop 7 setup program.
Note that # is used as placeholder to denote the number of the Intershop 7
instance.
Table 68. Operating system-relevant placeholders
Big Picture
The Apache Jakarta Tomcat application server makes the operating environment
for all Intershop 7 applications. The application server comes out of the box with
Intershop 7 and is installed with every Intershop Application Server.
The Node Manager is a standalone Java program that is used to control all server
processes in an Intershop 7 instance. The Node Manager starts, stops and (in case of
abnormal process termination) restarts application server processes. In addition, it
provides the communication interface for the Tomcat Cluster Management Console
(TCC) that is used for remote control purposes (see Cluster Management).
The Node Manager and the Tomcat Cluster Management Console interact starting
and managing the Tomcat application server processes, and when checking
the cluster state. The figure below illustrates the interaction using a distributed
installation as an example.
Figure 36. Tomcat cluster management overview
n Startup (1)
The Node Manager starts the Tomcat server processes (and thus, the application
on top of them) as configured. It monitors the servers permanently to restart
them when necessary. See Node Manager Configuration.
n Application and Process Management (2), (3)
To shut down a remote server or to control application on a remote server, the
TCC communicates to the remote TCC, which then fulfills the request in the local
server instance (2).
To get a list of all remote server instances and their state or to terminate a
remote server, the TCC communicates to the responsible Node Manager, which
then executes the requested operations (3).
n Cluster State (4)
TCCs and Node Managers send out heartbeat information (including name,
host, port) via event messaging (multicast by default - see Event Settings). In
addition, each TCC evaluates incoming heartbeats. This way, it gets the required
information about the available server instances in the entire cluster, and on
how to contact a remote TCC or Node Manager for application and progress
management.
The following table lists the required settings in tcm.properties that the TCC and the
Node Manager use for cluster-wide management.
Table 73. Cluster management settings
Property Description
intershop.tcm.event. Specifies the messenger class to be used, the default
messengerClass is com.intershop.beehive.messaging.internal.multicast.
MulticastMessenger.
intershop.tcm.event. Defines the group address used for multicast messaging.
multicastAddress
intershop.tcm.event.multicastPort Defines the event distribution port for multicast
messaging.
intershop.tcm.event. Defines the number of handler threads to process
multicastListenerThreads incoming events. The default value is 5.
intershop.tcm.registration. Defines the interval (in seconds) after which the TCC
registrationTime or Node Manager sends out a heartbeat packet to re-
register with all other TCCs. The default value is 10.
intershop.tcm.registration. Defines the interval (in seconds) after which the TCC
expirationTime unregisters a Node Manager or another TCC if no
heartbeat packets were received. The default value is 50.
intershop.tcm.jmx.protocol Defines the protocol used to transport JMX control
commands to other TCC and node manager instances.
Currently only http is supported.
intershop.tcm.password.digest Defines the algorithm used for TCC user password
encryption (see Add New TCC User). The default value is
MD5.
NOTE: If you intend to use other messaging systems than the default multicast, you must enable
and adjust the corresponding intershop.tcm.event properties (see Event Settings).
For information on how to change cluster management user settings, refer to Add
New TCC User, and Change the TCC Password. The Event Messaging API description
(Multicast, JMS and JGroups) can be found in the section Event Settings.
As one Node Manager controls all server processes in an Intershop 7 instance, these
settings apply to all servers. The following table lists the Node Manager properties
in the nodemanager.properties file.
Table 74. Node Manager properties
Property Description
network.protocol Defines the protocol to use for communication (default
http).
network.interface Specifies the IP of the network interface to use; by
default, the primary IP is set.
network.port Sets the port for receiving requests from the TCC
(default: 10050). If not set, the Node Manager starts
without communication functionality.
config.update.timeout Defines the interval (in seconds) between two
configuration look-ups to enable configuration changes
at runtime. If not specified or set 0, the Node Manager
reads its configuration once at startup.
The table below lists the properties that can be set for the processes controlled by
the Node Manager.
Table 75. Process properties
Property Description
process.allowedExitCodes Specifies untreated exit codes of the Node Manager
subprocesses. If a subprocess exits with one of these exit
codes, the Node Manager will not restart it.
Property Description
process.list Specifies the names of the subprocesses that are
controlled by the current Node Manager instance
(comma separated list), e.g., appserver0,appserver1.
process.<process_name>. Specifies the command line string to start the
command subprocess. This string can include command line
arguments to be passed to the subprocess.
process.<process_name>. autostart A boolean value indicating whether the Node Manager
should start the specified subprocess at startup. The
default value is true. If set false, only the TCC can start
this subprocess.
To pass additional properties to the application server process, either edit the
startup script (this would apply to all server processes) or enter the required
arguments in the command shell when starting a single instance. Additional
properties include specific memory allocation, additional classpaths, etc.
Once running, the Node Manager starts the Intershop 7 server processes, as defined
in the nodemanager.properties file (see Node Manager Configuration).
NOTE: You should use nodemanager.sh only for development or debugging purposes.
For information on how to start an Intershop 7 instance for normal operation, refer
to the Intershop 7 Installation Guide.
CAUTION: For security reasons, it is strongly recommended to change the default shutdown
request string in the server.xml file. Otherwise, any local network user can shut down the application
server instance by simply sending the string SHUTDOWN to the respective shutdown port.
To edit the key file, you need a password. This password is defined by the attribute
keystorePass, with intershop as default value.
Intershop 7 provides a demo, yet fully functional security key. To prevent warnings
about certificate/IP mismatches, Intershop recommends to create an own key file
for each server.
To edit the existing keystore file, e.g., to create new certificates, use the keytool
program, located in <IS.INSTANCE.DIR>/engine/jdk/bin. For information on
managing keystores using keytool, refer to the JDK documentation.
NOTE: The keystore settings play a role for communication with the Tomcat Cluster Management
Console. They are not relevant to securing your Intershop 7 back office or storefront applications.
For information on these topics, see SSL Support.
Cluster Management
The Tomcat Cluster Management Console (TCC) is a standalone Web frontend
application used to administer the Intershop 7 server cluster. It provides a graphical
user interface for controlling all application server instances, as well as the
applications on top of them, running in the cluster.
General Overview
After logging in, the cluster overview page is displayed. It contains links to the
Servers and Applications modules that allow for managing the Intershop 7 cluster.
Figure 37. TCC Cluster overview
This page displays a "snapshot" of all available servers in the current Intershop 7
cluster and provides the information described in the table below.
Table 76. Cluster Overview Columns
Column Information
Server Displays the name of the application server instances.
Host Displays the fully qualified DNS name of each server's host machine.
Port Indicates the port on which each server is running.
Start Date Indicates the start date and time for each server.
Status Shows the status of each server, e.g., Starting, Running, or Stopped.
Button Function
Refresh Refreshes the screen contents displaying, e.g., a new server state.
Restart Stops the execution of the selected server, then starts it.
Button Function
Start Sends an HTTP request to the Node Manager to trigger the startup
command for the selected server.
Stop Sends an HTTP request to the selected server to stop it via a controlled
shutdown. The server shuts down any subprocesses and stops
executing.
Terminate Sends an HTTP request to the Node Manager to trigger a "kill"
command to be sent to the selected server. This command can be
used to terminate a frozen server process. It is usually not needed in
normal operation.
3. Enter all values as needed and mark the Autostart checkbox if required.
The following table lists the recommended port scheme.
4. Click Create.
The new server instance, i.e., the appserver<#> directory in <IS.INSTANCE.DIR>/
engine/tomcat/servers, is created; and the Node Manager properties are
updated accordingly.
5. Enable the cache synchronization.
In <IS.INSTANCE.SHARE>/system/config/cluster/orm.properties, remove the
comment character # from
#intershop.cacheSync.multicastAddress=239.1.0.0
#intershop.cacheSync.port=1111
and specify valid channel and port numbers. For details about these settings,
refer to PO Cache Synchronization Settings.
6. Propagate the new server instance to the Web adapter's configuration
service.
In <IS.INSTANCE.DIR>/webadapter/webadapter.properties, add the access URL
of the new application server's configuration servlet to the # configuration
service section, for example:
cs.url.0=http://<SYSTEM.HOST>:10054/servlet/ConfigurationServlet
cs.url.1=http://<SYSTEM.HOST>:10064/servlet/ConfigurationServlet
Deleting a Server
To delete an application server process:
1. Open the TCC Servers module.
Either select Servers in the navigation bar, or click the Servers link in the
overview page.
2. Select the application server you intend to delete.
Mark the checkbox next to the server process to select it.
NOTE: Make sure that the server process is stopped before trying to delete it.
Control Applications
Controlling applications involves starting, stopping, or reloading them. This
functionality can be applied either to only those applications that run on top of
an individual server instance or globally to all applications in the cluster. The table
below lists the available options.
Table 79. Application control buttons
Button Function
Refresh Refreshes the screen contents displaying, e.g., a new application.
Start Sends an HTTP request to the server(s) to start the selected application.
Stop Sends an HTTP request to the server(s) to stop the selected application.
Reload Sends an HTTP request to the server(s) to stop and restart the selected
application.
Use these commands to restart a single application without restarting the entire
server process. This may be necessary during application development or when
changing the configuration.
Figure 43. Sample scenario with two Intershop 7 clusters accessing joint TCC configuration files
For different clusters to use the same TCC configuration files, the IS_TCM_SHARE
variable in the intershop.properties file of each instance has to point to the same
location.
Figure 44. Managing server instances from different Intershop 7 clusters in the same TCC
NOTE: You can use any Tomcat server instance to connect to the TCC, using the instance's Tomcat
HTTP port (e.g., port 10052). In larger deployments, consider using a dedicated Tomcat server
instance which serves administrative purposes only and does not run the Intershop 7 application.
NOTE: On a project-specific base, the Intershop 7 CLC can be enhanced to support additional
tasks. For detailed information, refer to the corresponding concept document on the Intershop
Knowledge Base.
Running Jobs
To use the Intershop 7 CLC for running pre-configured jobs, the basic call is
isclc.sh|cmd runjob
Executing this without additional parameters returns the parameter overview for
the runjob task. The following table lists the available parameters.
Table 80. CLC parameters for running jobs
Using these parameters, a complete call may look like this (all in one line):
isclc.sh runjob -d root -h 10.0.25.3
-j AnalyzeDatabaseSchema -l admin -p \!InterShop00\!
You may also call the parameters via a prepared plain text file:
isclc.sh runjob @AnalyzeDB.parameters
Running Imports
To use the Intershop 7 CLC for running import processes, the basic call is
isclc.sh|cmd import
Executing this without additional parameters returns the parameter overview for
the import task. The following table lists the available parameters.
Table 81. CLC parameters for triggering imports
Using these parameters, a complete call may look like this (all in one line):
isclc.sh import -h 10.0.25.3 -l admin -p \!InterShop00\!
-o PrimeTech-Site -c PrimeTechSpecials
-u PrimeTech-PrimeTechSpecials -t product
-f test_product1-update.xml -lc de_DE
You may also call the parameters via a prepared plain text file:
isclc.sh import @testimport.parameters
Intershop Studio
Intershop Studio is the integrated development environment for Intershop 7.
Intershop Studio assists developers in creating or modifying, building, and testing
cartridges for Intershop 7 applications.
Intershop supports Intershop Studio on 64bit Linux and 64bit Windows. It is,
however, not part of the standard Intershop 7 installation scenario, but packaged
on the installation medium in setup/studio.
To deploy Intershop Studio, just extract the Intershop Studio directory from the
Intershop Studio_<version>-<platform>.zip file to your hard drive. For information
about configuring Intershop Studio and developing for Intershop 7, refer to the
Intershop 7 Application Programming Guide.
NOTE: All customers with valid support contracts can obtain Intershop Studio releases and updates
via Intershop Support.
For more information, refer to the documentation included with the adapter
cartridge.
Enabling the automatic FTP upload of your feed data requires the following tasks:
n Closing an Online Marketing Contract
Make sure that your organization has contracted the SoQuero Data Feed service
with SoQuero Online Marketing.
n Configuring the FTP Connection
Specify the connection data (server name, path, user name, password) provided
with the data feed contract in the data feed configuration file syndication-
targets.properties, located in <IS.INSTANCE.SHARE>/system/config/cluster. In
addition, make sure to set
intershop.syndication.target.SoqueroDataFeed.ftp=true
For a detailed description of the necessary tasks, refer to the Intershop 7 user guide
Managing Online Shops.
For more information, refer to the documentation included with the adapter
cartridge.
For a German localization, no additional steps are required. The locale de_DE is
automatically initialized by default. That is, just setting the "Preferred Language" to
German switches the Intershop 7 back office display language accordingly.
• On Windows:
md fr_FR
copy de_DE\merges_config.xml fr_FR\
5. Add the translations for your target locale to the dictionary files.
The CSV dictionaries, which by default contain only the translations for de_DE,
are located in the release/tloc/dict subdirectory of each cartridge to be localized.
Insert the translations for your additional locale into a new column, or replace
the German translations in column 5 if you are sure that that you do not need
them.
NOTE: Make sure that the translation columns in the dictionary match the corresponding
settings in the tLoc configuration files.
After having generated the Intershop 7 back office template set and translated the
localization properties files, you must enable your target locale in Intershop 7. For
information about setting additional locales, refer to Prepare Locales. When done,
setting the session locale to your target locale switches the Intershop 7 back office
display language accordingly.
NOTE: Be aware that any modifications to the text values made through the Localization module
of the Intershop 7 back office are stored to the database but are not written to the properties files.