9-10 Integration Server Administrators Guide
9-10 Integration Server Administrators Guide
Version 9.10
April 2016
This document applies to webMethods Integration Server Version 9.10 and to all subsequent releases.
Specications contained herein are subject to change and these changes will be reported in subsequent release notes or new editions.
Copyright 2007-2016 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or
its aliates and/or their licensors.
The name Software AG and all Software AG product names are either trademarks or registered trademarks of Software AG and/or
Software AG USA Inc. and/or its subsidiaries and/or its aliates and/or their licensors. Other company and product names mentioned
herein may be trademarks of their respective owners.
Detailed information on trademarks and patents owned by Software AG and/or its subsidiaries is located at
hp://softwareag.com/licenses.
Use of this software is subject to adherence to Software AG's licensing conditions and terms. These terms are part of the product
documentation, located at hp://softwareag.com/licenses and/or in the root installation directory of the licensed product(s).
This software may include portions of third-party products. For third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright Notices and Disclaimers of Third Party Products". For certain specic third-party
license restrictions, please refer to section E of the Legal Notices available under "License Terms and Conditions for Use of Software AG
Products / Copyright and Trademark Notices of Software AG Products". These documents are part of the product documentation, located
at hp://softwareag.com/licenses and/or in the root installation directory of the licensed product(s).
Document ID: IS-AG-910-20160415
M
Table of Contents
Table of Contents
About this Guide............................................................................................................................27
Document Conventions............................................................................................................ 27
Online Information.................................................................................................................... 28
The Role of the Administrator......................................................................................................29
What Does an Administrator Do?............................................................................................ 30
Typical Administrative Responsibilities.....................................................................................30
The Integration Server Administrator....................................................................................... 31
Receiving Administrative Messages from the Server...............................................................31
The Administrator User.............................................................................................................31
The Administrator's Password...........................................................................................31
Adding Backup Administrators................................................................................................. 32
An Overview of the Server........................................................................................................... 33
The Role of the Server.............................................................................................................34
About Integration Server Instances...................................................................................34
Architecture............................................................................................................................... 35
Services............................................................................................................................. 37
Retrieving Data for Services............................................................................................. 37
How the Server Executes Services..........................................................................................39
How the Server Loads Java Classes.......................................................................................40
Class Loaders....................................................................................................................40
OSGi Bundle Class Loader........................................................................................41
Integration Server Class Loaders.............................................................................. 41
Classpaths......................................................................................................................... 42
How the Integration Server Classpaths Are Specified............................................... 42
Changing Classpath Information at Startup............................................................... 44
How Class Loading Works................................................................................................ 45
Class Loading Process.............................................................................................. 45
Scenario One: Integration Server Knows Where the Class Lives.......................46
Scenario Two: Integration Server Does Not Know Where the Class Lives......... 47
Scenario Three: Package Class Loader Does Not Defer to the Integration Server
Class Loader....................................................................................................... 47
Where to Place Classes and Jar Files for Packages........................................................48
Where to Place Custom and Third-Party Jar Files........................................................... 49
Accelerating Class Loading...............................................................................................49
Integration Server Security....................................................................................................... 50
Logging..................................................................................................................................... 51
Caching..................................................................................................................................... 51
Starting and Stopping the Server................................................................................................ 53
Starting the webMethods Integration Server............................................................................54
webMethods Integration Server Administrators Guide Version 9.10
M
Table of Contents
M
Table of Contents
M
Table of Contents
M
Table of Contents
Configuring Ports.........................................................................................................................155
About Ports............................................................................................................................. 156
Available Port Types........................................................................................................156
Default Ports....................................................................................................................157
About the Port Alias........................................................................................................ 158
Package Associations......................................................................................................159
Considerations for Adding Ports.............................................................................................159
Reasons to Add Additional Ports.................................................................................... 159
Considerations for Configuring Ports.............................................................................. 160
AS/400 Considerations.............................................................................................160
Bind Addresses........................................................................................................ 160
Prerequisites to Configuring a Port for SSL.............................................................160
Port Usage and Security..........................................................................................161
Adding an HTTP Port............................................................................................................. 161
Advanced Controls.......................................................................................................... 167
Editing Advanced Controls.......................................................................................167
Adding an HTTPS Port...........................................................................................................168
About File Polling Ports..........................................................................................................176
Adding a File Polling Port............................................................................................... 177
Adding an FTPS Port............................................................................................................. 183
Adding an FTP Port................................................................................................................187
Adding an E-Mail Port............................................................................................................ 189
Security Considerations for E-Mail Ports........................................................................ 196
Adding an HTTP Diagnostic Port........................................................................................... 196
Adding an HTTPS Diagnostic Port.........................................................................................200
Suspending an HTTP/HTTPS Port.........................................................................................205
Resuming an HTTP/HTTPS Port........................................................................................... 206
Testing for HTTPS Requests..................................................................................................206
Using an FTP/FTPS Port Range............................................................................................207
Specifying an FTP/FTPS Port Range............................................................................. 207
About the Primary Port...........................................................................................................208
Changing the Primary Port..............................................................................................209
Deleting a Port........................................................................................................................209
Editing a Port..........................................................................................................................210
About Enabling/Disabling a Port.............................................................................................210
Disabling a Port...............................................................................................................210
Enabling a Port................................................................................................................211
Configuring How Ports Handle Client Certificates..................................................................211
Adding a Security Provider.....................................................................................................212
Configuring the Allowed Protocols for JSSE per Port............................................................ 213
Setting Up the Server Log.......................................................................................................... 215
Overview of the Server Log................................................................................................... 216
Specifying Amount and Type of Information to Include in the Server Log..............................217
Logging Levels................................................................................................................ 219
webMethods Integration Server Administrators Guide Version 9.10
M
Table of Contents
M
Table of Contents
M
Table of Contents
10
M
Table of Contents
11
M
Table of Contents
Storing SSL Information for the Integration Server JVM in a Secure Manner........................ 415
Order of Precedence for the javax.net.ssl Properties..................................................... 416
Usage of CA Certificates: Technical Considerations..............................................................417
Handling Expired CA Certificates....................................................................................417
Customizing Usage of the Trusted Certificates Directory................................................417
WS-Security and Integration Server.......................................................................................418
Using SAML for Web Service Client Authentication...............................................................418
Requirements for Using SAML for Authentication...........................................................418
Identifying Trusted STSs to Integration Server............................................................... 419
Controlling Access to Resources.............................................................................................. 421
Overview................................................................................................................................. 422
Controlling Access to Resources by Port...............................................................................422
Restricting IP Addresses that Can Connect to a Port.....................................................423
Controlling IP Access to All Ports (Globally)............................................................424
Allow Inbound Connections from Specified Hosts (Deny All Others)................ 424
Deny Inbound Connections from Specified Hosts (Allow All Others)................ 425
Allow Inbound Requests from Specified Hosts (Deny All Others)............................426
Deny Inbound Requests from Specified Hosts (Allow All Others)............................427
If You Inadvertently Deny IP Access to All Hosts.................................................... 428
Resetting the Global Setting IP Access Setting................................................428
Resetting the IP Access Setting for an Individual Port..................................... 429
Restricting the Services or Web Service Descriptors Available from a Port....................429
Allow Access to Specified Services (Deny All Others)............................................ 430
Deny Access to Specified Services (Allow All Others)............................................ 432
Resetting a Port to the Default Access.............................................................433
Controlling the Use of Directives............................................................................................433
Controlling Access to Resources with ACLs..........................................................................435
About ACLs..................................................................................................................... 435
Package Replication.................................................................................................438
Implicit and Explicit Protection................................................................................. 438
Users that Belong to More than One Group............................................................438
Predefined ACLs............................................................................................................. 439
When Does the Server Perform ACL Checking?............................................................440
Creating ACLs................................................................................................................. 440
Allowing or Denying Group Access to ACLs...................................................................441
Deleting ACLs..................................................................................................................441
Default Settings and Inheritance..................................................................................... 442
What Happens When You Change Existing ACL Assignments............................... 443
Assigning ACLs to Folders, Services, and Other Elements............................................443
Removing an ACL from a Folder or Service...................................................................444
Assigning ACLs to Files the Server Can Serve.............................................................. 445
Rules for Using .access Files...................................................................................445
Removing ACL Protection from a File............................................................................ 446
Authenticating Clients.................................................................................................................447
webMethods Integration Server Administrators Guide Version 9.10
12
M
Table of Contents
Overview................................................................................................................................. 448
Basic Authentication............................................................................................................... 448
Digest Authentication..............................................................................................................449
Kerberos Authentication..........................................................................................................450
Client Certificates....................................................................................................................450
Checklist for Using Client Certificates.............................................................................450
Certificate Mapping..........................................................................................................451
Ports and Certificate Mappings................................................................................451
Importing a Certificate (Client or CA Signing Certificate) and Mapping It to a
User.......................................................................................................................... 452
Changing a Certificate Mapping...............................................................................453
Client Certificates and Port Configuration....................................................................... 454
HTTPS Ports............................................................................................................ 454
FTPS Ports...............................................................................................................455
Using Multiple Client Certificates............................................................................................456
Checklist for Presenting Multiple Client Certificates........................................................456
Importing Certificates.......................................................................................................457
Setting Up a Remote Server Alias..................................................................................457
Coding Your Flow Services............................................................................................. 458
Client Authentication and Access Control.............................................................................. 458
Accessing Integration Server Data through My webMethods................................................ 459
Configuring the MWS Single Sign-On Resource Setting................................................ 459
Customizing Authentication Using JAAS................................................................................. 461
Overview................................................................................................................................. 462
Using JAAS with Integration Server....................................................................................... 462
JAAS Configuration File......................................................................................................... 462
Pre-installed Login Modules............................................................................................ 463
X509ValidatorModule.......................................................................................................464
Pluggable Authentication Modules (PAMs)............................................................................ 464
Writing a Custom JAAS Login Module for Integration Server................................................ 465
Extend SagAbstractLoginModule.................................................................................... 465
Implement Commit()........................................................................................................ 466
Place the JAR File in the Integration Server Classpath..................................................466
Modify the JAAS Configuration File................................................................................ 466
JAAS Custom Login Module Example................................................................................... 467
JAAS Login Module for Integration Server: Sample Code..............................................467
JAAS Custom Login Module: Code Explanation.............................................................468
JAAS Configuration File: Sample Module....................................................................... 469
Master Passwords and Outbound Passwords......................................................................... 471
Overview................................................................................................................................. 472
Managing Outbound Passwords............................................................................................ 473
Backing Up Outbound Password and Master Password Files...............................................474
Changing the Master Password............................................................................................. 474
Changing the Expiration Interval for the Master Password.................................................... 475
webMethods Integration Server Administrators Guide Version 9.10
13
M
Table of Contents
14
M
Table of Contents
15
M
Table of Contents
16
M
Table of Contents
17
M
Table of Contents
Service Information...................................................................................................635
Manually Adding a Service to the Server...............................................................................636
Testing Services......................................................................................................................636
Canceling and Killing Threads Associated with a Service..................................................... 637
Canceling or Killing a Thread..........................................................................................637
Running Services When Packages Are Loaded, Unloaded, or Replicated............................ 638
What Is a Startup Service?............................................................................................. 639
What Is a Shutdown Service?.........................................................................................639
What Is a Replication Service?.......................................................................................639
Guidelines for Using Startup, Shutdown, and Replication Services................................640
Running Services in Response to Specific Events................................................................ 640
Managing Global Variables.....................................................................................................640
Creating a Global Variable.............................................................................................. 641
Deleting Global Variables................................................................................................ 642
Scheduling Services....................................................................................................................643
Overview................................................................................................................................. 644
Tasks Provided by Integration Server............................................................................. 644
Scheduling a User Task......................................................................................................... 644
Viewing Scheduled User Tasks.............................................................................................. 649
Filtering the List of Scheduled Tasks.............................................................................. 650
Updating Scheduled User Tasks............................................................................................ 651
Suspending User Tasks..........................................................................................................651
Suspending a Single User Task......................................................................................651
Suspending All User Tasks............................................................................................. 652
Resuming Suspended User Tasks......................................................................................... 652
Resuming a Suspended User Task.................................................................................652
Resuming All Suspended User Tasks.............................................................................653
Canceling a Scheduled User Task......................................................................................... 654
Viewing the Scheduled System Tasks................................................................................... 654
Simple Repeating Option........................................................................................................654
Complex Repeating Option.................................................................................................... 656
Target Node Options...............................................................................................................660
Tasks in a Clustered Environment.................................................................................. 661
How Transitioning to or from Daylight Savings Time Affects Scheduled Tasks......................662
Caching Service Results.............................................................................................................665
What Is Caching?................................................................................................................... 666
When Are Cached Results Returned?................................................................................... 666
Resetting the Cache...............................................................................................................668
Resetting the Cache for All Services.............................................................................. 668
Resetting the Cache for a Specific Service.................................................................... 668
Monitoring Service Cache Usage...........................................................................................669
Changing the Service Results Cache to Return a Value Instead of a Reference...................669
Configuring Guaranteed Delivery...............................................................................................671
18
M
Table of Contents
19
M
Table of Contents
20
M
Table of Contents
21
M
Table of Contents
22
M
Table of Contents
23
M
Table of Contents
watt.debug...............................................................................................................................860
watt.debug2.............................................................................................................................862
watt.infradc..............................................................................................................................862
watt.net....................................................................................................................................863
watt.security.............................................................................................................................874
watt.server...............................................................................................................................879
watt.ssl.................................................................................................................................... 973
watt.ssh................................................................................................................................... 974
watt.wm.tnextdc...................................................................................................................... 975
watt.tx......................................................................................................................................975
watt.xslt................................................................................................................................... 976
FIPS 140-2 Compliance............................................................................................................... 979
FIPS 140-2 Compliance......................................................................................................... 980
Using NTLM Authentication and Integrated Windows Authentication with Integration
Server............................................................................................................................................ 981
Overview................................................................................................................................. 982
Using NTLM Authentication when Integration Server Acts as the Client............................... 982
Working with Integrated Windows Authentication.................................................................. 982
Activating and Deactivating Integrated Windows Authentication............................................983
Activating Integrated Windows Authentication................................................................ 983
Deactivating Integrated Windows Authentication............................................................ 984
Wireless Communication with the Integration Server............................................................. 985
Overview................................................................................................................................. 986
How Does the Integration Server Communicate with Wireless Devices?.............................. 986
Using URLs for Wireless Access to the Integration Server....................................................988
Invoking a Service with a URL........................................................................................988
Requesting a WML or HDML Page with a URL............................................................. 989
WML and HDML Samples......................................................................................................990
Debugging Service Exceptions Using the Error Log...............................................................993
Introduction............................................................................................................................. 994
Controlling the Level of Exception Logging Detail................................................................. 994
Displaying the Error Log.........................................................................................................994
Interpreting the Error Log....................................................................................................... 995
Understanding the Service Stack....................................................................................995
Understanding the Error Messages................................................................................ 997
Understanding the Stack Trace.......................................................................................997
Server Log Facilities....................................................................................................................999
About Server Log Facilities.................................................................................................. 1000
Integration Server................................................................................................................. 1000
WmMobileSupport Package................................................................................................. 1007
WmXSLT Package................................................................................................................1008
Flat File................................................................................................................................. 1008
webMethods Integration Server Administrators Guide Version 9.10
24
M
Table of Contents
Mediator................................................................................................................................ 1008
Index............................................................................................................................................ 1011
25
Even Header
26
Odd Header
This guide describes features and functionality that may or may not be
available with your licensed version of webMethods Integration Server. For
information about the licensed components for your installation, see the
Settings > License page in the Integration Server Administrator.
Document Conventions
Convention
Description
Bold
Narrowfont
UPPERCASE
Italic
Monospace
font
{}
Indicates a set of choices from which you must choose one. Type
only the information inside the curly braces. Do not type the { }
symbols.
27
Even Header
Convention
Description
[]
...
Indicates that you can type multiple options of the same type.
Type only the information. Do not type the ellipsis (...).
Online Information
SoftwareAG Documentation Website
You can nd documentation on the Software AG Documentation website at hp://
documentation.softwareag.com. The site requires Empower credentials. If you do not
have Empower credentials, you must use the TECHcommunity website.
Software AG Empower Product Support Website
You can nd product information on the Software AG Empower Product Support
website at hps://empower.softwareag.com.
To submit feature/enhancement requests, get information about product availability,
and download products, go to Products.
To get information about xes and to read early warnings, technical papers, and
knowledge base articles, go to the Knowledge Center.
Software AG TECHcommunity
You can nd documentation and other technical information on the Software AG
TECHcommunity website at hp://techcommunity.softwareag.com. You can:
Access product documentation, if you have TECHcommunity credentials. If you do
not, you will need to register and specify "Documentation" as an area of interest.
Access articles, code samples, demos, and tutorials.
Use the online discussion forums, moderated by Software AG professionals, to
ask questions, discuss best practices, and learn how other customers are using
Software AG technology.
Link to external websites that discuss open standards and web technology.
28
Odd Header
The Role of the Administrator
30
30
31
31
31
32
29
Even Header
The Role of the Administrator
30
Odd Header
The Role of the Administrator
same machine. For more information about running multiple instances of Integration
Server on the same machine, see "Running Multiple Integration Server Instances" on
page 73.
31
Even Header
The Role of the Administrator
Important: Change the predened passwords for the Developer and Replicator accounts
as well. The predened password for the Developer account is "isdev". The
predened password for the Replicator account is "iscopy."
For instructions on changing a password, see "Adding an Administrator User" on page
94.
If you use an external directory for user and group information, see "About
Granting Administrator Privileges to External Users" on page 573 for
information about adding administrators.
32
Odd Header
An Overview of the Server
34
Architecture ..................................................................................................................................
35
39
40
50
Logging .........................................................................................................................................
51
Caching ........................................................................................................................................
51
33
Even Header
An Overview of the Server
Unless otherwise specied, the terms Integration Server and the server in
this guide refer to an Integration Server instance.
34
Odd Header
An Overview of the Server
Architecture
The Integration Server listens for client requests on one or more ports. You can associate
the type of protocol that the server uses for each port. The server supports HTTP,
HTTPS, FTP, FTPS, and e-mail ports.
Most clients use an HTTP or HTTPS port for communication with the server. Because
the server supports both HTTP and HTTPS, it can listen on an HTTP port for non-secure
client requests and an HTTPS port for secure requests.
Note:
Unlike HTTP, FTP, and e-mail, HTTPS and FTPS provide for secure data
transmission. They do this through encryption and certicates. Without
HTTPS or FTPS, unauthorized users might be able to capture or modify data,
use IP spoong to aack servers, access unauthorized services, or capture
passwords. If you must pass passwords, make sure the back-end application
has minimal privileges.
A typical use for an FTP or FTPS port is to get a directory listing, change to the directory
that contains the service you want to invoke, put a le that contains input to the service,
and run the service. The server returns the output from the service to the directory
in which the service resides. Use an e-mail port to receive requests through an e-mail
server, such as POP3 or IMAP.
You can dene as many ports as you want on each Integration Server instance. The
default sever instance has an HTTP port at 5555.
Note:
The default server instance also denes a diagnostic port at 9999. The
diagnostic port uses the HTTP protocol and provides you access to the
Integration Server when it is unresponsive. For more information about the
diagnostic port, see "Diagnosing the Integration Server " on page 831.
35
Even Header
An Overview of the Server
There may be times when you want to use the standard port numbers used by web
servers: port 80 for HTTP requests and port 443 for HTTPS requests. If your Integration
Server runs on a Windows system, this is not a problem. However, if your Integration
Server runs on a UNIX system, using a port number below 1024 requires that the server
run as "root." For security reasons, Software AG discourages this practice. Instead,
run your Integration Server using an unprivileged user ID on a high number port
(for example 1024 or above) and use the port remapping capabilities present in most
rewalls to move requests to the higher numbered ports.
36
Odd Header
An Overview of the Server
Services
Client requests involve executing one or more services. The server maintains
successfully loaded services as runnable objects within the server's program space.
When you initialize the server, the server loads the services that are contained in enabled
packages into memory. When you or another administrator enable a disabled package,
the server loads services that are in that package.
Services Execute within the Integration Server's Virtual Machine
When a client invokes a service, that service runs as a thread within the Integration
Server program. Depending on what function the service is to accomplish, it can also
create additional threads to perform tasks simultaneously.
37
Even Header
An Overview of the Server
There are a number of methods you can use to send les from a client to the Integration
Server. The Integration Server provides the following automated mechanisms:
Post a le to a service via HTTP or HTTPS.
FTP a le to a service.
Submit a le to a service via a le polling port.
E-mail a le to a service as an aachment.
Note:
If you use Trading Networks, you can send some les, specically at les,
directly to Trading Networks. For more information about how Trading
Networks processes at les, see the "Dening and Managing Flat File
Document Types" chapter in webMethods Trading Networks Administrators
Guide.
When a client submits a le to the Integration Server, the server uses the appropriate
content handler to parse the contents of the le and pass them to the target service.
For all transmission methods except le polling, the client species the service to be
executed. For le polling, the server always executes the service associated with the le
polling port.
For more information about sending and receiving XML les, see webMethods Service
Development Help. For more information about sending and receiving at les, see the
Flat File Schema Developers Guide. Refer to the webMethods Integration Server Built-In
Services Reference for information about services you can invoke from the service you
write.
When the server uses HTTP or HTTPS to access data from external data sources, you can
optionally route the requests through a proxy server.
38
Odd Header
An Overview of the Server
The Server Gets Data from Local Resources or Resources on the Internet
39
Even Header
An Overview of the Server
5. The server determines whether access to the requested service is being controlled
based on the port on which the request came in. If there is no restriction, the server
continues with the execution of the service.
6. The server looks up the Access Control List (ACL) for the service and determines
whether the client is to be granted access to the service. If the ACL indicates that the
client is allowed to access the service, the server continues with the execution of the
service.
7. If auditing is enabled, the server adds an entry to the Audit Log to mark the start of
the request.
8. The server starts gathering service statistics for the service.
9. The server checks to see if the results for this service are in the service-results cache.
If service results are cached and the inputs for the cached results match the inputs
for this request, the server returns the cached results. If matching results are not
cached, the server invokes the service. If the service is a ow service, which can
consist of several services, it invokes each service in the ow.
Note:
For each service in a ow, the server performs steps 6 through 11.
10. The server ends the gathering of server statistics for the service.
11. If auditing is enabled, the server adds an entry to the Audit Log to mark the end of
the request.
12. The server encodes the service results as specied by the content type.
13. The server returns the results to the client.
Class Loaders
Integration Server employs two kinds of class loaders:
OSGi bundle class loader
Integration Server class loaders
40
Odd Header
An Overview of the Server
Note:
After you add the osgi.parentClassloader property to the cong.ini le, you
must restart Integration Server.
41
Even Header
An Overview of the Server
Classpaths
Some class loaders rely on classpaths to tell them which directories to search when
looking for classes. A classpath is a list of directories to be searched. Integration Server
uses the Integration Server classpath.
The Integration Server About screen shows the directories that make up these
classpaths. The following image shows a portion of that display.
Description
The wrapper.java.additional.202=
-Dwatt.server.prepend.classes
property of the
Software AG_directory
/proles/
IS_instance_name /conguration/
custom_wrapper.conf
42
Odd Header
An Overview of the Server
Directory or variable
Description
The wrapper.java.additional.203=
-Dwatt.server.append.classes
property of the
Software AG_directory
/proles/
IS_instance_name /conguration/
custom_wrapper.conf
43
Even Header
An Overview of the Server
Directory or variable
Description
wrapper.java.additional.202=-Dwatt.server.prepend.classes
and wrapper.java.additional.203=-Dwatt.server.append.classes
properties for the Integration Server classpath do not exist, they will still be
displayed on the Integration Server About page. If the ini.cnf le refers to jar
les that do not exist, they will also be displayed on the About page and the
following error will be wrien to the server log for each non-existent jar le:
Classpath entry in ini.cnf not found: <jar_file_name>.
The custom_wrapper.conf le contains variables that you can change to add directories
to the Java and Integration Server classpaths. Use the following variables to add
directories to the beginning and the end of the Integration Server classpath:
44
Odd Header
An Overview of the Server
To add directories
to the...
Edit...
Beginning of
the classpath
wrapper.java.additional.202=Dwatt.server.prepend.classes=
End of the
classpath
wrapper.java.additional.203=Dwatt.server.append.classes=
Although this le comes with a number of variables already specied, you can add
additional ones.
For more detailed information about where and how these variables are added to
the classpaths, see "Classpaths" on page 42. For more information about the
custom_wrapper.conf and the properties you can set, see Software AG Infrastructure
Administrator's Guide.
If you use the package class loader, the jar les containing the classes you
want to make available must be in the Integration Server_directory\instances
\instance_name \packages\packageName \code\jars directory. For more information
about using a package class loader, refer to "Using a Package Class Loader" on page
626.
How Integration Server searches for a class when no package information is
available.
45
Even Header
An Overview of the Server
When the Integration Server receives a request to load a class for which no
package information is available, by default, it will search all packages in the
Integration Server_directory\instances\instance_name \packages directory. To
potentially save search time, you can control the order in which packages are
searched by using the wa.server.classloader.pkgpriority server conguration
parameter.
The following sections provide scenarios that describe how the class
loading process works, and how the changes to the manifest.v3 le and
wa.server.classloader.pkgpriority server conguration parameter aect that process.
Scenario One: Integration Server Knows Where the Class Lives
In this scenario, a service from PackageA calls a class that Integration Server knows
resides in PackageX. PackageA is dependent on PackageX.
The manifest.v3 les for both PackageA and PackageX specify "server" as the class
loader, which means that the package class loader is to defer the search to its parent,
which in both cases is the Integration Server class loader.
1. A service in PackageA calls a class that has not yet been loaded into memory.
2. PackageA's class loader, rather than looking for the class itself, passes the request up
to its parent class loader, which is the Integration Server class loader.
3. The Integration Server class loader passes the request up to the OSGi bundle class
loader.
4. The OSGi bundle class loader does not nd the class.
5. The request comes back to the Integration Server class loader, which searches for the
class, rst in cache, and then in the Integration Server classpath.
6. The Integration Server class loader does not nd the class.
7. The request comes back to PackageA's class loader, which searches for the class,
rst in cache, and then in the following directories under the server instances
home package directory (IntegrationServer\instances\instance_name \packages
\package_name), in this order:
PackageA\code\jars
PackageA\code\classes
PackageA\lib
PackageA\resource folders
8. PackageA's class loader does not nd the class in any of these directories.
9. PackageA's class loader delegates the search to PackageX's class loader.
10. PackageX's class loader searches for the class in cache and then in:
PackageX\code\jars
46
Odd Header
An Overview of the Server
PackageX\code\classes
PackageX\lib
PackageX\resource folders
11. PackageX's class loader nds the class in PackageX's resource folder.
Scenario Two: Integration Server Does Not Know Where the Class Lives
In some cases, Integration Server will receive a request to load a class, but is not given
any information about where the class lives.
In this case, steps 1-6 are the same as in Scenario One, but because Integration Server
does not know which package contains the class, it cannot go directly to the class
loader for a particular package. Instead, Integration Server will start looking through all
packages in the Integration Server_directory\instances\instance_name \packages directory.
If you know which packages are most likely to contain the classes being searched for,
you can reduce the number of packages searched by specifying the order in which
Integration Server is to search packages. You control the search order by using the
wa.server.classloader.pkgpriority server conguration parameter. For example, you
could specify the following:
wa.server.classloader.pkgpriority=PackageD,PackageF
With this seing, Integration Server will search PackageD and PackageF for the class
before searching in PackageA, PackageB, and PackageC.
Scenario Three: Package Class Loader Does Not Defer to the Integration Server Class Loader
By default, a package class loader defers the search for a class to its parent, which is
always the Integration Server class loader. There may be times, however, when you want
the package class loader to perform the search instead of deferring to the Integration
Server class loader. For example, you might have a package that contains a newer
version of a class than the one Integration Server is using.
To use the package class loader, specify the following in the manifest.v3 le for the
package:
<value name='classloader'>package</value>
The following shows how class loading works when the package class loader does not
defer to the Integration Server class loader.
1. A service in PackageA calls a class that has not yet been loaded into memory.
2. PackageA's class loader, rather than deferring the search to the parent class
loader, performs the search itself, looking rst in cache, and then in the PackageA
directories, in this order:
PackageA\code\jars
PackageA\code\classes
PackageA\lib
47
Even Header
An Overview of the Server
PackageA\resource folders
If the package class loader does not nd the class after searching the directories
shown above, the class loader moves up the dependency chain, searching packages
on which PackageA depends.
Shared jar les that are used by services in multiple IS packages are stored within the
same package as a service and are placed in the Integration Server_directory\instances
\instance_name \lib\jars directory.
Note:
You can share jar les between multiple Integration Server instances by
placing them in the IntegrationServer\lib\jars directory. Files located at the
instance-level (i.e. IntegrationServer\instances\instance_name \lib\jars) take
precedence over the les located at the IntegrationServer\lib\jars directory.
If you need to add your own class or jar les, follow these guidelines:
If you want the le to be available just to the package that needs it, place the le in
the jar or classes directory for that package.
These les will also be available to packages that are dependent on this package.
If you change these class or jar les, you can simply reload the package to pick up
the changes; it is not necessary to restart the Integration Server.
48
Odd Header
An Overview of the Server
For more information about changing the Integration Server classpath, refer to "How the
Integration Server Classpaths Are Specied" on page 42 and "Changing Classpath
Information at Startup" on page 44.
Any jar les you place in this directory can be migrated using the Integration
Server migration utility.
Note:
You can make jar les available to all server instances by placing them at the
common level in the IntegrationServer\lib\jars\custom directory.
49
Even Header
An Overview of the Server
wa.server.classloader.pkgpriority=packageName, packageName
Species a comma-delimited list of the packages Integration Server is to search
rst when no information has been provided about the location of class. Refer to
"Scenario Two: Integration Server Does Not Know Where the Class Lives" on page
47 and "wa.server." on page 879 for more information about this property.
50
Odd Header
An Overview of the Server
Regularly check for and install updates and patches from the operating system
vendor that might aect security.
See your operating systems documentation for instructions on accomplishing these
tasks.
For information about security auditing, refer to the webMethods Audit Logging Guide.
Logging
Logging for the platform provides important data you need to monitor platform activity
and correct problems. Integration Server maintains this logging data. For complete
information and instructions about working with logging data, see the webMethods Audit
Logging Guide and "Seing Up the Server Log" on page 215.
Caching
Caching is an optimization feature that can improve the performance of services by
maintaining frequently used data in memory. Caching can signicantly improve
response time of services that retrieve information from high-trac web servers and
databases.
Integration Server uses the caching capabilities of Ehcache to provide:
Service results caching. When you enable services to cache results, Integration Server
saves the service invocation results in the cache for a specied period of time. While
the results are in cache, rather than re-invoking the service, Integration Server can
quickly retrieve the service results for subsequent clients' requests for the service.
For more information about service caching, see "Caching Service Results" on page
665.
Data caching. With Ehcache, you can dene individual caches in which services
can cache data. Services that want to cache data do so using the caching services
provided in the pub.cache folder. Ehcache enables you to cache virtually any kind
of object. Additionally, it provides advanced features such as o-heap caching and
distributed caching. For more information about using Ehcache, see "Conguring
Ehcache on Integration Server " on page 681.
51
Even Header
52
Odd Header
Starting and Stopping the Server
54
61
62
64
65
66
66
67
68
69
53
Even Header
Starting and Stopping the Server
54
Odd Header
Starting and Stopping the Server
The server can consume more les and sockets on a UNIX system than on other
systems. Therefore, if you are running the server on a UNIX system, Software AG
recommends that run it with at least 102 le descriptors. You can increase the
number of available le descriptors by entering the following command from the
UNIX command prompt before starting the server:
ulimit -n number
If you are running the Windows Server 2008 r2 operating system with the
User Account Control security feature enabled, the command prompt you
use to run the startup.bat service must be launched with full Administrator
privileges. To launch the command prompt with full Administrator
privileges, navigate to All Programs > Accessories, right-click on the
Command Prompt listing, and select the Run as Administrator option. If you
are not logged into the operating system with Administrator privileges, you
will be prompted to supply Administrator credentials.
55
Even Header
Starting and Stopping the Server
When starting a server instance from the command prompt in Integration Server, you
update the custom_wrapper.conf with the server overrides before running startup.bat/
sh.
To start a server instance from the command prompt in Integration Server
1. If you need to override seings in the conguration le, perform the following:
a. In a text editor, open the custom_wrapper.conf le from the following directory:
Software AG_directory\proles\IS_instance_name\conguration
where instance_name is the name of the Integration Server instance.
b. Add the following property to custom_wrapper.conf:
wrapper.app.parameter.n=switch
where n is the sequential number and switch_parameter is the value of the switch.
For example, to change the default port number to 8080, you would enter the
following to custom_wrapper.conf:
wrapper.app.parameter.7=-port
wrapper.app.parameter.8=8080
Description
-port
56
Odd Header
Starting and Stopping the Server
switch
Description
wrapper.app.parameter.8=8080
57
Even Header
Starting and Stopping the Server
switch
Description
facility on the Settings > Logging page and assigned to
wa.debug.level.
If you add a wrapper.app.parameter property to
custom_wrapper.conf for the -debug switch, you
must also add a wrapper.app.parameter property
in which you specify the level of detail you want to
record in the log. You can specify the following levels:
Specify...
To record...
Fatal
Error
Warn
Info
Debug
Trace
58
Odd Header
Starting and Stopping the Server
switch
Description
-log
Description
lename
none
59
Even Header
Starting and Stopping the Server
switch
Description
For more information about quiesce mode, see
"Quiescing the Server for Maintenance" on page
821.
startup.bat
For UNIX:
startup.sh
60
Odd Header
Starting and Stopping the Server
61
Even Header
Starting and Stopping the Server
If you want the Integration Server to prompt for the master password for
outbound passwords at server initialization, do not run it as a Windows
service. For more information about outbound passwords and the master
password, refer to "Securing Communications with the Server" on page
401.
You can run multiple Integration Server instances as applications and multiple
Integration Server instances as services on a single machine. For example, you can run
two instances of Integration Server as an application and two instances of Integration
Server as services on the same machine.
62
Odd Header
Starting and Stopping the Server
Note:
The user whose identity will be used to run the Integration Server as a
Windows service must have Power User privileges.
63
Even Header
Starting and Stopping the Server
service.bat -install
Note:
In the Microsoft Windows Control Panel in the Services dialog box, verify that the
service for Integration Server has been created.
3. Start the service from one of the following places:
Services dialog box in the Microsoft Windows Control Panel
Command prompt using the following command:
net start <SVCNAME>
where <SVCNAME> is the name of the service created in the previous step.
For more information about seing values in the custom_wrapper.conf le, see
Software AG Infrastructure Administrator's Guide.
3. Save and close the le.
4. Restart the server for the changes to take eect.
64
Odd Header
Starting and Stopping the Server
65
Even Header
Starting and Stopping the Server
shutdown.bat
For UNIX:
shutdown.sh
66
Odd Header
Starting and Stopping the Server
order to do this, it is necessary to know the process ID of the Integration Server process
(or server process ID) on which to perform the particular operation. You can view the
server process ID in the Integration Server Administrator About page.
To view the process ID
1. Open the Integration Server Administrator if it is not already open.
2. Click About in the upper right-hand part of the screen.
3. Scroll down to the Server Process Id eld in the Server Environment area.
67
Even Header
Starting and Stopping the Server
Server Recovery
If a hardware or software problem causes Integration Server to fail, restart the server
using the normal startup procedure. The server will aempt to perform cleanup and
initialization processes to reset the operating environment.
As part of the recovery process, the server automatically:
Reloads the cache environment to its pre-failure state.
Restores the transaction manager's guaranteed delivery queues. See "Conguring
Guaranteed Delivery" on page 671 for additional information about guaranteed
delivery recovery options.
Services that your site has created might have their own unique recovery requirements.
Consult with your developers for information about these requirements.
Some circumstances might require manual intervention to restart the server.
Tip:
68
Odd Header
Starting and Stopping the Server
should be an oine process with the Integration Server in an idle or shutdown state, i.e.
no disk activity.
Important: Implement site-specic procedures to periodically backup the critical
Integration Server data les. You can use any le-system backup utility.
Perform the backup process only when the Integration Server is shutdown or
in a quiesce state, (no disk activity). This restriction ensures that the backup
will capture these critical data les in a consistent state. Backing up an active
Integration Server may result in capturing a snapshot of the data les that
are in an inconsistent state and therefore unusable for recovery purposes.
69
Even Header
Starting and Stopping the Server
In addition to launching the JVM, the Java Service Wrapper oers features for
monitoring the JVM, logging console output, and generating thread dumps. The
following sections describe how Integration Server uses the features of the Java Service
Wrapper. For an overview of the Java Service Wrapper, see the webMethods crossproduct document, Software AG Infrastructure Administrator's Guide.
Description
wrapper.conf
custom_wrapper.conf
The following sections describe conguration changes that Integration Server supports
for Java Service Wrapper. For Integration Server, do not make any conguration changes
to the Java Service Wrapper other than the ones described in the following sections.
JVM Configuration
When the Java Service Wrapper launches the JVM, it provides conguration
seings that, among other things, specify memory seings and the directories in the
70
Odd Header
Starting and Stopping the Server
classpath. When you start Integration Server, the Java Service Wrapper receives these
conguration seings from the wrapper.conf and custom_wrapper.conf les in the
Software AG_directory\proles\IS_instance_name \conguration folder.
If you need to modify the default property seings for Integration Server, you can
override the seings using the custom_wrapper.conf le, which is located in the
Software AG_directory\proles\IS_instance_name \conguration. For more information
for conguring custom_wrapper.conf properties for Integration Server, see "Conguring
the Server" on page 107. For general information about the Java Service Wrapper, see
Software AG Infrastructure Administrator's Guide.
Logging Properties
The wrapper.console and wrapper.log properties in the wrapper conguration les
determine the content, format, and behavior of the wrapper log.
The logging seings that Integration Server installs are suitable for most environments.
However, you can modify the following properties if the installed seings do not suit
your needs. For procedures and additional information, see the webMethods crossproduct document, Software AG Infrastructure Administrator's Guide.
Property
Value
wrapper.console.format
wrapper.console.loglevel
wrapper.logfile
wrapper.logfile.format
71
Even Header
Starting and Stopping the Server
Property
Value
wrapper.logfile.loglevel
wrapper.logfile.maxsize
wrapper.logfile.maxfiles
wrapper.syslog.loglevel
Fault Monitoring
The Java Service Wrapper can monitor the JVM for the certain conditions and then
restart the JVM or perform other actions when it detects these conditions.
The following table describes the fault-monitoring features Integration Server uses or
allows you to congure. To learn more about these features, see the webMethods crossproduct document, Software AG Infrastructure Administrator's Guide.
Feature
Enabled?
User configurable?
JVM timeout
Yes
Deadlock
detection
No
Console ltering
No
72
Odd Header
Running Multiple Integration Server Instances
74
Guidelines for Running Multiple Integration Server Instances on the Same Machine .................
74
74
75
76
78
79
80
81
73
Even Header
Running Multiple Integration Server Instances
Overview
You can create and run multiple instances of Integration Server on the same host
machine with a single physical installation of webMethods Integration Server. This is
not the same as clustering, which is described in webMethods Integration Server Clustering
Guide. When running multiple instances of Integration Server on the same host machine,
each server has its own packages, conguration les, log les, and updates; however,
unlike clustering, all of the server instances can share common libraries. Sharing
the common library les reduces the amount of overhead and eort involved when
installing xes and patches on each server.
You manage each server instance separately using the Integration Server Administrator.
You can also perform certain management, conguration, and monitoring tasks from
a single location using Software AG Command Central. For information about using
Software AG Command Central to manage Integration Server instances, see the
Command Central documentation.
74
Odd Header
Running Multiple Integration Server Instances
When you create a new Integration Server instance, the script creates a new folder under
the SoftwareAG\proles\IS_instance_name directory containing OSGI component les.
The script also creates a home directory for the instance under
Integration Server_directory\instances\instance_name . The home directory contains the
predened packages described in "Predened Packages" on page 580.
If you want the server instance to use components or services contained in other
packages, you must add the packages to the instance directory. For example, if you want
the server instance to use webMethods Deployer or webMethods Mediator, you must
add the WmDeployer or WmMediator package to the instance directory. Packages are
located in the package repository, which is installed by default and is located under the
Software AG_directory\IntegrationServer\packages directory.
For information about how to create a new Integration Server instance, see "Creating
a New Integration Server Instance" on page 76. For information about how to
add packages to a server instance, see "Installing and Updating Packages on a Server
Instance" on page 78.
Syntax
At the command prompt, use the following syntax:
Integration Server_directory\instances\is_instance.batcommand parameters
If the command syntax is not correct, the script writes error information to the console.
Description
create
75
Even Header
Running Multiple Integration Server Instances
Command
Description
"Creating a New Integration Server Instance" on
page 76.
update
deletePackages
updateLanguagePack
delete
76
Odd Header
Running Multiple Integration Server Instances
Where...
Specify...
instance_name
primary_port_number
jmx_port_number
license le.
db.alias
db.type
77
Even Header
Running Multiple Integration Server Instances
Where...
Specify...
db2 - DB2
db.password
db.url
3. Optionally, add packages to the server instance. For instructions, see "Installing and
Updating Packages on a Server Instance" on page 78.
4. Start the Integration Server instance by running the startup.bat/sh le located in the
Software AG_directory \proles\IS_instance_name \bin directory.
Note:
When you install or update packages using the installer, you have the option
to install packages on the initial instance created by the installer. If you
select this option, packages are copied to that instance automatically during
installation; therefore, you do not need to run the update command on that
instance.
Note:
78
Odd Header
Running Multiple Integration Server Instances
Where...
Specify...
instance_name
package_list
79
Even Header
Running Multiple Integration Server Instances
Where...
Specify...
instance_name
package_list
The is_instance script removes the specied packages located under the
Integration Server_directory\instances\instance_name \packages\package_name
directory.
When you install or update language packs using the installer, you have
the option to install packages on the instance created by installer. If you
select this option, language packs are synchronized on that instance
automatically during installation; therefore, you do not need to run the
updateLanguagePack command on the instance created by installer.
Where...
Specify...
instance_name
mode
80
Odd Header
Running Multiple Integration Server Instances
Where...
Specify...
DSPs, HTMLs, class) from the instance. Specify one of the
following:
install to add or update language pack les. When this
Where...
Specify...
instance_name
81
Even Header
82
Odd Header
Using the Integration Server Administrator
84
84
85
85
86
88
88
83
Even Header
Using the Integration Server Administrator
If the server were running on port 4040 on a machine called QUICKSILVER, you
would type:
http://QUICKSILVER:4040
3. Log on to the server with a user name and password that has administrator
privileges.
If you just installed the Integration Server, you can use the following default values:
User Name:
Administrator
Password:
manage
Important: Use the exact combination of upper- and lowercase characters shown
above; user names and passwords are case sensitive.
84
Odd Header
Using the Integration Server Administrator
Administrator
Password:
manage
Important: Use the exact combination of upper- and lowercase characters shown
above; user names and passwords are case sensitive.
Entry
Description
85
Even Header
Using the Integration Server Administrator
Field
Entry
Server Host
Server Port
Single Sign On
Use Secure
Connection
Color
3. Click OK.
Basic Operation
When you start the Integration Server Administrator, your browser displays the
Statistics screen.
86
Odd Header
Using the Integration Server Administrator
The Navigation panel on the left side of the screen displays the names of menus from
which you can select a task. To start a task, click a task name in the Navigation panel.
The server displays a screen that corresponds to the task you select.
Getting Help
You can obtain information about the Integration Server Administrator by clicking
the Help link in the upper right corner of any Integration Server Administrator screen.
The help system displays a description of the parameters for the screen and a list of
87
Even Header
Using the Integration Server Administrator
procedures you can perform from the screen. From this window, click Show Navigation
Area to view the help system's table of contents from which you can search for a specic
procedure or screen description.
88
Odd Header
Managing Users and Groups
90
91
98
99
89
Even Header
Managing Users and Groups
90
Odd Header
Managing Users and Groups
Group membership. The group membership identies the groups to which a user
belongs. Access to the server's resources is controlled at the group level:
Only users that are members of the Administrators group can congure and
manage the server using the Integration Server Administrator. For more information
about controlling access to the Integration Server Administrator, see "FIPS 140-2
Compliance" on page 980.
Only users that are members of the Developers group can connect to the server from
Software AG Designer to create, modify, and delete services. For information, see
"Adding a Developer User" on page 95.
The server protects access to services and les using Access Control Lists (ACLs).
You set up ACLs that identify groups that are allowed or not allowed to access a
resource. For more information about protecting services and les, see "Controlling
Access to Resources with ACLs" on page 435.
91
Even Header
Managing Users and Groups
User
Groups
Description
Administrator
Everybody
Administrators
Replicators
Default
Everybody
Anonymous
Developer
Everybody
Developers
Replicator
Everybody
Replicators
Specify...
User Names
92
Odd Header
Managing Users and Groups
Specify...
Note: The string "SAMLart" is a reserved word in Integration
Server. Do not create an Integration Server user name
consisting of this word.
Password
Re-Enter
Password
93
Even Header
Managing Users and Groups
5. Click Remove Users. The server issues a prompt to verify that you want to delete the
user account. Click OK to remove the user account.
94
Odd Header
Managing Users and Groups
95
Even Header
Managing Users and Groups
Changing Passwords
You can change the password for your user account or other user accounts. Keep the
following points in mind when changing passwords:
Do not change a password if you are outside of the corporate rewall and you did
not use SSL to connect to the Integration Server.
Passwords cannot be null values or empty strings.
Be sure to select passwords that are dicult to guess. For example, use a mixture of
upper- and lowercase leers, numbers, and special characters. Do not use a name,
phone number, social security number, license plate or other generally available
information; the security of your system depends on it.
You cannot use the Integration Server Administrator or Software AG Designer to
administer users or groups stored in an external directory. This restriction includes
changing the passwords of these users.
To change a user's password
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click User Management.
3. In the Users section of the screen, select the user name for the user whose password
you want to change and click change password.
4. Enter the following information:
For this parameter...
Specify...
New Password
Confirm
Password
96
Odd Header
Managing Users and Groups
Description
Default
Enable Password
Change?
Yes
Minimum Password
Length
Minimum Number of
Upper Case Characters
Minimum Number of
Lower Case Characters
Minimum Number of
Digits
97
Even Header
Managing Users and Groups
Field
Description
Default
Minimum Number of
Special Characters
(neither alphabetic nor
digits)
Disabling a User
Use the following procedure to disable a user.
Important: Before you disable the Administrator user, make sure you have dened
another user with administrator privileges so you are not locked out of the
server.
98
Odd Header
Managing Users and Groups
To disable a user
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click User Management.
3. Click Enable and Disable Users.
4. In the Enabled Users list select (highlight) the user or users you want to disable.
To select additional users without deselecting currently selected users, press the
CTRL key while you click on the users you want to select. To deselect a user, press
the CTRL key while you click the currently selected entry.
5. At the boom of the Enabled Users area of the screen click
.
The server moves the selected users to the Disabled Users area of the screen.
6. Click Save Changes.
Enabling a User
Use the following procedure to enable a user. The only time you will need to enable a
user is if the system administrator explicitly disabled it.
To enable a user
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click User Management.
3. Click Enable and Disable Users.
4. In the Disabled Users list select (highlight) the user or users you want to enable.
To select additional users without deselecting currently selected users, press the
CTRL key while you click on the users you want to select. To deselect a user, press
the CTRL key while you click the currently selected entry.
5. At the boom of the Disabled Users area of the screen click
.
The server moves the selected users to the Enabled Users area of the screen.
6. Click Save Changes.
Defining Groups
A group is a named collection of users that share privileges. The privileges can be:
Administrator privileges
Replicator privileges
99
Even Header
Managing Users and Groups
Developer privileges
Privileges to invoke a service
Privileges to allow the server to serve les
Privileges to invoke a service or access les are granted and denied by Access Control
Lists (ACLs) that you set up. When an administrator creates ACLs, he or she identies
groups that are allowed to access services and les and groups that are denied access to
services and les.
Administrator, replicator, and developer privileges are typically granted by adding a
user to the Administrators, Replicators, or Developers group, respectively. Alternatively,
you can create new groups and add them to the allow lists of the Administrators,
Replicators, or Developers ACLs.
Create groups that identify groups of users that will share the same privileges. When
you create a group denition, you specify a group name and the members of the group.
Group name. A group name is a unique name that identies the group. You can
use any name, for example, a name that denes a department (Marketing) or job
function (Programmers).
Members. List of user names that are members of the group.
Predefined Groups
Integration Server is installed with the following predened groups.
Group Name
Members
Description
Administrators
Administrator
Anonymous
Default
Developers
Developer
100
Odd Header
Managing Users and Groups
Group Name
Members
Description
privileges to connect to the server from the
Designer.
Membership in this group gives substantial
Important:
power to aect the conguration of
the Integration Server. Use caution in
assigning membership in this group to
individuals who can be trusted to use the
privilege carefully.
Everybody
Administrator
Default
Developer
Replicator
Replicators
Administrator
Replicator
Adding Groups
Use the following procedure to add groups.
To add a new group to the server
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click User Management.
101
Even Header
Managing Users and Groups
The Groups area of the screen (on the right) contains two lists. Users in this Group is a
list of users currently in the group. Remaining Users is a list of users not currently in
the group.
3. Under Groups, in the Select group list, select the group to which you want to add a
user.
102
Odd Header
Managing Users and Groups
4. In the Remaining Users list select (highlight) the user or users you want to add to the
group.
To select additional users without deselecting currently selected users, press the
CTRL key while you click on the users you want to select. To deselect a user, press
the CTRL key while you click the currently selected entry.
5. After you have selected all the users you want to add to the group, click
. The server moves the selected users to the Users
Currently in this Group list.
6. Click Save Changes.
The Groups area of the screen (on the right) contains two lists. Users in this Group is a
list of users currently in the group. Remaining Users is a list of users not currently in
the group.
3. Under Groups, in the Select group list, select the group from which you want to
remove a user.
103
Even Header
Managing Users and Groups
4. In the Users in this Group area of the screen, select (highlight) users that you want to
remove from the group.
To select additional users without deselecting currently selected users, press the
CTRL key while you click on the users you want to select. To deselect a user, press
the CTRL key while you click the currently selected entry.
5. At the boom of the Users in this Group area of the screen click
. The server moves the selected users to the Remaining
Users area of the screen.
The Groups area of the screen (on the right) contains two lists. Users Currently in this
Group is a list of users currently in the selected group. Remaining Users is a list of users
not currently in the selected group.
3. Under Groups, in the Select group list, select the group for which you want to view
membership.
4. The server displays the users in the Users in this Group list.
104
Odd Header
Managing Users and Groups
Removing Groups
Use the following procedure to remove groups that you no longer need.
Note:
105
Even Header
106
Odd Header
Configuring the Server
108
110
112
114
117
121
Configuring Where the Integration Server Writes Logging, Status, and Other Information ........
129
129
130
Configuring Integration Server to Work with Servers Running HTTP 1.0 and Above ................
131
131
132
132
133
134
136
136
137
107
Even Header
Configuring the Server
108
Odd Header
Configuring the Server
Integration Server updates the expiration date automatically after you click
Save Changes. It is not necessary to restart Integration Server.
Renewal Reminders
Approximately 30 days before your license expires, Integration Server sends an e-mail
message to the administrative-message recipient, reminding him or her to renew the
license. In addition, the server displays the following message at the top of all pages on
the Integration Server Administrator:
License key expires in about xxx days ... contact Software AGfor a new key.
Renewing a Key
If you need to obtain a new key or renew your license, contact your Software AG sales
representative.
Licensed Sessions
Your license allows a specied number of users to have sessions in the Integration Server
concurrently. The Integration Server creates a session when a developer connects to
the server from Software AG Designer or an IS client connects to the server to execute
services. If a user aempts to access the server while the maximum number of sessions
are in use, the server rejects the request and returns the following error to the user:
Server has reached client limit.
109
Even Header
Configuring the Server
You can view the current number of active sessions and the licensed session limit using
the Statistics screen in the Integration Server Administrator. This value is permanently
associated with your license key and can only be changed by obtaining a new license.
Any connection made to the server by a non-Administrator user (that is, a user that is
not part of the Administrators group) consumes a licensed session. The session exists
until it times out (based on the server's Session Timeout seing) or the requester stops
the session by invoking the wm.server:disconnect service.
If a user invokes a stateless service and a session does not already exist for the user, the
server creates a session. If the user is a non-Administrator, the user consumes a licensed
session. After the service completes, the server removes the session and reduces the
number of licensed sessions in use.
Note:
110
Odd Header
Configuring the Server
message to alert you to the reduced thread availability. The server generates another
journal log message when the number of available threads is greater than the threshold.
To view system threads that are running on the server, navigate to the Server > Statistics >
System Threads screen. See Canceling or Killing a Thread for more information.
To configure the server thread pool
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Resources.
3. Click Edit Resource Settings.
4. Under Server Thread Pool, update the server thread pool seings, as follows:
For this parameter...
Specify...
Maximum Threads
Minimum Threads
Available Threads
Warning Threshold
111
Even Header
Configuring the Server
Specify...
triggers. For more information, see Managing
webMethods Messaging Triggers.
Scheduler Thread
Throttle
112
Odd Header
Configuring the Server
reduce the timeout value to 6 or 7 minutes. You may need to experiment with this
seing to nd the appropriate value for your site. By default, the server uses a
timeout limit of 10 minutes. This is an appropriate value for most sites. However,
you may have to increase this value if your clients normally have lengthy delays
(greater than 10 minutes) between successive requests.
4. Click Save Changes.
Specify...
113
Even Header
Configuring the Server
Specify...
Maximum Stateful
Sessions
Description
User Agent
Species the value that the server uses in the HTTP User
Agent request header that it sends when requesting a web
document. The User Agent header tells a web server what
type of browser is making the request. In the case of the
Integration Server, the User Agent header indicates the
type of browser that the Integration Server appears to be
to the web server. Some web servers examine this header
114
Odd Header
Configuring the Server
Parameter
Description
to determine a client's capabilities so they can tailor their
responses accordingly.
When you install the Integration Server, the User Agent
parameter is set to Mozilla/4.0 [en] (WinNT; I). You can
change this value as you need; however, the value you
set should satisfy the majority of services that your server
executes.
Be sure your developers know the User Agent value your
server uses. If their applications require a dierent User
Agent, they can override the server's default at run time by
including an HTTP User Agent header with their request.
Maximum
Redirects
Timeout
115
Even Header
Configuring the Server
Parameter
Description
Retries
Specify...
User Agent
Maximum Redirects
Timeout
116
Odd Header
Configuring the Server
Specify...
Retries
117
Even Header
Configuring the Server
Specify...
Alias
Name that you want to use for the alias. You can give the
remote server any alias name but it cannot include the
following illegal characters: #-&@^!%*:$./\\`;,~+=)(|}{][><" .
Host Name or IP
Address
Port Number
User Name
Password
Execute ACL
118
Odd Header
Configuring the Server
Specify...
be retained for any given remote host. In other words,
this is not a maximum number of connections that can be
established, but a limit on the number of inactive client
connections to retain for reuse.
Use SSL
Keystore Alias
(optional)
Retry Server
119
Even Header
Configuring the Server
Specify...
Servers in the cluster. Instead, the service will immediately
try using the retry server specied on this screen.
icon in the Test column for the alias you want to test.
The server displays a status line that indicates whether the connection is successful
or not. The status line is displayed above the list of existing aliases.
Editing an Alias
If you need to update the information for an alias, you can edit it to make your changes.
Use the following procedure to edit an alias.
To edit an alias for a remote server
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Remote Servers.
3. Locate the alias you want to edit and click on the alias name.
4. Update the information for the alias.
5. Click Save Changes.
Deleting an Alias
If you no longer need an alias for a remote server, you can delete it. Use the following
procedure to delete an alias.
To delete an alias for a remote server
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Remote Servers.
120
Odd Header
Configuring the Server
If you have congured and enabled a SOCKS proxy server alias, it acts as a
fallback proxy server for HTTP, HTTPS, and FTP proxy server aliases. Even if
a SOCKS proxy is set as the default proxy server alias, Integration Server gives
precedence to the congured HTTP, HTTPS, and FTP proxy server aliases for
the corresponding outbound requests before aempting to connect through
the SOCKS proxy alias.
121
Even Header
Configuring the Server
The following table describes how Integration Server determines which proxy server to
use when sending a request. This process applies to the HTTP, HTTPS, FTP, and SOCKS
protocols.
Proxy
Server Alias
Specified?
Default Proxy
Server Alias
Exists?
Yes
NA
No
Yes
122
Odd Header
Configuring the Server
Proxy
Server Alias
Specified?
Default Proxy
Server Alias
Exists?
wa.net.proxy.fallbackToDirectConnection
parameter.
No
No
123
Even Header
Configuring the Server
Specify...
Alias
Host Name or IP
Address
Port Number
Password (optional)
Protocol
Proxy Type
124
Odd Header
Configuring the Server
Specify...
Connect to the proxy server, but do not log into it. Then
send the following:
USER ftp_user@ftp_host
PASS ftp_password
3. site command
Connect to the proxy server, and log into it with:
USER proxy_user
PASS proxy_password
4. open command
Connect to the proxy server, and log into it with:
USER proxy_user
PASS proxy_password
5. ftp_user@proxy_user@ftp_host
Connect to the proxy server and log into it. Then send
the following:
USER ftp_user@proxy_user@ftp_host
PASS ftp_password@proxy_password
6. proxy_user@ftp_host
Connect to the proxy server, and log into it with:
USER proxy_user@ftp_host
PASS proxy_password
125
Even Header
Configuring the Server
Specify...
PASS ftp_password
7. ftp_user@ftp_host proxy_user
Connect to the proxy server, but do not log into it. Then
send the following:
USER ftp_user@ftp_host proxy_user
PASS ftp_password
ACCT proxy_password
SOCKS Version
Default
126
Odd Header
Configuring the Server
127
Even Header
Configuring the Server
3. On the Proxy Servers List table, under Alias column, click on the name of the proxy
server alias to use as the default.
4. Under Proxy Server Alias Properties, click Yes in the Default section to make this your
new default proxy server.
5. Click Save Changes.
If another proxy server alias is already congured as the default proxy server alias
for that protocol, Integration Server displays a dialog box that prompts you to
conrm the change.
6. Click OK to change the default proxy server alias.
icon in
Integration Server displays a dialog box that prompts you to conrm your action.
4. Click OK to delete the selected proxy server alias.
128
Odd Header
Configuring the Server
After you connect the database components to the JDBC connection pools,
Integration Server will begin writing to the external RDBMS. You do not
have to set any properties.
This service migrates scheduled tasks only; certicate mappings and runtime data stored in the embedded database will not be migrated.
4. Navigate to the Security > Certificates > Client Certificates screen on the Integration
Server Administrator and re-specify your certicate mappings. See Importing
webMethods Integration Server Administrators Guide Version 9.10
129
Even Header
Configuring the Server
130
Odd Header
Configuring the Server
Default Setting
Controlling Property
wa.server.leEncoding
UTF-8
wa.server.netEncoding
Important: Consult with Software AG Global Support before changing these seings.
The default seings are appropriate in most cases. Seing them incorrectly
can cause unpredictable results.
131
Even Header
Configuring the Server
Note:
If your Integration Server runs on a UNIX system, you must also modify
the LD_LIBRARY_PATH property so that it points to the location of the JDK
or JRE installation directory.
132
Odd Header
Configuring the Server
If you change the Java location and you use Integration Server to
develop and compile Java services, you must also change the value of the
wa.server.compile conguration parameter. For more information about
wa.sever.compile, see "Server Conguration Parameters" on page 851.
Description
wrapper.java.initmemory
wrapper.java.maxmemory
Your capacity planning and performance analysis should indicate whether you need to
set higher maximum and minimum heap size values.
To change the heap size
1. Open the custom_wrapper.conf le in a text editor. You can nd the
custom_wrapper.conf le in the following location:
Software AG_directory\proles\IS_instance_name \conguration
2. Set the wrapper.java.initmemory and wrapper.java.maxmemory parameters so
that they specify the minimum and maximum heap size required by Integration
Server. For example:
wrapper.java.initmemory=256
wrapper.java.maxmemory=512
133
Even Header
Configuring the Server
For detailed instructions on publishing and retracting metadata, see webMethods Service
Development Help. For information about administering the shared library in CentraSite,
see the CentraSite documentation.
134
Odd Header
Configuring the Server
Specify...
IS Identifier
CentraSite URL
User Name
Password
135
Even Header
Configuring the Server
136
Odd Header
Configuring the Server
3. If Integration Server and the debugging tool are on dierent machines and you
require a rewall port, open a rewall port for the debug port.
4. Run startDebugMode.bat.
Integration Server logs the following on your console:
"Debug enabled (portNumber )"
Listening for transport dt_socket at address: portNumber
To use CORS, both the server and the client must communicate with the
CORS headers as dened by the CORS standard.
137
Even Header
Configuring the Server
or
watt.server.cors.allowedOrigins=<protocol>://<hostname>:<port>
The values are case-sensitive. Use a space or comma delimiter to specify multiple
values. You can use an asterisk (*) to indicate that any URI or origin is allowed.
For more information about seing the wa.server.cors.allowedOrigins service
conguration parameter, see "Server Conguration Parameters" on page 851.
5. Optionally, set any of the following parameters for CORS processing:
If you want to...
Type...
watt.server.cors.exposedHeaders=
<value1,value2,value3>
watt.server.cors.host=<hostname>:<port>
watt.server.cors.maxAge= <number
of seconds>
watt.server.cors.supportsCredentials=true
watt.server.cors.supportedHeaders=
<header1,header2,header3>
138
Odd Header
Configuring the Server
Type...
Where header# is a header that a client
can include in an actual request. Examine
your server-side code to determine which
request headers, if any, are read by your
server application and need to be explicitly
allowed.
watt.server.cors.supportedMethods=
<method1,method2,method3>
139
Even Header
140
Odd Header
Managing JDBC Pools
142
143
146
153
141
Even Header
Managing JDBC Pools
Overview
When you choose to use an external RDBMS while installing Integration Server, the
installer asks you to supply the database connection. From this information, the installer
creates a JDBC connection pool and congures Integration Server to write the following
data to the external RDMS using that pool:
IS Internal
IS Core Audit Log
Cross Reference
Distributed Locking
Document History
Process Audit Log
Process Engine
To create additional JDBC connection pools or recongure Integration Server to write
dierent types of data using dierent pools, you can do so using the Integration Server
Administrator. The JDBC Pools screen enables you to specify the connection to a
database server that hosts database components. The JDBC Pools screen enables you to
manage the following:
Functional aliases
Pool aliases
Driver aliases
A functional alias is a connection pool that corresponds to a specic database component
(such as Scheduled Tasks and the Trading Networks Audit Log). The functional alias
directs auditing data and other information to a particular JDBC database. Functional
aliases are predened for the Integration Server during installation. You cannot add
or delete functional aliases, but you can change the JDBC connection pool to which a
functional alias is assigned. For more information about changing the JDBC connection
pool for functional aliases, see "Assigning Connection Pools to Functional Aliases" on
page 143.
You direct each function to write to its database components by pointing the function at
the appropriate connection pool.
The pool alias, also called a connection pool alias, denes the location and connection
parameters for the database. Integration Server uses this information to interact with
the database resource. When you create a pool alias denition, you must specify a driver
alias that identies a database driver to Integration Server. Integration Server uses this
database driver to connect to the dened database resource. For more information about
pool aliases, see "Managing Pool Aliases" on page 146. For more information about
driver aliases, see "Managing Driver Aliases" on page 153.
142
Odd Header
Managing JDBC Pools
143
Even Header
Managing JDBC Pools
in the Test
Integration Server Administrator displays a status line that indicates whether the
connection to the database is successful. The status line is displayed at the top of the
screen.
9. Repeat the previous steps for all function aliases to which you want to assign a
connection pool.
10. If you created a connection pool for the My webMethods Server database component
and pointed the CentralUsers function at it, go to the Settings > Resources screen and
make sure the MWS SAML Resolver URL eld is pointing to your My webMethods
Server host and port.
11. Restart Integration Server.
144
Odd Header
Managing JDBC Pools
Integration Server Administrator displays a status line that indicates whether the
connection to the database is successful. The status line is displayed at the top of the
screen.
145
Even Header
Managing JDBC Pools
Fail-fast mode is enabled for a JDBC functional alias when the Fail-Fast Mode Enabled
option is set to Yes on the Settings > JDBC Pools > Functional Definitions > Edit page for the
JDBC functional alias. The Currently in Fail-Fast Mode? eld indicates whether or not the
JDBC functional alias denition is currently in fail-fast mode.
Fail-fast mode can improve performance when used with synchronous audit logging.
For information about using fail-fast mode with audit logging, see the webMethods Audit
Logging Guide.
The database driver alias you want to use to connect to the pool must exist
before you can create a pool alias. For more information about creating
database driver aliases, see "Creating Database Driver Alias Denitions" on
page 153.
Specify...
Alias Name
Alias Description
146
Odd Header
Managing JDBC Pools
Specify...
Associated Driver
Alias
Database URL
URL for the database server. Sample URL formats for the
DataDirect Connect JDBC 5.1 driver are displayed Sample
Database URL.
Use the DataDirect Connect connection option
Important:
MaxPooledStatements=35 on all database URLs
except those for Trading Networks. This connection
option improves performance by caching prepared
statements. (Trading Networks caches its prepared
statements using its own pooling mechanism).
For DB2, if Integration Server will connect to a schema
Important:
other than the default schema for the specied
database user, you must specify these connection
options in the URL:
;AlternateId=schema;"InitializationString=
(SET CURRENT PATH=current_path,schema)";
MaxPooledStatements=35
Description
Spy
147
Even Header
Managing JDBC Pools
Specify...
Snoop
Spy Attributes
148
Odd Header
Managing JDBC Pools
Specify...
Note: For DB2, include the following command at the end of
the value:
ddtdbg.ProtocolTraceEBCDIC=true
Password
Minimum
Connections
Maximum
Connections
149
Even Header
Managing JDBC Pools
Specify...
Calculate this value as part of the total possible number
of connections that could be opened simultaneously by
all functions and applications that write to the database.
Make sure the total number does not exceed the database's
connection limit. If one of the applications opens more
connections than the database allows, the database will reject
subsequent requests for connections from any application.
To continue the previous example, if Trading Networks also
writes to the database and has a pool that could open up to
5 connections, you could specify only 17 as the maximum
number of connections for the current pool. The IS Core
Audit Log pool instance could use up to 17 connections, and
the Document History pool instance could use the remaining
5 connections.
Available
Connections
Warning
Threshold
Waiting Thread
Threshold Count
5. Make sure Integration Server can connect to the database by clicking Test Connection.
The status line is displayed at the top of the screen.
6. Click Save Settings.
150
Odd Header
Managing JDBC Pools
Specify...
Copy From
The existing pool alias you want to copy. When you select an
existing pool alias, Integration Server uses the values from
the selected pool alias to populate the values of the pool alias
you are creating, except for the Alias Name, which is specied
in the Alias Name parameter.
Alias Name
Unique name to use for the pool alias. The name can
include any characters that are valid for a le name in your
operating system.
151
Even Header
Managing JDBC Pools
Integration Server Administrator displays a status line that indicates whether the
connection pool alias is valid. The status line is displayed at the top of the screen.
4. Integration Server Administrator displays a dialog box that prompts you to conrm
your action. Click OK to conrm that you want to delete the connection pool alias.
152
Odd Header
Managing JDBC Pools
Specify...
Alias Name
Alias name to use for the driver. The name can be any length
and contain any characters.
Alias Description
153
Even Header
Managing JDBC Pools
icon in
4. Integration Server Administrator displays a dialog box that prompts you to conrm
your action. Click OK to conrm that you want to delete the database driver alias.
154
Odd Header
Configuring Ports
9 Configuring Ports
About Ports ................................................................................................................................
156
159
161
168
176
183
187
189
196
200
205
206
206
207
208
209
210
210
211
212
213
155
Even Header
Configuring Ports
About Ports
Integration Server listens for requests on ports that you specify. Each port is associated
with a specic type of protocol: HTTP, HTTPS, FTP, FTPS, e-mail, or le polling. In
addition to these port types, Integration Server also provides a diagnostic port, a quiesce
port, and two ports used by webMethods Enterprise Gateway.
To...
Refer to...
HTTP
HTTPS
Submit requests to
the server using SSL
encryption.
FTP
FTPS
File polling
Diagnostic
156
Odd Header
Configuring Ports
To...
Refer to...
Quiesce
Enterprise
Gateway
Server
"Conguring webMethods
Enterprise Gateway " on page
493
Internal Server
"Conguring webMethods
Enterprise Gateway " on page
493
Default Ports
The default Integration Server instance has the following pre-congured ports:
Alias
Protocol
Port Type
Port
Number
DefaultPrimary
HTTP
Primary
5555
DefaultDiagnostic
HTTP
Diagnostic
9999
Note:
If you are running multiple Integration Servers on the same machine, the primary and
diagnostic port numbers on each server must be unique. For more information about
running multiple Integration Server instances, see "Running Multiple Integration Server
Instances" on page 73.
157
Even Header
Configuring Ports
158
Odd Header
Configuring Ports
Integration Server uses the naming conventions described above to create an alias for a
port deployed from an earlier version of Integration Server and for a port installed with
a package created on an earlier version of Integration Server.
Note:
Package Associations
All ports are associated with a package. By default, they are associated with WmRoot.
You can associate all port types except the diagnostic port with an application package.
By doing so, when you replicate the package, the package continues to use a port with
the same number on the new server. This feature is useful if you create an application
that expects input on a specic port. The application will continue to work after it is
replicated to another server.
Important: Be careful when seing up a port that is associated with a package. When
copied to the target server, the new port might decrease security on that
system. For example, suppose you replicate a package that is associated
with an HTTP port at 5556. The replication process creates an HTTP port
at 5556 on the target server. If the target server normally uses only HTTPS
ports because of their greater security, then the new port presents a possible
security hole on that server.
159
Even Header
Configuring Ports
AS/400 Considerations
The port queue is the number of outstanding inbound connections that are queued in a
TCP/IP stack. If your server runs on AS/400, you should limit the size of the port queue
by adding the line wa.server.portQueue=511 to the server property seings.
For instructions on adding server property seings, see "Working with Extended
Conguration Seings" on page 130.
Bind Addresses
When you add a port, you can specify an IP address to bind to the port. Specify a bind
address in the following situations:
Your machine has multiple IP addresses, and you want the port to use a specic
address.
You want multiple ports to use the same port number. In this case, each port must
specify a dierent bind address. For example, if port 7777 is associated with a bind
address, you cannot add another port 7777 that does not specify a bind address.
If you do not specify a bind address, the port listens to all network interfaces.
160
Odd Header
Configuring Ports
for the truststore prior to using them with Integration Server. For information, see
"HTTPS Ports" on page 454.
If your Integration Server runs on a UNIX system, using a port number below
1024 requires that the server run as root. For security reasons, Software AG
discourages this practice. Instead, run your Integration Server using an
unprivileged user ID on a high number port (for example 1024 or above) and
use the port remapping capabilities present in most rewalls to move requests
to the higher numbered ports.
Specify...
Enable
Port
Alias
161
Even Header
Configuring Ports
Specify...
in length and include one or more of the following:
leers (a -z, A-Z), numbers (0-9), underscore (_),
period (.), and hyphen (-).
Description
Package Name
Backlog
Threadpool
162
Odd Header
Configuring Ports
Specify...
enabled, requests coming into this port will not have
to compete with other server functions for threads.
To set up a private thread pool for requests coming
to this port, click Enable. You can change or accept the
default seings given below:
Threadpool Min refers to the minimum number of
threads for this private threadpool. The default is 1.
Threadpool Max refers to the maximum number of
threads for this private thread pool. The default is 5.
Threadpool Priority refers to the Java thread priority.
The default is 5.
Use this seing with extreme care because it will
Important:
aect server performance and throughput.
If you do not need to use the Threadpool feature, click
Disable.
When you view the ports details, the server reports
the total number of private threadpool threads
currently in use for the port.
Specify...
Client Authentication
Description
Username/Password
Digest
163
Even Header
Configuring Ports
Specify...
requesting for authentication
information. If the client
provides the required
authentication information,
Integration Server veries and
validates the request.
A port that is congured
to use password digest for
authentication of client
requests will process a request
from a user only if the user is
congured to allow password
digest for authentication.
For more information about
conguring a user for digest
authentication, see "Adding
User Accounts" on page 92.
Request Kerberos
Ticket
Require Kerberos
Ticket
164
Odd Header
Configuring Ports
Specify...
authentication information,
Integration Server returns an
HTTP WWW-Authenticate
header with negotiate scheme
to the client requesting for
authentication information. If
the client provides the required
authentication information,
Integration Server veries and
validates the request.
Kerberos Properties
(Optional)
Principal Password
165
Even Header
Configuring Ports
Specify...
the principals and their
passwords for authorization.
The passwords may be
encrypted using dierent
encryption algorithms.
If the JAAS login context
contains useKeyTab=false,
you must specify the principal
password.
Retype Principal
Password
Service Principal
Name Format
Service Principal
Name
166
Odd Header
Configuring Ports
For more information about seing access mode for a port and controlling IP access
for a port, see "Controlling Access to Resources by Port" on page 422
9. On the Ports screen, also check the list of ports to ensure that the status in the Enabled
column is Yes. If it is not, click No to enable the port.
Advanced Controls
By default, Integration Server accepts port connections requests as soon as it receives
them. This can be a problem if the port receives multiple requests simultaneously and
does not have the resources to handle them. You can handle this by specifying a delay
value using the Advanced Controls screen. With a delay value in place, Integration
Server will wait the specied number of milliseconds before accepting a connection
request on this port. The Advanced Controls screen provides you the capability to
control the rate at which the listener accepts connections, over the size of the private
thread pool, if it was enabled.
Specify...
Listener controls
167
Even Header
Configuring Ports
Specify...
Decrease By. Decreases the time that the listener will
wait before accepting new client connections.
Set To (Delay ms). Sets the delay time interval in
milliseconds.
168
Odd Header
Configuring Ports
Specify...
Enable
Port
Alias
Description
Package name
Backlog
169
Even Header
Configuring Ports
Specify...
Note: This parameter does not apply to disabled
ports. Integration Server refuses requests sent to
disabled ports.
Threadpool
170
Odd Header
Configuring Ports
Specify...
Use JSSE
Client Authentication
Description
Username/Password
Digest
171
Even Header
Configuring Ports
Specify...
to allow password digest
for authentication. For
more information about
conguring a user for digest
authentication, see "Adding
User Accounts" on page 92.
Request Client
Certificates
Require Client
Certificates
Request Kerberos
Ticket
172
Odd Header
Configuring Ports
Specify...
the Negotiate authentication
scheme. If it does not nd
the ticket, Integration Server
tries to authenticate using
the client certicates from
the SSL handshake. If there
are no client certicates,
Integration Server, uses user
name and password for
basic authentication. If the
client does not provide any
authentication information,
Integration Server returns an
HTTP WWW-Authenticate
header with negotiate scheme
to the client requesting for
authentication information. If
the client provides the required
authentication information,
Integration Server veries and
validates the request.
Require Kerberos
Ticket
Kerberos Properties
(Optional)
173
Even Header
Configuring Ports
Specify...
conguring Kerberos authentication, see "Kerberos
Authentication" on page 450.
JAAS Context
Principal Password
Retype Principal
Password
174
Odd Header
Configuring Ports
Specify...
Service Principal
Name Format
Service Principal
Name
Use these seings only if you want to use a dierent set of credentials from
the ones specied on the Certicates Screen.
Specify...
Keystore Alias
175
Even Header
Configuring Ports
Specify...
For more information, see "Creating Keystore Aliases"
on page 410.
Key Alias
Truststore Alias
176
Odd Header
Configuring Ports
Specify...
Package Name
177
Even Header
Configuring Ports
Specify...
When you enable the package, the server enables the
port. When you disable the package, the server disables
the port. If you are performing special le handling,
specify the package that contains the services that
perform that processing. If you want to process at les
from this port, select WmFlatFile, which contains built-in
services you can use to process at les.
Note: If you replicate this package, whether to a server
on the same machine or a server on a separate
machine, a le polling port with the same seings
is created on the target server. If a le polling port
already exists on the target server, its seings remain
intact. If the original and target servers reside on the
same machine, they will share the same monitoring
directory. If the target server resides on another
machine, by default, another monitoring directory
will be created on the target server's machine.
Alias
Description
Specify...
Monitoring Directory
Working Directory
(optional)
Completion Directory
(optional)
178
Odd Header
Configuring Ports
Specify...
Monitoring Directory or Working Directory. The default
sub-directory, MonitoringDirectory \..\Done, is
automatically created if no directory is specied.
Note: Integration Server will not move a processed
le from the Working Directory to the Completion
Directory if the processed le has the same
name as a le that already exists in the
Completed Directory. To ensure that le names
are unique, you can instruct Integration
Server to append a time stamp to a le before
moving it to the Completion Directory. To do
this, update the properties.cnf le to include
appendTimeStampToFileName=true.
The properties.cnf le is located here:
Integration Server_directory\instances
\instanceName \packages\WmFlatFile\cong
If the properties.cnf le does not exist, create it.
Error Directory(optional)
Content Type
179
Even Header
Configuring Ports
Specify...
Note: When the content type is XML, the at le parser
uses UTF-8 as the default encoding. To override
the default encoding, update the properties.cnf
le to include lepollingport=encodingType
where encodingType is the encoding that you
want the at le parser to use for parsing XML
les.
The properties.cnf le is located here:
Integration Server_directory\instances
\instanceName \packages\WmFlatFile\cong
If the properties.cnf le does not exist, create it.
Whether Integration Server is to poll all subdirectories in the Monitoring Directory. Select Yes or No.
Enable Clustering
8. Under Security, in the Run services as user parameter, specify the user name you want
to use to run the services assigned to the le polling directory. Click
to lookup
and select a user. The user can be an internal or external user.
9. Under Message Processing, supply the following information:
For this parameter...
Specify...
Enable
Processing Service
180
Odd Header
Configuring Ports
Specify...
service when the le has been copied to the Working
directory. This service should be the only service
available from this port.
If you change the processing service for a le
Important:
polling port, you must also change the list of
services available from this port to contain
just the new service. See below for more
information.
181
Even Header
Configuring Ports
Specify...
Cleanup At Startup
Maximum Number of
Invocation Threads
g. If you change the processing service for a le polling port, remember to change
the Allow List for the port as well. Follow the procedure described above to alter
the allowed service list.
182
Odd Header
Configuring Ports
Specify...
Enable
183
Even Header
Configuring Ports
Specify...
Port
Alias
Description
Package Name
184
Odd Header
Configuring Ports
Specify...
the client should connect to create a data connection.
If the FTPS port is behind a NAT server, however,
the address of the host on which Integration Server
runs is not visible to the FTPS client. Consequently
the PORT command does not contain the information
the client needs to connect to the server. To remedy
this situation, you can specify a value for the
wa.net.ftpPassiveLocalAddr property in the
server conguration le (server.cnf), which is
located in the Integration Server_directory\instances
\instance_name \cong directory (see "Server
Conguration Parameters" on page 851).
Alternatively, you can use the Passive Mode Listen
Address eld to specify the passive mode address for
an individual FTPS port. That way, you can specify
a dierent passive mode address for each FTPS port.
If an address is specied in the Passive Mode Listen
Address eld and in the wa.net.ftpPassiveLocalAddr
property, the PORT command uses the value
specied in the wa.net.ftpPassiveLocalAddr
property.
6. Under Security Configuration, in the Client Authentication list, select the type of client
authentication you want Integration Server to perform for requests that arrive on this
FTPS port.
Option
Description
Username/Password
185
Even Header
Configuring Ports
Option
Description
If central user management is congured, the server
checks whether the certicate is mapped to a user
in the central user database. If so, the server logs the
client on as that user. If not, the client request fails.
Use these seings only if you want to use a dierent set of credentials from
the ones specied on the Certicates Screen.
Specify...
Keystore Alias
Key Alias
Truststore Alias
186
Odd Header
Configuring Ports
For more information about seing access mode for a port and controlling IP access
for a port, see "Controlling Access to Resources by Port" on page 422
10. On the Portsscreen, also check the list of ports to ensure that the status in the Enabled
column is Yes. If it is not, click No to enable the port.
Specify...
Port
Alias
Description
187
Even Header
Configuring Ports
Specify...
Package Name
188
Odd Header
Configuring Ports
Specify...
a dierent passive mode address for each FTP port.
If an address is specied in the Passive Mode Listen
Address eld and in the wa.net.ftpPassiveLocalAddr
property, the PORT command uses the value
specied in the wa.net.ftpPassiveLocalAddr
property.
Specify...
Package Name
189
Even Header
Configuring Ports
Specify...
If you replicate this package, Integration Server
creates a port with this number and the same
seings on the target server. If a port with this
number already exists on the target server, its
seings remain intact. This feature is useful if you
create an application that expects input on a specic
port. The application will continue to work after it is
replicated to another server.
Alias
Description
Specify...
Enable
Type
Host Name
Port
User Name
Password
190
Odd Header
Configuring Ports
Specify...
To...
None
Explicit
Implicit
Truststore Alias
(optional)
191
Even Header
Configuring Ports
Specify...
wa.security.trustStoreAlias property will be used.
For more information about this property, see
"wa.security." on page 874. For more information
about truststore alias, see "Creating Keystore Aliases"
on page 410.
Time Interval
Specify...
Require authentication
within message
192
Odd Header
Configuring Ports
Specify...
193
Even Header
Configuring Ports
Specify...
This seing helps prevent invalid e-mails from
accumulating on the IMAP server, possibly aecting
disk space and performance. Integration Server
always deletes e-mails on a POP3 server.
Multithreaded processing
(IMAP only)
Number of threads if
multithreading is turned
on.
194
Odd Header
Configuring Ports
Specify...
mail headers from the beginning of the message,
because each section has its own headers that the
content handler and/or the service already knows
how to process. See Include e-mail headers when passing
message to content handler below.
Species whether Integration Server includes the email headers when passing an e-mail message to the
content handler. The e-mail headers are typically
found at the beginning of an e-mail message. Specify
Yes if you are processing a multi-part message as a
single message. This ensures that the content handler
and/or service can properly process the body of the
e-mail. Specify No if you are processing the dierent
parts of an e-mail individually. If you are processing
a single-part e-mail, you probably do not want to
include e-mail headers.
For more information about seing access mode for a port and controlling IP access
for a port, see "Controlling Access to Resources by Port" on page 422
12. On the Ports screen, also check the list of ports to ensure that the status in the Enabled
column is Yes. If it is not, click No to enable the port.
195
Even Header
Configuring Ports
196
Odd Header
Configuring Ports
Specify
Port
Alias
Description
Package Name
197
Even Header
Configuring Ports
Specify
Backlog
Threadpool
198
Odd Header
Configuring Ports
Specify...
Client Authentication
Description
Username/
Password
Digest
199
Even Header
Configuring Ports
10. On the Ports screen, also check the list of ports to ensure that the status in the Enabled
column is Yes. If it is not, click No to enable the port.
Specify...
Enable
Port
200
Odd Header
Configuring Ports
Specify...
If you are running multiple Integration Servers
Important:
on the same host machine, make sure the
diagnostic port number on each server is unique.
Alias
Description
Package Name
Backlog
201
Even Header
Configuring Ports
Specify...
Threadpool
Specify...
Client Authentication
202
Odd Header
Configuring Ports
Specify...
Option
Description
Username/
Password
Digest
Request Client
Certificates
203
Even Header
Configuring Ports
Specify...
client is logged in as the user
to which the certicate is
mapped in Integration Server.
If not, the client request
fails, unless central user
management is congured.
If central user management is
congured, Integration Server
checks whether the certicate
is mapped to a user in the
central user database. If so, the
server logs the client on as that
user. If not, the client request
fails.
Require Client
Certificates
Use JSSE
Use these seings only if you want to use a dierent set of credentials from
the ones specied on the Certicates Screen.
204
Odd Header
Configuring Ports
Specify...
Keystore Alias
Key Alias
Truststore Alias
If a request is made on the suspended listening port, and the backlog queue
is disabled, the listener will not accept any more connections or dispatch any
more requests. However, if the backlog queue is enabled and is not full, the
connection is queued. If you delete or disable a suspended port, the queued
connections are released.
205
Even Header
Configuring Ports
206
Odd Header
Configuring Ports
207
Even Header
Configuring Ports
wa.net.ftpPassivePort.min
Minimum_Port_Number
wa.net.ftpPassivePort.max
Maximum_Port_Number
208
Odd Header
Configuring Ports
"Synchronizing Broker Clients When the Primary Port for Integration Server
Changes" on page 258.
Deleting a Port
If you no longer need a port, you can delete it.
Important: You cannot delete the primary port dened for the Integration Server.
To delete a port
1. Open Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click Ports.
3. Locate the port in the Port List, and click the
icon in the Delete column. The server
displays a dialog box that prompts you to conrm your action. Click OK to conrm
that you want to delete the port.
209
Even Header
Configuring Ports
Editing a Port
After adding a port, you can edit the port conguration. The port must be disabled
before you can edit the conguration.
Note:
You cannot edit the port alias after a port has been created.
To edit a port
1. Open Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click Ports.
3. Locate the port you want to edit and click on the port number.
4. Click Edit <port type > Port Configuration.
5. Update the information for the port.
6. Click Save Changes.
Disabling a Port
Complete the following steps to disable a port.
To disable a port
1. Open Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click Ports.
210
Odd Header
Configuring Ports
Enabling a Port
Complete the following steps to enable a port.
To enable a port
1. Open Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click Ports.
3. Locate the port in the Port List, and click No in the Enabled column to enable the port.
The server displays a dialog box that prompts you to verify your action. Click OK to
verify you want to enable the port.
The server replaces the No with the
211
Even Header
Configuring Ports
If the keystore type supported by the HSM is not one of the defaults supported by
Integration Server, modify the property wa.security.keyStore.supportedTypes or
wa.security.trustStore.supportedTypes respectively to add a new keystore type for
the keystore or truststore.
5. Click Add Provider.
Integration Server adds the security provider to the list of available security
providers. If the keystore type supported by the newly added security provider is
one of the default keystore types (JKS, PKCS12) supported by Integration Server and
you select that keystore type in the Keystore Type list for an HTTPS or FTPS port,
the corresponding provider will be available in the Provider list for that keystore
type.
If the keystore type is not supported, modify the properties
wa.security.keyStore.supportedTypes and wa.security.trustStore.supportedTypes
to add a new keystore type for the keystore and truststore.
212
Odd Header
Configuring Ports
4. After the <value name="useJSSE">true</value> entry in the port record, add the
following entry:
<value name="jsseEnabledProtocols">SSLprotocols</value>
where SSLprotocols is a comma-separated list of the SSL protocol versions that the
port supports.
For example, to enable TLS 1.1 and TLS 1.2 versions for the port add the following:
<value name="jsseEnabledProtocols">SSLv2Hello,TLSv1.1,TLSv1.2</value>
When the logging facility 0006 Server SSL Interface is set to the Debug logging level,
Integration Server writes messages about protocols used for inbound and outbound
ports to the server log. At the Trace logging level, Integration Server writes messages
about the enabled cipher suites. You can use these server log messages to conrm the
enabled protocols for any JSSE port.
213
Even Header
214
Odd Header
Setting Up the Server Log
216
Specifying Amount and Type of Information to Include in the Server Log .................................
217
219
220
221
222
223
223
225
Overriding Logging Level and Server Log Location for a Session ............................................
Globalization ...............................................................................................................................
227
229
215
Even Header
Setting Up the Server Log
216
Odd Header
Setting Up the Server Log
For a list of available facilities in Integration Server, see "Server Log Facilities" on page
999.
By default, all facilities write to the server log, and the facilities write log entries about
critical, error, warning, informational, and debug-related situations. You can have only
selected facilities write to the log, and you can increase or decrease the amount of data
the facilities provide. This exibility is useful for troubleshooting. For example, you
might temporarily increase the level of detail wrien to the server log to help uncover
the cause of an Integration Server error or performance problem, and return to a lower
level once the problem is resolved. You can also override the amount of information to
include in the server log for a particular Integration Server session.
By default, Integration Server queues log entries wrien by its facilities in memory, then
uses a background thread to write them to the server log. You can change that property
so that facilities write directly to the server log. Using a background thread improves
Integration Server performance, but writing directly causes the entries to appear in the
server log more quickly.
Integration Server always writes server log entries to at les; you cannot store the
server log in a database. By default, Integration Server writes server log entries for the
current day (dened as midnight to midnight) to the server.log le. However, you can
congure Integration Server to rotate the srever.log le by size instead of by day. For
more information, see "Conguring the Server Log to Rotate Based on Size" on page
221.
When rotating the server log le, either by day or by size, Integration Server renames the
current server.log le to have the archive le name and starts a new server.log le. The
archive le names include the date (yyyymmdd ) on which the log entries were originally
wrien.
By default, all log and archive les are stored in the
Integration Server_directory\instances\instance_name\ logs directory. For information
about changing the location of the server.log le, see "Changing the Default Server Log
Location" on page 220
You can override the location of the server log les for a particular session.. For more
information about overriding the location of the server log le or the logging levels for a
session, see "Overriding Logging Level and Server Log Location for a Session" on page
227.
217
Even Header
Setting Up the Server Log
the products and facilities. Then, you can change the logging levels for the particular
products or facilities for which you want to generate more or less server log information.
By default, all products inherit the logging level of the Default node. Inherited values
are shown in gray text. When you explicitly change the logging level for a product or
facility, that level overrides the Default node level. Integration Server Administrator
displays explicitly set logging levels in bold text.
To specify the amount and type of information to include in the server log
1. In Integration Server Administrator, go to the Settings > Logging page.
2. In the Logger List, click Server Logger.
3. Click Edit Server Logger.
The Server Logger Configuration area lists Integration Server and products that are
installed on Integration Server, and the facilities for each of these. To see the facilities
and their current logging levels, expand the display by clicking .
4. Do one or more of the following:
To change the level for...
Click the level to use in the Logging Level list for the
Default node. Integration Server Administrator resets all
products and facilities that inherit from the Default node
to the new level.
A particular
product
Click the level to use in the Logging Level list for the
product node. Integration Server Administrator resets all
facilities that inherit their values from the product to the
new level.
If you change a level for a particular product and later
want the product to inherit the logging level from the
default node again, reset the product logging level to be
the logging level of the default node.
A particular facility
Click the level to use in the Logging Level list for the
facility.
If you change a level for a facility and later want the
facility to inherit the logging level from the product
again, reset the facility logging level to be the logging
level of the product.
For more information about logging levels, see "Logging Levels" on page 219.
Important: Recording more information consumes more system resources.
218
Odd Header
Setting Up the Server Log
Logging Levels
The logging levels that you can specify are described below. Each logging level includes
the indicated type of message plus all messages from the levels above it (for example,
the Warn level includes Fatal, Error, and Warn messages).
Level
Examples
Fatal
Error
Warn
Info
Package loaded, or
connection pool initialized
Debug
Expected an object to be
initialized but it is not, or
hash table is empty
Trace
Off
219
Even Header
Setting Up the Server Log
write to the server log at one time, queuing the entries improves performance by making
writing asynchronous. However, if Integration Server shuts down abnormally, all log
entries in the queue will be lost. For beer quality of service, do not queue the entries.
However, each facility will have to wait as long as necessary to write its entry to the
server log, so Integration Server performance might be aected.
To specify whether to queue server log entries
1. In Integration Server Administrator, go to the Settings > Extended page and click Show
and Hide Keys. Integration Server Administrator displays a list of the Integration
Server conguration properties you can change using this method.
2. Select the check box next to the watt.server.log.queued property.
3. Click Save Changes. Integration Server Administrator displays the property in the
Extended Settings box.
4. Click Edit Extended Settings.
5. In the Extended Settings box, set the property to true if you want to queue server log
entries or to false if you do not want to queue server log entries.
6. Click Save Changes.
7. Restart Integration Server.
Note:
To change the number of entries allowed in the server log queue, use the
wa.server.serverlogQueueSize parameter. The default size is 8192 bytes.
220
Odd Header
Setting Up the Server Log
221
Even Header
Setting Up the Server Log
To...
None
Explicit
Implicit
5. From the Truststore Alias list, select the alias for the truststore that contains the list
of certicates that Integration Server uses to validate the trust relationship between
Integration Server and the SMTP server. If you do not select a truststore alias, the
default truststore alias specied in the wa.security.trustStoreAlias property will be
used. For more information about this property, see "wa.security." on page 874.
For more information about truststore alias, see "Creating Keystore Aliases" on page
410.
6. In the Internal Email eld, type the e-mail address to which to send messages
about critical log entries. Typically, you would specify the e-mail address for the
Integration Server Administrator.
7. In the Service Email eld, type the e-mail address to which to send messages about
service failures. In a development environment, you might direct these messages to
the developer. In a production environment, you might direct these messages to the
Integration Server Administrator.
222
Odd Header
Setting Up the Server Log
8. By default, Integration Server uses character set UTF-8 for the messages. If you want
to use a dierent character set, identify the character set in the Default E-mail Charset
eld.
9. Click Save Changes.
Integration Server connects to the specied SMTP server on:
Port 25 if Integration Server uses explicit or no Transport Layer Security.
Port 465 if Integration Server uses implicit Transport Layer Security.
The default is 25.
When sending a message, by default, Integration Server provides its own address
(the From Address) as Integration-Server@localhost , where localhost is the Integration
Server host machine. If you want to change this property, follow these steps:
a. In Integration Server Administrator, go to the Settings > Extended page.
Integration Server Administrator displays a list of Integration Server
conguration properties you can change using this method.
b. Click Edit Extended Settings. In the Extended Settings box, set the set the property as
follows:
wa.server.email.from=new From Address to use
c. Click Save Changes.
d. Restart Integration Server.
In the default message format, the log level is displayed as one character and
will be one of the following: C (Fatal), E (Error), W (Warn), I (Info), D (Debug),
T (Trace). Your logging level seing determines the types of messages you see
223
Even Header
Setting Up the Server Log
in the server log). See "Specifying Amount and Type of Information to Include
in the Server Log" on page 217 for more information about logging levels.
The following table shows some product codes:
Code
Meaning
ART
MNP
Mainframe package
MOD
MON
SAP
SAP Adapter
TNS, TNC
Trading Networks
224
Odd Header
Setting Up the Server Log
225
Even Header
Setting Up the Server Log
Note:
You can also change the date and time format for log entries using the
wa.server.dateStampFmt server conguration parameter. For more
information about this parameter, see "Server Conguration Parameters" on
page 851.
Changing character encoding will also aect the audit logs, described in the
webMethods Audit Logging Guide.
226
Odd Header
Setting Up the Server Log
wa.server.log.maxEntries
wa.server.log.refreshInterval
4. Click Save Changes. Integration Server Administrator displays the property in the
Extended Settings box.
5. Click Edit Extended Settings. In the Extended Settings box, set each property to a
positive integer.
6. Click Save Changes. Changes take eect immediately.
If the value that you set for Number of entries to display is more than the value
specied for wa.server.log.alertMaxEntries, every time the log entries are refreshed,
Integration Server Administrator displays a message informing that the number of
requested entries exceeds the threshold and that displaying more entries might aect
Integration Server performance. The message prompts you to conrm displaying the
requested number of entries.
227
Even Header
Setting Up the Server Log
Where:
This value...
Is...
level
destination
Description
lename
none
228
Odd Header
Setting Up the Server Log
This value...
Is...
timestamp with no other information
in the server log le for this session.
For this session only, this option
overrides the value specied on the
wa.debug.logle property.
Note:
Globalization
If a webMethods product is equipped with webMethods language packs and some of
those language packs correspond to the language used by the operating environment
in which the product is running, the product writes its log entries in the language used
by the operating system. If the product is equipped with no language packs or with
language packs that do not correspond to the language used by the operating system, the
product writes its log entries in U.S. English.
229
Even Header
Setting Up the Server Log
Suppose your operating environment uses Japanese as its language. You have installed
language packs including the Japanese Language Packs on Integration Server, so
Integration Server stores its own log entries in Japanese. You have not installed the
Japanese Language packs on Trading Networks, so Integration Server stores Trading
Networks' log entries in U.S. English.
Note:
230
Odd Header
Configuring Integration Server for webMethods Messaging
Overview .....................................................................................................................................
232
232
249
Configuring Integration Server to Connect to an SSL-Enabled Port on Universal Messaging ... 252
Specifying the Keep-Alive Mode for the Broker Connection ......................................................
255
Synchronizing Broker Clients When the Primary Port for Integration Server Changes .............. 258
Configuring Document Stores ....................................................................................................
Load Balancing with a Non-Clustered Group of Integration Servers .........................................
258
267
231
Even Header
Configuring Integration Server for webMethods Messaging
Overview
webMethods messaging is an umbrella term that encompasses the sending and receiving
of documents (also called messages) across the webMethods platform. Within the
context of Integration Server, webMethods messaging includes the publishing of
documents in the native IData format from one Integration Server or an application
running on Integration Server to a webMethods messaging provider. The webMethods
messaging provider, either webMethods Universal Messaging or webMethods Broker,
routes the documents to subscribers on other Integration Servers that retrieve and
process the document.
To use Integration Server to create a publish-and-subscribe solution for webMethods
messaging, you need the following components:
Publishable document types that dene the content, structure, and properties of the
documents that can be published.
Services that publish instances of the publishable document types.
webMethods messaging triggers that subscribe to publishable document types and
specify services that processes instances of the publishable document types.
A webMethods messaging provider that handles the receipt of and routing of
documents to subscribers.
To congure Integration Server for webMethods messaging, you need to:
Create one or more aliases that congure a connection to the webMethods messaging
provider. For more information, see "Working with Messaging Connection Aliases"
on page 232.
Congure document stores for holding documents immediately before publication
or right after retrieval. For more information, see "Conguring Document Stores" on
page 258.
Create publishable document types, webMethods messaging triggers, and services
using the Service Development perspective in Software AG Designer. For more
information, see webMethods Service Development Help.
232
Odd Header
Configuring Integration Server for webMethods Messaging
Although an Integration Server can only have one messaging connection alias that
connects to a Broker, you can have multiple messaging connection aliases that connect to
Universal Messaging servers.
You assign a messaging connection alias to publishable document types. Publishing
services use the assigned messaging connection alias to publish instances of that
document type to the messaging provider. webMethods messaging triggers use the
messaging connection alias to retrieve published documents from the messaging
provider.
Description
IS_BROKER_CONNECTION
IS_LOCAL_CONNECTION
233
Even Header
Configuring Integration Server for webMethods Messaging
Description
IS_UM_CONNECTION
Specify...
Connection Alias
Name
Description
Client Prefix
234
Odd Header
Configuring Integration Server for webMethods Messaging
Specify...
Share Client
Prefix
Specify...
Broker Host
Broker Name
Client Group
235
Even Header
Configuring Integration Server for webMethods Messaging
For this
parameter...
Specify...
Client
Authentication
Specify...
Keystore
Keystore Type
Keystore Password
236
Odd Header
Configuring Integration Server for webMethods Messaging
Specify...
Encryption
Specify...
Truststore
Truststore Type
You can congure the outbound document store, also known as the client
side queue, to contain documents published when the Broker used by this
connection alias is not available. For more information, see "About the
Outbound Document Store" on page 263
237
Even Header
Configuring Integration Server for webMethods Messaging
You can create a Universal Messaging connection alias for use with
webMethods Universal Messaging 9.5 and higher. However, if you want
to use Integration Server with an earlier, supported version of Universal
Messaging, you must manually replace les in Software AG_directory\common
\lib with the those available in the version of Universal Messaging that
you want to use. For more information about replacing client libraries, see
"Adding Client Libraries for Earlier Versions of Universal Messaging " on
page 309.
Specify...
Connection Alias
Name
Description
Client Prefix
Share Client
Prefix
238
Odd Header
Configuring Integration Server for webMethods Messaging
Specify...
Belongs to a non-clustered group of Integration Servers that
operate in a load-balanced fashion.
For more information about conguring Integration Servers
to receive messages from Universal Messaging in a loadbalanced fashion, see "Load Balancing with a Non-Clustered
Group of Integration Servers" on page 267.
Specify...
Realm URL
239
Even Header
Configuring Integration Server for webMethods Messaging
Specify...
Maximum
Reconnection
Attempts
Specify...
Enable CSQ
240
Odd Header
Configuring Integration Server for webMethods Messaging
Specify...
use this connection alias will end with an
ISRuntimeException.
Specify -1 if you want the client side queue
to be able to contain an unlimited number of
messages.
241
Even Header
Configuring Integration Server for webMethods Messaging
Specify...
Note:When a Universal Messaging connection
alias is congured to connect to a
Universal Messaging cluster, make sure
the Publish Wait Time While Reconnecting
value is long enough to accommodate
the time the Universal Messaging cluster
takes to establish a quorum after one of
the member servers fails.
Specify...
Client
Authentication
Truststore Alias
Keystore Alias
242
Odd Header
Configuring Integration Server for webMethods Messaging
For this
parameter...
Specify...
and the Enable Client Cert Validation option is selected
for the port. Use Universal Messaging Enterprise
Manager to view the Enable Client Cert Validation option
specied for a port.
Key Alias
The alias to the key that contains the private key for
connecting to the Universal Messaging port securely. The
key alias must be in the keystore specied in Keystore Alias.
You must specify a Key Alias if you specify a Keystore Alias.
Note:
9. Under Consumer Settings, do one of the following for the Enable Request/Reply Channel
and Listener check box.
If you intend to use this Universal Messaging connection alias to send request
documents, send reply documents, or receive reply documents as part of a
request/reply or publish-and-wait scenario, select the Enable Request/Reply Channel
and Listener check box. When this check box is selected, Integration Server will do
the following when the Universal Messaging connection alias starts:
Create a request/reply channel for this Universal Messaging connection
alias if one does not yet exist. The request/reply channel name includes
a string identifying the Integration Server, the client prex, and the text
RequestReply.
Start a listener on Integration Server that subscribes to the alias-specic
request/reply channel.
If you do not intend to use this Universal Messaging connection alias as part of a
request/reply or publish-and-wait scenario, to conserve resources on Integration
Server and Universal Messaging, clear the Enable Request/Reply Channel and
Listener check box.
10. Click Save Changes.
11. Enable the Universal Messaging connection alias.
243
Even Header
Configuring Integration Server for webMethods Messaging
You can edit any properties of an existing messaging connection alias with the
exception of the connection alias name.
You must disable a messaging connection alias before you can edit it.
You cannot edit the IS_LOCAL_CONNECTION alias.
To edit a messaging connection alias
1. Open the Integration Server Administrator.
2. In the Settings menu of the Navigation panel, click Messaging
3. Under webMethods Messaging Configuration, click webMethods Messaging Settings.
4. In the webMethods Connection Alias Definitions table, click the name of the messaging
connection alias that you want to edit.
5. Do one of the following depending on whether you are editing a Broker connection
alias or a Universal Messaging connection alias:
Click EditBrokerMessaging Connection Alias.
Click EditUniversal MessagingConnection Alias.
6. Update the information for the messaging connection alias.
7. Click Save Changes.
8. Enable the messaging connection alias. For more information about enabling a
messaging connection alias, see "Enabling a Messaging Connection Alias" on page
245.
9. If this is a Broker connection alias, you must restart Integration Server for your
changes to take eect.
Notes:
If you changed a Broker connection alias to connect to Broker in another territory,
you might need to synchronize your publishable document types with the new
Broker. For information about synchronizing publishable document types, see
webMethods Service Development Help.
If you change the client prex of a Universal Messaging connection alias for
which the Enable Request/Reply Channel and Listener check box is selected, Universal
Messaging creates a new request/reply channel with the new client prex. However,
Universal Messaging does not delete the previous request/reply channel for the
Universal Messaging connection alias. Use Universal Messaging Enterprise Manager
to delete the old channel.
If you edit a Universal Messaging connection alias by clearing the Enable Request/
Reply Channel and Listener check box is selected, the request/reply channel for
Universal Messaging connection alias remains on the Universal Messaging server.
If you want to delete the channel, use Universal Messaging Enterprise Manager to
delete the channel.
244
Odd Header
Configuring Integration Server for webMethods Messaging
245
Even Header
Configuring Integration Server for webMethods Messaging
When you disable a Universal Messaging connection alias, you do not need to restart
Integration Server for the change to take eect.
Publishing services that use the alias receive an ISRuntimeException as soon as the
messaging connection alias is disabled.
Before suspending webMethods messaging triggers that use the alias Integration
Server waits a short time for triggers to nish processing messages the triggers
already received. Integration Server considers message processing to be complete
if the trigger service executes to completion (success or failure) and the trigger
acknowledges the message to the message provider. If the trigger service is long
running and cannot complete in the alloed time, Integration Server disables the
trigger and considers message processing to be incomplete.
Note:
Suspending a trigger does not stop the trigger service. Consequently, even
after Integration Server suspends the webMethods messaging trigger,
the trigger service will execute to completion. After the trigger service
completes, Integration Server aempts to acknowledge the message to
the messaging provider. However, the acknowledgment aempt fails
because the messaging connection alias is disabled. If the message is
guaranteed, the messaging provider redelivers the message when the
messaging connection alias is enabled and the trigger resumes. Redelivery
of messages can result in duplicate processing.
When you disable a Broker connection alias, you must restart Integration Server for the
change to the alias to take eect. The Broker connection alias is not actually disabled
until Integration Server restarts. This means that publishing services and webMethods
messaging triggers that use the alias continue to send and receive messages until restart
occurs. Upon restart, Integration Server suspends any webMethods messaging trigger
that use the messaging connection alias. Additionally, after restart, any publishing
services that use the messaging connection alias will end with an ISRuntimeException.
Note:
246
Odd Header
Configuring Integration Server for webMethods Messaging
Yes with
6. If this is a Broker connection alias, restart Integration Server for your changes to take
eect.
No
Description
Yes
247
Even Header
Configuring Integration Server for webMethods Messaging
Note:
Description
The messaging connection alias is currently
enabled but will be disabled after Integration
Server restarts. Currently, Integration Server
is connected to Broker; services can publish
messages to the Broker and triggers can retrieve
messages from Broker.
Integration Server Administrator does not display a status for the predened
IS_LOCAL_CONNECTION messaging connection alias. The alias cannot be
enabled or disabled and is always available to Integration Server for local
publishing.
248
Odd Header
Configuring Integration Server for webMethods Messaging
Notes
After you change the default connection alias, Integration Server reloads all of the
webMethods messaging triggers that subscribe to publishable document types that
use the default messaging connection alias.
After you change the default connection alias, you need to synchronize publishable
document types that use the default alias with the messaging provider. This
ensures that the provider denitions on the new default messaging provider are
synchronized with publishable document types that use the default messaging
connection alias.
6. Click OK to verify that you want to delete the messaging connection alias.
249
Even Header
Configuring Integration Server for webMethods Messaging
Messaging, before the Universal Messaging server applies the ACLs, by authenticating
the connection with a user name and password. You specify this authentication method
when you create the Universal Messaging connection alias.
Note:
This feature applies to Integration Server 9.8 or later and Universal Messaging
9.6 or later.
To...
Nirvana.auth.sagrepo.path
Nirvana.directory.provider
250
Odd Header
Configuring Integration Server for webMethods Messaging
To...
If user credentials are stored in an external
user repository, set this property to:
com.pcbsys.foundation.security.auth.
fLDAPAdapter
Nirvana.auth.enabled
To...
Nirvana.auth.server.jaaskey
noauth
wrapper.java.classpath
251
Even Header
Configuring Integration Server for webMethods Messaging
For more information about login modules, JAAS conguration les, and the
nserver.cnf system properties, see the Software AG Infrastructure Administrator's
Guide and the Universal Messaging documentation.
Use Universal Messaging Enterprise Manager to view the protocol and Enable
Client Cert Validation option selected for the port.
Note:
When using Integration Server versions 9.8 and 9.9, for Integration Server
to connect to an SSL-enabled port on Universal Messaging, you needed to
set javax.net.ssl* system properties in the JVM used with Integration Server.
As of Integration Server version 9.10, you congure the information needed
to establish an SSL connection in the Universal Messaging connection alias.
Specically, you provide the truststore alias and possibly keystore alias and
key alias in the connection alias. This allows the use of dierent truststores
and keystores for each connection alias.
252
Odd Header
Configuring Integration Server for webMethods Messaging
Do the following...
Realm URL
Client Authentication
Select SSL.
Truststore Alias
253
Even Header
Configuring Integration Server for webMethods Messaging
JVM, see "Storing SSL Information for the Integration Server JVM in a Secure
Manner" on page 415.
Software AG recommends specifying the truststore alias, keystore alias, and
key alias information in the Universal Messaging connection alias instead of
relying on the JVM system properties.
254
Odd Header
Configuring Integration Server for webMethods Messaging
Do the following...
Realm URL
Client Authentication
Select SSL.
Truststore Alias
Keystore Alias
Key Alias
If client state is not shared, an undetected broken connection does not pose a problem.
The Broker will automatically redeliver unacknowledged events to the client when it
reconnects. However, if the client state is shared and a client loses its connection to the
Broker, the client cannot retrieve the unacknowledged documents after it re-establishes
255
Even Header
Configuring Integration Server for webMethods Messaging
the connection. (The default client for the Integration Server and all trigger clients are
shared-state clients.) This is because the same client ID is used by all the clients in a
shared-state client. The Broker cannot distinguish the reconnection of one client from the
ordinary reconnections of other clients with the same client ID. The unacknowledged
documents retrieved by the now disconnected client will not be made available for
redelivery until the Broker receives an explicit disconnect notice (generally, when the
TCP/IP connection nally times out). In some cases, this might be hours later.
To avoid a situation in which unacknowledged documents stay on the Broker for an
unacceptable period of time, you can select a keep-alive mode that will disconnect
unresponsive clients and make unacknowledged documents available for redelivery.
Note:
For more information about the Broker keep-alive feature and about sharedstate clients, see the webMethods Broker Java Client API Reference.
256
Odd Header
Configuring Integration Server for webMethods Messaging
Normal Mode
Use the seings in the following table to congure normal keep-alive mode. This is the
default mode.
Set this parameter...
To...
watt.server.brokerTransport.dur
watt.server.brokerTransport.max
watt.server.brokerTransport.ret
To...
watt.server.brokerTransport.dur
2147483647
watt.server.brokerTransport.max
watt.server.brokerTransport.ret
257
Even Header
Configuring Integration Server for webMethods Messaging
Disabled
Use the seings in the following table to disable keep-alive mode.
Set this parameter...
To...
watt.server.brokerTransport.dur
2147483647
watt.server.brokerTransport.max
2147483647
watt.server.brokerTransport.ret
258
Odd Header
Configuring Integration Server for webMethods Messaging
places the documents in the default document store. Documents remain in the
default document store until the dispatcher determines which triggers subscribe to
the document. The dispatcher then moves the documents to the trigger queues for
the subscribing triggers.
Trigger document store. The trigger document store contains locally published
guaranteed documents that are delivered to a specic webMethods messaging
triggers. For each trigger, Integration Server creates a queue for locally published
guaranteed documents in the trigger document store. A guaranteed document
remains in the trigger queue within the trigger document store until the server
successfully processes the document.
Outbound document store. The outbound document store, sometimes called a clientside queue, contains documents waiting to be sent to the Broker. Integration Server
places documents in the outbound document store when the congured Broker
is not available. When the connection to the Broker is restored, Integration Server
empties the outbound document store by sending the saved documents to the
Broker.
Note:
Using Integration Server Administrator, you can congure properties for each document
store.
You do not need to congure the default document store if you use Universal
Messaging as the messaging provider.
Specify...
Store Location
259
Even Header
Configuring Integration Server for webMethods Messaging
Specify...
Integration Server_directory\instances\instance_name
\ DocumentStore
If you want to save the default document store in a dierent
location, specify the directory in this eld. If the directory
does not exist, the server creates it.
Make sure that you have write access to the specied
Important:
directory and that the directory does not contain
any characters considered illegal by your operating
system.
Capacity
Refill Level
260
Odd Header
Configuring Integration Server for webMethods Messaging
Specify...
to be processed in the default document store, the server
retrieves six more documents. If six documents are not
available, the server retrieves as many as possible.
The default rell level is 4 documents.
The Refill Level must be less than Capacity. If you set Capacity
to 0, the server automatically suspends the Refill Level.
Note: The Refill Level eld displays " Broker Not Congured"
if there is not a Broker congured for the server.
An asterisk (*) next to a parameter indicates that you need to restart the
server for changes to take eect.
You do not need to congure the trigger document store if you use Universal
Messaging as the messaging provider.
261
Even Header
Configuring Integration Server for webMethods Messaging
Specify...
Store Location
An asterisk (*) next to a parameter indicates that you need to restart the
server for changes to take eect.
262
Odd Header
Configuring Integration Server for webMethods Messaging
The Inbound Document History (minutes) eld can be set only if Integration
Server connects to a Broker version 6.0.1. The eld is not available if the server
connects to a 6.1 or later version of the Broker. For detailed information about
conguring inbound document history, see the webMethods Integration Server
Administrators Guide version 6.0.1.
263
Even Header
Configuring Integration Server for webMethods Messaging
You can monitor the number of documents in the outbound document store
by checking the value of the CSQ Count eld for the Broker connection alias on
the Settings > Messaging > webMethods Messaging Settings screen.
264
Odd Header
Configuring Integration Server for webMethods Messaging
To configure how quickly Integration Server empties the outbound document store
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Resources.
3. Click Store Settings, and then click Edit Document Store Settings.
4. Under Outbound Document Store, in the Maximum Documents to Send per Transaction, type
the number of documents the server should send from the outbound document store
to the Broker for each transaction.
If there is no congured Broker, the Integration Server Administrator displays "
Broker Not Congured" next to the eld name.
5. Click Save Changes.
265
Even Header
Configuring Integration Server for webMethods Messaging
Server uses the credentials for the specied user account to invoke the service specied
in the trigger condition.
Make sure that the user account you select includes the credentials required by the
execute ACLs assigned to the services associated with triggers. For example, suppose
that you specify "Developer" as the user account for invoking services in triggers. The
receiveCustomerInfo trigger contains a condition that associates a publishable document
type with the service addCustomer. The addCustomer service species "Replicator" for
the Execute ACL. When the trigger condition is met, the addCustomer service will not
execute because the user seing you selected (Developer) does not have the necessary
credentials to invoke the service (Replicator).
How you specify a user account for a webMethods messaging trigger service depends
on the messaging provider used by the trigger.
If the trigger receives message from Broker, specify the user account using
Integration Server Administrator. The user account you specify applies to all
webMethods messaging triggers that receive messages from the Broker. For more
information, see "Specifying a User Account for Invoking webMethods Messaging
Trigger Services" on page 266.
If the trigger receives messages from Universal Messaging, specify the user account
for a trigger using Designer. For each webMethods messaging trigger that retrieves
messages from Universal Messaging, you use the Execution user property to indicate
which users can invoke the trigger services for that trigger. For more information
about seing the execution user for a trigger, see webMethods Service Development
Help.
266
Odd Header
Configuring Integration Server for webMethods Messaging
Integration Servers can receive messages from the same messaging provider in a loadbalanced manner if the Integration Servers are connected to the messaging provider as a
non-clustered group.
To receive messages in a load-balanced fashion, each Integration Server must:
Connect to the same messaging provider. A group of non-clustered Integration Servers
can receive messages in a load-balanced fashion from Universal Messaging or
Broker. The messaging connection aliases should be the same on each Integration
Server.
Use the same client prefix. Use the Integration Server Administrator to specify the
client prex for your Integration Servers. For instructions, see "Creating a Broker
Connection Alias" on page 234 and"Creating a Universal Messaging Connection
Alias" on page 238.
Use the same client group. When Broker is the messaging provider, each Integration
Server must use the same client group. Use the Integration Server Administrator to
specify the client group for your Integration Servers. For instructions, see "Creating a
Broker Connection Alias" on page 234.
Have the same triggers. To receive message in a load-balanced manner, the nonclustered Integration Servers must act as a single messaging client, which includes
having the same document subscriptions. For information about conguring
webMethods messaging triggers, see webMethods Service Development Help.
Integration Servers in a non-clustered group can also share a document history database
and a cross-reference database without being in an Integration Server cluster.
Important Considerations
Keep the following points in mind when determining whether to connect a nonclustered group of Integration Servers to the same messaging provider for loadbalancing:
267
Even Header
Configuring Integration Server for webMethods Messaging
268
Odd Header
Configuring Integration Server for JMS Messaging
270
270
276
297
297
302
303
305
269
Even Header
Configuring Integration Server for JMS Messaging
Overview
To congure Integration Server for JMS messaging, you need to:
Create one or more JNDI provider aliases to specify where Integration Server can
look up administered objects when it needs create a connection to JMS provider or
specify a destination for sending or receiving messages.
Create one or more connection aliases that encapsulate the properties that
Integration Server needs to create a connection with the JMS provider.
Integration Server also includes various server conguration properties that you can
use to change the default server behavior. For a list of server conguration parameters
related to JMS, see "Server Conguration Parameters" on page 851.
270
Odd Header
Configuring Integration Server for JMS Messaging
Note:
Specify...
Description
Predefined JNDI
Templates
271
Even Header
Configuring Integration Server for JMS Messaging
In this field...
Specify...
If you selected a predened JNDI template, Integration
Server displays the initial context factory for the
provider.
Provider URL
Security Principal
272
Odd Header
Configuring Integration Server for JMS Messaging
In this field...
Specify...
For information about whether or not the JNDI
provider requires security principal information,
consult the product documentation for the JNDI
provider.
Security Credentials
Other Properties
273
Even Header
Configuring Integration Server for JMS Messaging
For more information about the elds, see "Creating a JNDI Provider Alias" on page
271.
7. Click Save Changes.
274
Odd Header
Configuring Integration Server for JMS Messaging
When using a cluster of Universal Messaging realm servers as the JNDI provider,
Software AG recommends that you do not specify a Provider URL Failover List value.
The realm URLS specied in Provider URL function as the failover list.
Test lookup only veries the validity of the URLs; it does not check or
compare Objects in the JNDI namespace referenced by the specied provider
URL aliases.
Integration Server returns a list of the Objects located in the JNDI namespace.
Note:
The list displays the Objects in the JNDI namespace referenced by the rst
successful provider alias URL lookup. Therefore, the results displayed may
or may not be from the primary alias, they could be from a failover alias.
275
Even Header
Configuring Integration Server for JMS Messaging
Description
DEFAULT_IS_JMS
_CONNECTION
276
Odd Header
Configuring Integration Server for JMS Messaging
Description
Integration Server congures this JMS connection alias
when you launch the Integration Server the rst time.
This connection alias is disabled by default.
EventBus
PE_NON
TRANSACTIONAL_
ALIAS
277
Even Header
Configuring Integration Server for JMS Messaging
For example, to use Integration Server to send or receive large message streams,
you must specify a JMS connection alias whose transaction type is set to
NO_TRANSACTION.
To create a JMS connection alias
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Under JMS Conguration, click JMS Settings.
4. Click Create JMS Connection Alias.
5. Set the following General Settings for the JMS connection alias:
For this field...
Specify...
Connection Alias
Name
Description
Transaction Type
Connection Client ID
Select...
To...
NO_TRANSACTION
LOCAL_TRANSACTION
XA_TRANSACTION
278
Odd Header
Configuring Integration Server for JMS Messaging
Specify...
the connection client ID, see "About the Connection
Client ID" on page 289.
User (optional)
Password (optional)
6. In the Create Connection Using list, select one of the following to indicate how
administered objects (connection factories and destinations) will be looked up:
If you intend to use a JNDI provider, select JNDI Lookup.
If you intend to use the native webMethods API to create the connection directly
on the webMethods Broker, select NativewebMethodsAPI.
7. If you selected JNDI Lookup in the Create Connection Using list, do the following in the
remaining elds under Connection Protocol Settings:
For this field...
Specify...
The alias to the JNDI provider that you want this JMS
connection alias to use to look up administered objects.
For information about creating a JNDI provider alias,
see "Creating a JNDI Provider Alias" on page 271.
Connection Factory
Lookup Name
279
Even Header
Configuring Integration Server for JMS Messaging
Specify...
object le containing the SonicMQ object denitions.
Include the .sjo extension as part of the lookup name.
Monitor webMethods
Connection
Factory
Polling Interval
(minutes)
To...
No
Register change
listener
Note:
280
Odd Header
Configuring Integration Server for JMS Messaging
Specify...
Broker Host
Broker Name
Client Group
Broker List
Keystore
281
Even Header
Configuring Integration Server for JMS Messaging
Specify...
The Integration Server's keystore le is stored on the
machine on which the Integration Server resides.
Keystore Type
Truststore
Truststore Type
Encryption
9. Under Advanced Settings, specify the following information for the JMS connection
alias:
For this field...
Specify...
Class Loader
The name of the class loader that you want to use with
this JMS connection alias. Integration Server will use the
specied class loader when performing certain activities
with the JMS connection alias (send a message, receive a
message, create a connection, create a destination, etc.)
By default, Integration Server uses the server class loader.
However, you can specify the class loader for a package
instead. This may be helpful when working with third
party JMS providers. For example, you might place the
third party jars needed for each JMS provider in separate
packages, specically, in the Integration Server_directory/
instances/instance_name /packages/packageName /code/jars
directory. This can help prevent conicts between the jars
required for dierent JMS providers.
282
Odd Header
Configuring Integration Server for JMS Messaging
Specify...
Server writes messages to the client side queue if the JMS
provider is not available when messages are sent. Each
JMS connection alias has its own client side queue.
Specify -1 if you want the client side queue to be able to
contain an unlimited number of messages. That is, specify
-1 if you do not want to set a maximum limit.
If you specify 0, Integration Serverwill not write messages
to the client side queue for this JMS connection alias.
Create Temporary
Queue
283
Even Header
Configuring Integration Server for JMS Messaging
Specify...
You must select the Create Temporary Queue check box if
you want to select the Enable Request-Reply Listener for
Temporary Queue check box.
Manage Destinations
Create New
Connection per
Trigger
284
Odd Header
Configuring Integration Server for JMS Messaging
Specify...
If you want a concurrent JMS trigger that uses this JMS
connection alias to use multiple connections to the JMS
provider, you must congure the alias to create a separate
connection per trigger.
For more information, see "Allowing Multiple
Connections for a JMS Connection Alias" on page 288.
10. Under Producer Caching, specify the following to congure a default session pool
and destination-specic pools. For more information about producer caching, see
"Conguring Producer Caching for Sending JMS Messages" on page 291.
Note:
Specify...
Caching Mode
To...
DISABLED
ENABLED PER
DESTINATION
Minimum Session
Pool Size (unspecified
destinations)
Maximum Session
Pool Size (unspecified
destinations)
The maximum number of entries in each destinationspecic pool. A value of 0 (or blank) indicates that
Integration Server does not create separate pools
285
Even Header
Configuring Integration Server for JMS Messaging
Specify...
for any of the destinations associated with the JMS
connection alias.
Destination Lookup
Name List
Queue List
Topic List
Idle Timeout
11. Under Producer Retry, specify the following to congure automatic retry of
pub.jms:send services that use this JMS connection alias to send a message to the JMS
provider. For more information about automatic retry, see "Conguring Automatic
Retry when Sending JMS Messages Using the pub.jms:send Service" on page 292.
286
Odd Header
Configuring Integration Server for JMS Messaging
Specify...
Max Retry
Count
Retry Interval
(milliseconds)
Note:
287
Even Header
Configuring Integration Server for JMS Messaging
If you select the Create New Connection per Trigger check box, then the Ignore
Locally Published feature on associated JMS triggers will not work. For the
trigger to ignore locally published messages, the publisher and subscriber
must share the same connection. When the JMS connection alias creates a new
connection per trigger, the publisher and subscriber will not share the same
connection.
Integration Server supports creating and using multiple connections for a single
JMS connection alias with the supported JMS providers. For a list of supported JMS
providers, see "Supported JMS Providers" on page 303.
Note:
288
Odd Header
Configuring Integration Server for JMS Messaging
To use multiple connections for a single JMS connection alias when using webMethods
Broker as the JMS provider, the following must be true:
webMethods Broker must be webMethods Broker version 7.1 or higher.
The versions of following three webMethods Broker jar les installed on Integration
Server must be the 8.0 SP1 or higher versions of the les.
Software AG_directory/common/lib/wm-brokerclient.jar
Software AG_directory/common/lib/wm-jmsclient.jar
Software AG_directory/common/lib/wm-jmsnaming.jar
For more information about conguring JMS triggers, see the webMethods Service
Development Help in Software AG Designer.
About the Connection Client ID
The connection client ID is the JMS client identier associated with the connections
established by a JMS connection alias. The connection client ID that Integration Server
uses for a connection created from a JMS connection alias depends on one or more of the
following:
The value of the Connection Client ID eld for the JMS connection alias.
The connection client ID specied in the Connection Factory used by the JMS
connection alias.
Whether the JMS connection alias is congured to create a new connection for each
JMS trigger. That is, whether or not the Create New Connection per Trigger check box is
selected.
Using the above information, Integration Server determines the connection client ID as
follows:
If only the JMS connection alias species the connection client ID, Integration
Server uses this value for any connections created from the alias. When connecting
to the webMethods Broker natively (the Create Connection Using list is set to
NativewebMethodsAPI), Integration Server always uses the connection client ID from
the JMS connection alias.
If only the Connection Factory species the connection client ID, Integration Server
uses this value for any connections created from the alias.
If the JMS connection alias and the Connection Factory specify the connection client
ID, Integration Server uses the value in the Connection Factory. This is true when
working with all JMS providers, including the webMethods Broker.
When the Create New Connection per Trigger check box is not selected, each JMS trigger
that uses the JMS connection alias will use the same connection. Each connection will
have the same connection client ID.
When the Create New Connection per Trigger check box is selected, each JMS trigger that
uses the JMS connection alias will create its own connection to the JMS provider.
289
Even Header
Configuring Integration Server for JMS Messaging
If Integration Server uses the connection client ID in the Connection Factory, each
connection for a JMS trigger will have the same connection client ID.
If Integration Server uses the connection client ID from the JMS connection
alias, each connection for a JMS trigger will be unique to the JMS trigger. The
connection client ID will consist of the value of the Connection Client ID eld in the
JMS connection alias plus the fully qualied name of the JMS trigger.
Note:
290
Odd Header
Configuring Integration Server for JMS Messaging
You can only congure a default session pool and destination pools for nontransacted JMS connection aliases.
You can specify the minimum and maximum sizes for the default session pool and all
destination pools. Additionally, you can identify the destinations for which Integration
Server creates specic pools. If the JMS connection alias species the use of a connection
factory object to connect to the JMS provider, you specify a single list of destinations.
If the JMS connection alias species the Native webMethods API for connecting to the
webMethods Broker, you must specify separate lists for the queues and topics for which
you want Integration Server to create destination pools.
For example, suppose that a JMS connection alias named "myAlias" connects to the
webMethods Broker using the Native webMethods API and the elds are set as follows:
Field
Value
10
291
Even Header
Configuring Integration Server for JMS Messaging
Field
Value
Queue List
myQueue1;
myQueue2
Topic List
myTopic
Idle Timeout
70000
Using the above information, Integration Server creates a default session pool with a
minimum size of 1 maximum size of 10. This pool contains JUMS Session objects only.
Integration Server uses an entry from the pool when sending a message to destination
that does not have its own pool.
Integration Server also creates three destination pools: one each for the queues
myQueue1 and myQueue2, and one for the topic myTopic. Each of these pools has
a maximum size of 5 pool entries. Messages sent to the destinations myQueue1,
myQueue2, or myTopic will use an entry (a Session object and MessageProducer object)
from the pool created for the destination. Messages sent to other destinations will use a
Session from the default session pool.
An entry in the default or destination-specic pools expires after the entry has been
inactive for over 70000 milliseconds (70 seconds).
292
Odd Header
Configuring Integration Server for JMS Messaging
Description
293
Even Header
Configuring Integration Server for JMS Messaging
Stage
Description
If the client side queue is in use, Integration Server writes the
message created by the pub.jms:send service to the client side
queue.
If the client side queue is not in use, Integration Server throws
the original exception thrown by the JMS provider.
Note: A client side queue is in use if the JMS connection alias
has a Maximum CSQ Size value greater than 0 (zero) and the
useCSQ input parameter is set to true for the pub.jms:send
service.
About Retrying the pub.jms:send Service when webMethods Universal Messaging Is the JMS
Provider
When the JMS connection alias is congured to retry the pub.jms:send service upon
transient error and Universal Messaging is the JMS provider, Integration Server may
make some changes to the local instance of the Universal Messaging connection factory
to prevent or at least delay an exception from being thrown by Integration Server.
Integration Server makes changes so that if Integration Server loses its connection to the
Universal Messaging cluster, Integration Server does not throw an exception right away.
Instead, Universal Messaging suppresses the exception for a period of time. During
this time, Universal Messaging aempts to restore the cluster quorum. Concurrently,
Integration Server aempts to re-establish a connection to Universal Messaging. During
this delay, Integration Server is not notied of the exception and the JMS connection
alias will not be stopped. However, JMS triggers that use the JMS connection alias will
not receive any messages. Additionally, any pub.jms:send services that were in the midst
of using the JMS connection alias to send a message will be retried based on the retry
interval and retry count set for the JMS connection alias. If Universal Messaging cannot
restore a cluster quorum, Integration Server throws the exception. At this point, any JMS
trigger that uses the JMS connection alias will be stopped and any services that send JMS
messages using the JMS connection alias will throw exceptions immediately. Integration
Server then aempts to reconnect to Universal Messaging.
Integration Server makes changes to the Universal Messaging connection factory if
the connection factory has a MaxReconAempts property set to -1. (A value of -1 is
the default and suggests that the MaxReconAempts value has not been changed on
Universal Messaging.) Integration Server makes the following changes to the local
instance of the Universal Messaging connection factory:
Sets ConxExceptionOnFailure to true.
Sets MaxReconAempts to 35.
Sets ReconnectInterval to 2000 milliseconds.
Integration Server makes changes to the local instance of the Universal Messaging
connection factory only. The ConnectionFactory will not be changed on the JNDI
294
Odd Header
Configuring Integration Server for JMS Messaging
provider, which means that other clients that use the ConnectionFactory will not be
impacted.
To prevent Integration Server from making changes to the local instance of the Universal
Messaging connection factory, use the Universal Messaging Enterprise Manager to set
the MaxReconAempts property to a value greater than -1.
295
Even Header
Configuring Integration Server for JMS Messaging
4. In the JMS Connection Alias Denitions list, do one of the following in the Enabled
column:
Click No if the alias is disabled and you want to enable it.
If Integration Server cannot enable the alias, it displays a message under the alias
indicating why Integration Server cannot enable the alias.
Click Yes if the alias is enabled and you want to disable it.
296
Odd Header
Configuring Integration Server for JMS Messaging
297
Even Header
Configuring Integration Server for JMS Messaging
298
Odd Header
Configuring Integration Server for JMS Messaging
Server checks the connection, Integration Server polls the cluster connection factory for
changes every 10 minutes.
Note:
Integration Server can register an event listener with any JNDI provider that
supports EventContext interface. The webMethods JNDI provider supports
the EventContext interface.
A change event indicates that changes occurred in the connection factory object used
by the JMS connection alias. When Integration Server receives a change event for the
connection factory object, Integration Server refreshes the connection to the webMethods
Broker using the new cluster connection factory object.
An error event indicates that a NamingExceptionEvent occurred on the JNDI provider. A
NamingExceptionEvent can occur for multiple reasons, one if which is if the connection
between Integration Server and the JNDI provider fails. After a NamingExceptionEvent
occurs, the JNDI provider deregisters the event listener. As part of monitoring the state
of the connection to the webMethods Broker, Integration Server monitors the state of an
event listener. If Integration Server determines that the event listener was deregistered,
Integration Server re-registers the change listener, polls the connection factory object for
changes, and, if necessary, refreshes the connection.
Note:
299
Even Header
Configuring Integration Server for JMS Messaging
300
Odd Header
Configuring Integration Server for JMS Messaging
When monitoring a connection factory by polling for changes, the frequency with
which Integration Server polls for changes is dependent upon the connection
monitoring period. Integration Server checks the connection at frequency
determined by the connection monitoring period. As part of checking the
connection, Integration Server determines whether the polling interval has elapsed.
If it has, Integration Server polls for changes to the cluster connection factory. If
the polling interval is less than the connection monitoring period (controlled by
wa.server.jms.connection.monitorPeriod parameter), Integration Server does not
poll for changes with the frequency specied by the polling interval.
You must disable a JMS connection alias before you can edit it.
Note:
To...
No
301
Even Header
Configuring Integration Server for JMS Messaging
7. If you selected Poll for changes (specify interval), in the Polling Interval (minutes), specify
the number of minutes between polling aempts. The polling interval must be a
positive integer. The default value is 60 minutes.
8. Click Save Changes.
Notes
When Integration Server starts the JMS connection alias, Integration Server does the
following:
Veries that the JMS connection alias connects to the webMethods Broker
Veries that the JNDI provider supports the EventContext interface, if the JMS
connection alias monitors the connection factory via an event listener
Integration Server throws a JMSSubsystemException if the any of the above criteria are
not met.
302
Odd Header
Configuring Integration Server for JMS Messaging
Version(s)
Apache ActiveMQ
5.4.*
JBoss Messaging
SonicMQ
WebLogic
webMethods Broker
webMethods Universal
Messaging
WebSphere MQ
Note:
Make sure to review your JMS provider documentation for information about
any limitations in JMS support.
303
Even Header
Configuring Integration Server for JMS Messaging
When using Universal Messaging as the JMS provider, the JMS client can use
synchronous or asynchronous publishing. With synchronous publishing, the JMS
client sends messages to Universal Messaging one at a time. The JMS client receives
a response indicating a successful send only after the message has been delivered
to Universal Messaging. With asynchronous publishing, the JMS messages are
placed in a buer and then sent to Universal Messaging in batches. However, the
JMS client can receive a response indicating a successful send before the message is
actually delivered to Universal Messaging. Asynchronous publishing is faster than
synchronous publishing, but messages can be lost in the event the connection to
Universal Messaging fails or Integration Server becomes unavailable. The default
for a JMS client using Universal Messaging as the JMS provider is asynchronous
publishing. This default applies to all messages regardless of a persistent or nonpersistent delivery mode. However, to ensure delivery of a persistent message,
Integration Server always uses synchronous publishing to send a persistent JMS
message to Universal Messaging.
Message priority is not supported when Universal Messaging is the JMS provider.
Any priority assigned to a JMS message sent to Universal Messaging will be ignored.
If you are using Universal Messaging as the JMS provider and you want to use
durable subscribers, make sure to select the Shared Durable option when creating
a ConnectionFactory or TopicConnectionFactory using Universal Messaging
Enterprise Manager. For example, when creating a ConnectionFactory, select the
option named Connection Factory (Shared Durable).
When an Integration Server JMS connection alias is connected to a cluster of
Universal Messaging realm servers and the master realm server in the cluster
goes down, Integration Server stops the alias. This causes all JMS triggers
associated with the alias to stop, and all JMS sending services to fail with a
ResourceUnavailableException. The alias automatically reconnects to the cluster if
and when the cluster is able to reconcile itself (that is, the cluster is able to reelect a
new master realm server).
Integration Server enforces minimum values for the server conguration properties
that control the polling intervals for JMS triggers when Universal Messaging is
the JMS provider. The default values for these parameters are not optimal when
connecting to Universal Messaging. Lower polling intervals, including the default
values, can result in high CPU utilization on the Universal Messaging server and do
not provide a performance benet when working with Universal Messaging.
Parameter
wa.server.jms.trigger.concurrent.
primaryThread.pollingInterval
3000 milliseconds
wa.server.jms.trigger.concurrent.
secondaryThread.pollingInterval
304
Odd Header
Configuring Integration Server for JMS Messaging
Parameter
wa.server.jms.trigger.serial.
primaryThread.pollingInterval
3000 milliseconds
Note:If the serial JMS trigger uses a join,
Integration Server uses a secondary
polling interval which is set to 10
milliseconds. Note that the secondary
polling interval is not congurable for a
serial JMS trigger.
You can increase the polling intervals by changing the server conguration
parameters. Keep in mind that the values you specify will be used with all JMS
providers. Integration Server only enforces a minimum when connecting to
Universal Messaging.
JMS triggers that use joins might aect the CPU utilization for Universal Messaging
even with the minimum values mentioned above. This is because the secondary
polling interval is low (10 milliseconds). The secondary polling interval needs to
be low so that the JMS trigger can quickly retrieve messages from the dierent
destinations. To reduce the impact on Universal Messaging, consider one of the
following approaches:
For a concurrent JMS trigger, congure the JMS connection alias used by the
trigger to use multiple connections and then set the JMS trigger Connection count
property to a value that is evenly divisible by the number of destinations. For
example, if a JMS trigger retrieves messages from two destinations, set Connection
count to 2, 4, 6, 8, and so on. If the JMS trigger retrieves messages from three
destinations, set Connection count to 3, 6, 9, and so on.
For a serial or concurrent JMS trigger, instead of using a join for the JMS trigger,
use a Universal Messaging channel join to gather messages from dierent
destinations into a single destination on the Universal Messaging server.
305
Even Header
Configuring Integration Server for JMS Messaging
Make the libraries available to all server instances by placing them in the
Integration Server_directory\lib\jars\custom directory.
Note:
Files located in the servers classpath take precedence over the les located
at the Integration Server_directory\lib\jars\custom directory.
Isolate the jars within a package classloader by placing them in the following
directory: packageName \code\jars.
If you place the les in the package classloader, make sure to set the Class Loader
property when conguring a JMS connection alias to this JMS provider.
The JMS provider's .jar les could potentially conict with other webMethods
components running under Integration Server. If you encounter a conict, consider
using a package class loader instead.
Note:
The webMethods Broker and JNDI provider .jar les are already included
in Integration Server. The Universal Messaging .jar les are included in
Software AG_directory/common/lib. If you want to use Integration Server
with a lower, supported version of Universal Messaging, you must manually
replace versions in Software AG_directory/common/lib with those from the
earlier version. For more information, see "Adding Client Libraries for Earlier
Versions of Universal Messaging " on page 309.
To add a third party JMS provider's JMS and JNDI libraries to the Integration Server classpath
1. Copy your JMS provider's Java API libraries from the locations specied below and
place them in Integration Server_directory \instances\instance_name \lib\jars\custom
directory.
JMS Provider
Apache ActiveMQ
Files to Copy
ActiveMQ_HOME \activemq-all-5.4.*.jar
Where ActiveMQ_HOME is the directory in which
Apache ActiveMQ is installed
JBoss Messaging
306
Odd Header
Configuring Integration Server for JMS Messaging
JMS Provider
Files to Copy
Where JBOSS_HOME is the directory in which JBoss
is installed and SERVER_NAME is the name of the
messaging server
Note: JBoss Messaging 1.4.0 requires a patched version
of jboss-remoting.jar.
Oracle Streams
Advanced Queuing
(AQ)
SonicMQ
307
Even Header
Configuring Integration Server for JMS Messaging
JMS Provider
Files to Copy
SonicMQ_directory \lib\sonic_Client.jar
SonicMQ_directory \lib\sonic_Crypto.jar
SonicMQ_directory \lib\sonic_mgmt_client.jar
SonicMQ_directory \lib\sonic_Selector.jar
SonicMQ_directory \lib\sonic_XA.jar
For SonicMQ version 7.6, all of the above, plus:
SonicMQ_directory \lib\mgmt_client.jar
SonicMQ_directory \lib\mgmt_cong.jar
SonicMQ_directory \lib\sonic_XMessage.jar
Where SonicMQ_directory is the directory in which
SonicMQ is installed.
WebLogic
WebSphere MQ
308
Odd Header
Configuring Integration Server for JMS Messaging
JMS Provider
Files to Copy
Where WebSphereMQ is the directory in which your
WebSphere MQ is installed.
The list of les for each JMS provider is a general guideline. The
requirements for each JMS provider may change. Make sure to review
the documentation for your JMS provider to determine an exact list of
required jar les.
To replace client libraries with those from earlier versions of Universal Messaging
1. Copy the following les from the Software AG_directory \common\lib directory that
contains the installed version of Universal Messaging that you want to use.
nAdminAPI.jar
nAdminXMLAPI.jar
nclient.jar
nDeployer.jar
nJ2EE.jar
nJMS.jar
nP2P.jar
2. Place the copied les in the Software AG_directory \common\lib directory used by
Integration Server.
3. Restart Integration Server.
309
Even Header
310
Odd Header
Configuring Endpoint Aliases for Web Services
312
Creating an Endpoint Alias for a Provider Web Service Descriptor for Use with HTTP/S ..........
313
Creating an Endpoint Alias for a Consumer Web Service Descriptor for Use with HTTP/S .......
320
Creating an Endpoint Alias for Message Addressing for Use with HTTP/S ...............................
331
Creating an Endpoint Alias for a Provider Web Service Descriptor for Use with JMS ...............
338
Creating an Endpoint Alias for a Consumer Web Service Descriptor for Use with JMS ............
344
Creating an Endpoint Alias for Message Addressing for Use with JMS ....................................
352
359
311
Even Header
Configuring Endpoint Aliases for Web Services
Overview
A web service endpoint alias represents the network address and, optionally, any
security credentials to be used with web services. You can use the network address
properties to enable dynamic addressing for web services. The security credentials can
be used to control both transport-level and message-level security for web services.
In web service descriptors (WSD), an endpoint alias is associated with a binder. For
more information about associating an endpoint alias with a binder, see webMethods
Service Development Help.
For a consumer web service descriptor (WSD) and its associated web service connectors
(WSC), the alias information (including the addressing information and any security
credentials), is used at run time to generate a request and invoke an operation of the web
service.
For a provider WSD, the endpoint alias is used to construct the "location=" aribute
of the address element (which is contained within the port element) when WSDL is
requested for the web service. The security credentials might be used when constructing
a response to a web service request.
When you create a provider WSD, you can specify an existing endpoint alias, which
will be displayed (and can be changed) from the default binder of the WSD. Integration
Server uses a binder to collect the denitions for addresses, communication protocols,
and data formats for a particular port type in one container.
Integration Server uses message addressing endpoint aliases to send responses to
endpoints other than the one that initiated or sent the request. That is, when WSAddressing is enabled and the request SOAP message contains a non-anonymous
ReplyTo or FaultTo endpoint, Integration Server uses the message addressing endpoint
alias to determine the authentication details to be used to send a response to the ReplyTo
and FaultTo endpoints.
An endpoint alias is usually created for one or more of the following reasons:
Dynamic endpoint addressing. Because the actual value of the endpoint is looked up
at run time, using an endpoint alias saves you from having to specify or change the
server information each time you use the web service.
Security. An endpoint alias is required in order to congure WS-Security for web
service providers and consumers. For information about implementing WS-Security,
see the information about WS-Security in the Web Services Developers Guide.
WS-Addressing. Using the message addressing properties, you can specify the
authentication credentials required to send a response to a dierent address
than the request. The message addressing properties dene the WS-Addressing
information that can be aached to the SOAP message. For more information about
WS-Addressing, see Web Services Developers Guide.
WS-ReliableMessaging. Reliable messaging properties ensure the reliable delivery
of the message between the two endpoints (web service and client or reliable
webMethods Integration Server Administrators Guide Version 9.10
312
Odd Header
Configuring Endpoint Aliases for Web Services
messaging source and destination). You can congure reliable messaging properties
specic to a web service endpoint or at a global level for all web service endpoints
dened in the Integration Server.
When you create web service endpoint aliases, keep the following points in mind:
Alias names must be unique within the specied usage (provider or consumer)
and protocol. This can result in multiple endpoint aliases with the same name. For
example, you can have a provider alias named "aliasOne" for the HTTP protocol.
You could also have a consumer alias named "aliasOne" for the HTTP protocol and a
provider alias named "aliasOne" for the HTTPS protocol.
Integration Server saves web service endpoint aliases at the following location:
Integration Server_directory\instances\instance_name \cong\endpoints
The host name and port are required for a provider HTTP/S web service endpoint
alias, but are optional for a consumer HTTP/S web service endpoint alias.
If the Integration Server on which a consumer WSD resides sits behind a rewall and
the web service request needs to be routed through a proxy server, you can assign a
proxy alias to the consumer web service endpoint alias.
313
Even Header
Configuring Endpoint Aliases for Web Services
Specify...
Alias
Description
Type
Provider
Transport Type
Specify...
Host Name or IP
Address
Port
314
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
If the host Integration Server is fronted by a proxy, specify the
port for the proxy server.
6. Under WS Security Properties, if the inbound SOAP request must be decrypted and/or
the outbound SOAP request must be signed, do the following:
In this field...
Specify...
Keystore Alias
Key Alias
Alias of the private key used to decrypt the request or sign the
response. The key must be in the keystore specied in Keystore
Alias.
Specify...
Truststore Alias
8. Under WS Security Properties, set the timestamp properties that Integration Server
uses when working with timestamps.
In this field...
Specify...
Timestamp
Precision
315
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Timestamp Time
to Live
Timestamp
Maximum Skew
For more information about timestamps in the WS-Security header, see "Timestamps
in the WS-Security Header" on page 359.
9. Under Kerberos Properties, provide the following Kerberos-related details that will be
used for all providers that use this endpoint alias.
Note:
These elds are available only for provider endpoint aliases using the
HTTPS transport type.
In this field...
Specify...
JAAS Context
316
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
The is_jaas.cnf le distributed with Integration Server includes
a JAAS context named IS_KERBEROS_INBOUND that can be
used with inbound requests.
Principal
Principal
Password
Retype Principal
Password
Service
Principal Name
Format
To...
host-based
username
Service
Principal Name
The name of the principal for the service that the Kerberos
client wants to access. This can be obtained from the WSDL
document published by the provider of the Kerberos service.
Specify the Service Principal Name in the following format:
principal-name.instance-name@realm-name
10. Under Message Addressing Properties, provide the following addressing information
relating to the delivery of the message. The message addressing properties dene the
addressing information that can be aached to the SOAP message.
317
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
To
Response Map
11. Under Reliable Messaging Properties, check Enable to provide reliable messaging
information specic to the endpoint alias you are creating.
12. Provide the following reliable-messaging information to ensure reliable delivery of
the message between a reliable messaging source and destination.
In this field...
Specify...
Retransmission
Interval
318
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Acknowledgement
Interval
Exponential
Backoff
Maximum
Retransmission
Count
To...
true
false
319
Even Header
Configuring Endpoint Aliases for Web Services
320
Odd Header
Configuring Endpoint Aliases for Web Services
provider or consumer, dene reliable messaging properties for the associated web
service endpoint alias.
To create a consumer web service endpoint alias for use with HTTP/S
1. Open Integration Server Administrator if it is not already open.
2. In the Navigation panel, select Settings > Web Services.
3. Click Create Web Service Endpoint Alias.
4. Under Web Service Endpoint Alias Properties, provide the following information:
In this field...
Specify...
Alias
Description
Type
Consumer
Transport Type
Execute ACL
ACL that governs which user groups on your server can use
this web service endpoint alias. Select an ACL from the drop
down list. By default, only members of groups governed by
the Internal ACL can use this alias.
Integration Server performs the ACL check only if the specic
endpoint alias is used as the value of the endpointAlias input
parameter in a web service connector or the pub.client:soapClient
service. Integration Server does not perform the ACL check
when the consumer web service endpoint alias is assigned to a
binder used by the web service connector.
321
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Host Name or IP
Address
Port Number
Authentication Type
To...
Basic
Digest
NTLM
6. If you are conguring the web service endpoint for transport-based authentication
such as HTTPS, specify all or a combination of the following optional elds:
In this field...
Specify...
User Name
Password
Retype
Password
Keystore Alias
322
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Key Alias
Alias to the key in the keystore that contains the private key
used to connect to the web service host securely. The key must
be in the keystore specied in Keystore Alias.
This eld applies to the HTTPS transport type only.
7. If web service requests must be sent through a proxy server, in the Proxy Alias eld,
do one of the following to specify which proxy server Integration Server uses:
If you want Integration Server to use a particular proxy server, select the alias for
that proxy server. Integration Server lists all the congured HTTP/S and SOCKS
proxy aliases in the Proxy Alias eld.
If you want Integration Server to use the default proxy server, leave this eld
blank.
For more information about how Integration Server uses proxy servers when
sending requests, see "How Integration Server Uses Proxy Servers" on page 121.
8. Under WS Security Properties, provide the following information if the WS-Security
policy for this consumer web service descriptor requires that SOAP message requests
include a UsernameToken, enter values for the following elds:
In this field...
Specify...
User Name
Password
Retype
Password
9. If the security policy (or policies) that will be used by this web service requires
its requests to be signed, requires an X.509 authentication token to be included, or
requires that SOAP message responses be encrypted, specify the following:
In this field...
Specify
Keystore Alias
Alias to the keystore that contains the private key used to:
Sign outbound SOAP requests
Include an X.509 authentication token for outbound SOAP
requests
Decrypt inbound SOAP responses
323
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify
To verify messages from this consumer, the
Important:
web services provider must have a copy of the
corresponding public key.
Key Alias
10. Under WS Security Properties, specify the provider's certicate le. This certicate
is used to encrypt the outbound SOAP request and/or verify the inbound SOAP
response.
In this field...
Specify
Partner's Certificate
11. Under WS Security Properties, if the security policy (or policies) that will be used
by this web services consumer requires that responses be validated by a trusted
authority, specify the following:
In this field...
Specify
Partner's Certificate
Truststore Alias
12. Under WS Security Properties, congure how Integration Server handles timestamps in
the security headers.
In this field...
Specify...
Timestamp
Precision
324
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
wa.server.ws.security.timestampPrecisionInMilliseconds
parameter.
Timestamp Time
to Live
Timestamp
Maximum Skew
For more information about timestamps in the WS-Security header, see "Timestamps
in the WS-Security Header" on page 359.
13. Under Kerberos Properties, provide the following Kerberos-related details that will be
used for all web service requests that use this endpoint alias.
Note:
These elds are available only for consumer endpoint aliases using HTTPS
transport type.
In this field...
Specify...
JAAS Context
325
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
The is_jaas.cnf le distributed with Integration Server includes
a JAAS context named IS_KERBEROS_OUTBOUND that can
be used with inbound requests.
Principal
Principal
Password
Retype Principal
Password
Service
Principal Name
Format
To...
host-based
username
Service
Principal Name
The name of the principal for the service that the Kerberos
client wants to access. This can be obtained from the WSDL
document published by the provider of the Kerberos service.
Specify the Service Principal Name in the following format:
principal-name.instance-name@realm-name
14. Under Message Addressing Properties, provide the following addressing information
relating to the delivery of a message to a web service. The message addressing
properties dene the addressing information that can be aached to the SOAP
message.
326
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Must
Understand
To...
True
False
To...
327
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Ultimate
Receiver
Next
None
Other
To
From
URI of the source of the SOAP message. Enter the URI in the
Address eld.
Optionally, in the Reference Parameters eld, specify any
additional parameters that are necessary to route the message
to the destination. You can also specify optional metadata
(such as WSDL or WS-Policy) about the service in the Metadata
Elements eld. You can specify more than one reference
parameter and metadata element. Click the + icon to add
more rows and the x icon to delete the rows.
ReplyTo
328
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
service descriptor. For a consumer endpoint alias, it defaults
to:
hp://www.w3.org/2005/08/addressing/anonymous for Final
version of WS-Addressing.
hp://schemas.xmlsoap.org/ws/2004/08/addressing/role/
anonymous for Submission version of WS-Addressing.
In the Reference Parameters eld, specify additional parameters,
if any, that correspond to <wsa:ReferenceParameters>
properties of the endpoint reference to which the response
message is addressed. Optionally, you can specify metadata
(such as WSDL or WS-Policy) about the service in the Metadata
Elements eld. You can also specify Extensible Elements, which
are elements other than those specied as part of the Metadata
and Reference Parameters.
You can specify more than one reference parameter, metadata
element, or extensible element. Click the + icon to add more
rows and the x icon to delete the rows.
FaultTo
15. Under Reliable Messaging Properties, check Enable to provide reliable messaging
information specic to the endpoint alias you are creating.
16. Provide the following reliable-messaging information to ensure reliable delivery of
the message between a reliable messaging source and destination.
329
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Retransmission
Interval
Acknowledgement
Interval
Exponential
Backoff
Maximum
Retransmission
Count
To...
true
false
330
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
is no limit to the number of retransmission aempts, set the
value of Maximum Retransmission Count to -1. The default is 10.
331
Even Header
Configuring Endpoint Aliases for Web Services
To create a message addressing web service endpoint alias for use with HTTP/S
1. Open Integration Server Administrator if it is not already open.
2. In the Navigation panel, select Settings > Web Services.
3. Click Create Web Service Endpoint Alias.
4. Under Web Service Endpoint Alias Properties, provide the following information:
In this field...
Specify...
Alias
Description
Type
Message Addressing
Transport Type
5. If you are conguring the web service endpoint for transport-based authentication
such as HTTPS, specify all or a combination of the following optional elds under
TransportType Transport Properties:
In this field...
Specify...
Authentication
Type
To...
Basic
Digest
332
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
NTLM
User Name
Password
Retype
Password
Keystore Alias
Key Alias
Alias to the key in the keystore that contains the private key
used to connect to the web service host securely. The key must
be in the keystore specied in Keystore Alias.
This eld applies to the HTTPS transport type only.
6. If web service responses must be sent through a proxy server, in the Proxy Alias eld,
do one of the following to specify which proxy server Integration Server uses:
If you want Integration Server to use a particular proxy server, specify the alias
for that proxy server. Integration Server lists all the congured HTTP/S and
SOCKS proxy aliases in the Proxy Alias eld.
If you want Integration Server to use the default proxy server, leave this eld
blank.
For more information about how Integration Server uses proxy servers when
sending responses, see "How Integration Server Uses Proxy Servers" on page 121.
7. Under WS Security Properties, specify the certicate le of the receiver of the SOAP
response. This certicate is used to encrypt the outbound SOAP response and/or
verify the inbound SOAP response.
In this field...
Specify
Partner's Certificate
333
Even Header
Configuring Endpoint Aliases for Web Services
8. Under WS Security Properties, specify the following if the security policy (or policies)
that will be used by this web service requires its responses to be signed, requires an
X.509 authentication token to be included, or requires that SOAP message responses
be encrypted:
In this field...
Specify
Keystore Alias
Alias to the keystore that contains the private key used to:
Sign outbound SOAP responses
Include an X.509 authentication token for outbound SOAP
responses
To verify response messages from this web service, the
Important:
receiver must have the corresponding public key.
Key Alias
Specify...
Timestamp
Precision
Timestamp Time
to Live
334
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Timestamp
Maximum Skew
For more information about timestamps in the WS-Security header, see "Timestamps
in the WS-Security Header" on page 359.
10. Under Message Addressing Properties, provide the following addressing information
relating to the delivery of a SOAP response to the receiver. The message addressing
properties dene the addressing information that can be aached to the SOAP
message.
In this field...
Specify...
Must
Understand
To...
True
False
335
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Integration Server processes both sets of values the same
way and performs any necessary conversions.
For more information about the mustUnderstand and
actor aributes in SOAP 1.1, see the Simple Object Access
Protocol (SOAP) 1.1 - W3C Note 08 May 2000.
For more information about the mustUnderstand and
role aributes in SOAP 1.2, see the Simple Object Access
Protocol (SOAP) 1.2 specication.
Role
To...
Ultimate
Receiver
Next
None
Other
From
336
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
In the Reference Parameters eld, specify additional parameters,
if any, that correspond to <wsa:ReferenceParameters>
properties of the endpoint reference. Optionally, you can
specify metadata (such as WSDL or WS-Policy) about the
service in the Metadata Elements eld. You can also specify
Extensible Elements, which are elements other than those
specied as part of the Metadata and Reference Parameters. You
can specify more than one reference parameter, metadata
element, or extensible element. Click the + icon to add more
rows and the x icon to delete the rows.
ReplyTo
FaultTo
337
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
and Reference Parameters. You can specify more than one
reference parameter, metadata element, or extensible element.
Click the + icon to add more rows and the x icon to delete
the rows.
You can specify more than one reference parameter, metadata
element, or extensible element. Click the + icon to add more
rows and the x icon to delete the rows.
338
Odd Header
Configuring Endpoint Aliases for Web Services
Keep the following information in mind when creating a web service endpoint alias for a
JMS binder in a provider web service descriptor:
You can associate the web service endpoint alias with:
A SOAP-JMS trigger that already exists.
A WS endpoint trigger that you create at the same time you create the endpoint
alias.
If you use a SOAP-JMS trigger in the web service endpoint alias and subsequently
assign the alias to a JMS binder in a provider web service descriptor, the web service
descriptor has a dependency on the SOAP-JMS trigger. Consequently, at start up
or when reloading the package containing the web service descriptor, Integration
Server must load the SOAP-JMS trigger before loading the web service descriptor. If
the SOAP-JMS trigger and web service descriptor are not in the same package, you
need to create a package dependency for the package that contains the web service
descriptor on the package that contains the SOAP-JMS trigger.
If you rename the SOAP-JMS trigger assigned to an alias, you need to update the
alias to use the renamed trigger.
The following properties are optional.
Delivery Mode
Time to Live
Priority
Reply To Name
Reply To Type
If you do not specify values for one of the listed properties (or specify an invalid
value), Integration Server will not include information for the property in the WSDL
document generated for a provider web service descriptor that uses the web service
endpoint alias. The absence of the property from the WSDL document instructs the
web service consumer to use the default value for the property as indicated in the
Java Message Service standard.
To create a provider web service endpoint alias for use with JMS
1. Open Integration Server Administrator if it is not already open.
2. In the Navigation panel, select Settings > Web Services.
3. Click Create Web Service Endpoint Alias.
4. Under Web Service Endpoint Alias Properties, provide the following information:
In this field...
Specify...
Alias
339
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
The alias name cannot include the following illegal characters:
# \ & @ ^ ! % * : $ . / \ \ ` ; , ~ + = ) ( | } { ] [ > < "
Description
Type
Provider
Transport Type
JMS
Specify...
JMS Trigger
Name
Delivery Mode
Time to Live
To...
PERSISTENT
NON_PERSISTENT
340
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Priority
Reply To Name
Reply To Type
To...
QUEUE
TOPIC
To...
Note:
The JMS URI appears in the WSDL document as the location aribute
value for the address element contained within the port element.
341
Even Header
Configuring Endpoint Aliases for Web Services
7. Under WS Security Properties, if the inbound SOAP request must be decrypted and/or
the outbound SOAP response must be signed, do the following:
In this field...
Specify...
Keystore Alias
Key Alias
Alias of the private key used to decrypt the request or sign the
response. The key must be in the keystore specied in Keystore
Alias.
Specify...
Truststore Alias
Specify...
Timestamp
Precision
Timestamp Time
to Live
342
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
If you do not specify a Timestamp Time to Live value,
Integration Server will use the value specied for the
wa.server.ws.security.timestampTimeToLive parameter.
Note: The Timestamp Time to Live value should be greater than
the Time to Live value specied under JMS Transport
Properties.
Timestamp
Maximum Skew
10. Under Message Addressing Properties, provide the following addressing information
relating to the delivery of the message. The message addressing properties dene the
addressing information that can be aached to the SOAP message.
In this field...
Specify...
To
Response Map
343
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Integration Server retrieves the authentication details
needed to send the response from the message addressing
alias mapped to the address.
In the Address eld, specify the URI to which the provider
will send the reply or the fault message.
From the Message Addressing Alias list, select the Message
Addressing endpoint alias from which Integration Server
will retrieve the authentication details. Integration Server
uses the authentication details to send the response to the
ReplyTo or FaultTo endpoints.
Click the + icon to add more rows and the x icon to delete
the rows.
If a provider web service endpoint alias for use with JMS species a WS
endpoint trigger, deleting the alias also deletes the WS endpoint trigger.
344
Odd Header
Configuring Endpoint Aliases for Web Services
Keep the following points in mind when creating a web service endpoint alias for use
with a consumer web service descriptor with a SOAP over JMS binding:
A JMS consumer web service endpoint alias can specify one of the following options
to connect to a JMS provider:
JNDI provider alias and a connection factory.
JMS connection alias.
Only specify a JNDI provider alias and connection factory, or JMS connection alias,
if information for connecting to the JMS provider was not included in the WSDL
document used to create the consumer web service descriptor or if you want to
overwrite the connection information included in the WSDL document.
Note:
If you want to use the client side queue with the web service descriptor to which the
alias is assigned, you must specify a JMS connection alias as the way to connect to
the JMS provider.
Information in the JMS consumer web service endpoint alias can supplement or
replace the JMS URI information obtained from a WSDL.
You can use the endpoint alias to provide information for the WS-Security header as
determined by the security policy for the web service. A web service security policy
can require that:
SOAP message requests include a UserName token.
SOAP message response be decrypted.
SOAP message requests to be signed.
X.509 authentication.
A Timestamp element be added to the security header.
Note:
To create a consumer web service endpoint alias for use with JMS
1. Open Integration Server Administrator if it is not already open.
2. In the Navigation panel, select Settings > Web Services.
345
Even Header
Configuring Endpoint Aliases for Web Services
Specify...
Alias
Description
Type
Consumer
Transport Type
JMS
Execute ACL
ACL that governs which user groups on your server can use
this web service endpoint alias. Select an ACL from the drop
down list. By default, only members of groups governed by the
Internal ACL can use this alias.
5. Under JMS Transport Properties, do the following if you want to connect to the JMS
provider using a connection factory:
In this field...
Specify...
Connect Using
JNDI Properties
Connection Factory
Name
6. Under JMS Transport Properties, do the following if you want to connect to the JMS
provider using a JMS connection alias:
346
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Connect Using
Specify...
User Name
Password
Retype
Password
8. If the security policy (or policies) that will be used by this web service requires
its requests to be signed, requires an X.509 authentication token to be included, or
requires that SOAP message responses be encrypted, specify the following:
In this field...
Specify
Keystore Alias
Alias to the keystore that contains the private key used to:
Sign outbound SOAP requests
Include an X.509 authentication token for outbound SOAP
requests
Decrypt inbound SOAP responses
To verify messages from this consumer, the
Important:
web services provider must have a copy of the
corresponding public key.
Key Alias
347
Even Header
Configuring Endpoint Aliases for Web Services
9. Under WS Security Properties, specify the provider's certicate le. This certicate
is used to encrypt the outbound SOAP request and/or verify the inbound SOAP
response.
In this field...
Specify
Partner's Certificate
10. Under WS Security Properties, if the security policy (or policies) that will be used by
this web services consumer requires that responses be veried by a trusted authority,
specify the following:
In this field...
Specify
Partner's Certificate
Truststore Alias
11. Under WS Security Properties, congure how Integration Server handles timestamps in
the security headers.
In this field...
Specify...
Timestamp
Precision
Timestamp Time
to Live
348
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
If you do not specify a time-to-live value, Integration
Server will use the value specied for the
wa.server.ws.security.timestampTimeToLive parameter.
Timestamp
Maximum Skew
For more information about timestamps in the WS-Security header, see "Timestamps
in the WS-Security Header" on page 359.
12. Under Message Addressing Properties, provide the following addressing information
relating to the delivery of a message to a web service.
In this field...
Specify...
Must
Understand
To...
True
349
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
False
To...
Ultimate
Receiver
Next
None
350
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Other
To
From
ReplyTo
351
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
You can specify more than one reference parameter, metadata
element, or extensible element. Click the + icon to add more
rows and the x icon to delete the rows.
FaultTo
352
Odd Header
Configuring Endpoint Aliases for Web Services
document used to create the consumer web service descriptor or if you want to
overwrite the connection information included in the WSDL document.
Note:
You can use the endpoint alias to provide information for the WS-Security header as
determined by the security policy for the web service.
Note:
If you want to use the client side queue with the web service descriptor to which the
alias is assigned, you must specify a JMS connection alias as the way to connect to
the JMS provider.
Note:
To create a message addressing web service endpoint alias for use with JMS
1. Open Integration Server Administrator if it is not already open.
2. In the Navigation panel, select Settings > Web Services.
3. Click Create Web Service Endpoint Alias.
4. Under Web Service Endpoint Alias Properties, provide the following information:
In this field...
Specify...
Alias
Description
Type
Message Addressing
353
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Transport Type
JMS
5. Under JMS Transport Properties, do the following if you want to connect to the JMS
provider using a connection factory:
In this field...
Specify...
Connect Using
JNDI Properties
Connection Factory
Name
6. Under JMS Transport Properties, do the following if you want to connect to the JMS
provider using a JMS connection alias:
In this field...
Specify...
Connect Using
7. Under WS Security Properties, specify the certicate le of the receiver of the SOAP
response. This certicate is used to encrypt the outbound SOAP response.
In this field...
Specify
Partner's Certificate
8. Under WS Security Properties, specify the following if the security policy (or policies)
that will be used by this web service requires its responses to be signed, requires an
X.509 authentication token to be included, or requires that SOAP message responses
be encrypted.
354
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify
Keystore Alias
Alias to the keystore that contains the private key used to:
Sign outbound SOAP responses
Include an X.509 authentication token for outbound SOAP
responses
To verify response messages from this web service, the
Important:
receiver must have the corresponding public key.
Key Alias
Specify...
Timestamp
Precision
Timestamp Time
to Live
Timestamp
Maximum Skew
355
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
Integration Server validates the inbound SOAP message only
when the creation timestamp of the message is less than the
sum of the timestamp maximum skew value and the current
system clock time.
If you do not specify a timestamp maximum skew value,
Integration Server will use the value specied for the
wa.server.ws.security.timestampMaximumSkew parameter.
For more information about timestamps in the WS-Security header, see "Timestamps
in the WS-Security Header" on page 359.
10. Under Message Addressing Properties, provide the following addressing information
relating to the delivery of a response SOAP message to the receiver. The message
addressing properties dene the addressing information that can be aached to the
SOAP message.
In this field...
Specify...
Must
Understand
To...
True
False
356
Odd Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
For more information about the mustUnderstand and
role aributes in SOAP 1.2, see the Simple Object Access
Protocol (SOAP) 1.2 specication.
Role
To...
Ultimate
Receiver
Next
None
Other
From
357
Even Header
Configuring Endpoint Aliases for Web Services
In this field...
Specify...
can specify more than one reference parameter, metadata
element, or extensible element. Click the + icon to add more
rows and the x icon to delete the rows.
ReplyTo
FaultTo
358
Odd Header
Configuring Endpoint Aliases for Web Services
359
Even Header
360
Odd Header
Configuring Reliable Messaging in Integration Server
362
363
365
368
370
370
371
361
Even Header
Configuring Reliable Messaging in Integration Server
362
Odd Header
Configuring Reliable Messaging in Integration Server
Message sequence. A message or a series of messages that have the same destination.
Grouping of messages to a message sequence makes it easy to track and manage the
transmission of messages.
Sequence key. User-dened key to identify a message sequence. A reliable messaging
client associates a sequence key to a message sequence based on the endpoint
URL to which the message sequence is directed. In cases where there are several
message sequences directed to the same endpoint URL, you can specify a custom
sequence key to identify each sequence. Each sequence is then uniquely identied
by the endpoint URL and the user-specied sequence key. The sequence key can
be provided as the input of the pub.soap.wsrm:createSequence service or as the input
parameter of the web service connector.
Client sequence Id. Unique identier that is generated by a reliable messaging client
and associated with a reliable messaging sequence. To ensure that a client can
identify the message as part of a particular sequence, the reliable messaging server
species the client sequence Id when it sends a SOAP response to the reliable
messaging client.
Server sequence Id. Unique identier that is generated by a reliable messaging
server and associated with a reliable messaging sequence. To ensure that a
server can identify the message as part of a particular sequence, the reliable
messaging client species the server sequence Id while sending a SOAP request
to the reliable messaging server. The server sequence Id of a message sequence is
returned as the output parameter of the pub.soap.wsrm:createSequence service or as
the reliableMessagingInfo/responseReliableMessagingProperties/serverSequenceId output
parameter of the web service connector.
Acknowledgement. Response from the reliable messaging destination to the reliable
messaging source indicating that the message has been successfully received by the
destination.
363
Even Header
Configuring Reliable Messaging in Integration Server
364
Odd Header
Configuring Reliable Messaging in Integration Server
Specify...
Retransmission Interval
365
Even Header
Configuring Reliable Messaging in Integration Server
In this field...
Specify...
Acknowledgement
Interval
Exponential Backoff
Inactivity Timeout
To...
true
false
366
Odd Header
Configuring Reliable Messaging in Integration Server
In this field...
Specify...
there is no inactivity timeout limit, set the value of
Inactivity Timeout to -1.
The default is 60 seconds.
Sequence Removal
Timeout
In-Order Delivery
Assurance
To...
True
False
Maximum
Retransmission Count
Storage Type
To...
NonPersistent
367
Even Header
Configuring Reliable Messaging in Integration Server
In this field...
Specify...
be removed from memory. This is the
default.
Database
Housekeeping Interval
Description
User Sequence
Key
368
Odd Header
Configuring Reliable Messaging in Integration Server
Field
Description
service or as the reliableMessagingProperties/sequenceKey
parameter of the web service connector.
Client
Sequence Id
Server
Sequence Id
To Address
Status
Number of
Completed
Messages
Last Activated
Timestamp that species the time when the last message in the
sequence was transmied.
Acknowledgement
Request
Close
Terminate
369
Even Header
Configuring Reliable Messaging in Integration Server
Closing a Sequence
You can close a message sequence if you do not want a reliable messaging client to send
any new messages using the specied sequence, other than those already accepted and
being processed by the reliable messaging server.
When a reliable messaging sequence is closed, the reliable messaging server will not
accept any new messages of the same sequence. However, the reliable messaging server
will continue to track the closed sequence and respond to acknowledgment requests for
messages in the closed sequence.
Only a reliable messaging client can close a message sequence. After a reliable
messaging sequence is closed, only a client can terminate the sequence. If there is no
activity related to the closed sequence over the specied inactivity timeout interval, the
reliable messaging client marks the sequence as timed out.
To close a sequence
1. Open Integration Server Administrator.
2. In the Navigation panel, select Settings > Web Services.
3. Click Reliable Messaging.
4. Under Client Sequences, locate the sequence that you want to close and click the Close
link.
Terminating a Sequence
You can terminate a reliable messaging sequence without waiting for all the messages
in the sequence to be acknowledged. Only a reliable messaging client can terminate
a message sequence. A terminate sequence request from a reliable messaging client
indicates that the sequence is complete and that it will not be sending any further
messages related to the sequence. You can, however, reuse the sequence key of the
message sequence only after the Sequence Removal Timeout period has elapsed.
To terminate a sequence
1. Open Integration Server Administrator.
370
Odd Header
Configuring Reliable Messaging in Integration Server
371
Even Header
372
Odd Header
Configuring Integration Server to Use Kerberos
374
374
375
375
376
379
379
373
Even Header
Configuring Integration Server to Use Kerberos
Overview
Kerberos is an authentication protocol that uses symmetric encryption and a trusted
third party system to validate the identity of clients. The Kerberos protocol provides
authentication over open and insecure networks in which communication between the
hosts can be intercepted.
You can use Integration Server to enable and congure Kerberos authentication for
service requests. Integration Server provides support for using Kerberos authentication
with the following types of requests:
Inbound and outbound HTTP and HTTPs requests at the transport level.
Inbound and outbound web service requests.
About Kerberos
Kerberos authentication system consists of the following:
A Kerberos client that needs to access and use Kerberos services.
A trusted third-party system, specically a key distribution center (KDC).
A server that hosts services that are accessible using Kerberos authentication.
Kerberos authentication is comprised of these phases:
1. Authentication phase. Client authenticates itself to the authentication service and
requests a long-term ticket granting ticket.
2. Service authorization phase. Client uses the ticket granting ticket to request a ticket for
the specic service it wants to invoke.
3. Service invocation phase. Client sends the request to invoke the target service,
including the service ticket obtained in the service authorization phase. If the server
hosting the requested service authenticates the service ticket, the server invokes the
requested service.
Kerberos Terminology
Before conguring Integration Server to use Kerberos authentication, you may nd it
helpful to rst understand the following terminology:
Key Distribution Center (KDC). The trusted third party system that provides
authentication and ticket granting services and hosts the principal database. That is,
the KDC consists of an authorization server, a ticket-granting server, and a database
that contains the principals and their keys.
374
Odd Header
Configuring Integration Server to Use Kerberos
Realm. All the computers that are managed by the KDC and secondary KDCs, if any,
constitute the realm. That is, the realm includes all the nodes that share the same
Kerberos database.
Principal. A service or user that is known to the Kerberos system. Each Kerberos
principal is identied by its principal name. Principal names consist of three parts:
a service or user name, an instance name, and a realm name in the following form:
principal-name.instance-name@realm-name
Service principal name. The principal name of the service as registered with the
principal database.
Keytab file. The le consisting of a set of principals and their passwords. It can contain
the principal password encrypted using dierent encryption algorithms.
Kerberos configuration file. The le that contains conguration information such as
Kerberos realm, location of KDC, defaults for the current realm, and encryption
algorithms. Generally, this le is named "krb5.conf".
Subject. The user or service that is authenticated by the JAAS login context.
375
Even Header
Configuring Integration Server to Use Kerberos
Specify...
Realm
376
Odd Header
Configuring Integration Server to Use Kerberos
In this field...
Specify...
Example: lab.kerberos.rndlab.loc
This eld is optional.
Note: A value specied for Key Distribution Center Host
overwrites the default key distribution center set
in the KDC conguration le specied in Kerberos
Configuration File.
Kerberos Configuration
File
377
Even Header
Configuring Integration Server to Use Kerberos
In this field...
Specify...
The Use Subject Credentials Only check box must be
selected if you want to use Kerberos authentication for
service requests.
If you use this mode to specify the principal, the use of the Kerberos login
module is restricted to that principal.
For inbound service requests, you can also specify the principal name and password
in the port conguration.
For outbound services requests, you can specify the principal name and password
in the pub.client:http service in the clientPrincipal and clientPassword elds in the auth
\kerberos document.
For inbound and outbound web service requests, you can also specify the principal
name and password in the web service endpoint alias.
For outbound web service requests, you can also specify the principal name and
password at run time in the web service connector using the clientPrincipal and
clientPassword in the auth\message\kerberosSeings document.
For service requests, Integration Server uses this order of precedence when determining
which principal name and password to use:
1. The principal name in the is_jaas.cnf le and the corresponding password specied
in the keytab le.
2. For inbound service requests, the principal name and password specied in the port
conguration, if present.
For outbound service requests, the principal name and password specied in the
pub.client:http service, if present.
For web service requests, Integration Server uses this order of precedence when
determining which principal name and password to use:
378
Odd Header
Configuring Integration Server to Use Kerberos
1. The principal name in the is_jaas.cnf le and the corresponding password specied
in the keytab le.
2. For outbound web service requests, the principal name and password specied at
run time in the web service connector, if present.
3. For inbound and outbound web service requests, the principal name and password
specied in the web service endpoint alias, if present.
379
Even Header
Configuring Integration Server to Use Kerberos
Your system time and the time in the system that hosts the KDC are not the
same. The clocks in these two systems cannot be out of sync for by more than 300
seconds, which is the default clockskew.
380
Odd Header
Setting Up HTTP URL Aliases
382
383
388
389
390
390
391
381
Even Header
Setting Up HTTP URL Aliases
Overview
An HTTP URL alias is an alias that you create to replace a portion of the URL to a
resource on Integration Server. The URL alias typically replaces the path portion of the
URL which identies the name and location of the resource. For example, when you
create a URL alias for a service, the alias replaces the invoke directive and the name and
location of the service on Integration Server. A client request for the service includes
the alias instead of the invoke directive and the service information. When Integration
Server receives the request, Integration Server invokes the service associated with the
alias.
You can associate a URL alias with items such as services, HTML pages, dynamic
server pages (DSP), an image le, web services, or a WmTomcat resource. In addition to
associating a URL alias with a single resource, you can also identify a dierent resource
for a URL alias based on the incoming port for the request. This makes it possible to
dene a single URL alias that resolves to dierent destinations based on the incoming
port of the HTTP request. In addition, you can also dene the "empty path" as an alias,
allowing the denition of a default destination for any incoming port.
URL aliases have several benets:
A URL alias may be easier to type than full URL path names.
If a resource has a URL alias, it can be easier to move resources on Integration Server.
An administrator updates the alias information to point to the new location; there is
no need to notify users of the change.
A URL alias is more secure than URL path names because users do not see directory,
service, or le names.
Note:
You can create a URL alias from Designer or Integration Server Administrator.
Create an alias from Integration Server Administrator if you want to:
Assign an alias to a resource other than a Flow, Java, C, Adapter, or XSLT service.
For example, from Integration Server Administrator, you can associate an alias with
a DSP, HTML, jpg, web service, or WmTomcat resource.
Create a URL alias for a REST resource.
Associate more than one URL alias with a particular resource.
Create an alias for the empty path.
Specify a port-specic destination for a particular URL alias.
If you want to create a single URL alias for a service, consider using Designer. When you
use Designer to create a URL alias, you do not need to specify the URL path. If Designer
was used to create the URL alias, you can move a service from one folder to another
without having to update the path name assigned to the alias. For more information
382
Odd Header
Setting Up HTTP URL Aliases
about creating URL aliases for services in Designer, see webMethods Service Development
Help.
Specify...
Alias
383
Even Header
Setting Up HTTP URL Aliases
Specify...
The alias name cannot include a space, nor can it include
the following characters:
#%?<\
The alias name cannot begin with the string "hp://"
There is no length restriction for the alias.
Note: Do not specify an alias if you intend to use this URL
alias for the empty path.
Select this check box if you want to use this alias for the
empty path.
When you select the Use as empty path alias check box,
Integration Server changes the alias to <EMPTY>.
Package
5. If you want to dene a dierent destination for the URL alias based on the incoming
port, create a port mapping. For information, see "Using Port Mappings with a URL
Alias" on page 385. do the following:
6. Click Save Changes.
384
Odd Header
Setting Up HTTP URL Aliases
385
Even Header
Setting Up HTTP URL Aliases
7. Repeat steps 4 to 6 for each port for which you want to specify a dierent destination
than that in the Default URL Path eld.
8. Click Save Changes.
386
Odd Header
Setting Up HTTP URL Aliases
If you intend to delete all of the port mappings for a URL alias, make sure the
URL alias species a Default URL Path value.
5. Repeat the preceding step for each port mapping that you want to delete for an alias.
6. Click Save Changes.
387
Even Header
Setting Up HTTP URL Aliases
If you want to use URL alias with a REST resource you must enable partial
matching of URL aliases. For information about dening URL aliases for REST
resources, see REST Developers Guide.
If you enable partial matching of URL aliases, do not dene an alias that begins with
another alias. For example, do not dene an alias named a22 if an alias named a2 already
388
Odd Header
Setting Up HTTP URL Aliases
exists. Integration Server evaluates a request URL in ascending alphabetical order. When
a URL alias starts with the same characters as another alias, Integration Server will not
match the longer alias. If you dene a2 and a22 as URL aliases, Integration Server will
never match a22 because Integration Server matches any request URL that includes the
a22 alias to the a2 alias instead.
To enable Integration Server to use partial matching of URL requests
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Extended.
3. Click Edit Extended Settings.
4. Add the following to the Extended Settings box:
watt.server.url.alias.partialMatching=true.
Description
Package
service_name
389
Even Header
Setting Up HTTP URL Aliases
Value
Description
Server
From Designer, you can display the HTTP URL alias assigned to an individual service.
Designer displays a service's alias only if the alias was created from Designer or
Developer.
Note:
390
Odd Header
Setting Up HTTP URL Aliases
icon.
Integration Server prompts you to conrm that you want to delete the alias.
4. Click OK
391
Even Header
392
Odd Header
Configuring Integration Server to Connect to an SFTP Server
394
394
396
393
Even Header
Configuring Integration Server to Connect to an SFTP Server
Overview of SFTP
The SSH File Transfer Protocol (SFTP) is a network protocol that is based on the Secure
Shell protocol (SSH). SFTP facilitates secure le access, le transfer, and le management
over any reliable data stream.
You can congure Integration Server to connect to an SFTP server to perform the
following tasks using the SFTP protocol:
Transfer les between Integration Server and the SFTP server. You can get a le from
the SFTP server and store it in the local machine or upload a le from your local
machine to the SFTP server.
Access les in the SFTP server. You can view the directories and les in the SFTP
server and also view their permissions and ownership information.
Manage directories or les in the SFTP server. You can create, rename, or delete les
or directories in the SFTP server. You can also change the permissions or ownership
of les in the SFTP server.
You can use Integration Server Administrator to dene the following SFTP aliases:
SFTP server alias. The SFTP server alias contains conguration parameters that
Integration Server uses to connect to an SFTP server.
SFTP user alias. The SFTP user alias contains client conguration parameters that
Integration Server uses to authenticate and function as an SFTP client.
Specify...
Alias
394
Odd Header
Configuring Integration Server to Connect to an SFTP Server
Specify...
An SFTP server alias name:
Can contain only underscores (_) and periods (.) as special
characters.
Cannot begin with the string "hp://".
Can be of a maximum length of 255 characters.
Host Name or IP
Address
Port Number
The port number of the SFTP server. The port number must
be within the range of 0 and 65535 (inclusive).
395
Even Header
Configuring Integration Server to Connect to an SFTP Server
4. In the properties screen for the selected alias, make the necessary modications.
5. Click Save Changes.
Specify...
Alias
396
Odd Header
Configuring Integration Server to Connect to an SFTP Server
Specify...
Can be of a maximum length of 255 characters.
User Name
Authentication
Type
To...
Password
Public Key
Password
Re-type Password
Private Key
Location
PassPhrase
Re-type
PassPhrase
The alias of the SFTP server to which you want the specied
user to connect.
397
Even Header
Configuring Integration Server to Connect to an SFTP Server
Specify...
Preferred Key
Exchange
Algorithm
Maximum Retries
Connection
Timeout (seconds)
Session Timeout
(minutes)
Compression
Note: You can use compression only if the SFTP server that
you are connecting to supports compression.
Compression
Level
Select...
To...
zlib
None
398
Odd Header
Configuring Integration Server to Connect to an SFTP Server
Specify...
Proxy Alias
icon.
Integration Server Administrator displays a status line that indicates whether or not
the connection is successful.
399
Even Header
400
Odd Header
Securing Communications with the Server
402
402
404
407
414
415
Storing SSL Information for the Integration Server JVM in a Secure Manner ...........................
415
417
418
418
401
Even Header
Securing Communications with the Server
Overview
An administrator can congure the Integration Server to use Secure Sockets Layer
(SSL) to provide secure communications with the server. This chapter explains how
SSL works with Integration Server, and the information that you need to congure SSL
authentication for the server side.
For information about how Integration Server authenticates clients, and conguring the
SSL client side, see "Authenticating Clients" on page 447.
402
Odd Header
Securing Communications with the Server
403
Even Header
Securing Communications with the Server
Activities
Generate a public key/private key
pair.
Generate a certicate signing
request (CSR) and send to the
certicate authority (CA) for
signing.
Receive validated certicate from
the CA.
Notes
Required for oneway and two-way
SSL connections.
Refer to the
documentation
for Java keytool or
your certicate
management tool.
404
Odd Header
Securing Communications with the Server
Task
Activities
Notes
other tools such as OpenSSL
or Portecle.
Obtain
certicates
of partner
application or
resource
- and Create certicate
mapping
Add an HTTPS
or FTPS port
(if none are
dened)
Required for
two-way SSL
connections.
Refer to the
following:
"Importing a
Certicate (Client
or CA Signing
Certicate) and
Mapping It to a
User" on page
452
Required for oneway and two-way
SSL connections.
Refer to
"Conguring Ports"
on page 155.
405
Even Header
Securing Communications with the Server
In general, you will repeat the steps after creation of the key pair about every year or
two years, at the time you need to renew the certicate.
If certicates contain certicate extensions that you want Integration Server to
validate, set the wa.security.cert.wmChainVerier.enforceExtensionsChecks server
conguration property to true.
Note:
The above process is described in general terms. The procedures may vary
somewhat, depending upon the CA that you use.
406
Odd Header
Securing Communications with the Server
on page 155. For more information about seing JSSE in the pub.client:http service, see
webMethods Integration Server Built-In Services Reference.
Note:
When you congure a port to use JSSE and a client presents a certicate that
Integration Server does not trust, Integration Server rejects the request and it
will not fall back to use basic credentials (user name/password). If there is no
certicate mapping, Integration Server issues an invalid credentials error.
Keystore File
Integration Server uses a special le called a keystore to store SSL certicates and keys.
A keystore le contains one or more pairs of a private key and signed certicate
for its corresponding public key. The keystore should be strongly protected with a
password, and stored (either on the le system or elsewhere) so that it is accessible only
to administrators.
HSM-Based Keystores
Under certain conditions, Integration Server supports the use of keystore les stored on
a Hardware Security Module (HSM). Integration Server supports HSM-based keystores
for ports, but not for other components. You cannot use HSM-based keystores with
remote server aliases, outbound certicates, an internal server port, WS-Security, or
Integration Server public services.
Only nCipher hardware card modules are currently supported.
407
Even Header
Securing Communications with the Server
Creating a Keystore
You can create and manage Integration Server keystores at the command line using
keytool, the Oracle Java certicate editor.
You can also use other standard tools such as OpenSSL and Portecle.
Note:
Software AG does not provide its own set of keystore utilities for creating or
managing keystore les.
Truststore File
Integration Server uses a truststore to store its trusted root certicates, which are the
public keys for the signing CAs. Although a truststore can contain the trusted roots
for entire certicate chains, there is no requirement for the organization of certicates
within an Integration Server truststore. It simply functions as a database containing all
the public keys for CAs within a specied trusted directory.
408
Odd Header
Securing Communications with the Server
As shown in the above gure, the same truststore le can contain multiple trusted
root certicates (public keys for the signing CAs). These trusted roots might be
associated with numerous keystore les. A keystore le can contain the key pairs for
multiple Integration Server components, and the entire certicate chain required for a
component's authentication.
With a certicate chain, it is necessary to validate each subsequent signature in the list
until a trusted CA certicate is reached. For Integration Server, you must include the
entire chain of certicates in a keystore and truststore. Also, any root CA certicates in
use by clients must be in an Integration Server truststore.
409
Even Header
Securing Communications with the Server
other certicate management tools. The use of aliases simplies keystore and truststore
management, because you do not need to enter path information when specifying a
keystore, truststore, or private key in Integration Server Administrator or when using
Integration Server public services.
You can view, create, and edit keystore and truststore aliases from the Security > Keystore
panel in Integration Server Administrator.
Note:
A key alias is a label for specic key within a keystore. Key aliases are created using
your third-party certicate management tool. Although you do not create key aliases
in Integration Server Administrator, you will need to identify which keys to use for
SSL authentication, signing, and decrypting, by selecting the appropriate key aliases in
Integration Server Administrator.
Description
DEFAULT_IS_
KEYSTORE
The name of the default keystore alias for Integration Server. The
DEFAULT_IS_KEYSTORE points to the Software AG_directory/
common/conf/keystore.jks le.and the default password is
manage for all the entries.
DEFAULT_IS_
TRUSTSTORE
You can edit and delete the default aliases. The certicate le format of the default
keystore and truststore is Java keystore (JKS). The provider for the default keystore and
truststore alias is the one shipped with the JVM.
410
Odd Header
Securing Communications with the Server
Specify or select...
Alias
Description
Type
Provider
Location
411
Even Header
Securing Communications with the Server
Specify or select...
If the keystore requires a password, the password must
have been dened at keystore creation time using a keystore
utility. Once you create the keystore alias, the keystore
password is automatically saved as an Integration Server
outbound password.
Make sure you have the keystore password available when
managing its corresponding keystore alias. If the keystore
does not require a password, leave the elds empty.
HSM-based
Keystore
5. Click Submit.
6. Enter the Key Aliases seings as follows:
For this setting...
Specify or select...
Null
Select this for an alias in the keystore that is not secured with
a password.
7. Click Save Changes.
412
Odd Header
Securing Communications with the Server
Specify or select...
Alias
Description
Type
Provider
The provider that is used for the truststore type. The default
provider is the one shipped with the JVM, which can be
Oracle, IBM, or others.
Specify a provider only if your HSM device is not supported
by the default provider.
You can congure a dierent provider to support keystore
types other than the default (JKS); however, Software AG
does not provide support for their use.
Location
413
Even Header
Securing Communications with the Server
The SSL certicate seings described in this section are also used for
Integration Server web services, and for built-in services used to secure
Integration Server XML documents. For more information, refer to the
Web Services Developers Guide and the webMethods Integration Server Built-In
Services Reference.
Before conguring SSL for Integration Server, you must have previously used your
certicate management tool to do the following:
Create at least one keystore, in JKS or PKCS12 format, containing an Integration
Server key pair to use for SSL and its corresponding key alias.
Create at least one truststore, in JKS format, containing the trusted root certicate of
the signing CA (and certicate chain, if necessary).
Create a keystore and a truststore alias.
414
Odd Header
Securing Communications with the Server
415
Even Header
Securing Communications with the Server
Software AG does not provide its own set of utilities for creating or
managing keystore or truststore les.
2. If needed, create a truststore to use for creating the default SSL context.
3. Use Integration Server Administrator to create a keystore alias for the keystore
created in step 1.
For more information about creating a keystore alias, see "Creating Keystore Aliases"
on page 410.
4. If necessary use Integration Server Administratorto create a truststore alias for the
truststore created in step 2.
For more information about creating a truststore alias, see "Creating Truststore
Aliases" on page 412.
5. Use Integration Server Administrator to set the wa.server.ssl.keyStoreAlias
parameter value to be the keystore alias created in step 3.
6. If you are using a truststore, use Integration Server Administrator to set the
wa.server.ssl.trustStoreAlias parameter value to be the truststore alias created in
step 4.
7. Restart Integration Server.
416
Odd Header
Securing Communications with the Server
wa.server.ssl.trustStoreAlias
3. The wa.cong.systemProperties server conguration parameters.
4. custom_wrapper.conf
It is less secure to ignore the expired certicates than to deny the connection
because of expired certicates.
417
Even Header
Securing Communications with the Server
you specify a trusted authorities directory at the server level and at the port level, the
server uses the directory specied at the port level for determining trust on connections
being made to that port. If you specify a trusted authorities directory at just the port
level, the server uses the port-level seing for requests being made to the port.
For S/MIME signature trust validation, if you do not specify a trusted certicates
directory or specify a directory that does not contain the certicates of trusted
CAs, by default the server trusts all signatures on S/MIME messages. However, if
wa.security.cert.wmChainVerier.trustByDefault is set to False and no directory or an
empty directory is specied, the server will trust no signatures on S/MIME messages.
418
Odd Header
Securing Communications with the Server
Requirement
Description
Security Token
Service (STS)
provider
Certificates for
each possible
issuer of SAML
assertions
Identification of
trusted issuers
Client certificate
mapping
419
Even Header
Securing Communications with the Server
Specify...
Issuer Name
Truststore Alias
Certificate Alias
Clock Skew
420
Odd Header
Controlling Access to Resources
422
422
433
435
421
Even Header
Controlling Access to Resources
Overview
When the server receives a clients request to access a service, the server performs a
number of checks to make sure the client is allowed to access the service. The server
performs the following checks, in the order shown below. The client must pass all checks
to access the service:
1. Does the port allow connections from this clients IP address?
The server checks allow/deny lists of IP addresses that are allowed to connect to the
server through this port. If the port is an Enterprise Gateway external port and the
server is licensed for webMethods Enterprise Gateway, the server also checks the
Enterprise Gateway deny list. If the IP address is allowed, the server performs the
next test. Otherwise, the server rejects the request.
2. Is the requested service available from this port?
The server checks allow/deny lists of services that the server makes available for
execution from this port. If the service is available from this port, the server performs
the next test. Otherwise the server rejects the request. The server performs this test
for requests to execute services. It does not perform this test for requests for list, read,
or write access to services.
3. Is the requesting user allowed to access this service?
The server checks the user name associated with the request against the appropriate
access control list (ACL) associated with the service.
The server checks the user name against the List, Read, Write, or Execute ACL
associated with the service. If the user belongs to a group that is listed in the ACL,
the server accepts the request. Otherwise the server rejects the request.
You can congure these seings using the Integration Server Administrator.
To limit IP addresses that connect to a port see "Restricting IP Addresses that Can
Connect to a Port" on page 423 below.
To limit the services available from a port see "Restricting the Services or Web
Service Descriptors Available from a Port" on page 429.
To use access control lists to control which users can access an element see
"Controlling Access to Resources with ACLs" on page 435.
422
Odd Header
Controlling Access to Resources
only specied IP addresses (those of your partners and users) and make only specied
services available.
Note:
By default, the Integration Server also provides a diagnostic port at 9999 that
allows all hosts to connect to the server. However, users can access only the
services dened with the Administrators ACL.
This section describes controlling access to resources at the port level. To control access
using Access Control Lists, see "Controlling Access to Resources with ACLs" on page
435.
If the port is an Enterprise Gateway external port and the server is licensed
for webMethods Enterprise Gateway, an IP address can be further restricted
by Enterprise Gateway rules. When a request from an IP address violates a
rule, the server adds the IP address to a deny list that Enterprise Gateway
maintains.
The following table shows where to nd information about assigning the dierent types
of IP access:
Type of access
Allow by Default
423
Even Header
Controlling Access to Resources
Type of access
Allow by Default
Note:
424
Odd Header
Controlling Access to Resources
The server changes the access mode and displays a screen from which you can add
hosts to the Allow List. Notice that the server has already included the host name
and IP address of the machine from which you are using the Integration Server
Administrator so that you are not locked out of the server.
5. Click Add Hosts to Allow List.
6. Specify the host names (e.g., workstation5.webmethods.com) or IP addresses (e.g.
132.906.19.22 or 2001:db8:85a3:8d3:1319:8a2e:370:7348) of hosts from which
the server is to accept inbound requests. Separate your entries with commas, for
example: *.allowme.com, *.allowme2.com.
The host names or IP addresses can include upper and lower case alphabetic
characters, digits (0-9), hyphens (-), and periods (.) but cannot include spaces. For
IPv6, IP addresses can also include colons (:) and brackets ([]).
Note:
You can use the following paern-matching characters to identify several clients
with similar host names or IP addresses.
Char
Description
Example
r*.webmethods.com
workstation?.webmethods.com
425
Even Header
Controlling Access to Resources
the server is to deny inbound requests). Separate your entries with commas, for
example: *.denyme.com, *.denyme2.com.
The host names or IP addresses can include upper and lower case alphabetic
characters, digits (0-9), hyphens (-), and periods (.) and cannot include spaces. For
IPv6, IP addresses can also include colons (:) and brackets ([]).
Note:
You can use the following paern-matching characters to identify several clients
with similar host names or IP addresses.
Char
Description
Example
r*.webmethods.com
workstation?.webmethods.com
426
Odd Header
Controlling Access to Resources
Description
Example
r*.webmethods.com
workstation?.webmethods.com
427
Even Header
Controlling Access to Resources
Char
Description
Example
r*.webmethods.com
workstation?.webmethods.com
428
Odd Header
Controlling Access to Resources
429
Even Header
Controlling Access to Resources
Allow By Default. Select this type if you intend to allow access to all services and
provider web service descriptors except those you explicitly deny in a list that is
associated with the port.
When Integration Server receives a service request through a port, Integration Server
veries that the service request is allowed through that port. If the service or web service
descriptor can be invoked through the port, Integration Server continues with service or
web service descriptor execution. If access is denied, Integration Server returns an access
denied message or status to the client.
Integration Server veries port access for the top-level service only. Integration Server
does not verify port access for any child service invoked by the top-level service. For
example, suppose that serviceA invokes serviceB. Additionally, suppose that port 5678 is
congured to deny by default. serviceA is on the allow list for the port, but serviceB is not.
When Integration Server receives a request for serviceA on port 5678, Integration Server
veries that serviceA can be invoked through the port. Integration Server does not verify
that serviceB can be invoked through the port.
Similarly, Integration Server veries port access for the provider web service descriptor
only. Integration Server does not verify port access for any operations or handler
services in the web service descriptor.
Note:
By default, the Integration Server provides an HTTP port at 5555 that allows
all service requests that come in on that port access (unless prohibited by an
ACL). Although this port is ideal for initial Integration Server installation and
conguration, as well as many development environments, for deployment,
you should replace this port with ports that limit access to services you intend
to make available to your partners and users.
Note:
Note:
430
Odd Header
Controlling Access to Resources
Important: When performing the following procedure, do not log into the server
through the port you want to change. The procedure involves temporarily
denying access to all services through the port. If you log on through the
port you want to change and then deny access to all services through it, you
will be locked out of the server. Instead, log on through a dierent existing
port or create a new port to log on through.
To allow access to specified services, folders, and provider web service descriptors
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu in the Navigation panel, click Ports.
3. Locate the port in the Port List and click the Allow or Deny link in the Access Mode
column.
4. Click Set Access Mode to Deny by Default. Integration Server changes the access mode
for the port.
5. Click Add Folders and Services to Allow List.
6. To enter the names of services, folders, or provider web service descriptors, on the
left side of the screen, under Enter one service or folder per line, type the fully qualied
name of the service, folder or provider web service descriptor for which you want to
allow access. Press ENTER after each entry.
Note:
If you specify a folder, Integration Server allows access to all of the services
and provider web service descriptors in the folder.
431
Even Header
Controlling Access to Resources
If you specify a folder, Integration Server denies access to all of the services
and provider web service descriptors in the folder.
432
Odd Header
Controlling Access to Resources
To add the remaining items to the list of denied services for the port, click Append
Selected.
Integration Server appends the selected entries to the existing list.
8. Repeat the above steps until you have built the list of services, folders, and provider
web service descriptors for which you want to deny access on this port.
9. Click Save Additions.
10. Click Return to Ports to return to the Security > Ports > Edit Access Mode screen.
Resetting a Port to the Default Access
When you reset a port to the default access, Integration Server changes IP access to the
port so that only standard services that are required to connect to and authenticate to the
server are available. Access to other services is denied.
To reset a port to the default
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu in the Navigation panel, click Ports.
3. Locate the port with which you want to work in the Port List and click Edit in the
Access Mode column.
4. Click Reset to Default Access Settings.
Integration Server changes the type to Deny By Default and creates a default list of
allowed services. These include the standard services required to connect to and
authenticate to the server.
Used to...
default
invoke
Run services.
odata
rest
433
Even Header
Controlling Access to Resources
Directive
Used to...
soap
web
ws
Note:
JSON requests can use the invoke and rest directives only.
For example:
http://localhost:5555/invoke/wm.server/ping
By default, all Integration Server ports except the proxy port allow all the directives
listed above. The proxy port allows all directives except the web directive. However,
for security reasons, an organization typically allows only those directives that are
necessary to fulll its business requirements. You might allow all directives on ports that
are accessible only to users within your rewall, but you might want to restrict directives
on ports that are exposed to users outside the rewall. For example, if you want to
receive only SOAP requests on a particular port, from both internal and external users,
you could allow the soap directive but no other directives on that port. To restrict the
use of directives to certain ports only, you set the wa.server.allowDirective parameter
(see "wa.server." on page 879).
You can specify alternative names for the invoke, soap, and rest directives. For example,
by default, the invoke directive is specied on URLs as "invoke" (that is, hp://host :port /
invoke/folder /service_name ). You can identify an alternative word for users to specify as
the invoke directive. For example, you might want to allow users to specify the invoke
directive as "submit" (that is, hp://host :port /submit/folder /service_name ).
To specify an alternative word for the invoke directive, set the
wa.server.invokeDirective parameter (see "Server Conguration Parameters" on page
851).
To specify an alternative word for the soap directive, set the wa.server.SOAP.directive
parameter (see "Server Conguration Parameters" on page 851).
434
Odd Header
Controlling Access to Resources
To specify an alternative word for the rest directive, set the wa.server.RESTDirective
parameter (see "Server Conguration Parameters" on page 851).
About ACLs
ACLs control access to packages, folders, and other elements (such as services,
document types, and specications) at the group level. An ACL identies groups that
are allowed to access an element (Allowed Groups) and/or groups that are not allowed
to access an element (Denied Groups). When identifying Allowed Groups and Denied
Groups, you select from groups that you have previously dened.
There are four dierent kinds of access: List, Read, Write, and Execute.
List. Allows a user to see that an element exists. The element will be displayed on
screens in Designer and Integration Server Administrator. List access also allows you
to view an element's metadata.
435
Even Header
Controlling Access to Resources
Read. Allows a user to view the main source of an element through Designer and
Integration Server Administrator.
Write. Allows a user to edit an element. This access also allows a user to delete or lock
an element or to assign an ACL to it.
Execute. Allows a user to execute a service. This access also gives the user access to
les the server serves, such as DSP and .htm les.
List, Read, and Write ACLs are used mostly during development time by developers,
and to some extent server administrators, who need access to create, edit, and
maintain services and other elements. Execute access is used extensively in production
environments.
When a user tries to access an element, the server checks the appropriate ACL (List,
Read, Write, or Execute) associated with the element.
You cannot assign an ACL to an element unless you are a member of that ACL. For
example, if you want to allow DevTeam1 to update the OrderForm service, you must
be a member of the DevTeam1 ACL. In other words, your user name must be a member
of a group that is listed in the DevTeam1 ACL. Similarly, when you change an ACL
assignment for an element, you must be a member of the existing ACL and a member of
the ACL to which you are assigning the element.
The following table summarizes what the dierent access types mean for the dierent
elements.
Type of access and allowed actions
Element
List
Read
Write
Execute
Package
N/A
N/A
N/A
access to the
elements
themselves.
This access
is not
inherited
by other
elements in
the package.
436
Odd Header
Controlling Access to Resources
List
Read
Write
Execute
Folder
Has no
meaning
for the
folder itself.
Children
will inherit
Read access
if they do
not have
a specic
access of
their own.
Add an
element to
or delete
an element
from the
folder.
Change
the ACL
assignment
for the
folder.
Children
will inherit
Write access
if they do
not have
a specic
access of
their own.
Has no
meaning
for the
folder itself.
Children
will inherit
Execute
access if
they do
not have
a specic
access of
their own.
Services
(includes
Flow, Java,
C, XSLT,
Adapter
services,
and web
service
descriptor)
See that
the service
exists. In
Designer,
the service
will be listed
along with
non-source
information.
See the
service's
source in the
Designer.
Edit, lock,
unlock, and
delete the
service.
Change
the ACL
assignment
for the
service.
Execute the
service.
Specications,
Schemas,
Flat File
Schemas,
Document
Types,
Adapter
Notications,
Triggers
Edit, lock,
unlock, and
delete the
element.
Change
the ACL
assignment
for the
element.
N/A
437
Even Header
Controlling Access to Resources
Package Replication
For package replication, the publishing server makes sure that the user performing the
replication has replication access; that is, the user is a member of the Replicator ACL.
In addition, the publishing user must have List access to the package to see it from
the publishing screens of the Integration Server Administrator. This List ACL "travels
with" the package to the subscribing server. ACLs do not travel with other namespace
elements, such as folders, services, etc.
On the subscribing server, the user installing the package must have List access to see
it from the Install Inbound Releases screen. This means that the ACL must exist on the
subscribing server and the installing user must be a member of that ACL. The installing
user does not need Write access to the package.
Top-level folders never inherit List access from the parent package.
Allowed
Allowed
Denied
Denied
438
Odd Header
Controlling Access to Resources
Not-specied
Denied
But what happens when the user is a member of more than one group? To determine
the access seing for a user that is member of more than one group, Integration Server
assigns dierent strengths to the seings. Specically, Denied overrides Allowed, and
Allowed overrides Not-specied.
For example, suppose user Smith is a member of three groups, and each group has a
dierent List access to the FY2013 package, as shown below.
Group
Accounting
Not-specied
Support
Denied
Corporate
Allowed
As a result of these seings, Smith is denied List access to the package because the
Denied seing of the Support group overrides the other seings.
Predefined ACLs
The server comes with the following predened ACLs. You cannot delete these ACLs.
Administrators. Allows only users in the Administrators group and users with the My
webMethods Administrators role access to a package, folder, or other element and
denies all other users.
Anonymous. Provides access to unauthenticated users (those that did not supply a
userid) and users with theMy webMethods Users role.
Default. Allows all authenticated users and users with the My webMethods Users
role access to a package, folder, or other element. When an element is not specically
assigned an ACL or does not inherit an ACL from containing folders, the server uses
the Default ACL. If the ACL assigned to an element is deleted, the server uses the
Default ACL. The Default ACL authorizes authenticated users only. Unauthenticated
users (those that did not specify a valid userid) are authorized by the Anonymous
ACL.
Developers. Allows only users in the Developers group and users with the My
webMethods Administrators role access to a package, folder, or other element and
denies all other users.
Internal. Allows only users in the Administrators and Developers groups and users
with the My webMethods Administrators role access to a package, folder, or other
webMethods Integration Server Administrators Guide Version 9.10
439
Even Header
Controlling Access to Resources
element and denies all other users. The server assigns this ACL to built-in utility
services shipped with the server, such as those in the WmRoot and WmPublic
packages. You should never need to assign this ACL to an element.
Replicators. Allows the Replicator user and users with the My webMethods
Administrators role replication privileges.
Note:
You might see an ACL that is specic for an adapter, for example the
wmPartnerUsers ACL. Refer to the documentation for the specic adapter for
more information about its ACL.
Creating ACLs
When creating an ACL, you select groups to use for the Allowed Groups and Denied
Groups from previously dened groups.
To create an ACL
1. Open Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click ACLs.
3. Click Add and Remove ACLs.
4. Specify one ACL name per line. Press ENTER to separate the lines.
5. Click Create ACLs.
440
Odd Header
Controlling Access to Resources
Deleting ACLs
You can delete any ACL except the predened ACLs: Anonymous, Administrators,
Default, Developers, Internal, and Replicators. You can delete ACLs that are currently
assigned to packages, folder, or other elements. When a client aempts to access an
element that is assigned to a deleted ACL, the server denies access.
441
Even Header
Controlling Access to Resources
When you delete an ACL that is assigned to a package, folder, service or other element,
the Integration Server retains the deleted ACL's name. As a result, when you view the
element's information, the server displays the name of the deleted ACL in the associated
ACL eld; however the server treats the ACL as an empty ACL and allows access to no
one.
For information about how to assign a dierent ACL to a package, folder, service, or
other element, see "Assigning ACLs to Folders, Services, and Other Elements" on page
443.
For information about how to assign a dierent ACL to le, that is, a DSP or .htm le
that the server serves, update the associated .access le to assign a dierent ACL to the
le. For more information about assigning ACLs to les, see "Assigning ACLs to Files
the Server Can Serve" on page 445.
To delete an ACL
1. Open Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigation panel, click ACLs.
3. Click Add and Remove ACLs.
4. In the Remove ACLs area of the screen, select the ACL or ACLs you want to remove.
5. Click Remove ACLs. The server issues a prompt to verify that you want to delete the
ACL.
6. Click OK to delete the ACL.
442
Odd Header
Controlling Access to Resources
List
Read
Write
Execute
Package
Default
N/A
N/A
N/A
Top-Level
Folder
Default
Default
Default
Internal
Subfolder
Inherit
Inherit
Inherit
Inherit
Other
Element
Inherit
Inherit
Inherit
Inherit
443
Even Header
Controlling Access to Resources
be a member of the DevTeam1 ACL. That is, your user name must be a member of a
group listed in the DevTeam1 ACL.
If an element is locked by another user or system-locked, you cannot change the
ACL assigned to the element. You can only assign an ACL to an unlocked element or
an element locked by you.
Note:
Use the following procedure to assign a new or dierent ACL to a folder or service.
To assign an ACL to a folder or service
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. Click Browse Folders.
4. If the current screen does not list the folder or service to which you want to assign an
ACL, click the name of the parent folder until the server displays a screen that lists
the folder or service with which you want to work.
5. Click in the appropriate ACL eld (List, Read, Write, or Execute).
The server displays the ACL Information screen. Use the pull-down list to select the
ACL you want to assign to the folder or service and click Save Changes.
444
Odd Header
Controlling Access to Resources
The .access les control access to les the server serves, such as DSP and
HTML les. To control access to a service that a DSP or HTML le calls, you
must assign an ACL to the service itself. See "Assigning ACLs to Folders,
Services, and Other Elements" on page 443 for more information.
If the directory contains subdirectories, they will not inherit the protection, so you must
provide an .access le in each directory. For each le in the directory that you want to
protect, place a line in the .access le to identify the le and the ACL you want to use to
protect the le.
For example, assume you have a directory that contains three les (adminpage.dsp,
home.dsp, and index.htm). You want to protect the adminpage.dsp le with the
Administrators ACL so that only administrators can access this le. You want to protect
the home.dsp le with the Developers ACL so only developers can access this le. You
also want to assign the Default ACL to the index.htm le so all users can access it. To
accomplish this, you would place the following records in the .access le:
adminpage.dsp Administrators
home.dsp Developers
index.htm Default
Note:
In the above example, because you want all users to be able to access the
index.htm le, you could omit the index.htm Default from the .access le. The
server uses the Default ACL for les that are not identied in an .access le or
all les in a directory without an .access le.
Important: Integration Server loads .access les when a package is loaded; therefore,
if you want the changes you make to take eect immediately, reload the
package.
445
Even Header
Controlling Access to Resources
The case in which you enter the name depends on how your le system handles
case. Suppose you have a le named index.dsp. If you use a case-insensitive system
such as Windows, you can enter the le name in any case. Therefore Index.dsp,
INDEX.DSP, and so on are all acceptable. However, if you use a case-sensitive system
such as UNIX, you must enter index.dsp.
446
Odd Header
Authenticating Clients
20 Authenticating Clients
Overview .....................................................................................................................................
448
448
449
450
450
456
458
459
447
Even Header
Authenticating Clients
Overview
This chapter explains the types of client authentication available for use with Integration
Server and details the authentication information required to congure the client
side. For information on conguring authentication for the server side, see "Securing
Communications with the Server" on page 401.
The chapter explains how to congure an Integration Server client for basic
authentication (user name and password) and SSL authentication. It also explains how
to use Integration Server with Windows authentication, and how to make Integration
Server data available to My webMethods applications.
Note:
Basic Authentication
When the server uses basic authentication, it prompts the client for a user name and
password. If a user account is found for the supplied user name, the server authenticates
the user name by comparing the supplied password to the password in the user account.
If the password is correct, the server proceeds with the request. If the password is not
correct, the server rejects the request.
If the client does not supply a user name or password, the server uses the Default user
account for the client.
Client supplied
a user name/
password?
Password correct?
Request...
YES
YES
YES
proceeds
YES
YES
NO
is rejected
YES
NO
n/a
is rejected
NO
n/a
n/a
proceeds using
the Default user
account
448
Odd Header
Authenticating Clients
Integration Server stores user names and passwords in the authentication cache. The
authentication cache is a caching layer in Integration Server that stores the user names
and passwords in hash format.
After the rst successful authentication of a user name and password (whether for
a local user or central user/LDAP), Integration Server stores the credentials in the
authentication cache for future reference. On subsequent authentication requests,
Integration Server checks to see if the credentials already exist in the authentication
cache. If the credentials already exist in the authentication cache, Integration Server does
not perform any additional validation of the credentials.
Note:
Once a user has changed the password and logged in successfully with
the new password, Integration Server removes the old password from the
authentication cache.
You control the authentication cache through the following server conguration
parameters:
watt.server.auth.cache.enabled. Enables and disables the authentication cache.
watt.server.auth.cache.timeout. Species the number of milliseconds that each cache
entry can remain idle before Integration Server removes it from the authentication
cache.
watt.server.auth.cache.capacity. Species the number of user name and password
combinations Integration Server stores in the authentication cache.
For more information about the server conguration parameters that control the
authentication cache, see "Server Conguration Parameters" on page 851. For more
information on seing up user accounts, see "Dening a User Account" on page 91.
You can also use externally dened user accounts. For more information on how to
use external directories and how basic authentication works when using external user
accounts, see "Conguring a Central User Directory or LDAP" on page 559.
Digest Authentication
Integration Server supports digest authentication by processing the digest authentication
credentials presented in HTTP headers. Integration Server also uses digest
authentication credentials passed in web service headers to authenticate web service
consumers that access an Integration Serverhosted web service. Integration Server can
also send digest authentication credentials while calling third-party web services.
The password digest is a hash of the nonce, the creation time, and the password.
When using digest authentication, when a client aempts to access Integration Server,
Integration Server requests the client to send a password digest by concatenating the
password with the nonce and the creation time. Upon receiving the password digest,
Integration Server veries the data and authenticates the client. If the password digest
sent by the client matches with the password digest created by the server, the server
449
Even Header
Authenticating Clients
proceeds with the request. If the password digests does not match, the server rejects the
request.
To use digest authentication, you must congure the user for digest authentication while
creating the user in Integration Server Administrator. You must also congure ports to
use password digest for authentication of client requests. A port that is congured to use
password digest for authentication of client requests will process a request from a user
only if the user is congured to allow password digest for authentication.
For more information about conguring a user for digest authentication, see "Adding
User Accounts" on page 92.
Kerberos Authentication
Integration Server supports Kerberos authentication by processing the Kerberos tickets
in the HTTP headers of service requests using the Negotiate authentication scheme.
Integration Server also uses Kerberos authentication credentials passed in web service
headers to authenticate web service consumers that access an Integration Serverhosted
web service.
When Integration Server receives a Kerberos ticket, it contacts the KDC using the
congured principal name and principal password. If the Kerberos ticket is not valid,
Integration Server rejects the request.
If the Kerberos ticket is valid, Integration Server extracts the user associated with the
ticket and looks for that user in the local Integration Server user store, the Central Users,
or LDAP. Software AG recommends conguring the KDC as a user directory in Central
Users or LDAP so Integration Server can identify and authorize the user that is part of
the Kerberos ticket submied by the client.
For complete information about Kerberos authentication, see "Conguring Integration
Server to Use Kerberos" on page 373. For instructions on conguring the user directory,
see "Conguring a Central User Directory or LDAP" on page 559.
Client Certificates
In Integration Server, a client certicate is an X.509 digital certicate that identies a
client and is used for SSL authorization.
Notes
450
Odd Header
Authenticating Clients
Task
Notes
Certificate Mapping
The certicate mapping feature allows you to store client certicates on an Integration
Server and associate each of the certicates with a user account (for example, a certicate
may be used to identify the user FINANCE). When a client presents one of these
certicates, Integration Server logs the client in as the user "mapped" to the certicate.
My webMethods Server also allows you to associate a certicate and a user. If
central user management is congured in Integration Server, Integration Server will
automatically check the My webMethods Server database for certicate mappings when
it cannot locate the user in its local store. Refer to Administering My webMethods Server for
further details.
Important: Be careful when mapping a user to particular client certicate. Make sure
that the user's authorization level is an appropriate match.
451
Even Header
Authenticating Clients
If you are going to congure one or more ports to require client certicates, you must
import the client certicates you will accept and map them to the users that you want
the clients to log in as.
If you do not congure any ports to require client certicates, you might want to import
client certicates and map them to users so that clients presenting these certicates can
automatically log on as those users.
To search for a user in the User Name dialog box, do one of the following:
To select a local user, in the Provider list, select Local. Select the local user to which
you want to map the certicate.
If an external user directory is not congured, the Provider list does not appear.
To select a user from an external directory (LDAP or a central user directory), in
the Provider list, select the user directory that you want to search. In the Search
452
Odd Header
Authenticating Clients
eld, enter the criteria that you want to user to nd a user. Click Go. Select the
user to which you want to map the certicate.
6. In the Usage list, select the purpose for which you want to import this certicate.
Select from one of these options:
SSL Authentication. Use the certicate to represent the client's authentication
credentials when making an SSL connection with Integration Server.
Verify. Use the certicate's public key to verify the authenticity of documents,
messages, or streams originating from the client and containing a digital
signature.
Encrypt. Use the certicate's public key to encrypt outgoing documents,
messages, or streams fromIntegration Server to the client.
Verify and Encrypt. Use the same certicate both to verify the authenticity of
documents, messages, or streams originating from the client and containing
a digital signature, and to encrypt outgoing documents, messages, or streams
fromIntegration Server to the client.
Message Authentication. Use the certicate to represent the client's authentication
credentials when making an SSL connection with Integration Server, when
using message-level rather than transport-level authentication (for example, with
web service messages whose SOAP message headers contain SSL certicate
information).
7. Click Import Certificate.
to
453
Even Header
Authenticating Clients
HTTPS Ports
The following table shows how the Integration Server handles client requests received at
an HTTPS port when dierent client authentication seings are in eect. These seings
are specied on the Client Authentication parameter when conguring or editing an
HTTPS port.
Parameter
Username/
Password
Digest
Request Client
Certificates
454
Odd Header
Authenticating Clients
Parameter
Require Client
Certificates
FTPS Ports
The method Integration Server uses to handle client requests received at an FTPS port
depends on the various client authentication seings:
If wa.ftpUseCertMap is true, Integration Server handles client requests as follows:
Certificate
No Certificate
Username/
Password
Log in with
username/password
supplied at prompt.
Request
Certicates
Log in with
username/password
supplied at prompt.
455
Even Header
Authenticating Clients
No Certificate
Username/
Password
Log in with
username/password
supplied at prompt.
Request
Certicates
Accept certicate if it is
trusted, but ignore user
provided in certicate.
Instead, log in with user/
password supplied at
prompt.
Log in with
username/password
supplied at prompt.
Require
Certicates
Accept certicate if it is
trusted, but ignore user
provided in certicate.
Instead, log in with user/
password supplied at
prompt.
Notes
456
Odd Header
Authenticating Clients
Task
Notes
the SSL server with which Integration
Server will communicate.
Importing Certificates
You must import certicates for the SSL servers with which Integration Server will
communicate so that two-way SSL authentication is possible.
Once you have imported the certicates, you can centralize them in a secure location
that is accessible to Integration Server; for example, in the Integration Server cong
directory.
Description
pub.security.keystore:setKeyAndChain
pub.security:setKeyAndChainFromBytes
457
Even Header
Authenticating Clients
Service
Description
pub.security:clearKeyAndChain
pub.security:clearKeyAndChainFromBytes
Invoke a service
Connect to Integration
Server from Designer
458
Odd Header
Authenticating Clients
For more information, refer to "Securing Communications with the Server" on page 401.
459
Even Header
460
Odd Header
Customizing Authentication Using JAAS
462
462
462
464
465
467
461
Even Header
Customizing Authentication Using JAAS
Overview
This chapter explains how to set up a custom JAAS login module for use with
Integration Server authentication.
462
Odd Header
Customizing Authentication Using JAAS
IS_Transport { /* com.wm.app.b2b.server.auth.jaas.X509ValidatorModule
requisite; */ com.wm.app.b2b.server.auth.jaas.X509LoginModule
requisite; com.wm.app.b2b.server.auth.jaas.BasicLoginModule
requisite; com.wm.app.b2b.server.auth.jaas.SamlOSGiLoginModule
requisite; /* * The DefaultLoginModule contains logic that provide
special * default handling for Software AG products so please
leave * this module as the last module of this login context. */
com.wm.app.b2b.server.auth.jaas.DefaultLoginModule requisite;};
WSS_Message_IS { /* * Please do not rearrange the following SoftwareAG
* login modules; add your login modules before or after * these three
modules */ com.wm.app.b2b.server.auth.jaas.SamlAssertLoginModule
requisite; com.wm.app.b2b.server.auth.jaas.X509LoginModule requisite;
com.wm.app.b2b.server.auth.jaas.BasicLoginModule requisite;};
463
Even Header
Customizing Authentication Using JAAS
For example, the BasicLoginModule aempts to get the user name and password. If it
cannot locate either, it returns a value of "false," which causes this module to fail. The
modules listed within IS_Transport contain the "requisite" designation. That designation
means that for the overall login to succeed, one of the modules in the login context must
succeed.
X509ValidatorModule
In the above IS_Transport login context, the X509ValidatorModule is commented out
because it is optional functionality. When enabled, this module performs path validation
on the given X509Certicate chain, and you can congure it to perform certicate
revocation lists (CRLs) checking by adding the check_crl_status and crl_url parameters
as shown below:
IS_Transport
{
com.wm.app.b2b.server.auth.jaas.X509ValidatorModule requisite
check_crl_status=true
crl_url="file:///C:\\webMethods\\sec\\crl\\lh.crl";
com.wm.app.b2b.server.auth.jaas.X509LoginModule requisite;
com.wm.app.b2b.server.auth.jaas.BasicLoginModule requisite;
com.wm.app.b2b.server.auth.jaas.SamlOSGiLoginModule requisite;
The crl_url can point to a le url as shown above or it can point to a live CRL url (for
example, hp://myca.com/crl/lh.crl).
For certicate path validation, this module tries to use the truststore associated with
the port on which the request came in. If the port does not identify a truststore, then
this module uses Integration Server's default outbound truststore. You can override this
and provide your own Integration Server truststore alias using the "trustStore_alias"
property of the module as shown below:
com.wm.app.b2b.server.auth.jaas.X509ValidatorModule requisite
trustStore_alias="my trustStore";
464
Odd Header
Customizing Authentication Using JAAS
Extend SagAbstractLoginModule
Extend the com.softwareag.security.jaas.login.SagAbstractLoginModule
Implement the following abstract methods:
initConfiguration()
authenticate(com.softwareag.security.jaas.login.SagCredentials
sagcredentials)
465
Even Header
Customizing Authentication Using JAAS
Implement Commit()
Depending on how the login context is congured, it is possible for more than one
module to succeed with a dierent user name. Integration Server does not have a default
mechanism to determine which course of action to take when multiple login modules
succeed with dierent user names. To circumvent these situations, Integration Server
login modules implement the following commit method:
public boolean commit() throws LoginException {
createUserPrincipal = "true";
super.commit();
return true;
}
466
Odd Header
Customizing Authentication Using JAAS
1.
import
import
import
import
import
javax.security.auth.login.LoginException;
com.softwareag.security.jaas.login.SagAbstractLoginModule;
com.softwareag.security.jaas.login.SagCredentials;
com.softwareag.security.jaas.principals.SagUserPrincipal;
com.wm.app.b2b.server.UserManager;
2.
public class TestLoginModule extends SagAbstractLoginModule {
3.
private String userId;
4.
public boolean abort() throws LoginException {
userId = null;
return true;
}
5.
public boolean commit() throws LoginException {
if(userId != null)
{
createUserPrincipal = "true";
super.commit();
return true;
} else {
return false;
}
}
6.
467
Even Header
Customizing Authentication Using JAAS
7.
public boolean authenticate(SagCredentials userCreds) throws
LoginException
{
String username = userCreds.getUserName();
if(username == null || username.length()==0) {
return false;
}
if(userCreds.getPassword() == null) {
return false;
}
String password = new String(userCreds.getPassword());
if(password == null || password.length()==0) {
return false;
}
if(username.equals("bob") && password.equals("123") &&
UserManager.getUser(username) != null)
{
userId = username;
return true;
} else {
return false;
}
}
public boolean logout() throws LoginException {
userId = null;
return true;
}
}
Description
1.
2.
3.
468
Odd Header
Customizing Authentication Using JAAS
Code
Portion
Description
4.
5.
6.
7.
469
Even Header
470
Odd Header
Master Passwords and Outbound Passwords
472
473
474
474
475
475
476
477
479
When Problems Exist with the Master Password or Outbound Passwords at Startup ............... 480
E-mail Listeners and Package Replication ................................................................................
483
471
Even Header
Master Passwords and Outbound Passwords
Overview
As part of its normal operations, the Integration Server may connect to applications
and subsystems such as remote Integration Servers, proxy servers, and databases. The
Integration Server, acting as a client, is required to supply a password, referred to as an
outbound password, to each of these systems before connecting to them. The Integration
Server uses the outbound passwords to identify itself or authenticate to the other systems.
When you congure the Integration Server to connect to an application or subsystem, for
example a database, you specify the password the Integration Server must send to the
database server in order to connect to it. Later, when an Integration Server user makes a
request that requires the database, the Integration Server sends the congured password
to the database server and connects to it.
Note:
To protect these outbound passwords, the Integration Server encrypts them. By default
it encrypts them using Password-Based Encryption (PBE) technology, also known as
PKCS5. This encryption method requires the use of an encryption key or master password
that you specify. The encrypted outbound passwords are stored in a le.
Note:
Flow services may also store and retrieve outbound passwords to access
secure resources, using the pub.security.outboundPasswords services. For
more information, see the webMethods Integration Server Built-In Services
Reference.
The master password is also encrypted, and by default, is stored in a le. However,
when the password is stored in a le, there is a chance that someone could access the
le and decrypt the password. Therefore, for greater security, you can congure the
Integration Server to prompt for the master password at server startup instead.
Note:
To protect the master password le (if you use one) and the outbound
passwords le, assign them operating system Administrator access.
As stated above, outbound passwords are used by the Integration Server to authenticate
to other entities. In contrast, inbound passwords are used by users and other servers to
authenticate to the Integration Server. Inbound passwords are stored as a one-way hash.
See "Managing Users and Groups" on page 89 for a discussion of seing up inbound
passwords.
The following sections describe how to manage outbound passwords.
472
Odd Header
Master Passwords and Outbound Passwords
See...
473
Even Header
Master Passwords and Outbound Passwords
To change...
See...
cong/empw.dat
cong/congPassman.cnf
cong/passman.cnf
Always back up and restore these les together. If you change the name or location of
the outbound password store or the master password store, make sure your backup
procedure backs up the correct les.
474
Odd Header
Master Passwords and Outbound Passwords
475
Even Header
Master Passwords and Outbound Passwords
This property must always be present and uncommented. If you want to change the
le name or location, change the highlighted area only. You can specify an absolute or
476
Odd Header
Master Passwords and Outbound Passwords
relative path. In the path name, use the forward slash (/) only; the backward slash (\) is
not supported.
477
Even Header
Master Passwords and Outbound Passwords
478
Odd Header
Master Passwords and Outbound Passwords
You cannot congure Integration Server to prompt for the master password at server
initialization if:
Integration Server runs as a Windows service. Refer to "Running Integration Server
as a Windows Application vs. a Windows Service" on page 62 for more information.
Integration Server runs as a background application on UNIX.
479
Even Header
Master Passwords and Outbound Passwords
Important: When you are in safe mode, do not congure or modify outbound
passwords unless they have been reset as part of the Reset All Outbound
Passwords task.
When there is a problem with these passwords, you can correct the problem by restoring
the passwords or reseing them. The method you choose depends on the problem with
the passwords. There are a number of reasons the Integration Server will automatically
go into safe mode.
Passwords are Corrupted or Out of Sync
It is possible that the master password le, outbound password le, or both are
corrupted. It is also possible that these les are out of sync with each other. The les are
out of synch when the key used to encrypt the contents of the outbound password le
is not the key in the master password le. In either case, refer to "Determining Whether
You Can Restore the Passwords" on page 480 for instructions.
You Entered the Wrong Master Password by Mistake
You might be in safe mode because you unintentionally entered the wrong master
password when prompted for it at server startup. If you think this is the case, shut down
Integration Server and restart it, this time specifying the correct master password when
prompted.
Platform Locale Has Changed
Any change to the OS locale or default encoding can render the outbound password and
master password les unreadable by Integration Server. For this reason, Software AG
recommends that you do not change platform locale after the Integration Server has
been installed and started.
480
Odd Header
Master Passwords and Outbound Passwords
Your master password and outbound passwords are stored in les and you have
recent backups of both and the passman.cnf le.
Integration Server is congured to prompt for the master password, you have a
recent backup of the outbound password le and the passman.cnf le, and you
know the master password for that backup.
You must reset the passwords if any of the following is true:
Your master password and outbound passwords are stored in les and you do not
have recent backups the master password le, the outbound password le, and the
passman.cnf le.
Integration Server is congured to prompt for the master password and you do not
have recent backups of the outbound password le and the passman.cnf le.
Integration Server is congured to prompt for the master password and you have
lost or forgoen the master password.
Always back up and restore the master password le (if you use one), the
outbound password le, and the passman.cnf le together.
481
Even Header
Master Passwords and Outbound Passwords
482
Odd Header
Master Passwords and Outbound Passwords
483
Even Header
484
Odd Header
Securing Integration Server with CSRF Guard
486
486
486
488
490
485
Even Header
Securing Integration Server with CSRF Guard
What is CSRF?
Cross-Site Request Forgery (CSRF) is one of the most common aacks on websites and
web applications. A CSRF aack occurs when a user inadvertently loads a webpage that
contains a malicious request. This webpage sends a malicious request to a website or
web application using the identity and privileges of the user to perform an undesired
action, such as changing congurations or invoking a service.
A web application is vulnerable to CSRF aacks if the application performs actions
based on inputs from authenticated users but does not require users to authorize specic
actions. That is, if you are authenticated to a web application by a cookie stored in your
web browser, you could unknowingly send a malicious HTTP or HTTPS request to the
application.
486
Odd Header
Securing Integration Server with CSRF Guard
which Integration Server does not enforce CSRF guard. That is, Integration Server
will not check for CSRF tokens on requests from these excluded user agents.
You can specify the user agents as regular expressions. The asterisk (*) is the only
wildcard character allowed in the regular expression. To separate the entries, enter
one user agent per line. Press ENTER to separate the lines.
For example:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us)
AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341
Safari/528.16
*Mozilla*
Landing Pages. The home pages of Integration Server packages are referred to as
landing pages. Integration Server will not check for CSRF secure tokens in the
landing pages, but the server will insert a token for that page. Integration Server
guards all further requests from these landing pages with CSRF secure tokens.
You cannot specify landing pages as regular expressions. To separate the entries,
enter one landing page per line. Press ENTER to separate the lines.
For example:
MyPackage /index.dsp
MyPackage /index.html
Unprotected URLs. The URLs for which Integration Server does not have to check
for CSRF secure tokens are referred to as unprotected URLs. Integration Server
requires that the requests coming from all URLs that are not specied in this eld
must contain CSRF secure tokens.
If you specify a DSP page as an unprotected URL, Integration Server will not insert
a CSRF secure token for that le. If you aempt to access a protected page from this
DSP page, Integration Server issues an error or redirects you to the home page of
Integration Server Administrator depending on your Denial Action conguration.
You can specify unprotected URLs as regular expressions. The asterisk (*) is the only
wildcard character allowed in the regular expression. To separate the entries, enter
one URL per line. Press ENTER to separate the lines.
The following table provides examples of URLs for Unprotected URLs text area.
In this example...
MyPackage/abc.dsp
MyPackage/*
invoke/
pub.math:addInts
487
Even Header
Securing Integration Server with CSRF Guard
In this example...
invoke/pub*
invoke/*
Denial Action. The action you want Integration Server to perform when it detects that
a request does not contain a CSRF secure token or contains an invalid CSRF secure
token. You can congure Integration Server to:
Redirect the user to the home page of Integration Server Administrator or to a
webpage that displays a warning that Integration Server has detected a CSRF
aack.
Issue an error and terminate the request.
488
Odd Header
Securing Integration Server with CSRF Guard
You can specify the user agents as regular expressions. The asterisk (*) is the only
wildcard character allowed in the regular expression. To separate the entries, enter
one user agent per line. Press ENTER to separate the lines.
5. In the Landing Pages text area, enter the list of landing pages for the packages in your
Integration Server. Integration Server will not check for CSRF secure tokens in the
landing pages, but the server will insert a token for that page. Integration Server
guards all further requests from these landing pages with CSRF secure tokens.
You cannot specify landing pages as regular expressions. To separate the entries,
enter one landing page per line. Press ENTER to separate the lines.
6. In the Unprotected URLs text area, enter the URLs for which Integration Server does
not have to check for CSRF secure tokens.
You can specify unprotected URLs as regular expressions. The asterisk (*) is the only
wildcard character allowed in the regular expression. To separate the entries, enter
one URL per line. Press ENTER to separate the lines.
Note:
Do not specify landing pages in the Unprotected URLs text area. If you
specify landing page URLs in both Landing Pages and Unprotected URLs text
areas, the landing page option will take precedence and Integration Server
will not check for CSRF secure tokens in those pages.
7. From the Denial Action options, select the action that you want Integration Server
to perform when it detects that a request does not contain a CSRF secure token or
contains an invalid CSRF secure token.
Select...
To...
Error
489
Even Header
Securing Integration Server with CSRF Guard
Select...
To...
Redirect
8. Click Save Changes and refresh the web browser for the changes to take eect.
490
Odd Header
Securing Integration Server with CSRF Guard
<a href="/invoke/wm.sap.Transaction/viewAs?type=xml&secureCSRFToken=
%value secureCSRFToken%"></a>
For more information about using CSRF guard in DSPs, see Dynamic Server Pages and
Output Templates Developers Guide.
491
Even Header
492
Odd Header
Configuring webMethods Enterprise Gateway
494
494
Version Interoperability Between Enterprise Gateway Server and Internal Server ....................
498
Advantages of Enterprise Gateway over Traditional Third-Party Proxy Servers ........................ 499
About Denial of Service Protection ............................................................................................
500
501
501
502
502
503
504
505
506
512
516
516
517
525
527
529
531
493
Even Header
Configuring webMethods Enterprise Gateway
Overview
If your Integration Server sits behind an internal rewall and is not allowed to accept
communications from external clients through the DMZ, you can set up a webMethods
Enterprise Gateway to allow this server to process requests from external clients such as
mobile applications.
In an Enterprise Gateway conguration, the Integration Server that remains behind the
inner rewall is referred to as an Internal Server. You place another Integration Server,
called an Enterprise Gateway Server, in your DMZ. The Enterprise Gateway Server acts
as an intermediary between the external clients and your Internal Servers to protect
your Internal Servers and their applications, services, and data from malicious aacks.
Enterprise Gateway Server supports nearly all requests that a regular Integration Server
handles, including guaranteed delivery.
By default, all user validation and transaction processing is performed on the Internal
Server, but you can congure Enterprise Gateway Server to perform user validation.
You can also set up rules on Enterprise Gateway Server to lter requests before they are
passed to the Internal Server.
Important: To use Enterprise Gateway, you must have a webMethods Enterprise
Gateway license. The license for Enterprise Gateway allows only partial
Integration Server functionality. Install Enterprise Gateway on its own host
Integration Server. Do not install other products on an Integration Server
that hosts Enterprise Gateway.
494
Odd Header
Configuring webMethods Enterprise Gateway
External clients send requests to Enterprise Gateway Server (1). Enterprise Gateway
Server collects client information from each request and evaluates the request against
any Enterprise Gateway rules that have been dened. Enterprise Gateway Server then
passes requests that have not violated a rule to the Internal Server (2). The Internal
Server processes the requests and sends responses to Enterprise Gateway Server (3).
Enterprise Gateway Server then passes the responses back to the client (4).
495
Even Header
Configuring webMethods Enterprise Gateway
496
Odd Header
Configuring webMethods Enterprise Gateway
Denial rules.Enterprise Gateway Server denies the request and sends an alert. The
server stops processing the request as soon as it detects a match to a lter and does
not consider other lters in the rule or any other rules for this request.
Alert rules.Enterprise Gateway Server sends an alert about the violation and then
continues processing the request. If a rule contains multiple lters, the server checks
each lter and sends an alert each time it detects a match. After processing the
rule, the server continues to the next rule. If there are no subsequent rules, or if the
request does not violate any denial rules, the server allows the request.
Enterprise Gateway Server applies rules in the order in which they are displayed on
the Enterprise GatewayRules screen. Because a violation of a denial rule causes Enterprise
Gateway Server to stop processing a request, it is important to prioritize the rules based
on the order in which you want them to be evaluated. The server processes denial rules
before alert rules.
You can congure an Enterprise Gateway rule to:
Deny a request and send an alert about the violation.
Allow a request and send an alert about the violation.
Apply to all request types or only to SOAP, REST, or INVOKE requests.
Apply to requests to use services or resources that have a particular name.
Contain one more lters. If a request matches the condition specied by a lter, the
request is in violation of the rule. For rules that contain multiple lters, if a request
matches any one lter, the rule is in violation. For example, you can lter requests
based on message size, the presence of an OAuth token, or the mobile application
and type of device from which the request was sent.
Contain no lters. Even if you do not specify lters in a rule, you can still use a rule
to apply to certain request types or to requests for specic resources. For example,
you can deny all SOAP requests.
For instructions on dening Enterprise Gateway rules, see "Working with Enterprise
Gateway Rules" on page 517.
497
Even Header
Configuring webMethods Enterprise Gateway
The method Enterprise Gateway Server uses to send the alert. The server can send
alerts by way of email or a ow service.
To send email alerts, the Integration Server acting as the Enterprise Gateway Server
must be congured to send emails. Check the seings on the Seings > Resources
screen under Email Notification. If your Enterprise Gateway Server is not congured
to send emails, see "Sending Messages About Critical Issues to E-mail Addresses" on
page 222.
To send alerts by way of a ow service, Enterprise Gateway Server can use the
pub.security.enterpriseGateway:alertSpec specication as the signature of the ow service.
For more information about the specication, see webMethods Integration Server BuiltIn Services Reference.
Whether a rule uses default alert options or its own customized alert options.
For instructions on conguring Enterprise Gateway alerts, see "Specifying Alert
Options" on page 525.
498
Odd Header
Configuring webMethods Enterprise Gateway
If installing Enterprise Gateway for the rst time, you must select the correct release
version of webMethods Enterprise Gateway that you want to run from the list
of available releases in the Software AG Installer regardless of the version of the
Integration Server acting as the Internal Server. For example, to install Enterprise
Gateway 9.7 you must select webMethods 9.7 as the Release version in Software AG
Installer.
You cannot upgrade Enterprise Gateway using the overinstallation procedure. To
upgrade Enterprise Gateway, you must rst install the Integration Server that you
want to host Enterprise Gateway and then, install the higher version of Enterprise
Gateway in the host Integration Server. For example, to upgrade Enterprise Gateway
9.6 that is hosted in Integration Server 9.6 to Enterprise Gateway 9.7, you must rst
install the host Integration Server 9.6. Then, you must run Software AG Installer
again to install Enterprise Gateway 9.7 on the new installation of Integration Server
9.6.
You must install Enterprise Gateway and Internal Server in dierent installation
directories and preferably, on dierent machines. Do not congure a single
Integration Server to be both an Enterprise Gateway Server and an Internal Server.
Enterprise Gateway xes are delivered as part of Integration Server xes.
If a version of Internal Server is not compatible with the Enterprise Gateway Server
that you are conguring, Integration Server logs an error message stating the same in
Enterprise Gateway Server as well as the Internal Server.
Internal Server and Enterprise Gateway Server must use the same type of client
authentication for the external port.
Integration Server 9.5 SP1 does not support using password digest for client
authentication. If your Enterprise Gateway Server is 9.6 or higher, you cannot use
digest authentication if your Internal Server is version 9.5 SP1.
499
Even Header
Configuring webMethods Enterprise Gateway
An Integration Server acting as an Enterprise Gateway Server can handle both HTTP
and HTTPS requests. Typically, third-party proxy servers can handle only one or the
other.
500
Odd Header
Configuring webMethods Enterprise Gateway
501
Even Header
Configuring webMethods Enterprise Gateway
502
Odd Header
Configuring webMethods Enterprise Gateway
can leverage the ICAP protocol to scan all incoming HTTP requests and payloads for
viruses.
Note:
If the antivirus scan lter is enabled as part of an Enterprise Gateway rule, Enterprise
Gateway Server validates all incoming payloads by using the capabilities of the ICAP
server in the following steps:
1. Enterprise Gateway Server forwards the request to the ICAP sever.
2. The ICAP server scans the request using the registered ICAP service.
3. If the ICAP server detects any malicious content in the request, depending on how
the Enterprise Gateway rule is congured, Enterprise Gateway Server denies the
request or allows the request and sends an alert about the violation of the rule.
Before enabling the antivirus scan lter, ensure that the following prerequisites are met:
An ICAP-compliant server must be installed and congured in the DMZ and the
Enterprise Gateway Server must be able to access the ICAP-compliant server.
The ICAP-compliant sever must have an ICAP service registered and the service
must be accessible using the following format:
icap://<icap_server>:<icap_port>/serviceName
503
Even Header
Configuring webMethods Enterprise Gateway
Keep the following points in mind when creating an Enterprise Gateway rule with the
custom lter:
Integration Server processes the incoming payload at Enterprise Gateway only if the
custom logic in the service requires it to be processed.
Use the pub.security.enterprisegateway:customFilterSpec specication as the signature of the
custom service. For more details about the specication, see webMethods Integration
Server Built-In Services Reference.
The custom lter is the last lter that the Enterprise Gateway Server will check while
processing an Enterprise Gateway rule.
An Enterprise Gateway rule that contains the custom lter that is enabled must be
a denial rule. Enterprise Gateway Server automatically converts an alert rule into a
denial rule when you enable the custom lter.
504
Odd Header
Configuring webMethods Enterprise Gateway
Task
Notes
Install an Integration
Server in your DMZ
to be your Enterprise
Gateway Server
Congure the
Enterprise Gateway
external port
Congure the
Enterprise Gateway
registration port
505
Even Header
Configuring webMethods Enterprise Gateway
Done?
Task
Notes
administrator user on Enterprise Gateway
Server. For more information, see "Importing
a Certicate (Client or CA Signing Certicate)
and Mapping It to a User" on page 452.
Optional (but strongly recommended). Set up IP
address ltering on the registration port so
that only the Internal Server can connect to
Enterprise Gateway Server. This step provides
an additional layer of protection to supplement
the IP address ltering performed by your
rewall and the user authentication.
Note:Even if your external rewall lters out
connections to the Enterprise Gateway
registration port, IP address ltering is a
good idea because it will stop insiders from
connecting to Enterprise Gateway Server.
For more information, see "Restricting IP
Addresses that Can Connect to a Port" on page
423.
506
Odd Header
Configuring webMethods Enterprise Gateway
Specify...
Enable
Protocol
Port
The number you want to use for the external port. Use
a number that is not already in use. This is the port that
clients will connect to through your outer rewall.
Alias
Description
Package Name
Bind Address
(optional)
Backlog
507
Even Header
Configuring webMethods Enterprise Gateway
Specify...
Threadpool
Specify...
Enable
508
Odd Header
Configuring webMethods Enterprise Gateway
Specify...
Protocol
Port
The number you want to use for the registration port. Use
a number that is not already in use.
It is best not to use a standard port such as 80 (the standard
port for HTTP) or 443 (the standard port for HTTPS)
because the external rewall will allow access to those
ports from the outside world.
Alias
Description
Package Name
Bind Address
(optional)
8. For both external port and registration port, specify the type of client authentication
to perform in the Security Configuration panel.
For external ports, this seing determines the type of authentication to perform for
requests coming from the external client through the port. For registration ports, this
seing determines the type of authentication to perform when the Internal Server
establishes a persistent connection to Enterprise Gateway Server. Seings specied
for registration ports control whether Enterprise Gateway Server will ask the Internal
Server to present a certicate. See "Authenticating Clients" on page 447 for more
information about how clients are authenticated.
Note:
509
Even Header
Configuring webMethods Enterprise Gateway
Description
Username/Password
Digest
Request Client
Certificates
Require Client
Certificates
510
Odd Header
Configuring webMethods Enterprise Gateway
Option
Description
request passed to the Internal Server includes a
certicate.
For registration ports, Enterprise Gateway Server requires
a client certicate from the Internal Server. If the Internal
Server does not supply a client certicate, the request
fails. In addition, if the certicate is not mapped to a user
with Administrator privileges on Enterprise Gateway
Server, the request fails.
Use JSSE
If this port should support TLS 1.1 or TLS 1.2, click Yes
to create the port using the Java Secure Socket Extension
(JSSE) socket factory. If you set this value to No, the port
supports only SSL 3.0 and TLS 1.0. The default is No.
Note: This eld is available only if you selected HTTPS in the
Protocol eld.
9. If you selected HTTPS in the Protocol eld for either the external port or the
registration port, optionally enter the following information under Listener Specific
Credentials:
Note:
Use these seings only if you want to use a dierent set of credentials from
the ones specied on the Certicates screen.
Specify...
Keystore Alias
Key Alias
Truststore Alias
The alias for the truststore le that contains the trusted root
certicates associated with the CA signing authority.
511
Even Header
Configuring webMethods Enterprise Gateway
You delete ports on the Integration Server AdministratorPorts screen. For details, see
"Conguring Ports" on page 155.
Specify...
Enable
Protocol
Package Name
Alias
Description
Max Connections
512
Odd Header
Configuring webMethods Enterprise Gateway
Specify...
Note: For best performance, set the Max Connections seing
on the listener to be slightly less than the Maximum
Threads of the Server Threadpool seing on the
Seings > Resources page. If you have more than one
listener dened on the Internal Server, the sum of
their Max Connection seings should be slightly less
than the Maximum Threads of the Server Threadpool
seing. Do not set Max Connections to be equal to the
Internal Servers threadpool. Instead, reserve enough
threads to handle the execution of scheduled services,
triggers, and users that connect directly to the Internal
Server.
Threadpool
513
Even Header
Configuring webMethods Enterprise Gateway
Specify...
When you view details for the port later, the server
displays the total number of private threadpool threads
currently in use for the port.
Specify...
Host
Port
8. If you selected HTTPS in the Protocol box, optionally enter the following information
under Registration Credentials. Note that the registration credentials specied here
must match the seings on the Enterprise Gateway registration port:
For this parameter...
Specify...
User Name
Password
Use JSSE
If this port should support TLS 1.1 or TLS 1.2, click Yes
to create the port using the Java Secure Socket Extension
(JSSE) socket factory. If you set this value to No, the port
supports only SSL 3.0 and TLS 1.0. The default is No.
Note: This eld is available only if you selected HTTPS in the
Protocol eld.
Keystore Alias
514
Odd Header
Configuring webMethods Enterprise Gateway
Specify...
Specify a value here only if you want to present a dierent
server certicate from the one specied on the Certicates
screen.
Key Alias
The key alias created for the key pair and associated
certicate, in the previously specied keystore.
Truststore Alias
The alias for the truststore le that contains the trusted root
certicates associated with the CA signing authority.
9. Under External Client Security, in the Client Authentication list, specify the type of client
authentication the Internal Server performs against external clients. External clients
pass their authentication information to Enterprise Gateway Server, which in turn
passes it to the Internal Server.
Option
Description
Username/Password
Digest
Request Client
Certificates
Require Client
Certificates
Important: Use the same authentication mode here as you use for the Enterprise
Gateway external port. For example, specifying Require Client Certificates
for both the Internal Server and the Enterprise Gateway external
port ensures that the request passed to the Internal Server includes a
certicate.
For more information about processing client certicates, see "Authenticating
Clients" on page 447.
10. Click Save Changes.
515
Even Header
Configuring webMethods Enterprise Gateway
Description
Host
Port
Connected (Number of
Connections)
516
Odd Header
Configuring webMethods Enterprise Gateway
517
Even Header
Configuring webMethods Enterprise Gateway
If you want to send email alerts, the Integration Server acting as the Enterprise
Gateway Server must be congured to send email alerts. For more information, see
"Sending Messages About Critical Issues to E-mail Addresses" on page 222.
Be careful to prioritize rules in the order in which you want them to be evaluated.
This is particularly important in the case of denial rules because a violation of
a denial rule causes Enterprise Gateway Server to stop processing a request,
sometimes before the entire rule has been evaluated.
You can create a rule that contains no lters. You might use such a rule to deny
all requests of a certain request type, or to send alerts about requests that use a
particular resource.
When a new rule is created, Enterprise Gateway Server applies the default alert
options to the rule. To customize the alert options for a rule, see "Specifying RuleSpecic Alert Options" on page 526.
Enterprise Gateway rules are categorized into denial and alert rules. When you
create a new rule, it is added to the end of the list of rules in the appropriate category
on the Security > Enterprise Gateway Rules page.
To create an Enterprise Gateway rule
1. Open Integration Server Administrator on the Integration Server acting as the
Enterprise Gateway Server.
2. In the Navigation panel, select Security >Enterprise GatewayRules.
3. On the Enterprise Gateway Rules screen, click Create Rule.
4. In the Rule Name box, enter a name for the rule.
Valid rule names:
Must be unique.
Must not be null.
Must not contain spaces.
Must not contain these special characters:
? ~ ` ! @ # $ % ^ & * ( ) - + = { } | [ ] \\ : \" ; ' < > , /
5. In the Description box, enter a brief description for the rule.
6. If you want to enable the rule immediately, select the Enable check box. Enterprise
Gateway Server applies a rule to requests only if the rule is enabled. You can enable
the rule later on the Enterprise Gateway Rules page.
7. From the Request Type list, select the type of request to which you want to apply the
Enterprise Gateway rule. Select ALL if you want to apply this rule to all requests.
Select SOAP, REST, or INVOKE to apply this rule to SOAP, REST, or INVOKE requests,
respectively.
8. To lter a request based on the resource being requested, specify a string in the
Resource Path box in the format folder_name/service_name . You can specify multiple
webMethods Integration Server Administrators Guide Version 9.10
518
Odd Header
Configuring webMethods Enterprise Gateway
paths, one to a line, and you can specify an asterisk (*) wildcard character. This box
is available only if you selected a request type from the Request Type list.
Following are some examples of resource paths for INVOKE, web service, and REST
requests.
519
Even Header
Configuring webMethods Enterprise Gateway
To...
Deny Request
and Alert
Alert
10. In the Error Message box, enter a custom message that you want Enterprise Gateway
Server to send to the client if a request violates an Enterprise Gateway deny rule. The
server sends this message as a status message for an HTTP 403 status code, in the
format HTTP 403 custom error message .
11. Under OAuth Filter, select the Require OAuth Credentials check box if you want
Enterprise Gateway Server to check for an OAuth token in the authorization header
of the request. Select the Enable check box to enable this lter now, or enable this
lter later by editing the rule on the Edit Rule screen.
12. Under Message Size Filter, in the Maximum Message Size box, enter the maximum
size allowed for HTTP and HTTPS requests, in megabytes. If the request is larger
than the size specied in this limit, the request will violate the rule and Enterprise
Gateway Server will perform the congured action. Select the Enable check box to
enable this lter now, or enable this lter later by editing the rule on the Edit Rule
screen.
13. Under Mobile Application Protection Filter, specify one or more conditions that describe
requests based on the device type from which the request was sent and the version
of mobile application that sent the request. If a request meets a condition, the rule
is violated and Enterprise Gateway Server will perform the congured action. For
example, you can specify that you will not allow requests from out-of-date versions
of the ABC application sent from a ZZZ smart phone. Select the Enable check box to
enable this lter now, or enable this lter later by editing the rule on the Edit Rule
screen.
14. Under SQL Injection Protection Filter, select one or both of the following:
520
Odd Header
Configuring webMethods Enterprise Gateway
Select...
To...
DatabaseSpecific SQL
Injection
Protection
Standard
SQL Injection
Protection
Note:
Even though you can select both the lters, selecting multiple options
may increase the message processing time because each lter requires a
separate inspection of the request message.
Select the Enable check box to enable this lter now, or enable this lter later by
editing the rule on the Edit Rule screen.
15. Under Antivirus Scan Filter, enter the following information if you want Enterprise
Gateway Server to scan the incoming payload for viruses:
For this
parameter...
Specify...
Antivirus ICAP
Engine Name
ICAP Host
Name or IP
Address
ICAP Port
Number
ICAP Service
Name
The name of the service exposed by the ICAP server that you
can use to scan your payload for viruses.
Select the Enable check box to enable this lter now, or enable this lter later by
editing the rule on the Edit Rule screen.
521
Even Header
Configuring webMethods Enterprise Gateway
16. Under Custom Filter, click the Browse buon adjacent to the Invoke Service eld if you
want to invoke a service that is available on the Enterprise Gateway Server. From
the Package Name list, select the package that contains the service that you want to
invoke. Enterprise Gateway Server populates the Service Name list with the names of
the services that have the pub.security.enterprisegateway:customFilterSpec specication as its
signature in the selected package. Select the service that you want to invoke.
In the Run As User box, click
to select the user name you want Enterprise Gateway
Server to use to run the service. The default is Administrator.
You can select a user from the local or central directory. Enterprise Gateway Server
runs the service as if the user you specify is the authenticated user that invoked the
service. If the service is governed by an ACL, be sure to specify a user that is allowed
to invoke the service.
Important: If the custom lter is enabled, the Enterprise Gateway rule that contains
the custom lter must be a denial rule. Enterprise Gateway Server
automatically converts an alert rule into a denial rule when you enable
the custom lter.
Select the Enable check box to enable this lter now, or enable this lter later by
editing the rule on the Edit Rule screen.
17. Click Save Changes.
Enterprise Gateway Server displays the rule on the Enterprise Gateway Rules page
under Denial Rules or Alert Rules depending on the action you selected when you
created the rule.
522
Odd Header
Configuring webMethods Enterprise Gateway
Disabling a rule has no eect on its priority order on the Enterprise Gateway
Rules screen.
523
Even Header
Configuring webMethods Enterprise Gateway
The server appends _copy to the rule name and displays the properties page of the
rule.
4. View or modify the rule properties and lters as necessary. For more information,
see "Creating an Enterprise Gateway Rule" on page 517.
5. Click Save Changes.
524
Odd Header
Configuring webMethods Enterprise Gateway
4. Click Delete. When you are prompted to conrm that you want to delete the rule,
click OK.
In order to send email alerts about rule violations, the Integration Server
acting as the Enterprise Gateway Server must be congured to send emails.
Check the seings on the Seings > Resources screen under Email Notification. If
your Enterprise Gateway Server is not congured to send emails, see "Sending
Messages About Critical Issues to E-mail Addresses" on page 222.
To...
None
525
Even Header
Configuring webMethods Enterprise Gateway
Select...
To...
Flow Service
b. In the Run As User box, enter the user name you want Enterprise Gateway Server
to use when running the service. Click to search for and select the user. You
can select a user from the local or central directory.
Enterprise Gateway Server runs the service as if the user you specify is the
authenticated user that invoked the service. If the service is governed by an ACL,
be sure to specify a user that is allowed to invoke the service.
8. Click Save Changes.
526
Odd Header
Configuring webMethods Enterprise Gateway
527
Even Header
Configuring webMethods Enterprise Gateway
3. In the Navigation panel on the Enterprise Gateway Rules screen, click Denial of
Service Options and then click Configure Global Denial of Service.
4. Select the Enable check box.
5. In the Maximum Requests box, enter the maximum number of requests you want
Enterprise Gateway Server to accept in a given time interval. Then, enter the time
interval, in seconds.
6. In the Maximum Requests in Progress box, enter the maximum number of requests that
can be in progress at the same time.
7. In the Block Interval box, enter the number of minutes Enterprise Gateway Server is to
block requests on every Enterprise Gateway external port.
8. In the Error Message box, enter a custom message to send to the client, if desired,
when a request is denied.
9. In the Trusted IP Address Range box, enter the trusted IPv4 or IPv6 addresses so that
requests from these IP addresses are always allowed. You can specify multiple IP
addresses or IP address ranges separated by commas (,). For more information about
trusted IP address ranges, see "About Trusted IP Addresses" on page 500.
10. Click Save Changes.
528
Odd Header
Configuring webMethods Enterprise Gateway
5. In the Maximum Requests box, enter the maximum number of requests that Enterprise
Gateway Server can accept from a specic IP address in a given time interval. Then,
enter the time interval, in seconds.
6. In the Maximum Requests in Progress box, enter the maximum number of requests that
Enterprise Gateway Server can process concurrently from any single IP address.
7. In the When Limit Exceeds box, specify an action to take when the number of requests
from a non-trusted IP address exceeds the specied limits.
To permanently deny future requests from the IP address, select Add to Deny
List. Enterprise Gateway Server adds the IP address to the Enterprise Gateway
deny list. As a result, requests from this IP address will be denied at every
Enterprise Gateway external port. The IP address remains in the deny list until
an administrator deletes it from the list.
Note:
The Enterprise Gateway deny list takes precedence over the port-level
allow/deny list for the Enterprise Gateway external port.
To temporarily block requests from this IP address, select Block. In the Block
Interval box, specify the number of minutes you want requests to be blocked. To
block requests, Enterprise Gateway Server adds the IP address to the Enterprise
Gateway deny list. As a result, the server denies requests from this IP address on
every Enterprise Gateway external port for the congured time period.
8. In the Error Message box, enter a custom message to send to the client, if desired,
when a request is denied.
9. In the Trusted IP Address Range box, enter IP addresses or range of trusted IPv4 or
IPv6 addresses so that requests from these IP addresses are always allowed. You
can specify multiple IP addresses or IP address ranges separated by commas (,).
For more information about specifying trusted IP addresses, see "About Trusted IP
Addresses" on page 500.
10. Click Save Changes.
529
Even Header
Configuring webMethods Enterprise Gateway
Mobile-Application-Version
Note:
Value
Device Type
XYZ
Mobile Application
BigApp
Condition
<
3.0
530
Odd Header
Configuring webMethods Enterprise Gateway
To allow requests from all 3.0 versions (3, 3.0, 3.0.0, 3.0.0.0) of the BigApp mobile
application sent from the XYZ mobile device, specify the following:
Field
Value
Device Type
XYZ
Mobile Application
BigApp
Condition
3.0
10. To add another condition, click Add and repeat the previous step.
11. Click Save Changes.
Each connection consumes a thread, either from the Internal Servers common
thread pool or from the internal listeners private thread pool, if one is dened. The
consumed thread can only be used to process requests from Enterprise Gateway
Server.
531
Even Header
Configuring webMethods Enterprise Gateway
If you have dened a private thread pool for the internal registration listener, the
number of connections you can specify in the Max Connections box is limited to the
maximum number of threads allowed in the private thread pool for this listener.
If you have multiple internal registration listeners, each with its own private thread
pool, the same rule applies for each internal registration listener.
If you have not dened a private thread pool for an internal registration listener, a
reasonable limit for the Max Connections box is 75% of the number of server threads
specied in Server Thread Pool Max Threads box on the Seings > Resources page.
If you have multiple internal registration listeners and none of them have private
thread pools, the sum of all connections specied in the Max Connections boxes for
these listeners should not exceed 75% of the number of server threads specied in
Server Thread Pool Max Threads.
A thread will remain open unless it is closed by a rewall, a network glitch, or an
exception.
Is there persistence with Enterprise Gateway Server?
No. Enterprise Gateway Server is just a network hop for the incoming request.
I want to authenticate the SSL credentials of external clients. Where do I set up
certicates?
The following table shows where to set up certicates for the default Enterprise
Gateway conguration, in which the Internal Server performs client authentication.
If you want to perform client authentication on Enterprise Gateway Server as well,
see "Performing Client Authentication on Enterprise Gateway Server " on page
516.
Enterprise Gateway Server
Internal Server
532
Odd Header
Configuring webMethods Enterprise Gateway
Internal Server
This truststore must be the same
as the truststore for the Enterprise
Gateway external port.
533
Even Header
Configuring webMethods Enterprise Gateway
mode is Required, the external port must also be Required so that Enterprise Gateway
Server always passes the external clients certicate to the Internal Server.
In contrast, the authentication mode of the Enterprise Gateway registration port does
not need to match the authentication mode of the Internal Server or the Enterprise
Gateway external port.
If you want to perform client authentication on Enterprise Gateway Server, see
"Performing Client Authentication on Enterprise Gateway Server " on page 516.
Does Enterprise Gateway support the FTP protocol?
No, support is limited to HTTP and HTTPS only.
Are the SOCK and SSLSOCK protocols supported?
No, these were proprietary protocols used in older releases. Starting with the 7.1
release, SOCK and SSLSOCK have been replaced by HTTP and HTTPS.
Is it possible to lter requests on Enterprise Gateway Server?
Yes. You can use Enterprise Gateway rules to lter requests based on a number
of factors, including request size, request type, and the name of resource being
invoked.
534
Odd Header
Configuring OAuth
25 Configuring OAuth
What Is OAuth? ..........................................................................................................................
536
537
538
542
543
543
557
535
Even Header
Configuring OAuth
What Is OAuth?
The OAuth 2.0 Authorization Framework (OAuth) facilitates the sharing of private
resources (data or services) with a third-party client application (client). In an OAuth
session, private resources are stored on a resource server and the owner of the resources,
or resource owner, grants the client application permission to access them. The resource
owner is typically a person; however, in some cases it could be an application. When a
resource owner grants permission, the OAuth authorization server issues an access token to
the client application. When the client application passes the access token to the resource
server, the resource server communicates with the authorization server to validate the
token and, if valid, provides access to the resources.
The following example illustrates the roles involved with an OAuth session. In the
example, Bob is the resource owner who wants to access and print his photos stored
on the PhotoStorage website (the resource server) using the PhotoPrint service (the
client application). PhotoPrint supplies Bob with an application that runs on his device
(phone, laptop, etc). Bob uses that application to initiate the process. PhotoPrint sends
a request to the PhotoStorage authorization server. The authorization server requests
authorization from Bob and issues a token to PhotoPrint. PhotoPrint can then access
Bob's photos on PhotoStorage.
An in-depth description of OAuth is beyond the scope of this guide but is available
elsewhere. For information about the OAuth protocol, see the OAuth 2.0 Authorization
Framework.
536
Odd Header
Configuring OAuth
537
Even Header
Configuring OAuth
privileges to access the folders and services, the resource server executes the request.
The resource server and the authorization server might be the same Integration Server
instance or might be dierent Integration Server instances. For information about using
Integration Server as a resource server, see "About Using Integration Server as the
Resource Server" on page 557.
538
Odd Header
Configuring OAuth
Stage
Description
539
Even Header
Configuring OAuth
Stage
Description
When the resource owner approves the request, the approval page
invokes an internal service on Integration Server. If the resource owner
denies the request, an error is returned.
The client application uses the access token to execute a service on the
resource server.
The resource server checks with the authorization server to make sure
the requested service is within the scope for which the access token was
issued and whether the client is authorized to access the folders and
services in the scope.
Implicit Grant
The implicit grant type is used to authenticate browser-based applications and
mobile applications. This grant type is less secure than the authorization code grant
because it does not require the client to authenticate with the authorization server. In
addition, the implicit grant type passes the access token through the resource owner's
browser, exposing it to theft by malicious applications on the resource owner's device.
The following diagram illustrates how the Integration Server authorization server
participates in the implicit grant process.
You use the implicit grant type to authenticate and provide access to public clients.
A public client is a client that uses only a client ID for identication, with no other
credentials. Public clients are typically implemented in a browser using a scripting
language such as JavaScript. Because the authorization server does not require any other
credentials, the authorization server grants any client with a valid client ID an access
token. To specify a public (implicit) client in Integration Server Administrator, set Type
to Public. For more information, see "Registering Clients" on page 546.
540
Odd Header
Configuring OAuth
Stage
Description
When the resource owner approves the request, the approval page
invokes an internal service on Integration Server. If the resource owner
denies the request, an error is returned.
541
Even Header
Configuring OAuth
Stage
Description
The resource owners browser holds the access token in memory until the
client application retrieves the access token.
The client application uses the access token to execute a service on the
resource server.
The resource server checks with authorization server to make sure the
requested service is within the scope for which the access token was
issued and whether the client is authorized to access the folders and
services in the scope.
Description
pub.oauth:authorize
pub.oauth:getAccessToken
pub.oauth:refreshAccessToken
For more information about using the Integration Server OAuth services, see webMethods
Integration Server Built-In Services Reference.
542
Odd Header
Configuring OAuth
Stage 2
Dene clients.
During this stage, you dene the clients that are authorized to
access the authorization server. For information about registering,
modifying, and deleting clients, see "Dening Clients" on page
546.
Stage 3
Dene scopes.
During this stage, you dene the scopes available for the clients
to access. For information about adding, modifying, and deleting
scopes, see "Dening Scopes" on page 550.
Stage 4
543
Even Header
Configuring OAuth
During this stage, you associate scopes to clients and vice versa.
When you associate scopes and clients, you authorize the scopes
that each client can access. For information about adding,
removing, and viewing the associations between scopes and
clients, see " Associating Scopes and Clients" on page 552.
Stage 5
Description
Require HTTPS
544
Odd Header
Configuring OAuth
Field
Description
services over HTTP, Integration Server issues
an HTTP 500 error response to the client and
writes a service exception to the error log.
You can disable Require HTTPS to simplify
Important:
development, but you should use HTTPS in
production in accordance with the OAuth
Framework. If you do not require HTTPS, the
authorization server transmits access tokens
in clear text, making them vulnerable to theft.
Authorization server
To...
Never Expires
Expires in and
enter the number
of seconds. The
maximum value
is 2147483647.
The default is
3600.
545
Even Header
Configuring OAuth
Field
Description
If you are conguring Integration Server as the
authorization server only, Integration Server
ignores the value of this eld.
The list displays the congured remote server
aliases that are available for use. For information
about creating a remote server alias, see "Seing
Up Aliases for Remote Integration Servers" on
page 117.
Defining Clients
Before a client application (client) can request access to a protected resource, you must
use the Integration Server Administrator to register the client with the authorization
server.
Registering Clients
Complete the following steps to register a client with the authorization server.
To register a client
1. Open Integration Server Administrator of the Integration Server dened as the
authorization server if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
3. Click Client Registration.
4. Click Register Client.
5. Under Client Configuration, complete the elds as follows:
Field
Description
Name
Version
546
Odd Header
Configuring OAuth
Field
Description
The version cannot contain the following
characters:
&()\;,/":'<>
Note: You cannot create clients with the same Name
and Version combination.
Type
When...
Confidential
Public
Description
Redirect URIs
547
Even Header
Configuring OAuth
Description
Expiration Interval
Refresh Count
Select...
To...
Use OAuth
Global Setting
Never Expires
Expires in
To...
Unlimited
Limit
548
Odd Header
Configuring OAuth
Field
Description
token expires, the client can use the
pub.oauth:refreshAccessToken service to
submit a token refresh request to the
authorization server.
If you specify 0 or leave the Limit eld
empty, Integration Server does not
issue a refresh token.
The maximum value is 2147483647.
The default is 0.
To...
No
Enable a client.
Yes
Disable a client.
5. When prompted to conrm that you want to enable or disable the registered client,
click OK.
549
Even Header
Configuring OAuth
Editing Clients
Complete the following steps to edit a registered client.
To edit a client
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
3. Click Client Registration.
4. Under Registered Clients, click the Application Name or Client ID for the client that you
want to edit.
5. Update the information for the client.
Note:
Deleting Clients
Complete the following steps to delete a registered client.
Important: When you delete a client, Integration Server also deletes all the access and
refresh tokens for the client.
To delete a client
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
3. Click Client Registration.
4. Locate the client in the Registered Clients list, and click the
column.
5. When prompted to conrm that you want to delete the registered client, click OK.
Defining Scopes
A scope indicates the resources the client can access on behalf of a resource owner. A
scope consists of a name and one or more Integration Server folders, services, or both.
If access is granted for a scope, then access is granted for all folders and services in that
scope. You map the scope to a registered client to indicate the namespace resources the
client can access on Integration Server. For more information about mapping scopes to
clients, refer to " Associating Scopes and Clients" on page 552.
When a request is made to the authorization server, Integration Server veries that the
scope is dened for a client. The client is allowed to access only the namespace resources
550
Odd Header
Configuring OAuth
that are specied for the scope. If the requested scope is not dened, Integration Server
returns an error indicating that the scope is invalid.
Adding a Scope
Complete the following steps to add a scope. The scope denes the services and folders
that the clients are authorized to access.
To add a scope
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
3. Click Scope Management.
4. Click Add Scope.
5. Under Scope Configuration, specify the following information:
Field
Description
Name
Editing Scopes
Complete the following steps to edit a scope.
To edit a scope
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
551
Even Header
Configuring OAuth
Deleting Scopes
Complete the following steps to delete a scope.
Note:
You cannot delete a scope that is used by a client. To see whether a scope is
in use by a client, see "Viewing Associations Between Clients and Scopes" on
page 555.
To delete a scope
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
3. Click Scope Management.
4. Locate the scope in the Defined Scopes list, and click the
5. When prompted to conrm that you want to delete the scope, click OK.
You must dene scopes and clients before you can associate them. For more
information about registering clients, see "Dening Clients" on page 546.
For more information about adding scopes, see "Dening Scopes" on page
550.
552
Odd Header
Configuring OAuth
Clients to a
particular scope
Scopes to a
particular client
553
Even Header
Configuring OAuth
Removing associations between scopes and clients does not delete the clients
or scopes from the system, nor does it aect access tokens that have already
been issued. For more information about deleting clients, see "Deleting
Clients" on page 550. For more information about deleting scopes, see
"Deleting Scopes" on page 552.
Clients from a
particular scope
554
Odd Header
Configuring OAuth
a. Under Clients, in the Select Client list, select the client for
which you want to remove an association from one or
more scopes.
b. In the Scopes in this Client list, select (highlight) the scope
or scopes that you want to remove from the client.
To select additional scopes without deselecting
currently selected scopes, press Ctrl while you click the
scopes you want to select. To deselect a scope, press Ctrl
while you click the currently selected entry.
c. After you have selected all the scopes
you want to remove from the client, click
. Integration Server
moves the selected scopes to the Remaining Scopes list.
555
Even Header
Configuring OAuth
Clients associated
with a particular
scope
Under Scopes, in the Select Scope list, select the scope for
which you want to view associated clients.
Scopes associated
with a particular
client
Under Clients, in the Select Client list, select the client for
which you want to view associated scopes.
Viewing Tokens
Use the following procedure to view the active tokens issued by the authorization
server.
To view tokens
1. Open the Integration Server Administrator if it is not already open.
2. In the Security menu of the Navigational Panel, click OAuth.
3. Click Tokens. Under Tokens, the Integration Server Administrator lists the active and
expired access tokens issued by Integration Server.
Deleting Tokens
You can use the Tokens screen to delete all active tokens. When you delete the token
from the list of active tokens, Integration Server deletes both the access token and the
refresh token. Keep the following points in mind when deleting tokens:
After you delete a token, other resource owners using the same client application can
continue to do so. To keep a particular client application from accessing resources,
you can disable or delete the client application. For more information about deleting
client applications, see "Deleting Clients" on page 550.
Once a token is deleted, Integration Server rejects any requests from clients using
that access or refresh token.
To delete tokens
1. Open the Integration Server Administrator if it is not already open.
556
Odd Header
Configuring OAuth
5. When prompted to conrm that you want to delete the token, click OK.
You can customize the title, logo, heading, and footer of the approval page using
the wa.server.oauth.approvalpage properties. For information about using these
properties, see "Server Conguration Parameters" on page 851.
557
Even Header
Configuring OAuth
Server is the resource server, clients can present the access token using the authorization
request header eld. Clients can send the access token in the Authorization request
header eld using the Bearer authentication scheme to submit the access token. For
example:
GET /invoke/folder/svc HTTP/1.1
Host: your-company.com:5555
Authorization: Bearer access_token_id
If you are using the pub.client:http service, you can send the token using the auth header
eld. For information about using this service, see webMethods Integration Server Built-In
Services Reference.
For more information about the Bearer authentication scheme, refer to the OAuth 2.0
Authorization Framework Bearer Token Usage specication.
558
Odd Header
Configuring a Central User Directory or LDAP
560
Overview of How Integration Server Works with Externally Defined Users and Groups ............ 560
Configuring Central User Management .....................................................................................
562
564
565
572
573
575
576
559
Even Header
Configuring a Central User Directory or LDAP
560
Odd Header
Configuring a Central User Directory or LDAP
How externally dened users and groups can be used in Integration Server.
When Integration Server accesses information about externally dened users and
groups.
How Integration Server authenticates users who belong to externally dened groups
or roles.
Client requests that require Integration Serverto access a central user directory
or an LDAP directory may take longer to complete than those that do not.
561
Even Header
Configuring a Central User Directory or LDAP
Integration Server nds an internally-dened user account for the supplied user name,
Integration Serverauthenticates the client using the internally-dened information. If
the supplied password is correct, Integration Server proceeds with the request. If the
supplied password is not correct, Integration Server rejects the request.
If Integration Server cannot nd an internally-dened user account for the supplied user
name, Integration Server accesses the external directory (either a central user directory
or LDAP) to obtain user name and password information for the client. If Integration
Server nds an externally dened user account, Integration Serverauthenticates the
client using the externally dened information. For example, if a user account is dened
in the My webMethods Server user directory, Integration Server authenticates the client
using the information dened in the My webMethods Server database. If the supplied
password is correct, the server proceeds with the request. If the supplied password is
not correct, the server rejects the request.
Note:
If the server cannot nd either an internally or externally dened user account for the
user, the server rejects the request.
If the user does not supply a user name or password, the server uses the internallydened Default user account.
Note:
562
Odd Header
Configuring a Central User Directory or LDAP
Administrator to give them access to the necessary areas. If such users are already
dened in an external directory such as LDAP, you can congure My webMethods
Server to work with the external directory. When congured this way, authentication
and authorization requests are still made by the Integration Server; however, the server
creates the connection to the external directory using the directory seings dened by
the My webMethods Server database.
Users dened in a central location, such as the My webMethods Server user directory,
are sometimes referred to as central users.
563
Even Header
Configuring a Central User Directory or LDAP
564
Odd Header
Configuring a Central User Directory or LDAP
If the server receives subsequent requests that require the information it has in cache,
the Integration Server uses the cached information rather than accessing the external
directory.
Specify...
565
Even Header
Configuring a Central User Directory or LDAP
Specify...
they have been idle. As a result, activity can extend the
time a user remains in the cache.
As a general rule, specify a cache size equivalent to
5-10% of the number of users in your LDAP system.
However, if only a few sessions are ever logged on
simultaneously, set the cache size to be the same as the
number of simultaneous sessions.
Credential Time-to-Live
(Minutes)
566
Odd Header
Configuring a Central User Directory or LDAP
Specify...
Directory URL
Principal
567
Even Header
Configuring a Central User Directory or LDAP
Specify...
This user should not be the Administrator account, but
a user that has permission to query groups and group
membership. If your LDAP server allows anonymous
access, leave this eld blank.
Credentials
Connection Timeout
(seconds)
Minimum Connection
Pool Size
Maximum Connection
Pool Size
Synthesize DN
568
Odd Header
Configuring a Central User Directory or LDAP
Specify...
not perform a query against the LDAP directory.
However, if your LDAP system does not contain all
users in a single at structure, use the Query DN
method instead.
DN Prefix
A string that species the beginning of a DN you want
to pass to the LDAP server.
DN Suffix
A string that species the end of a DN you want to
pass to the LDAP server.
For example, if the prex is "cn=" and the sux is
",ou=Users" and a user logs in specifying "bob", the
Integration Server builds the DN cn=bob,ou=Users
and sends it to the LDAP server for authentication.
Note: Be sure to specify all the characters required
to form a proper DN. For instance, if you omit
the comma from the sux above, that is, you
specify "ou=Users" instead of ",ou=Users", the
Integration Server will build the invalid DN
(cn=bobou=Users).
Query DN
Default Group
569
Even Header
Configuring a Central User Directory or LDAP
Specify...
This access is controlled by the ACLs with which the
group is associated.
If you also specify a value in the Group Member Attribute
eld, the user has the same access as members of
the Integration Server group and members of LDAP
groups that have been mapped to an Integration
Server ACL.
Do not specify Anonymous as the default
Important:
group if any user in this group needs to have
administrator privileges. The default ACL denies
the Anonymous group and will not allow access
the root page. Choose the appropriate group in
the Default Group eld to ensure that the required
ACLs get assigned to your group.
You must specify a value in the Group Member
Important:
Attribute eld, the Default Group eld, or both.
Group ID Property
Group Root DN
ou=groups,webMethods,dc=com,Integration Server
570
Odd Header
Configuring a Central User Directory or LDAP
Specify...
Note: You must specify values in the Group ID Property
and Group Root DN elds.
If you dene multiple LDAP servers, Integration Server will search the
LDAP directories in the order in which they are displayed on the Security >
User Management > LDAP Configuration screen. If Integration Server does not
nd the user in the rst LDAP directory, it will search in order through the
list.
571
Even Header
Configuring a Central User Directory or LDAP
572
Odd Header
Configuring a Central User Directory or LDAP
An exception to the above diagram is that all internally-dened users are members of
the internally-dened Everybody group.
573
Even Header
Configuring a Central User Directory or LDAP
Replicators ACL
Anonymous ACL (if their role/group is not part of this already)
Note:
574
Odd Header
Configuring a Central User Directory or LDAP
575
Even Header
Configuring a Central User Directory or LDAP
576
Odd Header
Configuring a Central User Directory or LDAP
577
Even Header
578
Odd Header
Managing Packages
27 Managing Packages
Using Packages .........................................................................................................................
580
585
587
595
600
626
627
579
Even Header
Managing Packages
Using Packages
A package contains a set of services and related les, such as specications, document
types, and DSPs. When you add a service, specication, document type, or DSP to the
webMethods Integration Server, you must add it to a package. Use a package to group
services and related les.
By placing related les in a package, you can easily manage all the services and les
in the package as a unit. For example, you can make them all available, disable them,
refresh them, or delete them with one action. Additionally, if you have more than one
Integration Server installed, you can use package management features to copy some or
all services and les in a package to another server.
You can group your services using any package structure you choose, though most
organizations group services into packages by function or application. For example, you
might put all purchasing-related services in a package called PurchaseOrderMgt and
all time-reporting services into TimeCards.
Important: Every service on the server must belong to a package. Before you can make
a service available for execution, you must load the package to which it
belongs.
Access to a package and its contents is controlled through Access Control Lists (ACLs).
Using ACLs, you control who can display a package from the Integration Server
Administrator and Designer, who can edit the contents of a package, and who can
execute services contained in the package. For more information about protecting
packages, see "Controlling Access to Resources with ACLs" on page 435.
You can associate a package with a specic port so that when you replicate the package,
it continues to use a port with the same number on the new server. See "About Ports" on
page 156 for more information about associating a package with a port.
Predefined Packages
The following packages are predened and installed by default on each Integration
Server instance. They are also included in the package repository.
Package
Description
Default
580
Odd Header
Managing Packages
Package
Description
that points the user to an index.dsp le in the WmRoot
package. This index.dsp le loads the Integration Server
Administrator. To prevent a user from inadvertently
accessing the Integration Server Administrator, you
can edit the index.html le in Default/pub and change
it to point to an innocuous page. To prevent a user
from seeing or accessing all DSP les on Integration
Server, you can use the wa.server.displayDirectories
server conguration parameter. See "Stage 7: Seing Up
Security" on page 847 for more information.
WmPublic
WmRoot
WmTomcat
WmART
581
Even Header
Managing Packages
Package
Description
WmVCS
WmXSLT
The packages in the table below provide services that enable you or other webMethods
products to perform certain tasks.
This package...
WmARTExtDC
WmISExtDC
WmTNExtDC
Administering
webMethods Optimize
WmAssetPublisher
webMethods BPM
and CAF Workspace
Metadata Help
WmCloud
Conguring
On-Premise
Integration Servers
for webMethods
Cloud
WmDesigner
Software AG
Designer Online Help
582
Odd Header
Managing Packages
This package...
WmFlatFile
webMethods
Integration Server
Built-In Services
Reference
WmMobileSupport
Developing Data
Synchronization
Solutions with
webMethods Mobile
Support
WmOptimize
Optimize
documentation
WmPRT
Administering
webMethods Process
Engine
WmTaskClient
webMethods Task
Engine Users Guide
WmWin32
"Using NTLM
Authentication
and Integrated
Windows
Authentication with
Integration Server "
on page 981
If you want to streamline Integration Server (for example, because you are using it only
to host adapters), you can disable many of the packages described in above.
Important: Do not disable, delete, or alter the following packages: Default, WmPublic,
WmRoot.
You can disable the following packages:
Package
WmART
Restriction
Do not disable this package unless you are also going
Important:
to disable WmARTExtDC, or WmARTExtDC will not
load.
583
Even Header
Managing Packages
Package
Restriction
WmAssetPublisher
None.
WmARTExtDC
WmISExtDC
WmTNExtDC
WmFlatFile
None.
WmPRT
WmDesigner
WmTaskClient
None.
WmMobileSupport
WmOptimize
None.
WmTomcat
None.
WmVCS
None.
WmXSLT
None.
Sample Package
The WmSamples package contains sample services. You can nd the WmSamples
package in the certied samples area of the Knowledge Base on the Empower Product
Support Website.
584
Odd Header
Managing Packages
The code subdirectory holds the Java and C/C++ services that belong to this
package. Within the code subdirectory are the classes, jars, static, source, and lib
subdirectories:
The classes subdirectory is for Java classes for the Java and C/C++ services.
The jars subdirectory is for Java classes that are packaged together in jar les.
The static subdirectory is also for Java classes that are packaged together in jar
les. Place the jar les in this location when you want to make them available to
other packages in the Integration Server and also to packages in other Integration
Server systems.
When you place jar les in the static subdirectory, then at startup the Integration
Server automatically loads these les to the server classpath. Also, the jar les are
available to other packages even when the immediate package is disabled.
585
Even Header
Managing Packages
Note:
The Integration Server does not automatically create the libs directory
because the directory's existence prevents you from reloading a
package without restarting the server. You cannot reload a package that
uses shared libraries; you must restart the server.
For ease of administration, place services that use shared libraries in the same
package.
The config subdirectory might hold following les:
listeners.cnf. This le contains information about what ports you have dened
for the package and what services you can access through each port. For more
information about conguring ports and allowing access to services through a
port, see "Conguring Ports" on page 155.
urlalias.cnf. This le contains denitions for HTTP URL aliases associated with
services in the package. If there are no aliases, the le does not exist. Do not
manually update a urlalias.cnf le. For more information about HTTP URL
aliases, see "Seing Up HTTP URL Aliases" on page 381.
The ns subdirectory holds ow services, specications, document types, schemas,
triggers, adapter notications, adapter documents, adapter services, adapter
connectors, and code fragments for Java services.
The pub subdirectory holds web documents for the package. For instructions on how
to access the web documents for a package, see "Displaying Documentation for a
Package" on page 594.
The doc subdirectory holds documentation for the package.
The resources subdirectory holds resource bundles <bundle.properties >, such as
application data (not user data), which is kept separate from the Integration Server
application. The following items represent typical resources inside a bundle:
Icons
Window positions
Dialog box denitions
Program text
Menus
You can easily modify and update various aspects of the Integration Server
without reinstalling the entire application. A Japanese language pack for the
webMethods Integration Server Administrators Guide Version 9.10
586
Odd Header
Managing Packages
Manifest File
Each package has a manifest le. It contains:
Indication of whether the package is enabled or disabled. The server does not load disabled
packages at server initialization and you cannot access elements that reside in
disabled packages.
List of startup, shutdown, and replication services, if any, for the package. For more
information about startup, shutdown, and replication services and how to identify
them, see "Running Services When Packages Are Loaded, Unloaded, or Replicated"
on page 638.
Package description. A brief description of the package.
Version information. Package version and build number. Also included is the JVM
version under which the package was published.
Patches applied. A list of patches that have been applied to the package. These are
names or numbers that are meaningful to your installation, possibly obtained from
your problem tracking system.
Package dependencies, if any, for the package. For a specic package, the developer can
identify other packages that the server should load before it loads the elements in
a particular package. In other words, the developer can identify when one package
depends on another. For information, see "Displaying Information about a Package"
on page 592 and webMethods Service Development Help.
Target package name. Name of the package.
Publishing server. The Integration Server that published the package. If the package
has not been published, this eld contains None.
The manifest for a package is in the manifest.v3 le in the top directory for the package.
587
Even Header
Managing Packages
Information
Refer to page:
588
Odd Header
Managing Packages
To display a list of HTTP URL aliases associated with a package, use the Settings > HTTP
URL Aliases screen. For more information about HTTP URL aliases, see "Seing Up HTTP
URL Aliases" on page 381.
The server displays only packages to which you have List access.
Click Show All Packages to disable ltering and restore the default list of all
packages on the server.
Description
Filter criteria
589
Even Header
Managing Packages
Option
Description
the results. Filter criteria can be literals or a combination
of literal and wild-card characters. The * (asterisk) and
? (question mark) are the only supported wild-card
characters. Leaving the lter criteria blank includes all
packages.
The package names in the Filter criteria eld are caseImportant:
sensitive. For example, if you enter wma*, the lter
will ignore any packages beginning with WmA.
Include Enabled
Include Disabled
Include Both
Filter on result
Enable this option when you have already ltered the list
and you want to re-lter the results, rather than the default
list.
4. Click Submit. Only the packages which match the lter options will be displayed.
You can also enable the Exclude from result option to display the packages
that do not match the Filter criteria, rather than the packages that do
match.
3. Enter the new lter criteria and click Submit. Repeat as many times as necessary,
being sure to enable the Filter on result mode each time.
590
Odd Header
Managing Packages
Status
Indicates that...
Yes
Partial
No
When the server is started, it automatically loads into memory all elements that are in
enabled packages. If a package is disabled at startup, the server loads the elements into
memory when the package is enabled. You can manually reload a package if necessary.
For instructions on reloading a package, see "Reloading a Package" on page 597.
Yes
Indicates that...
The package is enabled and clients can access the elements in
the package.
No
Warnings
591
Even Header
Managing Packages
For instructions on enabling and disabling packages, see "Enabling a Package" on page
598 and "Disabling a Package" on page 598.
Package Information
Integration Server maintains the following information about each installed package.
Field
Description
Package Name
Version
Build
Minimum Version
of JVM
Patches Included
592
Odd Header
Managing Packages
Field
Description
installation, possibly obtained from your problem tracking
system.
Description
Publisher
Created on
Elements Loaded
Elements Not
Loaded
Startup Services
Shutdown
Services
Replication
Services
593
Even Header
Managing Packages
Field
Description
Packages on
which this package
depends
List of the packages the server must load before it loads this
package. For more information about package dependencies,
see webMethods Service Development Help.
Packages that
depend on this
package
Subscribers
Load Errors
Load Warnings
Patch History
594
Odd Header
Managing Packages
PackageName
DocName
Refer to page:
Create
"Creating a
Package" on page
596
595
Even Header
Managing Packages
Use this
function:
Refer to page:
Activate
"Activating a
Package" on page
597
Reload
"Reloading a
Package" on page
597
Enable
"Enabling a
Package" on page
598
Disable
"Disabling a
Package" on page
598
Delete
"Deleting a
Package" on page
599
Recover
"Recovering a
Package" on page
599
Archive
"Archiving a
Package" on page
600
Copy
"Archiving a
Package" on page
600
Note:
You can also manage packages by using a set of built-in services. See the
webMethods Integration Server Built-In Services Reference for more information.
Creating a Package
When a developer wants to create a new grouping for services and related les,
the developer creates a package. This creates an empty container into which your
developers can store services and related les. When a developer creates a package, the
server builds the directory structure of the package as described in "How the Server
webMethods Integration Server Administrators Guide Version 9.10
596
Odd Header
Managing Packages
Stores Package Information" on page 585. For instructions on creating a package, see
webMethods Service Development Help.
Activating a Package
There may be times when a package is installed on your server but is not active. When
a package is active, it is ocially recognize by the server and displayed in the Package
List on the Package Management screen. When a package is inactive, it exists in the
Packages directory, but is not ocially recognized by the server.
Possible reasons for a package being inactive are:
You manually installed the package while the server was running.
Another server published the package to your server, but the package requires a
version of the JVM that is higher than the version on your server. A subscribing
server will not activate a package under these circumstances.
The package you installed has dependencies on another package that either does not
exist on your server or is disabled. If the package is disabled, the server installed the
package but did not activate it. You can activate the package when the dependencies
are satised.
The package will not be available until either you restart the server or you activate the
package.
To activate a package
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. Click Activate Inactive Packages.
4. In the Inactive Packages area, select the package you want to activate from the pulldown menu and click Activate Package.
Reloading a Package
If the server is running when a developer changes a Java service or ow service, you
must reload the package in which the service is contained for the changes to take eect.
Reloading the package invokes the VM class loader to reload the package's Java services
and reloads the ow services into memory. Developers can also reload a package from
Designer.
To reload a package
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. Click the reload icon
597
Even Header
Managing Packages
4. The green check mark icon in the Loaded? column indicates whether the server
loaded the package successfully. For more information, see "Determining Whether
the Server Successfully Loaded the Package" on page 590.
Enabling a Package
To allow clients access to the elements in a package, you must ensure the package is
enabled. Before the server can access an element in a package, the package must be
enabled and the element must be loaded. By default, packages are enabled.
When you enable a disabled package, the server loads the elements in the package into
memory.
To enable a package
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. Click No in the Enabled column for the package you want to enable. The server issues
a prompt to verify that you want to enable the package. Click OK to enable the
package. When the package is enabled, the server displays a
icon and Yes in the
Enabled column.
Disabling a Package
When you want to temporarily prohibit access to the elements in a package, disable the
package. When you disable a package, Integration Server unloads all of its elements
from memory. Be aware that if you disable a package while one or more services in the
package are executing, those services will most likely fail. Integration Server does not
wait for in-progress services to nish before disabling a package.
Important: Never disable the WmRoot package. Integration Server uses the services in
this package.
To disable a package
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel click the Management link.
3. Click the green check mark on in the Enabled column for the package you want to
disable. The server issues a prompt to verify that you want to disable the package.
Click OK to disable the package. When the package is disabled, the server displays
No in the Enabled column.
Note:
598
Odd Header
Managing Packages
Deleting a Package
When you no longer need the services and les in a package, you can delete the package.
When you delete a package, all the elements of the package (services, specications,
document types) become unavailable.
When you delete a package, you can optionally select to save a copy
of the package. If you save a copy, the server copies the package to the
Integration Server_directory\instances\instance_name \replicate\salvage directory
before deleting the package from the Integration Server_directory\instances
\instance_name \packages directory. If needed, you can recover the package at a later
time. For instructions on recovering a deleted package, see "Recovering a Package" on
page 599.
Important: Never delete the WmRoot package. The Integration Server uses the services
in this package.
When you delete a package from the command prompt, you have the option of deleting
a single package or a list of packages. For more information about deleting a package
from the command prompt, see "Deleting Packages from a Server Instance" on page 79.
To delete a package
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel click Management.
3. If you want to save a copy of the package so you can recover it later if necessary,
check the
icon in the row that corresponds to the package you want to delete.
4. If you do not want to save a copy, click the
package you want to delete.
5. Click Delete. The server asks you to conrm you want to delete the package. Click
OK.
Recovering a Package
If you deleted a package from a server instance using the Safe delete option and you need
the package again, you can recover the package.
Note:
If you did not use the Safe delete option, it is still possible to restore the
package from the webMethods Integration Server package repository. If the
package exists in the repository, you can perform a package update from the
command prompt. For instructions on updating packages from the command
prompt, see "Installing and Updating Packages on a Server Instance" on page
78.
599
Even Header
Managing Packages
Archiving a Package
There may be times when you want to make a copy of a package without making it
generally available. For example, you might want to back it up or send it to someone
with whom you do not have a publisher/subscriber relationship.
Note:
To archive a package
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. Locate the package you want to archive in the Package List, and click the
icon.
The server displays a screen from which you specify the les you want to archive,
the type of archive (full or patch), and version information. See "Specifying File and
Version Information for a Release or Archive" on page 613 for instructions on
specifying this information.
Note:
You can also archive a package automatically after installing the package.
For more information, see "About Installing Packages Published by
Another Server" on page 624.
600
Odd Header
Managing Packages
new and updated packages across all servers in the cluster. It is also a convenient way to
distribute a package from one server to another anywhere on the web.
Note:
Using Software AG Designer, you can copy a package and its contents to
another Integration Server by performing a copy or a drag-and-drop action.
Copying packages using Designer provides a quick way to test a set of
services and their supporting les, for example, in a remote environment. This
method is useful in single development environments where change control
is not crucial. In a production environment, however, using the package
replication function is recommended.
Note:
601
Even Header
Managing Packages
602
Odd Header
Managing Packages
The following diagram illustrates the results if you selected a single service for
replication and specied a full release instead.
603
Even Header
Managing Packages
Most often you will select all les and specify a full release, or select some les and
specify a patch release. There might be times however when you want to select just some
les and specify a full release. For example, there might be les in a package, such as
internal documentation les, that a developer does not want released to others. Selecting
all les except the extraneous ones and specifying a full release results in a package that
contains just the desired les.
There might be other times when you want to replace some les, leave others intact, and
delete others. To achieve this greater level of control, you can perform a patch release
and specify les to copy and les to delete. Files that you do not specify for copying
or deletion remain intact. In the following example, we want to leave Service A intact,
replace Service B, and delete Service C from the target package.
The following shows what you must specify on the Specify Files for the Release screen to
accomplish this task:
604
Odd Header
Managing Packages
The Integration Server keeps track of package versions, Integration Server versions, and
JVM versions so that during package installation the subscribing server can make sure
the package being installed is compatible with the subscribing server's environment. The
type of version checking performed depends on whether the release is a full or patch
release.
Note:
If patch releases have been applied to a package, the developer can see the
patch history when viewing the package from Designer. However, when the
publisher publishes a full release of the package, the patch history is removed.
Version Checking
When the administrator on the subscribing server installs the package, the subscribing
server performs some version checking:
605
Even Header
Managing Packages
Package Version
606
Odd Header
Managing Packages
ACLs. The userid the publisher uses to log on to the subscriber must be a member of
a group that is assigned to the Replicators ACL or higher on the subscriber.
SSL.You can specify that the servers involved in package replication connect to each
other using SSL.
The publisher maintains a list of subscribing servers for each package.
Subscriptions can be added by the publisher or the subscriber:
Publisher. The administrator of a publishing server can use the publisher functions to
add (or remove) subscribers to any package that originates on the publishing server
(i.e., one to which you do not subscribe).
Subscriber. The administrator of a remote Integration Server (the subscriber) can
submit a subscription request to the publisher. When the publisher receives this
request, it automatically adds that server to the subscription list for the requested
package as long as authentication was successful. Subscribers can also issue
cancellation requests (i.e., cancel their subscriptions) for packages to which they
subscribe.
607
Even Header
Managing Packages
Refer to page:
Publishing a package to
subscribing servers
608
Odd Header
Managing Packages
To add a subscriber
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Publishing.
3. Click Add Subscribers.
4. Select the package for which you want to identify subscribers from the drop down
list in the Package eld.
5. To identify a subscribing server, enter information in the following elds:
Field
Description
Host Name
Host Port
Transport
609
Even Header
Managing Packages
Field
Description
Note: If you want the publisher to use SSL when sending the
package to the subscriber, you must specify HTTPS
here.
When the publisher connects to the subscriber, the
publisher uses the server's default Outbound SSL Certificates
as specied on the publisher's Security > Certificates screen.
Remote Password
Notification E-mail
6. Click Add Subscriber. The server adds the subscriber to the list in the Subscribers eld.
Repeat this step for each server you want to identify as a subscriber to the package.
Description
Packages
610
Odd Header
Managing Packages
Field
Description
Host Name
Host Port
Transport
Remote Password
Notification Email
6. Click Submit Changes. The server adds the subscriber to the list in the Subscribers
eld. The server updates the information on both the subscribing and publishing
servers.
611
Even Header
Managing Packages
publisher is notied of the removal and then deletes the subscription from the
publisher's list.
To remove subscribers
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of in the Navigation panel, click Publishing.
3. Click Remove Subscribers.
4. Locate the package for which you want to remove subscribers and check the box in
the Delete eld.
Note:
Publishing a Package
Publishing a package to other Integration Servers involves two tasks:
Creating a release. To publish a package, your server creates a distribution le that
contains the information for the package.
When you create the distribution le, you select what information to include in the
le.
You can select all les to send, or just some. In addition, you can request a full release
or a patch release. With a full release, the new package entirely replaces the old
package on the subscriber's server. With a patch release, the les in the patch release
replace the versions of those les in the target package; all other les in the target
package remain intact. See "Overview of Package Replication" on page 601 for
more information about how full and patch releases dier.
After you indicate the les to include in the release, the server places all the
selected les into a single, compressed le (a zip le). It places the zip le in the
Integration Server_directory\instances\instance_name \replicate\outbound directory.
If the outbound directory already contains a zip le for this package, the server
overwrites the existing le.
Sending the release. After you create the release, you can send it to the subscribing
servers.
A subscribing server receives the zip le containing the release in its inbound
directory (Integration Server_directory\instances\instance_name \replicate\inbound).
If a zip le for the package already exists in a subscribing server's inbound directory,
the server overwrites it. The zip le remains in the inbound directory on the
subscribing server until the administrator of that server installs the package.
612
Odd Header
Managing Packages
A developer can set up the package to execute a service when you create the release.
When you begin to create the release, this service executes before the list of les
to be zipped is displayed. You can use this service to write state and conguration
information for the package to a le. This le will be included with the other zipped
les included in the release. For instructions on seing up replication services, see
webMethods Service Development Help.
Important: Before you can publish a package, you must specify the subscribers. For
instructions, refer to "Adding Subscribers from a Publishing Server" on page
609.
Creating a Release
Use the following procedure to create a release for a package.
To create a release
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Publishing.
3. Click Create and Delete Releases.
4. Locate the package for which you want to create a release, and click Create Release for
PackageName.
5. The server displays a screen from which you specify the les you want to include
in the release, the type of release (full or patch), and version information. See
"Specifying File and Version Information for a Release or Archive" on page 613 for
instructions on specifying this information.
Sending a Release
Use the following procedure to send a package release.
To send the release
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel click Publishing.
3. Locate the release of the package you want to send under Available Releases, and click
Send Release.
613
Even Header
Managing Packages
Do this:
All les
In the Files available inpackage section, select the les you want
to include in the archive or release.
In the Files to include section, select Selected files.
If the developer added package dependencies or startup,
shutdown, or replication services to the package since the
last archive or release was created, be sure to include the
manifest.v3 le. Otherwise these services will not be available
in the resultant package. See "Running Services When
Packages Are Loaded, Unloaded, or Replicated" on page
638 for more information about startup, shutdown, and
replication services.
614
Odd Header
Managing Packages
Do this:
To include all les except those with a similar name, in the
Files to include section, click All except files specified bylter and
enter a valid lter, for example *.bak.
If the developer added package dependencies or startup,
shutdown, or replication services to the package since the
last archive or release was created, be sure to include the
manifest.v3 le. Otherwise these services will not be available
in the resultant package. See "Running Services When
Packages Are Loaded, Unloaded, or Replicated" on page
638 for more information about startup, shutdown, and
replication services.
You can specify the following special character to perform
paern matching.
Char
Description
Example
Matches any
number of
characters
*.java
2. Identify les you want to delete from the target package by entering one le name
per line. Separate each entry with a semicolon (;). When the subscribing server
installs the package, these les will be deleted from the target package.
3. Specify package version information and description:
Field
Description
Archive/Release Type
615
Even Header
Managing Packages
Field
Description
page 638 for more information about startup, shutdown,
and replication services.
Archive/Release Name
Brief Description
Version
Build Number
Patches Included
What It Means:
webMethods
Integration Server
Minimum Version of
JVM
616
Odd Header
Managing Packages
Field
What It Means:
For more information about the version checking performed
by the subscribing server, see "Version Checking" on page
605.
Refer to page:
617
Even Header
Managing Packages
Task:
Refer to page:
What It Means:
618
Odd Header
Managing Packages
Field
What It Means:
When you select FTP, the server prompts you for
information required to use FTP:
Release Name: Name assigned to the release, for example Beta
Release of WmExample Package.
Remote Server Alias:Name of the machine on which the
publishing server resides.
Remote Server FTP Port: FTP port on the publishing server
through which the publisher will send the package.
Remote User Name:User that the subscriber uses to log into the
publishing server.
Remote Password:Password of the user that the subscribing
server uses to log into the subscribing server.
5. Install the package. For instructions, see "About Installing Packages Published by
Another Server" on page 624.
619
Even Header
Managing Packages
Note:
The publishing server must be running at the time you add the subscription
Description
Publisher Alias
Local Port
Local Password
Notification Email
Automatic Pull
620
Odd Header
Managing Packages
Field
Description
The subscribing server, through an e-mail port, periodically
checks this e-mail address for a service-invocation e-mail. When
the subscribing server processes the e-mail, it pulls the package.
The service invocation e-mail contains a call to a service that
runs on the subscribing server and loads the package to the
subscribing server's Inbound directory.
For automatic pull to work, you must set up an e-mail port to
listen at the automatic pull address (described below).
For information about seing up an e-mail port, see "Adding an
E-Mail Port" on page 189.
Automatic Pull
Email
621
Even Header
Managing Packages
Description
Package
Publisher Alias
Local Port
Local Password
Notification E-mail
622
Odd Header
Managing Packages
Field
Description
Automatic Pull
Note:
The publishing server must be running at the time you add the
subscription.
623
Even Header
Managing Packages
Canceling a Subscription
When you cancel a subscription, the server sends your cancellation notice to the
publishing server. The publishing server removes your server from the subscription
list for the specied package. If the publisher is not running when you cancel your
subscription, the next time the publisher tries to send the package to your server, the
publisher is informed of the cancellation and automatically deletes the subscription from
its list of subscribers.
Note:
624
Odd Header
Managing Packages
If you do not want to archive a package automatically after installation, you can
archive it later. For more information, see "Archiving a Package" on page 600.
Installing a Package Published by Another Server
When installing a package published by another server, keep the following points in
mind:
A package coming from the publisher already has a List ACL associated with it,
specically, the List ACL that was assigned to the package on the publishing server.
The installing user does not need to be a member of that ACL to install the package;
however, users on the subscribing server must be members of the package's List
ACL in order to display the package on Integration Server Administrator screens.
Important: Be sure the server where you are installing the package has an ACL
with the same name as package's List ACL. If the List ACL does not
exist, no users will be able to display the package on Integration Server
Administrator screens.
If the package you are installing has dependencies on another package that does not
exist on your server, the server will install the package but will not enable it. You will
not be able to enable the installed package until the dependencies are satised.
If the package you are installing is associated with an e-mail listener, the server will
install the package but will not enable the listener. This is because the password
required for the Integration Server to connect to the e-mail server was not sent with
other conguration information about the listener. To enable the listener, go to the
Security > Ports > Edit E-mail Client Configuration Screen and update the Password eld to
specify the password needed to connect to the e-mail server.
When you install a package from another Integration Server, it is possible that an
HTTP URL alias associated with the new package has the same name as an HTTP
URL alias already dened on your Integration Server. If Integration Server detects
a duplicate alias name, it will display load warnings on the Packages > Management >
package_name screen. For more information about duplicate HTTP URL aliases, refer
to "Portability of URL Aliases and Possible Conicts" on page 391.
When you install a package from another Integration Server, it is possible that a port
alias for a port in the new package has the same alias as a port already dened on
your Integration Server. A port alias must be unique across the Integration Server. If
Integration Server detects a duplicate port alias, it will display load warnings on the
Packages > Management > package_name screen. Additionally, Integration Server will
not create the port and will write the following warning to the server.log:
[ISS.0070.0030W] Duplicate alias duplicateAlias encountered creating protocol listener
on port portNumber
Note:
If you want the port to be created when the package is loaded delete the
existing port with that alias, create a new port that has the same properties
as the just deleted port, and then reload the package containing the port
625
Even Header
Managing Packages
with the duplicate alias. Integration Server creates the port when the
package is reloaded.
When you install a package released from a version of Integration Server prior to
version 9.5, Integration Server creates an alias for each port associated with the
package. For more information about the port alias created by Integration Server, see
"About the Port Alias" on page 158.
Important: Make sure that packages you install come from a legitimate source, such
as a replication from another server. If you are not sure, check with the
developers in your organization to verify that an authorized person updated
the package. Unknown packages might contain code that could damage
your server.
To install a package that was published from another server
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. Click Install Inbound Releases.
4. Select the package you want to install from the Release file name drop down list.
5. If you want Integration Server to make the package available immediately following
installation, select the Activate upon installation check box in the Option eld.
6. If you want Integration Server to archive the package automatically after installation,
select the Archive upon installation check box. This check box is selected by default.
7. Click Install Release.
Integration Server installs the package and displays a message to that eect.
626
Odd Header
Managing Packages
627
Even Header
Managing Packages
complete before unloading the existing package information from memory. At the same
time, when the hot deployment of packages starts, Integration Server blocks access to the
assets that belong to or have dependency on the packages that are being deployed.
Integration Server ensures that there are no failures in the processing of assets by taking
the following steps:
Wait for all in-ight tasks that are dependent on the packages being deployed to
complete. You can specify the period of time for which Integration Server must
wait for the in-ight tasks to complete before aempting to deploy packages. If the
tasks are not done within the specied timeout period, the hot deployment fails.
Integration Server also provides the option to recover the original packages in case
hot deployment fails, thus ensuring there is no downtime.
Block the execution of assets that belong to or have dependency on the packages that
are being deployed. That is, if a service that is being invoked belongs to a package
that is geing deployed, Integration Server will block the service invocation till
the package is upgraded. When determining the assets that have dependency,
Integration Server will consider only those assets for which you have explicitly
specied the package dependencies.
628
Odd Header
Managing Packages
the hot deployment timeout value to a value more than the time taken for the task to
complete.
All ports are associated with packages. During hot deployment, when Integration
Server unloads the existing package information from memory, the ports that are
associated with these packages are disabled. These ports will be enabled when the
packages are activated successfully. Therefore, if you are hot deploying a package
that has a port associated with it, access to services using those ports will be aected
while the package is reloaded and activated.
629
Even Header
Managing Packages
630
Odd Header
Managing Services
28 Managing Services
About Services ...........................................................................................................................
632
632
634
636
636
637
638
640
640
631
Even Header
Managing Services
About Services
A service is a server-resident unit of functionality that clients can invoke. A service
might be an entire application or used as part of a larger application. There are several
types of services: ow services (including web service connectors), adapter services, Java
services, and C/C++ services.
You can create all ow services using Software AG Designer. You can create database
ow services from the Integration Server Administrator as well. You can also use
Designer to create adapter services, Java services, or use your own development
environment to create Java and C/C++ services. For more information about the types of
services and how to create them, see webMethods Service Development Help.
You can designate one or more services in a package as a startup, shutdown, or
replication service. A startup service is a service that the server automatically executes
when a package is loaded. A shutdown service is a service that the server automatically
executes when a package is unloaded. A replication service is a service that the server
automatically executes when a package is replicated.
To improve the performance of services, you can have the server cache the service
results. Then, when the server receives subsequent requests for the service, it returns
the cached results rather than executing the service. For more information, see "Caching
Service Results" on page 665.
You can use the scheduling function of Integration Server to schedule services to execute
at times you specify. For more information on scheduling services, see "Scheduling
Services" on page 643.
632
Odd Header
Managing Services
For example, if the "StockQuote" service is in the "Finance" folder, the fully qualied
service name is:
Finance:StockQuote
If the folder portion identies more than one folder, separate each folder name with a
period.
folder .subfolder1 .subfolder2 :service
For example, if the "HomeLoan" service is in the "Personal" folder, which is contained in
the "Finance" folder, the fully qualied service name is:
Finance.Personal:HomeLoan
The fully qualied name of each service must be unique within the server. In addition, the
fully qualied name of a service cannot be the same as the fully qualied name of any
specication or document type that resides on the server.
Note:
633
Even Header
Managing Services
The server will only display folders and elements to which you have List
access.
634
Odd Header
Managing Services
Service Information
Integration Server Administrator displays the following information for a service.
Section
Description
General Info
Identies
The folder in which the service is contained and the service
name.
The name of the package with which the service is
associated.
The type of service: Flow, Java, or C/C++.
Whether or not the service is stateless.
Universal Name
Java-Specific
Parameters
For a Java service, identies the Java class name and method
name for the service.
Access Control
Cache Control
Data Formatting
635
Even Header
Managing Services
Section
Description
or XML). For information about output templates, refer to the
Dynamic Server Pages and Output Templates Developer's Guide.
Testing Services
You can use Integration Server Administrator to test the operation of a service. This
allows you to quickly and easily verify the operation of a service and test it with specialcase input values.
Note:
To test a service
1. Open the Integration Server Administrator if it is not already open.
2. From the Packages menu in the Navigation panel, click Management.
3. From the Package List, click the package whose service you want to test.
4. Click Browse Services in packagename.
5. Click on the name of the service you want to test.
6. To test the service, click Test servicename.
The server displays the Test ServiceName screen.
7. If you want to test the service with input values, ll in the required input
information in the Assign Input Values section of the screen and click Test with inputs.
If you want to test the service without specifying input values, click Test (without
inputs).
636
Odd Header
Managing Services
637
Even Header
Managing Services
in
638
Odd Header
Managing Services
To identify these services you must use Designer. For instructions, see webMethods
Service Development Help.
639
Even Header
Managing Services
640
Odd Header
Managing Services
641
Even Header
Managing Services
Specify...
Is Password?
Key
A name for the global variable. Integration Server uses this key
to refer to the global variable while performing global variable
substitution.
Value
642
Odd Header
Scheduling Services
29 Scheduling Services
Overview .....................................................................................................................................
644
644
649
651
651
652
654
654
654
656
660
How Transitioning to or from Daylight Savings Time Affects Scheduled Tasks .........................
662
643
Even Header
Scheduling Services
Overview
Use the server's scheduling function to schedule services to execute at times you specify.
Services that you schedule are referred to as user tasks. You can:
Create user tasks that Integration Server executes:
A single time
Repeatedly at a simple interval, for example hourly every day
Repeatedly at a complex interval, for example every other Tuesday in June
View a list of scheduled tasks.
Update scheduling options for existing user tasks.
Cancel a scheduled user task before Integration Server completes all scheduled
executions.
Temporarily suspend a task's execution.
Create user tasks that run on one, any, or all Integration Servers connected to the
same database.
Specify an action Integration Server is to take if a task has missed its scheduled
execution time.
Note:
644
Odd Header
Scheduling Services
Specify...
Description
folder.subfolder:service
Run As User
Target Node
645
Even Header
Scheduling Services
Specify...
For clustered servers only. Select All servers if the
task needs to run on all Integration Servers in the
cluster.
Select the name from the list of Integration Servers
connected to the database if the task needs to run on
only a specic server.
The default is the current Integration Server.
For more information about the Target Node options,
see "Target Node Options" on page 660.
Run
immediately
Run the task immediately, no maer how late the task is.
Skip this execution of the task, and run it again at the next
scheduled run time. This option is not available for tasks that
run just once.
Suspend
Integration Server periodically checks the status of scheduled tasks. If it nds a task
that should have started but has not, Integration Server runs the task immediately,
unless you have specied a special action to take for late tasks. Integration Server
performs this "late action" if the task has missed its scheduled start time by a number
of minutes you specify in the if more than xxx minutes late eld.
Note:
The maximum number of minutes that the if more than xxx minutes late eld
can accept is 35000.
For tasks that are late but do not exceed the specied period, Integration Server runs
the task immediately.
6. Select Run Once, Repeating, or Complex Repeating to indicate when and how often you
want Integration Server to execute the service.
Select...
To...
Run Once
646
Odd Header
Scheduling Services
Select...
To...
Date. The date on which you want Integration Server
to execute the service.
Enter the date using the format YYYY/MM/DD. For
example, if you want the server to execute the service
on March 11, 2010, specify 2010/03/11.
Time. The time at which you want Integration Server
to execute the service.
Enter the time using the format HH:MM:SS (using a
24-hour clock). For example, if you want Integration
Server to execute the service at 1:00:00 a.m., specify
1:00:00; if you want Integration Server to execute the
service at 1:00:00 p.m., specify 13:00:00.
Repeating
647
Even Header
Scheduling Services
Select...
To...
Repeat after completion. Whether to wait for the
previous execution of the service to complete before
starting the next.
For example, suppose the GetData service is
scheduled to run every minute, but sometimes takes
longer than that to complete. By default, Integration
Server will start the next execution even though the
previous one has not yet completed.
If you check the Repeat after completion box, Integration
Server will wait for the service to complete before
running the next execution of the service. Executions
that could not run while the service was executing are
delayed.
For more information about using the Repeating
option, see "Simple Repeating Option" on page 654.
Complex Repeating
648
Odd Header
Scheduling Services
Select...
To...
indenite period of time. If you omit End Time, the
server uses the current time.
Run Mask. Specic months, dates (1-31), days of the
week (Sunday-Monday), hours, minutes, and seconds
when you want a task to run. You can select one or
more items from each category. To select multiple
items, press the Ctrl key while making your selections.
If you do not select any items from a category,
Integration Server assumes all items for the selection.
Repeat after completion. Whether to wait for the
previous execution of a service to complete before
starting the next.
For example, suppose the GetData service is
scheduled to run every minute, but sometimes takes
longer than that to complete. By default, Integration
Server will start the next execution even though the
previous one has not yet completed.
If you check the Repeat after completion box, the server
will wait for the service to complete before running
the next execution of the service. Executions that could
not run while the service was running are delayed.
For more information about using the Complex
Repeating options see "Complex Repeating Option" on
page 656.
Note:
Integration Server does not skip or repeat the scheduled tasks because of
transitions to and from Daylight Saving Time. For more information about
how Integration Server handles transitioning to and from Daylight Saving
Time, see "How Transitioning to or from Daylight Savings Time Aects
Scheduled Tasks" on page 662.
649
Even Header
Scheduling Services
When Filter Services is enabled, any changes to the Integration Server (such
as new tasks, etc.) will not be reected in the list of scheduled tasks. When
you click Show All Services and return to normal mode, the list will be
updated.
Description
Service Name
Status Is Active
650
Odd Header
Scheduling Services
Option
Description
If your Integration Server is part of a cluster and you are updating the
characteristics of a task that has been scheduled to run on all Integration
Servers in the cluster, you must make the changes to the parent task. For more
information about scheduled tasks that run on all servers in a cluster, see
"Target Node Options" on page 660.
If your Integration Server is part of a cluster and you are suspending a task
that has been scheduled to run on all Integration Servers in the cluster, you
can suspend the child tasks individually or you can suspend all the tasks at
once by suspending the parent task. For more information about scheduled
651
Even Header
Scheduling Services
tasks that run on all servers in a cluster, see "Target Node Options" on page
660.
To suspend a scheduled user task
1. Open the Integration Server Administrator if it is not already open.
2. In the Server menu of the Navigation panel, click Scheduler.
3. Locate the task in the Services list, and click the
icon in the Status column to
suspend the task. The server displays a screen to conrm you want to suspend the
task. Click OK. The server replaces the
icon with Suspended to indicate that the
task is now suspended.
If your Integration Server is part of a cluster and you are resuming a task that
has been scheduled to run on all Integration Servers in the cluster, you can
652
Odd Header
Scheduling Services
resume the child tasks individually or you can resume all the tasks at once by
resuming the parent task. For more information about scheduled tasks that
run on all servers in a cluster, see "Target Node Options" on page 660.
To resume execution of a suspended user task
1. Open the Integration Server Administrator if it is not already open.
2. In the Server menu of the Navigation panel, click Scheduler.
3. Locate the task in the Services list, and click Suspended in the Active column to
activate the task. The server displays a screen to conrm you want to resume the
task. Click OK.
The server replaces Suspended with the Active
available to execute again.
653
Even Header
Scheduling Services
If your server is part of a cluster and you are canceling a task that has been
scheduled to run on all servers in the cluster, you can cancel the child tasks
individually or you can cancel all the tasks at once by canceling the parent
task. For more information about scheduled tasks that run on all servers in a
cluster, see "Target Node Options" on page 660.
The View System Tasks screen shows the tasks for local server only; if you
are running a group of servers connected to the same database, you will
not see the system tasks for other servers connected to the database.
654
Odd Header
Scheduling Services
Setting
Indicates...
Start Date
The date on which you want the server to execute the service
for the rst time. Use the format YYYY/MM/DD to specify
the date. If you leave this eld blank, the server starts the task
on the current day
Start Time
The time at which you want the server to begin executing the
service. Use the format HH:MM:SS to specify the time (using
a 24-hour clock). If you leave this eld blank, the server starts
the task immediately.
End Date
The date on which you want the server to execute the service
for the last time. Use the format YYYY/MM/DD to specify
the date. If you leave this eld blank, the server executes the
service for an indenite period of time or until you cancel the
scheduled user task.
End Time
The time on the last date at which you want the server to
execute the service. Use the format HH:MM:SS to specify the
time (using a 24-hour clock). If you leave this eld blank, the
server uses the current time.
Repeating/ Repeat
after Completion
Interval
The following example shows how to use the Simple Repeating option seings:
If you want the service to execute...
Specify...
Start Date
2010/07/01
655
Even Header
Scheduling Services
Specify...
Start Time
00:00:00
End Date
2010/07/01
End Time
00:00:00
Interval
3600
Indicates...
Start Date
The date on which you want the server to execute the service
for the rst time. Use the format YYYY/MM/DD to specify
the date. If you leave this eld blank, the server executes the
task at the rst date specied by the remaining seings.
Start Time
The time at which you want the server to begin executing the
service. Use the format HH:MM:SS to specify the time (using
a 24-hour clock). If you leave this eld blank, the server uses
the current time.
End Date
The date on which you want the server to execute the service
for the last time. Use the format YYYY/MM/DD to specify
the date. If you leave this eld blank, the server executes the
service for an indenite period of time or until you cancel the
scheduled user task.
End Time
The time on the last date at which you want the server to
execute the service. Use the format HH:MM:SS to specify the
time (using a 24-hour clock). If you leave this eld blank, the
server uses the current time.
656
Odd Header
Scheduling Services
Setting
Indicates...
Repeating/ Repeat
after Completion
Run Mask
Integration Server combines all your selections to determine when to execute the service.
The following shows examples of how to use the Complex option seings:
657
Even Header
Scheduling Services
Specify...
Start Date
2010/01/01
Start Time
00:00:00
End Date
2010/12/31
End Time
00:00:00
Months
no selection
Month Days
28
Week Days
no selection
Hours
Minutes
Start Date
leave blank
Start Time
leave blank
End Date
leave blank
End Time
leave blank
Months
January, February,
March
Month Days
no selection
Week Days
Monday
Hours
14
658
Odd Header
Scheduling Services
Specify...
Minutes
30
Start Date
2010/06/01
Start Time
End Date
2010/06/30
End Time
Months
June
Month Days
no selection
Week Days
Tuesday
Hours
no selection
Minutes
Start Date
2010/06/01
Start Time
End Date
2010/06/30
End Time
Months
June
Month Days
no selection
Week Days
Tuesday
Hours
no selection
Minutes
no selection
659
Even Header
Scheduling Services
Indicates...
<specic_server >
Any server
All servers
660
Odd Header
Scheduling Services
Setting
Indicates...
Clustered Environment" on page 661 below for more
information about these tasks.
661
Even Header
Scheduling Services
Note:
When using the Scheduler in a cluster of Integration Servers, you can ensure
that repeating and complex tasks run at the desired times by synchronizing
the system clocks of all the servers.
662
Odd Header
Scheduling Services
That is, if a task is scheduled to run every hour, Integration Server will execute the
task at hourly intervals regardless of the system clock time.
663
Even Header
664
Odd Header
Caching Service Results
666
666
668
669
Changing the Service Results Cache to Return a Value Instead of a Reference ......................
669
665
Even Header
Caching Service Results
What Is Caching?
Caching is an optimization feature that can improve the performance of services.
You indicate the services for which you want to use caching from Software AG Designer.
When you enable caching for a service, Integration Server saves the entire contents of the
pipeline after invoking the service in a local cache for the period of time that you specify.
The pipeline includes the output elds explicitly dened in the cached service, as well
as any output elds produced by earlier services in the ow. When Integration Server
receives subsequent requests for a service with the same set of input values, Integration
Server returns the cached result to the client instead of invoking the service again.
Caching can signicantly improve response time of services. For example, services
that retrieve information from busy data sources such as high-trac commercial web
servers could benet from caching. Integration Server can cache the results for all types
of services: ows, Java services, and C/C++ services.
The goal for caching is to strike the right balance between data concurrency and memory
usage. To gauge the eectiveness of your cache, you can monitor its performance by
viewing service statistics from the Integration Server Administrator and adjust your
caching values accordingly.
You set the controls for caching a service from Designer. For more information on
conguring a service's use of cache, see webMethods Service Development Help.
If a cached entry with input parameter values that are identical to the current
invocation does not exist in the cache, Integration Server executes the service
and stores the results in the cache.
666
Odd Header
Caching Service Results
When a cached service does not have input parameters (for example, a date/time service)
and previous results do not exist in the cache, at run time Integration Server executes the
service and stores the results. When the service executes again, Integration Server uses
the cached copy. In other words, Integration Server does not use the run-time pipeline
for the current service invocation; you will always receive cached results until the cache
expires.
Note:
667
Even Header
Caching Service Results
such time as the cached results expire. You can reset the cache from Designer
or Integration Server Administrator. For more information about reseing
service cache from Integration Server Administrator, see "Reseing the
Cache" on page 668.
Integration Server resets the cache for a service automatically whenever any
edits are made to the service. However, if the input signature includes a
document reference variable and the referenced document type changes, you
must reset the service cache. If you do not reset it, Integration Server uses the
old cached input parameters at run time until such time as the cached results
expire.
668
Odd Header
Caching Service Results
Select the Show running services on top check box to display all the currently
running services in the Integration Server together at the top of the screen.
Currently running services are identied by a number in brackets at the
right of the service name. The number identies how many instances of
the service, if any, are currently running.
669
Even Header
Caching Service Results
copyOnRead=true
For example:
<cache
name="ServiceResults"
eternal="true"
maxEntriesLocalHeap="1000"
maxEntriesLocalDisk="1000"
copyOnWrite=true
copyOnRead=true
cacheLoaderTimeoutMillis="30000">
<persistence strategy="none"/> </cache>
670
Odd Header
Configuring Guaranteed Delivery
672
673
677
671
Even Header
Configuring Guaranteed Delivery
Note:
The guaranteed delivery capabilities allow you to build robust, transaction-based client
applications without having to embed complex error handling code to respond to
transient failures.
Important: Use the guaranteed delivery capabilities with stateless (i.e., atomic)
transactions because state information cannot be maintained from one
672
Odd Header
Configuring Guaranteed Delivery
673
Even Header
Configuring Guaranteed Delivery
watt.tx.vm.id
Use the wa.tx.vm.id seing to specify an Integration Server ID. Use this parameter
when multiple Integration Servers are running on the same host machine and they all
use guaranteed delivery. By specifying a unique ID for each Integration Server, you
prevent the creation of duplicate guaranteed delivery transaction IDs. The value must be
an integer from 0 through 2147483647.
The default is 0.
wa.server.tx.sweepTime
wa.server.tx.heuristicFailRetry
watt.server.tx.sweepTime
Use the wa.server.tx.sweepTime seing to specify the number of seconds between
sweeps (clean up) of the job store of inbound transactions. The server sweeps the job
store to remove expired transactions.
The default is: 60 seconds
watt.server.tx.heuristicFailRetry
Use the wa.server.tx.heuristicFailRetry seing to indicate whether the server is to reexecute services for transactions in the job store that are PENDING when the server
is restarted after a failure. If a transaction is PENDING, the service began but did not
complete execution when the server failed.
Because the server cannot determine the exact status of a service request, the server
considers the guaranteed transaction to have encountered a heuristic failure. You
can congure the server to respond to heuristic failures as appropriate. The default
wa.tx.heuristicFailRetry seing causes the server to execute a service at least one time
at the risk of re-executing it a subsequent time after a heuristic failure. Alternatively, you
674
Odd Header
Configuring Guaranteed Delivery
can recongure the seing to guarantee that a service is executed at most one time at the
risk of not executing a service due to a heuristic failure.
If the wa.tx.heuristicFailRetry seing is true, the server resets the transaction status
from PENDING to NEW, and the server will retry the service. When the seing is true,
a request to execute a service can only fail if the transaction expires before the server
executes the service. (The client species the seings that indicate when a transaction
expires.)
If the wa.tx.heuristicFailRetry seing is false, the server resets the transaction status
from PENDING to FAIL to indicate the heuristic failure; the server does not retry the
service. When the seing is false, a request to execute a service can fail due to a heuristic
failure or due to the transaction expiring.
The default is: true
wa.tx.disabled
wa.tx.defaultTTLMins
wa.tx.retryBacko
wa.tx.sweepTime
675
Even Header
Configuring Guaranteed Delivery
wa.tx.jobThreads
watt.tx.disabled
Use the wa.tx.disabled seing to specify that you want to disable the use of guaranteed
delivery for outbound requests. By default, the server allows the use of guaranteed
delivery for outbound transactions. The default is "false." If an unexpected exceptional
conditional is encountered, guaranteed delivery may be disabled by the server. In this
case, the wa.tx.disabled property will be set to "true".
The default is: false.
watt.tx.defaultTTLMins
Use the wa.tx.defaultTTLMins seing to specify the default time-to-live (TTL) value for
outbound guaranteed delivery transactions. Specify the number of minutes you want
the server to maintain outbound transactions in the job store when a service initiating an
outbound transaction does not specify a TTL value.
The default is: 30.
watt.tx.retryBackoff
Use the wa.tx.retryBacko seing to specify the number of seconds to wait after a
service request failure before the Job Manager resubmits the request to execute the
service to the Integration Server.
The default is: 60.
watt.tx.sweepTime
Use the wa.tx.sweepTime seing to specify the number of seconds between sweeps
of the job store of outbound transactions. The server sweeps the job store to identify
transactions that it needs to submit.
The default is: 60.
watt.tx.jobThreads
Use the wa.tx.jobThreads seing to specify the number of client threads you want to
make available in a thread pool to service pending requests.
The default is: 5.
676
Odd Header
Configuring Guaranteed Delivery
677
Even Header
Configuring Guaranteed Delivery
678
Odd Header
Configuring Guaranteed Delivery
inaccessible), use this procedure to reinitialize guaranteed delivery after you correct the
problem.
To reinitialize guaranteed delivery for outbound transactions
1. Open the Integration Server Administrator if it is not already open.
2. In the Packages menu of the Navigation panel, click Management.
3. In the list of packages, click WmPublic.
4. Click Browse Services in WmPublic.
5. In the list of services, click pub.tx:resetOutbound.
6. Click Test resetOutbound. The server displays the test screen for the service.
7. Click Test (without inputs). The server reinitializes the guaranteed delivery capabilities
for outbound transactions.
679
Even Header
680
Odd Header
Configuring Ehcache on Integration Server
682
682
687
688
690
691
693
696
705
708
715
729
681
Even Header
Configuring Ehcache on Integration Server
What is Ehcache?
Ehcache is a standards-based caching API that is used by Integration Server. Caching
enables an application to fetch frequently used data from memory (or other nearby
resource) rather than having to retrieve it from a database or other back-end system each
time the data is needed.
Ehcache is designed to support multiple deployment congurations, including those
that enable you to create very large in-memory caches and share caches across multiple
Integration Servers.
Integration Server, and Software AG components that run on Integration Server,
use Ehcache to cache data associated with many of their own internal operations.
Additionally, Integration Server provides a set of public services (in the pub.cache folder
in the WmPublic package) that developers can use to add caching capabilities to the
solutions that they build. For example, a service that frequently reads data from a sales
catalog might cache all or part of that catalog to avoid having to query the database each
time it needs information about a catalog item. Because accessing data from memory
is as much as 1,000 times faster than retrieving it from a database, developers can
dramatically improve the performance of a service by caching the data that it uses.
This chapter provides a broad overview of the caching capabilities provided by
Ehcache. For a more detailed explanation of these features, see the Ehcache product
documentation for 2.8 at hp://ehcache.org/documentation.
Caching Configurations
A cache on Integration Server occupies a portion of the heap in the Java Virtual Machine
(JVM). This portion of a cache is referred to as on-heap cache. You can optionally extend a
cache beyond the heap to the following locations, commonly referred to as tiers:
Local Disk Storage
BigMemory (Terracoa license required)
Terracoa Server Array (Terracoa license required)
The way in which a cache is divided between on-heap memory and the other tiers is
determined by conguration properties that you specify when you create the cache.
The tiered approach enables you to extend a cache beyond the size constraints imposed
by the heap. Additionally, when you extend a cache to the Terracoa Server Array, the
cache can be simultaneously shared by multiple Integration Servers.
Developers who develop services that use Ehcache do not need to know whether
the cache they are using resides only on the heap or whether it extends to one of the
other tiers. They simply need to code their service to use a particular cache. Whether
that cache extends to disk, BigMemory, or a Terracoa Server Array is determined by
conguration properties that are assigned to the cache itself. Consequently, developers
682
Odd Header
Configuring Ehcache on Integration Server
do not need to change their code when the caching requirements for their applications
change.
On-Heap Cache
On-heap cache is the portion of a cache that resides within the heap of the JVM where
the Integration Server is running.
On heap-cache is fast, but because it resides within the heap space, it is subject to
the garbage collection process. For large caches, the garbage collection process can
cause lengthy interruptions during the execution of a service. If the heap is large, the
interruption might be multiple seconds.
Note:
The amount of memory that you can use for on-heap caching depends on
the amount of memory you can allocate to the JVM heap. This limit varies
according to the JVM, the machine, and the operating system that you are
using.
Out of the box, Integration Server supports the use of on-heap caches. You do not need
an additional license to create and use an on-heap cache.
For more information about using an on-heap cache with Integration Server, see
"Conguring an On-Heap Cache" on page 691.
683
Even Header
Configuring Ehcache on Integration Server
You can use it to extend the on-heap cache so that cached objects overow to the
local disk store when the on-heap cache becomes full.
-- OR -You can use it to persist all cached objects to disk so that cached objects are retained
when the Integration Server is restarted or the cache manager is reinitialized.
Note:
Note:
Persisting a cache to the local disk store does not guarantee that elements
in cache will be successfully recovered when a Integration Server or a
cache manager restarts. If Integration Server or a cache manager is not
shut down gracefully, the disk store might not be in a state from which
the elements can be recovered. If you require guaranteed persistence of a
cache, you must use a Terracoa Server Array.
You can only use a local disk store with a local cache. A local cache is any
Ehcache-based cache that resides wholly on the machine where Integration
Server is running and does not extend to the Terracoa Server Array.
BigMemory
BigMemory enables you to extend a cache beyond the local JVM heap. When you
congure a cache to use BigMemory, a portion of the cache resides within the heap and
a portion resides o heap. The o-heap portion of the cache resides within the JVM
process memory, but outside of the JVM heap.
684
Odd Header
Configuring Ehcache on Integration Server
Because a BigMemory cache resides o heap, it is not subject to the JVM garbage
collection process and, consequently, it performs more predictably and consistently. For
large caches, BigMemory generally delivers beer performance than a heap-based cache.
Moreover, from an administrative point of view, caches that use BigMemory are easier
to manage, because they do not need to be tuned for garbage collection.
Using BigMemory, you can create much larger caches than with on-heap memory
alone. Unlike on-heap caches, which are constrained by the limitations on heap size,
BigMemory enables you to use up to a terabyte of memory for caching.
To use BigMemory, your Integration Server must be equipped with a Terracoa license
from Software AG.
For more information about conguring a cache to use BigMemory, see "Conguring a
BigMemory Cache" on page 693.
685
Even Header
Configuring Ehcache on Integration Server
When you create a distributed cache, a complete copy of the cache resides on a
Terracoa Server Array. A Terracoa Server Array consists of one or more Terracoa
Servers. It can cache vast amounts of data (e.g., multiple terabytes). The data in the cache
is spread across the Terracoa Servers using a technique called striping. A Terracoa
client on the Integration Server manages the interaction between the Integration Server
and the cache on the Terracoa Server Array.
The Integration Servers that share a cache connect to the Terracoa Server Array to
put data into the cache and retrieve data from it. Each Integration Server keeps a small
portion of the cache locally, which serves as a hot set of recently used data and
reduces trips to the Terracoa Server Array.
To use a distributed cache, your Integration Server must be equipped with a Terracoa
license from Software AG.
For more information about using a distributed cache with Integration Server, see
"Conguring a Distributed Cache" on page 696.
686
Odd Header
Configuring Ehcache on Integration Server
687
Even Header
Configuring Ehcache on Integration Server
System Caches
Integration Server and other Software AG products use Ehcache in many of their own
internal processes. The caches that they use are called system caches and they belong to
system cache managers.
System cache managers are identied by names that begin with the following characters:
SoftwareAG.
For example,
SoftwareAG.IS.Core
When you use the Integration Server Administrator to display the list of cache managers
that exist on Integration Server, it displays system cache managers and public (userdened) cache managers in separate lists.
For a list of the system caches used by Integration Server, see Using Terracoa with
webMethods Products. This document includes a description of the system caches
that Integration Server and other Software AG components use and provides sizing
information for them.
688
Odd Header
Configuring Ehcache on Integration Server
Note:
It is possible for developers to use the Ehcache API to create cache managers
and caches without adding a corresponding conguration le to the
Integration Server_directory\instances\instance_name \cong\Caching
directory. However, this practice is not recommended on Integration
Server. A cache manager whose conguration le is not present in the
Integration Server_directory\instances\instance_name \cong\Caching
directory will not be registered properly on Integration Server and cannot be
administered using the Integration Server Administrator.
689
Even Header
Configuring Ehcache on Integration Server
BigMemory cache
Distributed cache
Clustering
690
Odd Header
Configuring Ehcache on Integration Server
You must restart the Integration Server after adding, removing, or changing a
Terracoa license.
691
Even Header
Configuring Ehcache on Integration Server
Step
Description
Review the points listed in "Considerations for Conguring OnHeap Cache" on page 692.
Decide how much memory you need for the cache and adjust
the heap size of your JVM if necessary. For information about
changing the heap size used by Integration Server, see "Changing
the JVM Heap Size Used by Integration Server " on page 133.
If the cache manager to which you want to add the cache does
not already exist, create it. For information about creating a cache
manager, see "Creating a Cache Manager" on page 708.
692
Odd Header
Configuring Ehcache on Integration Server
For sizing information about the system caches that Integration Server and other
Software AG products use, see Using Terracoa with webMethods Products on the
Software AG documentation website.
To estimate the amount of the heap that a cache will consume, multiply the size of
objects that you want to cache by the number of those objects that you want to keep
in cache.
objectSizeInBytes * numObjectsToCache = heapConsumedByCache
Very large on-heap caches (which require a large heap size) increase the time it takes
for the JVM to perform a full garbage collection. When a full garbage collection
occurs, all threads in the JVM are paused, which can cause noticeable delays in
response times.
When sizing an on-heap cache, you must weigh the benets of keeping a large
amount of data in memory against the periodic interruptions that this imposes
on the Integration Server. For additional information about the eect of garbage
collection on a cache, see Ehcache product documentation for 2.8 at hp://
ehcache.org/documentation.
If garbage collection becomes a signicant problem with the size of your on-heap
cache, consider maintaining a smaller on-heap cache and enabling Overflow to Disk
or Overflow to Off-Heap (BigMemory license required) to extend the cache without
increasing its on-heap requirements.
Make sure your machine is equipped with sucient memory to support the heap
requirements of your JVM and the memory requirements of other applications that
run on the machine. Insucient memory will cause paging.
If you enable the Overflow to Disk or Persist to Disk option, your cache must contain
only serializable keys and values. If a service aempts to put a non-serializable object
into a cache that overows or is persisted to disk, the service will receive a runtime
exception.
693
Even Header
Configuring Ehcache on Integration Server
Step
Description
Decide how much memory you need for the on-heap portion
of the cache and adjust the Java heap size if necessary. For
information about changing the heap size used by Integration
Server, see "Changing the JVM Heap Size Used by Integration
Server " on page 133.
If the cache manager to which you want to add the cache does
not already exist, create it. For information about creating a cache
manager, see "Creating a Cache Manager" on page 708.
694
Odd Header
Configuring Ehcache on Integration Server
The amount of direct memory space that is given to Integration Server is determined
by the wrapper.java.additional.n=-XX:MaxDirectMemorySize property in
the custom_wrapper.conf le. By default, the wrapper.java.additional.n=XX:MaxDirectMemorySize property is not set when Integration Server is installed.
When you use BigMemory, you must set the wrapper.java.additional.n=XX:MaxDirectMemorySize property to the amount of memory that you need to hold
your o-heap caches.
To allocate direct memory space to Integration Server
1. On the machine where Integration Server is installed, navigate to the following
folder:
Software AG_directory\proles\IS_instance_name \conguration
2. In a text editor, open custom_wrapper.conf.
3. Add a the wrapper.java.additional.n=-XX:MaxDirectMemorySize property to
specify the amount of BigMemory required to accommodate all of your caches that
use BigMemory. (This amount is limited by your Terracoa license, the amount of
physical memory on your system, and how much of that memory is needed by the
operating system and other applications running on the machine.)
For example, if you determine that you need 500 megabytes of BigMemory
and you are running Integration Server under Windows, you would add the
wrapper.java.additional property in the custom_wrapper.conf le to look like
this:
wrapper.java.additional.n =-XX:MaxDirectMemorySize=500M
You can express the value of this parameter using 'm' or 'M' for megabytes
or using 'g' or 'G' for gigabytes.
695
Even Header
Configuring Ehcache on Integration Server
696
Odd Header
Configuring Ehcache on Integration Server
of the cache. For more information about distributed caches, see " Terracoa Server
Array " on page 685.
Step
Description
Decide how much memory you will use for the on-heap portion
of the cache on Integration Server and adjust the Java heap size
if necessary. For information about changing the heap size used
by Integration Server, see "Changing the JVM Heap Size Used by
Integration Server " on page 133.
Note: The size of the on-heap portion of a distributed cache must
be the same on all Integration Servers that use the cache.
If the cache manager to which you want to add the cache does
not already exist, create it. For information about creating a cache
manager, see "Creating a Cache Manager" on page 708.
Note: Be sure that the cache manager that you are using is
congured to use the Terracoa Server Array.
697
Even Header
Configuring Ehcache on Integration Server
Step
Description
Verify that the parameters for the cache are set as you want them
and enable the cache as described in "Enabling a Cache" on page
728.
If this is the rst Integration Server on which you have created
the distributed cache, the Integration Server creates the
distributed cache on the Terracoa Server Array during this step.
698
Odd Header
Configuring Ehcache on Integration Server
Step
Description
another Integration Server, see "Adding a Cache Manager
Conguration File to Integration Server " on page 712.
The following parameters are required for Integration Server clusters using
distributed system caches. You must specify the values for the element
contents exactly as shown.
699
Even Header
Configuring Ehcache on Integration Server
This element denes the directory to which Integration Server writes log entries.
For more information about logging, see "Logging Ehcache Activity" on page
729.
3. When you are nished making your changes, save and close the le.
Note:
For more information about conguring Terracoa Server Array see the
Terracoa product documentation. The Using Terracoa with webMethods
Products contains a sample tc-cong.xml le.
700
Odd Header
Configuring Ehcache on Integration Server
use the cache. For information about which parameters are cache-wide, see "CacheWide and Client-Specic Parameters for a Distributed Cache" on page 701.
Cache-Wide Parameters
The cache-wide parameter seings for a distributed cache are maintained on the
Terracoa Server Array and aect all of the Integration Servers that use the cache. When
you change a cache-wide parameter seing on one Integration Server, the change is
applied to all Integration Servers that use the cache.
The following table identies the cache-wide parameters and indicates whether they
aect the cache on the Terracoa Server Array, the local portion of the cache on the
Integration Servers, or both. As noted in the table, all cache-wide parameter seings are
dynamic, meaning that changes you make to them take eect immediately. You do not
need to reinitialize the cache manager or restart the Terracoa Server Array to put the
changes into eect.
Cache-Wide Parameter
Applies to...
Dynamic?
Yes
Eternal
Yes
Time to Live
Yes
Yes
701
Even Header
Configuring Ehcache on Integration Server
Cache-Wide Parameter
Applies to...
Dynamic?
Yes
Client-Specific Parameters
Client-specic parameters aect the way in which a given Integration Server interacts
with a distributed cache. When you change a client-specic parameter, the new seing
aects only the Integration Server on which you make the change.
As noted in the following table, some client-specic parameters are dynamic and others
are non-dynamic. Except where noted, non-dynamic parameters require that you shut
down the cache manager (as described in "Shuing Down a Cache Manager" on page
709). After you make your changes, reinitialize the cache manager (as described
in "Reinitializing a Cache Manager" on page 711) to put the change into eect. For
additional information about the following parameters, see the parameter descriptions
in "Creating a Cache" on page 715.
Client-Specific Parameter
Dynamic?
Clear on Flush
No
Copy on Read
No
702
Odd Header
Configuring Ehcache on Integration Server
Client-Specific Parameter
Dynamic?
No
Synchronous Writes
No
Consistency
No
Yes
No
Timeout
Yes
Timeout Behavior
Yes
Yes
Yes
Note:
703
Even Header
Configuring Ehcache on Integration Server
Integration Server automatically enables the Rejoin parameter for all cache managers
whose Terracotta Server ArrayURLs parameter is set. You cannot disable the Rejoin seing
for such cache managers.
Note:
When a cache manager rejoins a Terracoa Server Array, it joins the array as
though it were a new client. This means that Integration Server clears any data
that it currently holds locally for the cache and resynchronizes its on-heap
store with data from the distributed cache on the Terracoa Server Array.
Note:
For more information about the rejoin feature of a distributed cache, see Rejoin in the
BigMemory Max product documentation for 4.1 at www.terracoa.org/documentation.
For more information about the Rejoin parameter on Integration Server, see "Creating a
Cache Manager" on page 708.
Description
Timeout
704
Odd Header
Configuring Ehcache on Integration Server
Parameter
Description
Terracoa Server Array and performs the time-out measure
specied in Timeout Behavior.
Timeout
Behavior
Immediate
Timeout When
Disconnected
For more information about the nonstop features of a distributed cache, see the
BigMemory Max product documentation for 4.1 at www.terracoa.org/documentation.
For more information about seing these parameters on Integration Server, see "Creating
a Cache" on page 715.
705
Even Header
Configuring Ehcache on Integration Server
Some keys and values are directly searchable and can simply be added to the search
index as aributes. However, you cannot search some keys or values directly. These
require that you rst extract the searchable aributes.
Once you make a cache searchable, you can use the pub.cache:search service to search the
cache. The service returns the search result as an object array. The search results can
include:
Element keys
Element values
Predened aribute values extracted from element values
Aggregator results, which are results of aggregator functions such as Average,
Count, Max, Min, and Sum.
Defining Attributes
When making a cache searchable, you can also dene the aributes to use in searches.
Aributes are extracted from keys or values during searches. You can extract aributes
from keys or values using the following methods:
Extract by Expression. Specify expressions based on which aributes are extracted
from keys or values. For example,
key.name, value.age
Extract by Class. Provide the extractor class and optionally, the properties
for the extractor class. The properties are specied as key/value pairs
separated by commas (,). The extractor must be an implementation of
net.sf.ehcache.search.attribute.AttributeExtractor. For more information
about aribute extractors, see Ehcache product documentation for 2.8 at hp://
ehcache.org/documentation.
A jar le containing the extractor must be placed in the
Integration Server_directory\instances\instance_name \lib\jars\custom directory or
the Integration Server_directory\instances\instance_name \packages\packageName
\code\jars directory.
For a sample extractor, see "Extracting Aributes by Class" on page 707.
Keep the following points in mind when making a cache searchable:
You cannot congure a system cache to be searchable.
You cannot make a cache that already contains data searchable.
For more information about making a cache searchable, see "Creating a Cache" on page
715.
706
Odd Header
Configuring Ehcache on Integration Server
707
Even Header
Configuring Ehcache on Integration Server
When you specify the Terracotta Server ArrayURLs eld, the Rejoin check
box is automatically selected. Rejoin indicates that the Integration Server
will automatically reconnect to the Terracoa Server Array upon geing
disconnected. You cannot disable this option. For more information about
the Rejoin option, see "The Rejoin Behavior of a Distributed Cache" on page
703.
708
Odd Header
Configuring Ehcache on Integration Server
Note:
Integration Server does not start the cache manager automatically after
creating it. You must start the cache manager by clicking the Start link.
For information about starting a cache manager see "Starting a Cache
Manager" on page 710.
The modication steps in this procedure apply to public cache managers only.
You cannot modify the parameters associated with a system cache manager.
This procedure applies to public cache managers only. You cannot shut down
a system cache manager.
709
Even Header
Configuring Ehcache on Integration Server
This procedure applies to public cache managers only. You cannot manually
start a system cache manager.
Integration Server uses the conguration from the cache manager conguration le
when starting the cache manager for the rst time. When you restart a cache manager,
Integration Server uses the conguration information that is cached in the memory.
Note:
When you start a cache manager, the caches within it are enabled
automatically.
710
Odd Header
Configuring Ehcache on Integration Server
this Integration Server during the reload process. However, once the cache manager
is reloaded, these caches, and their data, will be available again.
Note:
When you reload a cache manager, the caches within it are enabled
automatically.
Note:
This procedure applies to public cache managers only. You cannot reload a
system cache manager.
4. When prompted to conrm that you want to reload the cache manager, click OK.
This procedure applies to public cache managers only. You cannot delete a
system cache manager.
4. When prompted to conrm that you want to delete the cache manager, click OK.
711
Even Header
Configuring Ehcache on Integration Server
As an alternative to reloading the cache manager, you can stop the cache
manager and restart it. These steps are equivalent to doing a reload. For
procedures, see "Shuing Down a Cache Manager" on page 709and
"Starting a Cache Manager" on page 710.
712
Odd Header
Configuring Ehcache on Integration Server
</cache>
Note:
If you have created your own conguration le, be aware that Integration
Server Administrator does not preserve comments when it updates a
conguration le. If your conguration le includes comments, those
comments will be discarded the rst time someone edits it using Integration
Server Administrator.
3. Open Integration Server Administrator and go to Settings > Caching to verify that
Integration Server was able to add your cache manager successfully.
If the cache manager is not listed on the Settings > Caching page or if it is not
functioning properly, consult the server log or the Ehcache log to see whether
errors occurred during the initialization process. For information about viewing the
Ehcache log, see "Logging Ehcache Activity" on page 729. If there are problems
with the conguration le (for example, if Integration Server could not parse the le
or the le contains a duplicate cache manager name), Integration Server records an
error message in the server log and writes a full stack trace to the error log.
Be aware that when you view a conguration le that was generated by Integration
Server Administrator, the le will not contain entries for parameters that use their
default seings. Integration Server Administrator only writes required parameters
to the conguration le and parameters whose values are dierent than their default
values. For example, if you create a new cache using Integration Server Administrator
713
Even Header
Configuring Ehcache on Integration Server
and you leave the Disk Expiry Thread Interval at its default seing, the Integration Server
Administrator does not include the <DiskExpiryThreadIntervalSeconds> element in the
conguration le. It includes this element only if you change Disk Expiry Thread Interval
from its default seing.
To manually edit a cache manager configuration file
1. Go to the Integration Server_directory \instances\instance_name \cong\Caching
directory and locate the conguration le that you want to edit.
2. As a precaution, make a backup copy of the conguration le before you proceed.
Note:
3. Open the conguration le in a text editor and modify it as needed. When editing
the le, keep the following points in mind:
Integration Server requires all cache managers that connect to a Terracoa Server
Array to run with rejoin enabled. If the rejoin=true aribute is present in the
<terracoaCong> element, do not remove it.
Integration Server requires all distributed caches to run in nonstop mode. Never
remove the <nonstop> option from a distributed cache denition.
Integration Server does not preserve comments in its cache manager
conguration les. If you add comments to the conguration le while you are
editing it, be aware that those comments will be discarded the rst time that
someone edits the conguration le using Integration Server Administrator.
For information about the parameters in a cache manager conguration le, see
Ehcache product documentation for 2.8 at hp://ehcache.org/documentation.
4. After you save the conguration le, use one of the following techniques to
reinitialize the cache manager whose conguration le you edited.
Restart Integration Server.
Start the cache manager (if it is not already running) and then immediately
reload it (to force it to read the updated conguration le from disk). For
procedures, see "Starting a Cache Manager" on page 710 and "Reloading a
Cache Manager" on page 710.
Reload the cache manager (if it is already running). For procedures, see
"Reloading a Cache Manager" on page 710.
5. Use Integration Server Administrator to view the cache manager and its caches. If
you need procedures for this step, see "Viewing or Modifying a Cache Manager" on
page 709or "Viewing or Modifying Cache Seings" on page 726.
714
Odd Header
Configuring Ehcache on Integration Server
If the cache manager or the cache is not listed in the Integration Server Administrator
or if it is not functioning properly, consult the server log or the Ehcache log to see
whether errors occurred during the initialization process. For information about
viewing the Ehcache log, see "Logging Ehcache Activity" on page 729. If there
are problems with the conguration le (for example, if Integration Server cannot
parse the le or the le contains a duplicate cache manager name), Integration Server
records an error message in the server log and writes a full stack trace to the error
log.
6. If you modied any of the cache-wide parameters for a distributed cache (which are
the Maximum Elements in Memory, Eternal, Time to Live, Time to Idle, Maximum Entries in
Cache, and Logging parameters), perform the following steps to put your changes into
eect:
a. In Integration Server Administrator, click Caching in the Settings menu of the
Navigation panel.
b. Click the cache manager containing the cache that you modied.
c. Under Cache List, click the cache that you modied.
d. Click Save Changes.
This step puts the cache-wide seings into eect on this Integration Server and
all other Integration Servers that use the distributed cache.
Creating a Cache
Use the following procedure to create a cache.
Note:
715
Even Header
Configuring Ehcache on Integration Server
about licenses, see "Installing, Viewing, and Changing the Terracoa License" on
page 690.
If you are creating a cache for the rst time, review the following sections before you
begin.
If you want to
create...
An on-heap
cache
An o-heap
cache
A distributed
cache
Note:
To create a cache
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Caching.
3. Under Public Cache Managers, click the cache manager to which you want to add a
cache.
4. Click Add Cache.
5. Under Cache Configuration, specify the following information.
Field
Description
Cache Name
716
Odd Header
Configuring Ehcache on Integration Server
Field
Description
Note: You cannot modify the name of a cache once the
cache is created.
Maximum Elements in
Memory
Eternal
Time to Live
717
Even Header
Configuring Ehcache on Integration Server
Field
Description
This parameter is: Dynamic. Cache-wide.
Time to Idle
Overflow to Disk
Persist to Disk
718
Odd Header
Configuring Ehcache on Integration Server
Field
Description
If you select this check box, make sure that the key/value
pairs used for elements in the cache are Java serializable.
Not doing so would result in an exception while using
the cache during the execution of public Integration
Server services.
Note: Caches that have Persist to Disk enabled cannot be
changed to any other form of persistence once the
cache manager is started.
This check box applies to local caches only and is cleared
by default. It is disabled for distributed caches when the
Overflow to Disk check box is selected.
This parameter is: Non-dynamic. Not applicable to
distributed cache.
Maximum Entries
Local Disk
6. If you are creating a distributed cache, select the Distributed check box and then
congure the following elds under Distributed Cache Configuration:
Note:
You can only select the Distributed check box if 1) Your Integration Server
has the licenses necessary to create a distributed cache, and 2) The
Terracotta Server ArrayURLs eld is congured in the cache manager to
which you are adding the cache. For more information about licenses, see
"Installing, Viewing, and Changing the Terracoa License" on page 690.
719
Even Header
Configuring Ehcache on Integration Server
Field
Description
Consistency
Maximum Entries in
Cache
Enable High
Availability
720
Odd Header
Configuring Ehcache on Integration Server
Field
Description
Note: Integration Server automatically selects this check
box for a distributed cache. You cannot clear this
check box.
Timeout
Timeout Behavior
Immediate Timeout
When Disconnected
721
Even Header
Configuring Ehcache on Integration Server
Field
Description
Synchronous Writes
7. If you are creating a local cache and you want the cache to overow to BigMemory,
select the Overflow to Off-heap check box and then congure the following eld under
BigMemory:
Note:
You can only select the Overflow to Off-heap check box if your Integration
Server is licensed to use BigMemory. For more information about licenses,
see "Installing, Viewing, and Changing the Terracoa License" on page
690. For more information about things to consider when creating a
BigMemory cache, see "Conguring a BigMemory Cache" on page 693.
Field
Description
Maximum Off-heap
722
Odd Header
Configuring Ehcache on Integration Server
Field
Description
This parameter is: Non-dynamic. Not applicable to
distributed cache.
Description
Clear on Flush
Copy on Read
723
Even Header
Configuring Ehcache on Integration Server
Field
Description
into the cache, the changes become visible to other users
of the cache.
When this check box is cleared, the element is not copied.
Any changes you make to the element aect the element
directly, through its reference, even if a put operation
has not been performed to replace the element in the
cache.
This check box is cleared by default.
This parameter is: Non-dynamic. Client-specic.
Note: Selecting this check box provides a degree of safety
against certain logic errors in your application.
However, each get operation on the cache causes
a copy of the element to be created. This can
aect performance, especially for large elements.
Alternatively, consider structuring your application
code so that cache gets are isolated, and references to
cached objects are not retained by the application.
Do not change this value if the cache manager is
Important:
shut down. Doing so will cause Integration Server
to issue an exception and the cache manager will
not start. To change this parameter, follow the
procedure in "Modifying Seings for a Distributed
Cache" on page 727.
Copy on Write
724
Odd Header
Configuring Ehcache on Integration Server
Field
Description
causes a copy of the element to be created. This can
aect performance, especially for large elements.
Alternatively, consider structuring your application
code so that cache put operations are isolated, and
references to cached objects are not retained by the
application.
Logging
Optional. When selected, indicates that basic distributedmap logging messages are saved to the Terracoa logs.
This check box is cleared by default.
Note: When this check box is selected for a distributed
cache, logging events are recorded on the Terracoa
Server Array. For more information about logging,
see "Logging Ehcache Activity" on page 729.
This parameter is: Non-dynamic. Client-specic.
9. To make the cache searchable, select the Searchable check box and congure the
following eld under Search Configuration:
Field
Description
Allow Automatic
Indexing
725
Even Header
Configuring Ehcache on Integration Server
10. Under Search Attributes, dene one or more aributes that will be used in searches by
conguring the following elds:
Field
Description
Attribute
Extract Method
net.sf.ehcache.search.attribute.AttributeExtractor.
Click
to add or
searches.
11. Click Save Changes. Integration Server creates the cache and places it in the disabled
state.
12. When you are ready to put the cache into use, enable it using the procedure in
"Enabling a Cache" on page 728.
Note:
Be aware that many of the parameters associated with a system cache are
system-dened and cannot be edited in Integration Server Administrator.
When you edit a system cache, you can see all of its parameters, but you
726
Odd Header
Configuring Ehcache on Integration Server
can edit only certain seings. If you are editing a system cache for another
webMethods product, such as Trading Networks, consult the product
documentation for guidelines.
To view or modify cache settings
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Caching.
3. Click the cache manager containing the cache that you want to view or modify.
4. Under Cache List, click the cache you want to view or modify.
5. View cache seings or modify the cache-wide seings as necessary.
For more information about the caches seings, see "Creating a Cache" on page
715.
6. If you have made changes to the cache seings, click Save Changes to save them.
Disabling a Cache
You can disable a cache to troubleshoot a load or performance issue, for example.
Any get operations performed against a disabled cache return null, and any put
operations are discarded. Existing cache elements remain in the cache and can be used
again when the cache is enabled (assuming the cache manager has not been initialized in
the meantime).
If the cache is distributed, the cache is disabled only on the Integration Server where the
disable operation is performed. The cache still resides on the Terracoa Server Array and
remains accessible to other Integration Servers connected to the Terracoa Server Array.
727
Even Header
Configuring Ehcache on Integration Server
Note:
You can only disable a cache that belongs to a public cache manager.
To disable a cache
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Caching.
3. Under Public Cache Managers, click the cache manager associated with the cache you
want to disable.
4. Under Cache List, click the Yes link in the Enabled column next to the cache you want
to disable.
5. When prompted to conrm that you want to disable the cache, click OK.
Enabling a Cache
A cache becomes enabled automatically when the cache manager it belongs to is started
or reloaded. Put and get operations can be performed against an enabled cache.
When you enable a disabled cache, all the elements stored previously in the cache are
again available (assuming the cache manager has not been initialized in the meantime).
Note:
To enable a disabled cache, the cache manager must be running. You cannot
enable a cache while its cache manager is shut down.
Note:
You can only enable a cache that belongs to a public cache manager.
To enable a cache
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Caching.
3. Under Public Cache Managers, click the cache manager associated with the cache you
want to enable.
4. Under Cache List, click the No link in the Enabled column next to the cache you want
to enable.
5. When prompted to conrm that you want to enable the cache, click OK.
Clearing a Cache
When you clear a cache, you remove all elements from that cache.
If the cache is distributed, this procedure removes all elements from that cache on the
Terracoa Server Array.
Note:
You can only clear a cache that belongs to a public cache manager.
728
Odd Header
Configuring Ehcache on Integration Server
To clear a cache
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Caching.
3. Under Public Cache Managers, click the cache manager associated with the cache you
want to clear.
4. Under Cache List, click the clear icon
5. When prompted to conrm that you want to clear the cache, click OK.
Note:
Deleting a Cache
Deleting a cache removes the cache from the cache manager. If the cache is local, the
existing elements in the cache are discarded.
If the cache is distributed, the cache is no longer available to the Integration Server from
which it is deleted. The cache remains available on other Integration Servers connected
to the Terracoa Server Array.
Note:
You can only delete a cache that belongs to a public cache manager.
To delete a cache
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Caching.
3. Under Public Cache Managers, click the cache manager associated with the cache that
you want to delete.
4. Under Cache List, click the delete icon
5. When prompted to conrm that you want to delete the cache, click OK.
729
Even Header
Configuring Ehcache on Integration Server
730
Odd Header
Configuring the Enhanced XML Parser
732
732
734
735
738
739
731
Even Header
Configuring the Enhanced XML Parser
While the legacy XML parser can create a node from an XML document or an
HTML document, the enhanced XML parser parses XML documents only.
For more information about Ehcache and BigMemory, see "Conguring Ehcache on
Integration Server " on page 681.
732
Odd Header
Configuring the Enhanced XML Parser
disk store or o-heap cache (BigMemory). Integration Server retrieves the partitions as
needed to fulll subsequent processing requests.
The enhanced xml parser uses heap allocation limits to determine when to migrate
partitions to a local disk store or BigMemory. The heap allocation limits enable the
enhanced XML parser to throle its use of heap. This reduces the chances of unstable
behavior when the Integration Server operates at peak capacity. You can set limits for:
The total heap space used by any single parsed document.
The total heap space used by all parsed documents combined.
The total amount of BigMemory used by all parsed documents
Following is an overview of how the enhanced XML parser parses an XML document:
1. The enhanced XML parser receives a request to parse a document. To begin parsing
a document, the enhanced XML parser creates six partitions of the same size in the
heap. The size of the partitions is determined by the partitionSize value passed to
the service or the default partition size congured for the enhanced XML parser. For
more information about the partition size, see "Seing the Partition Size" on page
738.
However, if there is not sucient heap space to create six partitions, the enhanced
XML parser delays parsing the document until sucient heap space becomes
available. There might not be sucient heap space if the amount of heap space
currently used for parsed documents is at or near the limit specied by the Maximum
heap allocation for all documents combined eld.
2. The enhanced XML parser serializes the XML document into the partitions on the
heap, creating more partitions of the same size as needed.
3. During parsing, if the total heap space required to parse the document meets the
limit specied by the Maximum heap allocation for any single document eld or the limit
specied by Maximum heap allocation for all documents combined, one of the following
occurs:
If caching is not enabled, meaning that the parser does not use Ehcache to help
manage memory, the JVM may throw an OutOfMemoryError. The enhanced
XML parser will not nish parsing the document, and the service from which the
parser was called will fail.
If caching is enabled, but BigMemory is not, the enhanced XML parser uses
Ehcache to move some partitions from the heap to a local disk store.
If caching is enabled and BigMemory is enabled, the enhanced XML parser
uses Ehcache to move some partitions from the heap to BigMemory. If the
amount of BigMemory used by the enhanced XML parser exceeds the limit set
by the MaximumBigMemoryallocation eld, the enhanced XML parser throws an
UnxepectedCachingException.
In rare circumstances, the enhanced XML parser might throw the following exceptions:
733
Even Header
Configuring the Enhanced XML Parser
If the aggregate aribute value length for any single XML element
exceeds 65535 characters, the enhanced XML parser throws an
ImplementationLimitCachingException.
If the partition size is relatively small and an individual XML element
contains a very large number of aributes or the aggregate length of the
aribute values for an element is very long, Integration Server might throw a
PartitionSizeCachingException. To resolve this issue, increase the partition size. For
more information about the partition size, see "Seing the Partition Size" on page
738.
734
Odd Header
Configuring the Enhanced XML Parser
735
Even Header
Configuring the Enhanced XML Parser
Yes, click No to change the value. Integration Server Administrator prompts you to
conrm enabling the Caching feature. Click OK.
4. If you want the enhanced XML parser to make use of BigMemory (o-heap cache),
under BigMemoryCaching, make sure the Enabled property is set to Yes. If Enabled
is not set to Yes, click No to change the value. Integration Server Administrator
prompts you to conrm enabling the BigMemory caching feature. Click OK.
Note:
To use BigMemory with the enhanced XML parser, you must enable
caching as well.
5. At the top of the Settings > Enhanced XML Parsing page, click Edit Enhanced XML Parsing
Settings.
6. Under Enhanced Parser Settings, in the Default partition size eld, specify the default
size of the partitions on the heap where the enhanced XML parser stores parsed
document information. Add one of the following suxes to indicate a unit of
measure:
k or K for kilobytes
m or M for megabytes
The default is 20k.
Note:
Integration Server uses the default partition size when parsing XML
documents received by services that specify an xmlFormat of enhanced.
For more information about xmlFormat, see webMethods Service
Development Help. The pub.xml:loadEnhancedXMLNode service and the
pub.xml:xmlStringToEnhancedXMLNode service use the default partition size if
the services do not specify a value for the partitionSize input parameter.
Specify...
Maximum heap
allocation for
all documents
combined
736
Odd Header
Configuring the Enhanced XML Parser
Specify...
When the total heap used by parsed documents exceeds
the Maximum heap allocation for all documents combined
value, the enhanced XML parser will not begin parsing
more documents until heap space becomes available.
Additionally, the enhanced XML parser moves some
partitions to BigMemory (if BigMemory caching is enabled)
or a local disk store (if BigMemory caching is not enabled).
Do not set Maximum heap allocation for all documents
Important:
combined to be 100% of the heap. A value of 100%
indicates that there is no limit to the amount of
heap the enhanced XML parser can use. If enough
documents are parsed simultaneously, the JVM may
throw an OutOfMemoryError.
Maximum heap
allocation for any
single document
737
Even Header
Configuring the Enhanced XML Parser
If you do not specify a sux, Integration Server uses bytes as the unit of
measure.
738
Odd Header
Configuring the Enhanced XML Parser
A partitionSize that is three times smaller or three times larger than 1/2 the size of
the unparsed XML document will likely have lile impact on the performance.
At run time, the enhanced XML parser overrides a partitionSize that consumes all of
the available heap space.
At run time, if the partitionSize results in an initial heap allocation that exceeds the
single document limit set in the Maximum heap allocation for any single document eld
the limit for all documents set in the Maximum heap allocation for all documents combined
eld, the enhanced XML parser reduces the partition size automatically.
If you do not specify partitionSize , the enhanced XML parser uses the default
specied in the Default partition size eld on the Settings > Enhanced XML Parsing page in
Integration Server Administrator.
When the enhanced XML parser is called via an HTTP POST request, the enhanced XML
parser uses the default partition size specied by the Default partition size eld on the
Settings > Enhanced XML Parsing page in Integration Server Administrator.
Description
PeakBigMemoryuse
739
Even Header
740
Odd Header
Locking Administration and Best Practices
742
742
742
744
741
Even Header
Locking Administration and Best Practices
Introduction
This chapter contains information intended for the server administrator and users who
regularly replicate and publish packages as part of the production process.
742
Odd Header
Locking Administration and Best Practices
Make sure that all users have completed development on the server and unlocked all
elements.
Close all Designer sessions. After you change the extended seings in the following
procedure, users will need to open a new Designer session.
Disabling Locking
To disable locking, you edit the extending seings using the Integration Server
Administrator or manually edit server.cnf. The following procedure describes the
Integration Server Administrator procedure.
Important: Make sure that you only use this method of changing the seings. Later, if
you change the seings by editing server.cnf, conicts can occur.
To disable locking on the Integration Server
1. Complete the tasks in "Disabling and Re-enabling Locking" on page 742.
2. In the Integration Server Administrator, under Settings, click Extended.
3. Click Edit Extended Settings.
4. In the Extended Seings box, type a key and value according to the following table.
If you want to...
Type this...
wa.server.ns.lockingMode=none
wa.server.ns.lockingMode=system
Re-Enabling Locking
To re-enable locking, you use the Integration Server Administrator or manually edit
server.cnf. The following procedure describes the Integration Server Administrator
procedure.
Important: Make sure that you only use this method of changing the seings. Later, if
you change the seings by editing server.cnf, conicts can occur.
743
Even Header
Locking Administration and Best Practices
Best Practices
Remote Server Configuration
It is not recommended that you use Cooperative Development functionality in an
Integration Server cluster. Locking information for elements could be inadvertently
shared with another Integration Server in the cluster. Use a standalone Integration
Server not a cluster, while developing to eliminate these Cooperative Development
problems.
When you replicate and publish a package, the locking information is not preserved.
This is expected behavior and is part of the feature's design. You can, however,
preserve system locks (read-only le aributes).
744
Odd Header
Locking Administration and Best Practices
Before you publish a package, keep in mind that user locks are not preserved.
When you salvage a deleted package, lock information is not preserved. Before
you salvage or delete a package, make sure that all locks are removed from the
destination package.
It is not recommended that you use system or user locking on packages that are
frequently replicated and/or partially replicated. For example, when sending
frequently updated packages to partners.
Source Code
If there has been a signicant change to the source code, always reload the package
to reect the latest system locks.
745
Even Header
746
Odd Header
Managing webMethods Messaging Triggers
748
748
757
766
768
770
772
774
Serial Triggers Migrated to Integration Server 9.9 or Later from 9.8 or Earlier ..........................
777
747
Even Header
Managing webMethods Messaging Triggers
Introduction
In a publish-and-subscribe solution, the retrieval and ow of documents through
Integration Server consumes resources, primarily server threads and memory. The
rate at which Integration Server can retrieve and process documents is determined by
the availability of these resources. However, server resources also need to be available
to perform other functions. Integration Server Administrator provides controls for
managing resources consumed by document retrieval and document processing. You
can use these controls to balance the resource demands for document retrieval and
processing with the server resources needed to perform other work.
Specically, you can use the controls provided by Integration Server Administrator to:
Increase or decrease the number of server threads used to retrieve documents from
the Broker.
Decrease the capacity of webMethods messaging trigger queues.
Suspend document retrieval for one or more webMethods messaging triggers.
Increase or decrease the number of server threads used to process documents.
Decrease the number of threads that Integration Server can use to process documents
for concurrent webMethods messaging triggers simultaneously.
Suspend document processing for one or more webMethods messaging triggers.
Change the congured trigger queue capacity, rell level, or execution threads for a
specic webMethods messaging trigger.
Additionally, the Integration Server Administrator provides a cluster synchronization
feature that you can use to propagate selected changes to other Integration Servers in a
cluster automatically.
These controls can be useful in a production environment to free up server threads
and memory to accommodate an unexpected server load (such as a sudden inux of
HTTP requests) or in anticipation of a high usage time. You can also use the controls
during the capacity planning stage of your project to determine the congured values
for webMethods messaging triggers and server thread usage.
The following sections contain more information about managing document retrieval
and document processing using the provided controls.
Note:
748
Odd Header
Managing webMethods Messaging Triggers
provider. Document retrieval requires a server thread with which to request and
retrieve documents from the messaging provider. Document retrieval also requires
memory because Integration Server keeps temporary copies of the documents it is
retrieving in memory. Integration Server releases the temporary copies from memory
after successfully processing the document.
Integration Server provides controls that you can use to manage the server resources
used for document retrieval. Specically, you can use the controls to:
Manage the rate of document retrieval and the amount of memory used during
document retrieval by adjusting trigger queue capacity.
Suspend or resume document retrieval for one or more webMethods messaging
triggers.
Limit the number of server threads used for retrieving documents from Broker.
These controls can be used during development, capacity planning, or at run time. The
following sections provide more information about these controls.
You can also congure the frequency with which Integration Server polls each trigger
client queue on the Broker for new documents. For more information, see "Delaying
Polling Requests for webMethods Messaging Triggers" on page 774.
749
Even Header
Managing webMethods Messaging Triggers
other tasks, such as answering HTTP requests, retrieving documents from Universal
Messaging, or processing documents.
Increasing the percentage of the server thread pool available for retrieving documents
from Broker can increase the arrival rate of documents because it allows more triggers to
retrieve documents from the Broker at one time.
For more information about seing the number of server threads for document retrieval,
see "Limiting Server Threads for webMethods Messaging Triggers" on page 766.
Note:
Other ways to control the resources used for retrieving documents are:
adjusting trigger queue capacity and suspending/resuming document
retrieval for webMethods messaging triggers. For more information about
adjusting trigger queue capacity, see "Decreasing the Capacity of Trigger
Queues" on page 751. For more information about suspending (or
750
Odd Header
Managing webMethods Messaging Triggers
Decreasing the Capacity and Refill Level for webMethods Messaging Triggers
Use the following procedure to use the Queue Capacity Throttle to decrease the capacity
and rell levels for the queues of all webMethods messaging triggers.
Note:
The Queue Capacity Throttle does not aect the rell level of webMethods
messaging triggers that receive documents from Universal Messaging because
these triggers do not have a rell level.
751
Even Header
Managing webMethods Messaging Triggers
752
Odd Header
Managing webMethods Messaging Triggers
If you reduce the capacity to a low percentage for an extended period of time, the
document might expire on the messaging provider. For each publishable document
type, you can specify a Time to live property. This property species how long a
document can remain on the messaging provider before the messaging provider
discards it. For more information about publishable document types, see webMethods
Service Development Help.
If you use the Queue Capacity Throttle as part of your capacity planning process and
you determine that the congured values for trigger capacity and rell level need to
change, you can use the Integration Server Administrator or Software AG Designer
to set the new capacity and rell level values for each webMethods messaging
trigger. For more information about seing the capacity and rell level for a trigger,
see "Modifying webMethods Messaging Trigger Properties" on page 770.
753
Even Header
Managing webMethods Messaging Triggers
Tip:
You can gradually resume document retrieval by seing the Queue Capacity Throttle to a
low percentage, such as 10%, and then resuming document retrieval for all webMethods
messaging triggers. Integration Server resumes document retrieval at the adjusted
capacity for all webMethods messaging triggers. You can also gradually resume
document retrieval by selectively resuming individual triggers. For example, you might
want to rst resume document retrieval for those triggers that are part of a critical or
high priority process.
Suspending or Resuming Document Retrieval for All webMethods Messaging Triggers
Use the following procedure to suspend or resume document retrieval for webMethods
messaging triggers.
To suspend or resume document retrieval for all webMethods messaging triggers
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Click webMethods Messaging TriggerManagement.
4. Under IndividualwebMethods Messaging TriggerControls, in the Active column located
under Document Retrieval, click edit all.
5. In the Retrieval State list, do the following:
Select...
To...
Active
Suspended
6. If you want the state change to be permanent and maintained after Integration
Server restarts or after a package reload, select the Apply Change Permanently check
box. If you do not select this check box, Integration Server considers the change to be
temporary.
7. If you want to apply the document retrieval change to all the servers in a cluster,
select the Apply Change Across Cluster check box.
This check box appears only if the current Integration Server belongs is congured
to synchronize trigger changes across the cluster. For more information about
conguring an Integration Server to synchronize trigger management changes
754
Odd Header
Managing webMethods Messaging Triggers
755
Even Header
Managing webMethods Messaging Triggers
activities. When the back-end system becomes available, you can resume document
retrieval for the associated triggers.
After suspending document retrieval for all triggers, you might resume document
retrieval for specic triggers. If Integration Server is functioning under an unusually
heavy load, you might rst suspend retrieval for all triggers and then gradually
resume retrieval, starting with the triggers involved in key processes.
If Integration Server suspends document retrieval for a serial trigger because the
associated trigger service ends in error, you need to resume document retrieval for
that trigger. For more information about conguring a serial trigger to suspend
retrieval and processing automatically after an error, see webMethods Service
Development Help.
Suspending or Resuming Document Retrieval for a webMethods Messaging Trigger
The following procedure explains how to suspend or resume document retrieval for an
individual webMethods messaging trigger.
To suspend or resume document retrieval for a webMethods messaging trigger
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Click webMethods Messaging TriggerManagement.
4. Under IndividualwebMethods Messaging TriggerControls, locate the row containing the
trigger for which you want to suspend document retrieval.
5. In the Active column located under Document Retrieval, click Yes or No. (The Active
column displays "Yes" if document retrieval is active for the trigger; "No" if
document retrieval is suspended. An asterisk (*) appears next to the status if the
document retrieval state is temporary.)
6. In the Retrieval State list, do the following:
Select...
To...
Active
Suspended
7. If you want the state change to be permanent and maintained after Integration
Server restarts, select the Apply Change Permanently check box. If you do not select this
check box, Integration Server considers the change to be temporary.
8. If you want to apply the document retrieval change for this trigger to all the servers
in a cluster, select the Apply Change Across Cluster check box.
This check box appears only if the current Integration Server belongs to a properly
congured cluster and is congured to synchronize trigger changes across the
cluster. For more information about conguring an Integration Server to synchronize
webMethods Integration Server Administrators Guide Version 9.10
756
Odd Header
Managing webMethods Messaging Triggers
757
Even Header
Managing webMethods Messaging Triggers
These controls can be used as part of your capacity planning or used during production.
The following sections provide more information about these controls.
If you decrease the percentage of threads that can be used for document
processing, consider decreasing the Execution Threads Throttle to prevent
concurrent triggers from monopolizing available server threads.
758
Odd Header
Managing webMethods Messaging Triggers
You can also determine when to modify the number of threads allowed
for document processing by monitoring thread usage. You can do this by
viewing the thread usage information displayed on the Server > Statistics page.
However, you can also establish a warning threshold that instructs Integration
Server to alert you when the number of available threads drops below a
particular level. Specically, Integration Server creates a journal log entry
stating "Available Threads Warning Threshold Usage Exceeded." When
Integration Server writes this journal log entry, you might want to decrease
threads for document processing to allow more threads to be used for other
functions. For more information about seing an available threads warning
threshold, see"Managing the Server Thread Pool" on page 110.
Another way to determine when to alter the number of server threads alloed for
processing documents is to monitor the current number of threads that are processing
documents for triggers. Integration Server Administrator displays this value in the
Current Threads eld located under Document Processing on the Settings > Messaging
>webMethods Messaging TriggerManagement page.
Note:
Other ways to control the resources used for document processing are:
adjusting execution threads for concurrent triggers and suspending or
resuming document processing for triggers. For more information about
adjusting trigger queue capacity, see "Decreasing Document Processing for
Concurrent Triggers" on page 759. For more information about suspending
(or resuming) document processing, see "Suspending and Resuming
Document Processing" on page 761.
759
Even Header
Managing webMethods Messaging Triggers
For example, if you set the Execution Threads Throttle to 50% of maximum, Integration
Server reduces the maximum execution threads for all concurrent triggers by half.
A concurrent trigger with a maximum execution threads value of 6, has an adjusted
maximum execution threads value of 3.
By decreasing parallel processing for concurrent triggers, you can:
Free up server threads and memory to perform other functions, such as answering
HTTP requests or retrieving documents.
Prevent concurrent triggers from monopolizing the threads alloed for document
processing. The number of server threads that Integration Server dispatches to
process documents for serial and concurrent triggers cannot exceed the value
established by the maximum execution threads percentage. If you reduce the
number of threads allowed for document processing, and concurrent triggers
continue to consume the maximum execution threads possible (according to their
congured seings), serial triggers must wait longer for server threads to become
available. This is especially likely if Integration Server contains concurrent triggers
that execute long-running services.
Note:
760
Odd Header
Managing webMethods Messaging Triggers
Notes:
The Execution Threads Throttle value is maintained across server restarts and package
reloads.
Serial triggers always process one document at a time. The Execution Threads Throttle
property does not aect serial triggers.
If the percentage by which you reduce trigger execution threads does not resolve
to a whole number, Integration Server rounds up or rounds down to the nearest
whole number. However, if rounding down would set the value to 0, Integration
Server rounds up to 1. For example, if you reduce Execution Threads Throttle to 10%
of maximum, a concurrent trigger with a maximum execution threads value of 12
would have an adjusted value of 1 (Integration Server rounds 1.2 down to 1). A
concurrent trigger with a maximum execution threads value of 4 would have an
adjusted value of 1 (Integration Server rounds 0.4 up to 1).
When you reduce the Execution Threads Throttle and save your changes, Integration
Server does not terminate threads currently executing concurrent triggers to
meet the adjusted maximum. Integration Server allows server threads processing
documents for concurrent triggers to execute to completion. Integration Server
waits until the number of threads executing for a concurrent trigger is less than the
adjusted maximum before dispatching another server thread to process a document
for that trigger.
If you suspend document processing (trigger execution) and do not suspend
document retrieval, Integration Server will ll all the trigger queues to capacity. Full
trigger queues consume more memory than empty trigger queues.
You can also reduce the number of concurrent execution threads for a trigger by
reducing the capacity of a trigger queue below the maximum number of concurrent
execution threads for the trigger. The maximum number of dispatched threads for
a trigger cannot exceed the trigger queue's capacity. For more information about
reducing trigger queue capacity, see "Decreasing the Capacity of Trigger Queues" on
page 751.
If you use the Execution Threads Throttle as part of your capacity planning process
and you determine that the congured values for Maximum execution threads need to
change, you can use the Integration Server Administrator or Software AG Designer
to set the new maximum execution threads values for each concurrent trigger. For
more information about seing trigger properties, see "Modifying webMethods
Messaging Trigger Properties" on page 770.
761
Even Header
Managing webMethods Messaging Triggers
When you are ready to resume document processing, you might want to resume it
gradually. For example, you might set the Execution Threads Throttle to a low percentage,
resume document processing for all triggers, and then gradually move the Execution
Threads Throttle up to 100%. Alternatively, you might selectively resume individual
triggers. For example, you might want to resume document processing for those triggers
that are part of a critical or high priority process.
Suspending or Resuming Document Processing for All webMethods Messaging Triggers
Use the following procedure to suspend or resume document processing for all
webMethods messaging triggers.
To suspend or resume document processing for all webMethods messaging triggers
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
762
Odd Header
Managing webMethods Messaging Triggers
To...
Active
Suspended
6. If you want the state change to be permanent and maintained after Integration
Server restarts, select the Apply Change Permanently check box. If you do not select this
check box, the Integration Server considers the change to be temporary.
7. If you want to apply the document processing change to all the servers in a cluster,
select the Apply Change Across Cluster check box.
This check box appears only if the current Integration Server belongs to a properly
congured cluster and is congured to synchronize trigger changes across the
cluster. For more information about conguring an Integration Server to synchronize
trigger management changes across a cluster, see "Cluster Synchronization for
webMethods Messaging Trigger Management" on page 768.
8. Click Save Changes.
Notes:
Integration Server will not suspend or resume document processing for a locked or
disabled trigger.
If Integration Server cannot suspend (or resume) document processing locally,
cluster synchronization cannot occur.
Integration Server does not suspend (or resume) document processing for
webMethods messaging triggers that have been excluded from trigger management
changes using the wa.server.trigger.managementUI.excludeList. For more
information about this property, see "Server Conguration Parameters" on page
851
Suspending or resuming document processing aects all documents in the trigger's
queue on Integration Server, including documents retrieved from the messaging
provider and from local publishing.
When you suspend document processing, Integration Server will not dispatch any
more server threads to process documents. Any server threads currently processing
763
Even Header
Managing webMethods Messaging Triggers
documents for triggers will execute to completion. This includes documents that are
being retried.
When you suspend document processing but do not suspend document retrieval,
documents will collect in trigger queues until the trigger queues are at maximum
capacity or document processing resumes. If Integration Server restarts before
document processing resumes, volatile documents are discarded.
When you resume document processing, Integration Server resumes document
processing for webMethods messaging trigger that at the percentage specied by the
Execution Threads Throttle.
764
Odd Header
Managing webMethods Messaging Triggers
5. In the Active column located under Document Processing, click Yes or No. (The Active
column displays "Yes" if document processing is active for the trigger; "No" if
document processing is suspended. An asterisk (*) appears next to the status if the
document processing state is temporary.)
6. In the Processing State list, do the following:
Select...
To...
Active
Suspended
7. If you want the state change to be permanent and maintained after the Integration
Server restarts, select the Apply Change Permanently check box. If you do not select this
check box, the Integration Server considers the change to be temporary.
8. If you want to apply the document processing change for this trigger to all the
servers in a cluster, select the Apply Change Across Cluster check box.
This check box appears only if the current Integration Server belongs to a properly
congured cluster and is congured to synchronize trigger changes across the
cluster. For more information about conguring an Integration Server to synchronize
trigger management changes across a cluster, see "Cluster Synchronization for
webMethods Messaging Trigger Management" on page 768.
9. Click Save Changes.
Notes:
Integration Server will not suspend or resume document processing for the specied
webMethods messaging trigger if the trigger is locked by a user.
If Integration Server cannot suspend (or resume) document processing locally,
cluster synchronization cannot occur.
When you resume document processing, the Execution Threads Throttle determines the
maximum number of documents that can be processed in parallel.
In a ow service, you can suspend or resume document processing for an individual
webMethods messaging trigger by invoking the pub.trigger:suspendProcessing service or
the pub.trigger:resumeProcessing service, respectively. For more information about these
services, see the webMethods Integration Server Built-In Services Reference.
In a Java service, you can suspend or resume document retrieval by calling
com.wm.app.b2b.server.dispatcher.trigger.TriggerFacade.setProcessingSuspended().
For more information about this method, see the webMethods Integration Server Java
API Reference for the com.wm.app.b2b.server.dispatcher.trigger.TriggerFacade class.
765
Even Header
Managing webMethods Messaging Triggers
When Integration Server uses a thread for document retrieval, the thread
retrieves documents for one trigger from the messaging provider. The thread
does not retrieve documents for all triggers. A thread used for document
processing addresses one document in a trigger queue. (Document processing
includes determining which trigger condition the document satises and
executing the associated service.)
766
Odd Header
Managing webMethods Messaging Triggers
767
Even Header
Managing webMethods Messaging Triggers
Trigger management changes made using the pub.trigger services can also be
applied across a cluster.
Integration Servers that belong to the cluster but are not in this list will not
be updated during cluster synchronization.
768
Odd Header
Managing webMethods Messaging Triggers
Integration Server executing the remote invoke displays the following journal log
messages to indicate the status of the cluster synchronization aempt.
If synchronization...
Succeeds
Succeeds for
some servers,
but fails for
others
The server log displays the message for each member of the
cluster that was not successfully updated:
[ISS.0098.0107E] Error occurred during cluster invoke:
Alias = remoteAliasName ; Service = serviceName ;
Exception = exceptionName
769
Even Header
Managing webMethods Messaging Triggers
The Cluster View page appears only if the current Integration Server belongs
to a properly congured cluster and the server is congured to synchronize
trigger changes across the cluster.
To log on to a remote server in the cluster, click the server alias in the
Remote Server Alias column. When connecting, the remote server prompts
you for user and password information. If you are connecting to the
remote server via HTTPS and the HTTPS port requires certicates, you
need to import a trusted certicate into the browser so that it can be
presented at connection time. If the trusted certicates are not imported
into the browser, when you try to connect to the remote server, you will
receive a message informing you that the page is not available. For more
information about client authentication and certicates, seeAuthenticating
Clients.
770
Odd Header
Managing webMethods Messaging Triggers
be set using Integration Server Administrator. These properties include trigger queue
capacity, rell level, and maximum execution threads.
The ability to change the capacity and rell level for a webMethods messaging trigger
is limited to webMethods messaging trigger that receive documents from the Broker.
The capacity for triggers that receive documents from Universal Messaging can be
changed only at design time and not at run time. To set the capacity for a webMethods
messaging trigger that receives documents from Universal Messaging, edit the trigger
in Designer.Furthermore, webMethods messaging triggers that receive documents from
Universal Messaging do not have a rell level.
To modify webMethods messaging trigger properties
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Click webMethods Messaging TriggerManagement.
4. Under IndividualwebMethods Messaging TriggerControls, click the name of the trigger for
which you want to edit properties.
5. Click Edit Trigger Properties.
6. Under Properties, do one or more of the following:
For this
property...
Specify...
Queue Capacity
Queue Refill
Level
771
Even Header
Managing webMethods Messaging Triggers
For this
property...
Specify...
for triggers that receive documents from Universal
Messaging.
Max Execution
Threads
For more information and guidelines for seing trigger queue capacity, rell level,
and maximum execution threads, see the webMethods Service Development Help
7. If you want to apply the property changes for this trigger to all the servers in a
cluster, select the Apply Change Across Cluster check box.
This check box appears only if the current Integration Server belongs to a properly
congured cluster and is congured to synchronize trigger changes across the
cluster. For more information about conguring an Integration Server to synchronize
trigger management changes across a cluster, see "Cluster Synchronization for
webMethods Messaging Trigger Management" on page 768.
8. Click Save Changes.
Note:
To...
false
772
Odd Header
Managing webMethods Messaging Triggers
Set to...
To...
request. Integration Server shuts down only after it makes all
the retry aempts or the trigger service executes successfully.
This is the default value.
If wa.server.trigger.interruptRetryOnShutdown is set
Important:
to "false" and a trigger is set to retry until successful, a
trigger service can enter into an innite retry situation.
If the transient error condition that causes the retry is
not resolved, Integration Server continually re-executes
the service at the specied retry interval. Because
you cannot disable a trigger during trigger service
execution and you cannot shut down the server during
trigger service execution, an innite retry situation can
cause Integration Server to become unresponsive to a
shutdown request. To escape an innite retry situation,
set the wa.server.trigger.interruptRetryOnShutdown
to "true". The change takes eect immediately.
true
Note:
773
Even Header
Managing webMethods Messaging Triggers
During a polling delay, the webMethods messaging trigger will not retrieve any new
documents. However, the webMethods messaging trigger will not use messaging
provider resources during the delay nor will the webMethods messaging trigger be
using Integration Server resources to poll the messaging provider.
To use a polling delay, you need to specify the following:
The length of the delay that should elapse before the trigger polls
for more messages for the webMethods messaging trigger. The
wa.server.control.triggerInputControl.delays parameter determines the length
of the delay. If you want to use a gradually increasing delay, you indicate
the incremental delays by specifying a comma-separated list of integers. The
wa.server.control.triggerInputControl.delays parameter is measured in
milliseconds and has a default value of: 500, 1000, 1500, 5000
The time interval at which Integration Server introduces the polling delay for an
inactive webMethods messaging trigger trigger. If the trigger remains inactive,
the same time interval helps determines when Integration Server increases
the delay between polling requests. The time interval is determined by the
wa.server.control.triggerInputControl.delayIncrementInterval parameter. This
parameter is measured in milliseconds and has a default value or 1000.
Integration Server uses the following formula to determine the polling delay for
retrieving documents from the Broker for a webMethods messaging trigger:
inactiveTime /interval = delay
Where:
inactiveTime is the number of milliseconds that the webMethods messaging trigger
has been inactive. That is, the inactiveTime is the number of milliseconds that have
elapsed since Integration Server last polled the Broker and the Broker had no
messages for the trigger.
interval is the value of the
wa.server.control.triggerInputControl.delayIncrementInterval.
774
Odd Header
Managing webMethods Messaging Triggers
delay is the result of the division rounded down to the nearest integer and
corresponds to an index position in the comma-separated list of delay lengths
specied for wa.server.control.triggerInputControl.delays.
Note:
Description
If the polling request does not return any documents for the
webMethods messaging trigger, Integration Server determines
the length of the polling delay using this equation:
500/10000 = 0.05
775
Even Header
Managing webMethods Messaging Triggers
Stage
Description
Integration Server rounds the calculated delay of 0.05
down to 0. The delay at the zero index position of the
wa.server.control.triggerInputControl.delays property is 500.
Integration Server will wait 500 milliseconds and then poll the
Broker for more documents.
776
Odd Header
Managing webMethods Messaging Triggers
Stage
Description
10
11
777
Even Header
Managing webMethods Messaging Triggers
on Integration Server 9.9 or later will correspond to a priority named object. However,
migrated serial triggers will still correspond to a shared named object. The trigger and
named object will be out of sync. To synchronize the migrated serial trigger and the
named object, you must do one of the following:
If you are using a fresh install of Universal Messaging 9.9 or later (that is, the
Universal Messaging server was not migrated), when you start Integration Server,
synchronize the publishable document types with the provider using Designer or
the built-in service pub.publish:syncToProvider. Synchronizing the publishable document
types causes Integration Server to reload the webMethods messaging triggers.
Integration Servercreates a priority named object for each serial trigger.
If you are using an installation of Universal Messaging 9.9 or later that was migrated
from an earlier version, you must delete and recreate the named object. For more
information about deleting and recreating a named object associated with a trigger,
see "Synchronizing the webMethods Messaging Trigger and Named Object on
Universal Messaging " on page 778.
To synchronize the webMethods messaging trigger and the named object on Universal Messaging
Do one of the following:
If the webMethods messaging trigger resides on the only Integration Server
connected to Universal Messaging and the Shared Client Prefix property for the
Universal Messagingconnection alias is set to No, start the trigger to delete and
recreate the corresponding named object. You can start a trigger by disabling and
then enabling the Universal Messagingconnection alias used by the trigger.
Note:
778
Odd Header
Managing webMethods Messaging Triggers
to Yes, you must use Universal Messaging Enterprise Manager to delete the
named object. Make sure to delete the named object when the named object is
fully drained and no new documents will be sent to it. You many need to quiesce
document publishers before deleting the named object. Then create the named
object for the trigger by disabling and then enabling the Universal Messaging
connection alias used by the trigger.
779
Even Header
780
Odd Header
Managing JMS Triggers
782
782
785
788
789
789
792
781
Even Header
Managing JMS Triggers
Introduction
Integration Server and Integration Server Administrator provide ways for managing
JMS triggers and the resources used by JMS triggers. Specically, you can use the
controls provided by Integration Server Administrator to:
Increase or decrease the maximum number of server threads used for JMS triggers.
Change the maximum execution threads for concurrent JMS triggers.
Enable, disable, or suspend one ore more JMS triggers.
Delay the frequency with which a JMS trigger polls for more messages.
The following sections provide more information about managing JMS triggers.
Note:
Description
Enabled
Disabled
Suspended
782
Odd Header
Managing JMS Triggers
Enable, disable, or suspend all the JMS triggers of a specic type (standard or SOAPJMS).
Enable, disable, or suspend specic JMS triggers.
You might want to change the state of all JMS triggers at once as a quick way of
freeing up server resources. This can be especially helpful in a situation in which
Integration Server is functioning under heavy load and additional resources are needed
immediately.
You might want to change the state for a specic JMS trigger in the following situations:
When a back-end system needs maintenance or is becoming unresponsive, you
might want to suspend JMS triggers that interact with the back-end system. When
the back-end system becomes available, you can enable the JMS triggers.
After suspending or disabling all JMS triggers, you might enable specic JMS
triggers. For example, if the server is functioning under an unusually heavy load,
you might rst suspend all JMS triggers and then gradually enable JMS triggers,
starting with the JMS triggers involved in key processes.
After Integration Server suspends a serial JMS trigger automatically because a fatal
error occurred during message processing. For information about conguring a JMS
trigger for fatal error handling, see webMethods Service Development Help.
After creating a WS endpoint trigger by creating a provider web service endpoint
alias for JMS.
Important: If you disable or suspend a SOAP-JMS trigger that acts as a listener for one
or more provider web service descriptors, Integration Server will not retrieve
any messages for those web service descriptors.
The following procedure explains how to use Integration Server Administrator to
change the state of all or individual JMS triggers.
To enable, disable, or suspend JMS triggers
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Click JMS Trigger Management.
4. If you want to change the state of all JMS triggers, do the following:
a. Under Individual JMS Trigger Controls, in the Enabled column, click edit all.
b. On the Settings > Messaging > JMS Trigger Management > Edit Triggers State screen, in
the New State list, select the state that you want to apply to all JMS triggers.
c. In the JMS Trigger Type list, select one of the following:
783
Even Header
Managing JMS Triggers
Select...
To...
Standard
SOAP
All
5. If you want to change the state of a specic JMS trigger, do the following:
a. Under Individual JMS Trigger Controls, in the row for the JMS trigger that you
want to enable, disable, or suspend, click the text in the Enabled column
b. On the Settings > Messaging > JMS Trigger Management > Edit Triggers State screen, in
the New State list, select the state that you want to apply to this JMS trigger.
6. Click Save Changes.
Notes:
If you want to disable a JMS trigger, rst suspend the JMS trigger and wait for all
the processing threads complete. Then, disable the JMS trigger. You can view the
number of threads currently used by a JMS trigger on the Settings > Messaging > JMS
Trigger Management screen.
When you disable a JMS trigger, Integration Server does the following:
If the JMS trigger is waiting before making a retry aempt, Integration Server
interrupts processing for the JMS trigger.
If the JMS trigger is currently processing messages, Integration Server waits
a specied amount of time before forcing the JMS trigger to stop processing
messages. If it does not complete in the alloed time, Integration Server stops
the message consumer used to receive messages for the JMS trigger and closes
the JMS session. At this point the server thread for the JMS trigger continues to
run to completion. However, the JMS trigger will not be able to acknowledge the
message when processing completes. If the delivery mode of the message is set to
persistent, this can lead to duplicate messages.
The time Integration Server waits between the request to disable
the JMS trigger and forcing the trigger to stop is specied by the
wa.server.jms.trigger.stopRequestTimeout property.
Because administered objects, like destinations, are congured outside of Integration
Server, disabling a JMS trigger has no impact on the subscription.
If a JMS trigger is processing messages at the time it is suspended, the JMS trigger
will complete processing of those messages. The JMS trigger also acknowledges the
messages to the JMS provider.
784
Odd Header
Managing JMS Triggers
You can use built-in services to enable, disable, and suspend one or more triggers.
For information about the pub.trigger:disableJMSTriggers, pub.trigger:enableJMSTriggers, and
pub.trigger:suspendJMSTriggers services, see the webMethods Integration Server Built-In
Services Reference.
785
Even Header
Managing JMS Triggers
used to receive and process messages for each JMS trigger. The Current Threads
column displays Not Connected if Integration Server is not connected to a JMS
provider.
786
Odd Header
Managing JMS Triggers
787
Even Header
Managing JMS Triggers
use, a concurrent JMS trigger initially uses a single thread to retrieve and process
messages. When the number of successful consecutive requests for more messages
is equal to the specied threshold, the JMS trigger becomes multithreaded. The
maximum number of threads Integration Server can use for the JMS trigger is equal
to the value of the Max execution threads property plus one. (When a concurrent JMS
trigger is multithreaded, Integration Server dedicates a server thread to managing
the message consumer pool for the trigger.) The concurrent JMS trigger remains
multithreaded until the message consumers created by the threads time out. The
wa.server.jms.trigger.pooledConsumer.timeout property value determines when a
message consumer times out. When a consumer times out, the JMS trigger releases
the associated server thread. Eventually, when no messages are being received, the
concurrent JMS trigger returns to using a single thread.
To use a threshold to determine when a JMS trigger transitions
from being single threaded to multithreaded, set the
wa.server.jms.trigger.concurrent.consecutiveMessageThreshold server property to a
positive integer greater than 0 (zero). This property indicates the consecutive number
of successful requests for more messages from the JMS provider that the concurrent
JMS trigger must make before the trigger becomes multithreaded. For example, when
this property is set to 1000, a concurrent JMS trigger becomes multithreaded it makes
1000 consecutive successful requests for more messages from the JMS provider. The
default for this property is 0, which indicates that the use of a threshold for making a
concurrent JMS trigger multithreaded is disabled. When use of a threshold is disabled,
the concurrent JMS trigger will always be multithreaded when more than one message is
available for processing.
Note:
788
Odd Header
Managing JMS Triggers
Note:
Each service invocation on the reused session uses the same session ID. You
cannot reuse sessions with packages that require a unique session ID, such as
the SAP Adapter.
During a polling delay, the JMS trigger will not receive any messages. However, the JMS
trigger does not use resources from the JMS provider during the delay. If requests for
more messages are expensive for your chosen JMS provider, you might want to use a
polling delay to decrease the demands made by an inactive concurrent JMS trigger on
the JMS provider.
Conguring Integration Server to delay polling requests has minimal impact on the time
required to shut down Integration Server. As part of shut down, Integration Server shuts
down each JMS trigger. Integration Server can interrupt the extended delay to begin
shuing down the JMS trigger.
To use a polling delay, you need to specify the following:
The length of the delay that should elapse before the polling interval begins.
The wa.server.jms.trigger.extendedDelay.delays parameter determines the
length of the delay. If you want to use a gradually increasing delay, you indicate
the incremental delays by specifying a comma-separated list of integers. The
789
Even Header
Managing JMS Triggers
Description
If the
wa.server.jms.trigger.extendedDelay.delayIncrementInterval
parameter is greater than or equal to 1, the polling delay feature
is enabled. The JMS trigger begins to delay polling requests
by the amount of time specied by the rst integer in the
wa.server.jms.trigger.extendedDelay.delays parameter.
For example, suppose that
wa.server.jms.trigger.extendedDelay.delays = 1000, 2000, 3000.
When the JMS trigger becomes inactive, the JMS trigger
1. Waits 1000 milliseconds
2. Polls the JMS provider for more messages
When the
wa.server.jms.trigger.extendedDelay.delayIncrementInterval
parameter is set to 0, the polling delay feature is disabled.
Integration Server will not introduce a delay between polling
requests.
790
Odd Header
Managing JMS Triggers
Stage
Description
elapses, the JMS trigger begins to delay polling requests
by the amount of time specied by the second integer in
wa.server.jms.trigger.extendedDelay.delays.
For example, suppose that
wa.server.jms.trigger.extendedDelay.delayIncrementInterval,
which is measured in milliseconds, is set to 5000. The JMS trigger
polls for new messages at the frequency described in Stage
2 for 5000 milliseconds. After 5000 milliseconds elapse, the
JMS trigger begins using the second extended delay value. If
wa.server.jms.trigger.extendedDelay.delays = 1000, 2000, 3000,
the JMS trigger now waits 2000 millisecond before polling the
JMS provider for more messages.
791
Even Header
Managing JMS Triggers
792
Odd Header
Managing JMS Triggers
alias and acts as a listener for any provider web service descriptors to which the alias
is assigned. Typically, WS endpoint triggers are used with virtual services deployed to
webMethods Mediator.
Keep the following points in mind when working with WS endpoint triggers:
Integration Server uses the following naming convention when creating a WS
endpoint trigger: WS Endpoint Trigger: aliasName where aliasName is the provider
web service endpoint alias name.
Integration Server saves WS endpoint triggers to the following conguration
le: Integration Server_directory/instances/instance_name /cong/endpoints/
providerJMS.cnf.
The existence of the WS endpoint trigger is tied to the provider web service endpoint
alias. If you select WS Endpoint Trigger as the JMS trigger to use with a provider web
service endpoint alias, Integration Server creates the WS endpoint trigger a part of
creating the alias. If you delete the alias, Integration Server deletes the WS endpoint
trigger as well.
At the time it creates the WS endpoint trigger, Integration Server sets some default
properties, such as serial processing and the JMS connection alias. You can use
Integration Server Administrator to change the default values.
Note:
793
Even Header
Managing JMS Triggers
trigger properties and placeholders for other properties. You can use Integration Server
Administrator to change the default and placeholder values.
Keep the following guidelines in mind when editing a WS endpoint trigger:
The JMS connection alias you want Integration Server to use to obtain connections
to and receive messages from the JMS provider must already exist. Although a JMS
connection alias does not need to be enabled at the time you assign it to the WS
endpoint trigger, the JMS connection alias must be enabled for the WS endpoint
trigger to execute at run time.
The transaction type of the JMS connection alias determines whether or not the WS
endpoint trigger is transacted (that is, it receives and processes messages as part of a
transaction)
The destination to which the WS endpoint trigger subscribes must be a queue.
Only concurrent triggers can have a Max Execution Threads value greater than one.
To specify a Connection Count value greater than one, the following must be true:
The specied JMS connection alias must be congured to create a new
connection for each JMS trigger that uses that connection alias. For more
information, see "Allowing Multiple Connections for a JMS Connection Alias" on
page 288.
The WS endpoint trigger must be congured for concurrent processing.
To edit a WS endpoint trigger
1. Open the Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Click JMS Trigger Management.
4. Under Individual SOAP JMS Trigger Controls, select the WS endpoint trigger that you
want to edit.
5. On the Settings > Messaging > JMS Trigger Management > Detail > triggerName screen, click
Edit Trigger.
6. In the JMS Connection Alias list, select the JMS connection alias that you want the WS
endpoint trigger to use to receive messages from the JMS provider.
7. In the Destination Name eld, type the name of the queue from which the WS
endpoint trigger will receive messages.
8. Next to Processing Mode, select one of the following:
Select...
To...
Serial
794
Odd Header
Managing JMS Triggers
Select...
To...
Concurrent
9. If you selected concurrent processing, in the Max execution threads eld, specify the
maximum number of messages that Integration Server can process concurrently.
10. If you selected concurrent processing, in the Connection Count eld, specify
the number of connections you want the WS endpoint trigger to make to the
webMethods Broker.
Note:
The Connection Count value must be less than or equal to the Max Execution
Threads value.
795
Even Header
796
Odd Header
Using a Document History Database with Exactly-Once Processing
Overview .....................................................................................................................................
798
798
799
799
797
Even Header
Using a Document History Database with Exactly-Once Processing
Overview
The document history database maintains a record of guaranteed documents processed
by webMethods messaging triggers and persistent messages processed by JMS triggers.
The database keeps a document history only for triggers that specify that document
history should be used as part of duplicate detection. Integration Server adds entries
to the document history database when a trigger service begins executing and when it
executes to completion (whether it ends in success or failure).
For more information about exactly-once processing for webMethods messaging triggers
or JMS triggers, see webMethods Service Development Help.
You can also clear all expired entries from the database at any time. For more
information, see "Clearing Expired Entries from the Document History Database" on
page 798.
798
Odd Header
Using a Document History Database with Exactly-Once Processing
799
Even Header
800
Odd Header
Using Integration Server to Manage XA Transactions
802
807
810
801
Even Header
Using Integration Server to Manage XA Transactions
802
Odd Header
Using Integration Server to Manage XA Transactions
For Integration Server to store state information, the following conditions must be met:
The transaction involves multiple resources and all the resources are XA-enabled
(that is, the resources support the JTA and XA standards and keep persistent records
of transactions that have been prepared or heuristically commied).
The transaction is dened as an XA transaction. For example, if the transaction
involves the webMethods Adapter for JDBC, the transaction would be dened as an
XA transaction on the adapter's connections to the resources.
Note:
803
Even Header
Using Integration Server to Manage XA Transactions
If...
Description
XID
Global 2PC
State
804
Odd Header
Using Integration Server to Manage XA Transactions
Column
Description
interface described in the JTA standard, that mapping is shown
below.
State
Description
TR_PREPARE_BEGIN
STATUS_PREPARING
TR_PREPARE_RESOURCE
TR_PREPARE_RESOURCE_END
TR_PREPARE_END
STATUS_PREPARED
TR_COMMIT_BEGIN
STATUS_COMMITTING
TR_COMMIT_RESOURCE
TR_COMMIT_RESOURCE_END
TR_ROLLBACK_BEGIN
STATUS_ROLLING_BACK
TR_ROLLBACK_RESOURCE
TR_ROLLBACK_RESOURCE_END
TR_ROLLBACK_END
STATUS_ROLLED_BACK
TR_ROLLBACK_ONLY
MARKED_ROLLBACK
TR_FORGET_RESOURCE
TR_FORGET_RESOURCE_END
TR_COMPLETED
TR_RECOVERY
Integration Server is
trying to resolve the
transaction.
TR_UNDEFINED
STATUS_UNKNOWN
805
Even Header
Using Integration Server to Manage XA Transactions
Column
Description
Error
Message
Recovery
Action
Attempted
Note:
Refresh the page at intervals to make sure all uncompleted transactions are
listed. Suppose Integration Server tries to resolve an uncompleted transaction
but cannot; the transaction will not be listed while Integration Server is trying
to resolve it, but if you refresh the page later, the transaction will appear on
the list.
Description
XA
Resource
XID Exists?
Indicates...
Yes
No
Unknown
806
Odd Header
Using Integration Server to Manage XA Transactions
Column
Description
State
Current state of the transaction on the resource. The values are the
same as those in the Global 2PC State list. For a list of global 2PC
states, see the table in "About Unresolved XA Transactions" on
page 804.
Inferred
Status
State
Inferred Status
Yes
Any
Prepared, or
heuristic action
was taken
No
TR_ROLLBACK_
RESOURCE_END
Rolled back
No
TR_FORGET_
RESOURCE_END
Forgoen
No
Commied
807
Even Header
Using Integration Server to Manage XA Transactions
808
Odd Header
Using Integration Server to Manage XA Transactions
Make sure that there is enough free disk space on the Integration Server
machine to accommodate the initial sizes of the default document store,
the trigger document store, and the XA recovery store.
809
Even Header
Using Integration Server to Manage XA Transactions
3. In the XID column, click the XID for the transaction that you want to resolve. The
Integration Server Administrator displays detailed information about the resources
involved in the transaction. For a description of the information displayed for each
participating resource, see "Details for an Unresolved XA Transaction" on page
806.
4. If you want to delete the transaction, click the Delete Transaction link. Deleting the
transaction removes the transaction from the XA recovery store.
You might want to simply delete a transaction if you do not want to resolve a
transaction using Integration Server Administrator (for example, because you want
to resolve the transaction by working with the resources directly).
5. If you want to resolve the transaction using Integration Server Administrator, select
one of the following in the Desired Action column.
If you want to...
Select...
Commit
810
Odd Header
Using Integration Server to Manage XA Transactions
Select...
Roll back
Forget
Do nothing
Note:
The Desired Action column lists the possible actions for each resource, based
on the combination of the values for State and XID for the resource, and
selects the most logical action by default.
811
Even Header
812
Odd Header
Content Handlers
39 Content Handlers
How the Server Uses Content Handlers ...................................................................................
814
How the Server Chooses a Content Handler for an HTTP Request .........................................
814
How the Server Chooses a Content Handler for an FTP Request ............................................
814
814
819
820
813
Even Header
Content Handlers
To parse...
ContentHandler_CGI
text/html and
wa.server.default
ContentHandler is
set to false
814
Odd Header
Content Handlers
To parse...
Decodes an incoming input
stream and converts the
content to key/value pairs.
If the key already exists, the
value is added to a list in the
pipeline with the key key +list .
Writes the key/value pair to an
HTML table.
ContentHandler_Default
application/xwww-formurlencoded
text/html and
wa.server.default
ContentHandler is
set to true
ContentHandler_FlatFile
application/xwmatle
Flat le content.
This content handler does the
following:
Passes the contents of the at
le to the service specied in
815
Even Header
Content Handlers
To parse...
the submit method in an input
stream named data .
Returns data in an input
stream or a ByteArray called
return .
For information about using
this content-type header, see
Flat File Schema Developers Guide
ContentHandler_IDAT
application/xwmidatabin
ContentHandler_JSON
application/json
JSON content.
Integration Server supports
Note:
the application/json content
type only with the invoke and
rest directives.
The behavior of this
content handler is based
on the seing for the
wa.server.hp.jsonFormat
parameter.
When set to parsed, parses
JSON content into pipeline
variables automatically. You
can then use JSON to compose
pipelines and execute existing
services without calling
pub.json:jsonStreamToDocument.
When set to stream, adds
the request body to the
pipeline as jsonStream . The
816
Odd Header
Content Handlers
To parse...
pub.json:jsonStreamToDocument
service converts the jsonStream
into a document (IData object)
so you can use the elements
from jsonStream in a ow
service.
When set to bytes, passes
the incoming stream of JSON
content as a byte array named
jsonBytes .
For detailed
Note:
information about the
wa.server.hp.jsonFormat
parameter, see "Server
Conguration Parameters"
on page 851. For more
information about the
pub.json:jsonStreamToDocument
service, see webMethods
Integration Server Built-In
Services Reference.
ContentHandler_Multipart
multipart/
related
ContentHandler_RPC
application/xwmrpc
817
Even Header
Content Handlers
To parse...
Converts the data from an
input stream to a key/ value
pair.
Writes the values as RPC
encoded to the data stream.
ContentHandler_RPC2
application/xwmrpc2
ContentHandler_SOAP
text/xml
ContentHandler_XML
application/soap
SOAP messages.
application/soap
+xml
text/xml
XML
application/xml
XML
818
Odd Header
Content Handlers
Notes:
Other webMethods products and customer applications can register dierent
content handlers for any of these Content-Type headers, which might change the
behavior of Integration Server when Integration Server receives messages of that
type. For example, Trading Networks registers its own XML content handler for text/
xml. When this happens, Integration Server will use the Trading Networks content
handler to process incoming XML messages.
If the Content-Type header eld species a content type for which no content
handler has been registered, Integration Server uses the default content handler
(ContentHandler_Default), which treats the content as text/html.
If an FTP or FTPS port receives a le that does not have an extension, Integration
Server uses the default content handler (ContentHandler_Default), which treats the
content as text/html.
Integration Server does the following to select a content handler for an HTTP response:
1. Looks at the Content-Type header eld in the response header, and then uses the
contentHandler registered for that content type. This eld has a value only if the
application assigns one using the pub.flow:setResponseHeader service.
If the Content-Type header eld in the response header species an unsupported
content type, Integration Server uses text/html.
2. If content type is not specied in the response header, Integration Server looks at the
Accept header eld in the request header to determine content type, and then uses
the content handler registered for that content type.
3. If there is no Accept header eld in the request header, or if there is no content
handler for the content-type specied by the Accept header eld, Integration Server
uses the content handler that was used for the request.
819
Even Header
Content Handlers
By default, if the Accept header species a content type using a wildcard, Integration
Server will select the rst content handler registered for that major type (text,
application, multipart), as follows:
This Accept Header field...
text/*
XML
application/*
CGI
multipart/*
Multipart
To control which content handler Integration Server will use when a wildcard is
specied in the Accept header, you must use the wa.server.content.type.mappings
server conguration parameter. The syntax for this parameter is:
wa.server.content.type.mappings=<wildcard1 > <content-type1 >,<wildcard2 > <contenttype2 >,<wildcardN > <content-typeN >
For example, to associate text/* with text/xml and multipart/* with multipart/
related, specify the parameter as follows:
wa.server.content.type.mappings=text/* text/xml,multipart/* multipart/related
The Accept header might contain multiple content types with parameters indicating an
order of preference. Integration Server will aempt to respond with the "most preferred"
content type as dened by RFC 2616, section 14.
Integration Server supports the Accept header eld in HTTP request headers if the
wa.server.hp.useAcceptHeader conguration parameter is set to true. The default
seing for this parameter is true.
When creating a response, Integration Server uses the content handler registered for the
content type in the lib/mime.types le.
The Integration Server_directory/instances/instance_name /lib/mime.types le contains
the mappings of le extension to content type. You can edit the mappings with
Integration Server Administrator by selecting Settings > Resources > Mime types. For
more information about editing the mappings of the lib/mime.types le, see webMethods
Service Development Help.
820
Odd Header
Quiescing the Server for Maintenance
822
825
825
829
829
821
Even Header
Quiescing the Server for Maintenance
Overview
Quiescing an Integration Server temporarily disables access to the server so you can
perform maintenance tasks while the server is not connected to any external resources.
In quiesce mode, any requests that are already in progress are permied to nish, but
any new inbound requests to the server are blocked. Outbound connection aempts,
such as connections to JDBC pools or connections through LDAP or a central user
directory, remain open.
822
Odd Header
Quiescing the Server for Maintenance
dependent services reside. If you do not specify a wait time, Integration Server
disables packages immediately.
Scheduled user tasks.Integration Server pauses the scheduler, permits the completion
of any scheduled user tasks that are already running, and suspends any scheduled
user tasks that have not yet started. If a running user task does not complete
before its dependent services are disabled, the task will end in error because of the
unresolved dependencies.
Guaranteed delivery.Integration Server shuts down the inbound and outbound
guaranteed delivery Job Managers and stops both inbound and outbound
guaranteed delivery of documents. For outbound delivery, the server sets the wa
property wa.tx.disabled to True to disable the use of guaranteed delivery for
outbound requests.
Note:
Because the server forcefully shuts down the inbound and outbound Job
Managers when entering quiesce mode, in-process transactions may fail.
Avoid submiing any transactions for processing as the server enters
quiesce mode.
823
Even Header
Quiescing the Server for Maintenance
Quiesce the Enterprise Gateway Server and the Internal Server at the same time.
Disable the Enterprise Gateway registration port on the server that is not being
put into quiesce mode.
For more information about webMethods Enterprise Gateway, see "Conguring
webMethods Enterprise Gateway " on page 493.
824
Odd Header
Quiescing the Server for Maintenance
Starts the guaranteed delivery inbound and outbound Job Managers, if you did
not start them while the server was in quiesce mode. The server also sets the wa
property wa.tx.disabled to False and resumes inbound and outbound guaranteed
delivery of documents.
The quiesce port must reside in either the WmRoot or the WmPublic package.
The port must also be enabled and have allow or allow+ privilege. If
the quiesce port is not specied, is suspended or disabled, or does not have
allow or allow+ privileges, Integration Server will not be able to enter
quiesce mode.
This list does not include the diagnostic port or any HTTP/HTTPS
ports created for Internal Servers in a webMethods Enterprise Gateway
conguration.
825
Even Header
Quiescing the Server for Maintenance
Note:
Before you can start an Integration Server in quiesce mode for the rst time,
you must specify the port through which the server will enter and exit quiesce
mode. For more information, see Specifying the Quiesce Port.
Note:
826
Odd Header
Quiescing the Server for Maintenance
startup.bat
For UNIX:
startup.sh
When you open the Integration Server Administrator, a message displays to indicate
that the server is running in quiesce mode.
Note:
The Enter Quiesce Mode link is available only when Integration Server is in
active mode.
3. When you are prompted to conrm that you want the server to switch to quiesce
mode, do the following:
a. If services are running and you want them to complete before the server starts
disabling packages, specify the number of minutes the server should wait. The
default is 0, which means the server will disable packages immediately.
b. Click OK.
4. If you are running Integration Server Administrator from a port other than the
quiesce port, stop Integration Server Administrator and start it using the quiesce
port.
827
Even Header
Quiescing the Server for Maintenance
Integration Server displays a message at the top of all pages in the Integration Server
Administrator indicating that the server is running in quiesce mode.
Note:
828
Odd Header
Quiescing the Server for Maintenance
The Exit Quiesce Mode link is available only when Integration Server is in
quiesce mode.
3. When you are prompted to conrm that you want the server to exit quiesce mode,
click OK.
After exiting quiesce mode, Integration Server Administrator displays a report that
indicates the state of various operations at the time the server exited quiesce mode.
829
Even Header
830
Odd Header
Diagnosing the Integration Server
832
832
833
836
837
838
831
Even Header
Diagnosing the Integration Server
Introduction
This chapter contains information for the server administrator who troubleshoots the
Integration Server or maintains diagnostic data from the server. Diagnostic data is
the congurational, operational, and logging information from the Integration Server.
This information is useful in situations where the server becomes unresponsive and
unrecoverable.
To facilitate the troubleshooting process, the Integration Server provides the following
features:
Diagnostic port. A special port that uses a dedicated thread pool.
Diagnostic utility. A special service that extracts important diagnostic data from the
Integration Server.
Safe mode switch. A method of starting the Integration Server in which the server does
not connect to any external resource.
Thread dump. A facility to generate a log containing information about currently
running threads and processes within Java Virtual Machine (JVM), to help diagnose
issues with Integration Server.
832
Odd Header
Diagnosing the Integration Server
reaches the maximum allowed. If the server reaches the maximum number, it waits until
processes complete and returns threads to the pool before beginning more processes.
You can also set the thread priority for the diagnostic thread pool. The diagnostic
thread priority determines the order of execution when the JVM receives requests from
dierent threads. The larger the number, the higher the priority. When the JVM receives
requests from dierent threads, it will run the thread with the higher priority. Therefore,
by assigning a higher priority to the threads in the diagnostic thread pool, you can take
advantage of the dedicated thread pool and improve access to the Integration Server
Administrator.
For more information about how to congure the diagnostic thread pool, see "Working
with Extended Conguration Seings" on page 130.
833
Even Header
Diagnosing the Integration Server
If there are problems creating the .zip le, such as insucient space in the le system, it
will return a text le. In the text le, the conguration and operation data are separated
into distinct sections for easier reading. Unlike the .zip le, the text le does not contain
logging data.
The .zip le contains a le in the cong directory called PackagesAndUpdates.txt. This
le lists the packages and package updates for the Integration Server.
You can use the maxLogSize parameter only when running the diagnostic
utility from a browser. You cannot limit the log size when you run the
diagnostic utility from Integration Server Administrator. For more
information, see "Running the Diagnostic Utility Service" on page 835.
834
Odd Header
Diagnosing the Integration Server
Note:
If you save or open the diagnostic data le, it opens or saves the le to
the client system. Integration Server automatically saves a copy to the
Integration Server_directory\instances\instance_name \logs directory of the
host machine where Integration Server is running.
where <hostname > is the IP address or name of the machine and <port > is the port
number where the Integration Server is running.
Note:
You can limit the byte size of the log les included in the .zip le by
adding the maxLogSize parameter to the URL as follows:
http://<hostname >:<port >/invoke/wm.server.admin/getDiagnosticData?maxLogSize
=number_of_bytes
3. Log on to the Integration Server with a username and password that has
administrator privileges.
4. You can choose to perform one of the following:
a. Open the diagnostic data le.
b. Save the diagnostic data le to the le system.
c.
Note:
If you save or open the diagnostic data le, it opens or saves the le to
the client system. Integration Server automatically saves a copy to the
Integration Server_directory\instances\instance_name \logs directory of the
host machine where Integration Server is running.
835
Even Header
Diagnosing the Integration Server
836
Odd Header
Diagnosing the Integration Server
You can add other switches when you start Integration Server in safe
mode. For information about other switches, see "Starting a Server Instance
from the Command Prompt" on page 55.
Command
Windows
startup.bat
UNIX
startup.sh
When you open the Integration Server Administrator, it will display a message
indicating that the server is running in safe mode.
837
Even Header
Diagnosing the Integration Server
838
Odd Header
Diagnosing the Integration Server
839
Even Header
Diagnosing the Integration Server
840
Odd Header
Integration Server Deployment Checklist
842
842
843
844
845
846
847
847
849
850
841
Even Header
Integration Server Deployment Checklist
Introduction
This appendix contains a useful checklist for seing up your webMethods Integration
Server. It describes the steps to perform to put an Integration Server into production.
The process is comprised of several stages. You should complete one stage before
advancing to the next.
Stage 1: Installation
Complete the following steps to install, run, and test the Integration Server.
Step
Action
1.
Done?
3.
842
Odd Header
Integration Server Deployment Checklist
Step
Action
Done?
Determine whether to use a JDK or JRE and specify the Java location.
If you intend to use Designer and/or Developer to develop and
compile Java services on Integration Server, specify the location
of the JDK. If you will not be using this installation of Integration
Server to compile Java services, you can specify the location of a
JRE or a JDK. For information about specifying the Java location,
see "Securing Communications with the Server" on page 401.
Action
1.
Done?
Use the Ports screen to specify the ports on which the server will
listen for requests.
If you will receive HTTP and/or HTTPS requests on multiple
ports, you may want to disable all but one port (the one you will
use to interact with the Integration Server Administrator) until
the server is ready for production.
For instructions on how to set up and disable ports, see "Seing
Up Aliases for Remote Integration Servers" on page 117.
2.
843
Even Header
Integration Server Deployment Checklist
Step
Action
Done?
Specify which URLs (if any) can bypass the proxy server.
For instructions on how to specify proxy servers and bypass lists,
see "Seing Up Aliases for Remote Integration Servers" on page
117.
3.
4.
5.
Set up logging.
For instructions, see the webMethods Audit Logging Guide and
"Seing Up the Server Log" on page 215.
Action
1.
Done?
844
Odd Header
Integration Server Deployment Checklist
Step
Action
Done?
Create ACLs.
Create the ACLs needed to meet your services' security
requirements and assign the groups you have created to these
ACLs. For instructions, see "Creating ACLs" on page 440.
4.
Action
1.
Done?
845
Even Header
Integration Server Deployment Checklist
Step
Action
Done?
Action
1.
Done?
Obtain the zip or jar le from the vendor, and then copy the zip
or jar le to a device or directory that your Integration Server can
access.
2.
846
Odd Header
Integration Server Deployment Checklist
Step
Action
Done?
Action
1.
2.
Done?
847
Even Header
Integration Server Deployment Checklist
Step
Action
1.
Check passwords.
Done?
where:
Server is the name of the Integration Server, and
Port is the port on which it listens for HTTP requests.
3.
4.
5.
848
Odd Header
Integration Server Deployment Checklist
Step
Action
Done?
6.
Restrict access.
Congure allow/deny lists to restrict inbound requests as
necessary.
7.
8.
9.
Action
Done?
1.
2.
3.
Test services.
849
Even Header
Integration Server Deployment Checklist
Step
Action
Done?
Go Live!
Action
1.
2.
Archive a copy of all the source les that went into producing the
services deployed on this server.
Done?
850
Odd Header
Server Configuration Parameters
852
watt.art. .......................................................................................................................................
852
watt.broker. .................................................................................................................................
853
watt.brokerCoder. .......................................................................................................................
853
watt.cachedirective. ....................................................................................................................
854
watt.cds. .....................................................................................................................................
854
watt.config. .................................................................................................................................
855
watt.core. ....................................................................................................................................
855
watt.debug. .................................................................................................................................
860
watt.debug2. ...............................................................................................................................
862
watt.infradc. ................................................................................................................................
862
watt.net. ......................................................................................................................................
863
watt.security. ...............................................................................................................................
874
watt.server. .................................................................................................................................
879
watt.ssl. .......................................................................................................................................
973
watt.ssh. .....................................................................................................................................
974
watt.wm.tnextdc. .........................................................................................................................
975
watt.tx. ........................................................................................................................................
975
watt.xslt. ......................................................................................................................................
976
851
Even Header
Server Configuration Parameters
Introduction
This appendix contains a description of the parameters you can specify
in the server conguration le (server.cnf), which is located in the
Integration Server_directory\instances\instance_name \cong directory. Typically you will
use the Settings > Extended screen from the Integration Server Administrator to update
this le, but there might be times when you need to edit the le directly using a text
editor. If you edit the le directly, you should rst shut down the Integration Server
before updating the le. After you make the changes, restart Integration Server.
Note:
If you are using the Settings > Extended screen to update the server
conguration le (server.cnf), server restart is not required unless otherwise
specied.
Integration Server uses default values for many of the parameters. If a parameter has a
default, it is listed with the description of the parameter. Many of these parameters are
set as you administer the Integration Server using the Integration Server Administrator.
watt.art.
watt.art.analysis
Species whether to enable logging to analyze adapter listeners and their linked
notications. When set to true, wm.art.dev.notication:analyzeListenerNotications
service and wm.art.dev.listener:analyzeListenerNodes service will log the data in the
server log le. Service wm.art.dev.listener:updateRegisteredNotications will update the
listener for missing listener notications. When set to false, no analysis is done and no
information is logged. The default is false.
watt.art.connection.nodeVersion
Species whether the adapter connection stores the password in the passman store and
the password handle in the connection node. When the wa.art.connection.nodeVersion
parameter is set to 1, the password is embedded in the adapter connection. When the
parameter is set to 2, the password handle is stored in the adapter connection. The
default is 2. Software AG recommends using the default value. Every time you set a
new value for this parameter, you must restart Integration Server or reload the WmART
package.
When the value of the wa.art.connection.nodeVersion parameter is 2, during runtimebased deployment with Deployer you must perform variable substitution for the
password eld to deploy the password to the target system.
watt.art.page.size
Species the maximum number of items to be displayed on an adapter's Connections
screen, Listeners screen, and Notications screen. The default is 10. For more
information about controlling pagination, see the adapter documentation.
852
Odd Header
Server Configuration Parameters
watt.art.synchronousNotification.selectExecuteUser
Species WmArt-based adapters that are to include a Run as User column in the Listener
Notications screen. With this column in place, you can assign a user to a notication.
Then, when the listener notication invokes a service, it runs as the specied user. You
can specify one or more adapters. If you specify multiple adapters, separate the names
with semicolons (;), for example:
wa.art.synchronousNotication.selectExecuteUser=WmMQAdapter;WmSAP
watt.art.service.pipeline.hidden
Species whether the adapter service pipeline is logged in the Integration Server log le.
When the wa.art.service.pipeline.hidden parameter is set to true, the service pipeline
is not logged in the Integration Server log le. When the parameter is set to false, the
service pipeline is logged in the Integration Server log le. The default is false.
watt.broker.
watt.broker.sync.enableBrokerSync
Indicates whether Integration Server synchronizes to the Broker client. If this property is
set to true (the default), then Integration Server synchronizes to the Broker client. If the
value is false, Integration Server does not sync to the Broker client and logs a warning
message indicating that the sync is turned o.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.broker.sync.forceDispatcherInit
Indicates whether Integration Server should reinitialize the Broker conguration. If this
value is set to true, Integration Server reinitializes the Broker conguration. Integration
Server reinitializes from the conguration le if available. If the conguration le is
unavailable, Integration Server reinitializes the Broker conguration with default values.
The default is false.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.brokerCoder.
watt.brokerCoder.verbose
Indicates whether Integration Server enables verbose logging for BrokerCoder. If the
value is set to true, Integration Server is enabled for BrokerCoder verbose logging. The
default is false.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
853
Even Header
Server Configuration Parameters
watt.cachedirective.
watt.cachedirective.exclude.packages
Species a comma-separated list of packages whose Dynamic Server Pages you want the
browser to cache. You can specify the packages as regular expressions. The asterisk (*)
is the only wildcard character allowed in the regular expression. By default, the value of
this parameter is empty, meaning none of the Dynamic Server Pages in the Integration
Server Administrator are cached.
Note:
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.cds.
watt.cds.skip.role.types
Controls whether Integration Server evaluates LDAP or database query roles in the
server. If LDAP or database query roles are not used for any ACL management in
Integration Server with Common Users enabled, evaluation of these roles might impact
Integration Server performance. In this case, you can disable the query roles evaluation
function to increase performance. For more information, see "Considerations for My
webMethods Server Query Roles" on page 563.
To disable LDAP query role evaluation, set
watt.cds.skip.role.types=wm_xt_ldapqueryprovider.
watt.cds.skip.role.types=wm_xt_dbrole.
To disable both query roles, enter the extended seing twice using both seings above.
For example, enter the following on the Edit Extended Settings page:
watt.cds.skip.role.types=wm_xt_ldapqueryprovider
watt.cds.skip.role.types=wm_xt_dbrole
To re-enable evaluation, delete either or both of the extended seings. If you change
the seing of this parameter, you must restart Integration Server for the changes to take
eect.
854
Odd Header
Server Configuration Parameters
watt.config.
watt.config.systemProperties
Species the list of additional system parameters whose name does not start with watt.
Each additional system property is separated by a comma. By default, the property
mail.imap.partialfetch is included as an additional system property with a default
value set to true.
watt.core.
watt.core.brokerTypeCoder.verbose
Enables or disables verbose logging for BrokerTypeCoder. If set to true, Integration
Server enables verbose logging for BrokerTypeCoder. The default is false.
Important: You must restart Integration Server after you modify the value of this
property.
watt.core.brokerCoder.wireFormat
Species the wire type Integration Server uses to encode and decode Broker messages.
The default is 3.
The following table lists the possible seings:
When set to...
Integration Server...
Drops the current reference from the Broker context only if the
tag information is invalid and continues further encoding.
855
Even Header
Server Configuration Parameters
Integration Server...
Note: If set to 2 or 3, Integration Server sets the "is_Surrogate" ag
to true to enhance Broker message encoding. By default, if
the "is_Surrogate" ag is set, Broker uses the BROKER_INT
wire type for encoding and decoding.
Important: You must restart Integration Server after you modify the value of this
property.
watt.core.datatype.patternMatcherPool.delayFill
Indicates whether Integration Server should initialize the pool with minimum paern
matcher pool objects specied. If set to false (the default) Integration Server initializes
the pool whenever it parses or validates a schema. If the delayFill is set to true,
Integration Serverdoes not initialize the pool.
Important: You must restart Integration Server after you modify the value of this
property.
watt.core.datatype.patternMatcherPool.maxSize
Species the maximum number of paern matcher pool objects Integration Server
allows in a pool. The default is 50.
watt.core.datatype.usejavaregex
Species whether Integration Server uses the Java regular expression compiler during
validation. When wa.core.datatype.usejavaregex is set to true, during XML validation,
Integration Server uses the Java regular expression compiler and Integration Server
performs paern matching as described by java.util.regex.paern. When set to false,
during XML validation, Integration Server uses the Perl regular expression compiler and
uses paern matching. The default is false.
Note:
watt.core.generatedTypeName.namespaceName.authority
Species the namespace element Integration Server uses to create a service URI. Specify
a String value that indicates the hostname. The default is localhost.
watt.core.generatedTypeName.localName.prefix
Species the prex Integration Server uses for a type name. This is appended to the type
name to form a local name. The default is __ (two underscores).
856
Odd Header
Server Configuration Parameters
watt.core.schema.createSchema.omitXSDAny
When generating the schema denition in a WSDL, indicates whether Integration Server
omits the xsd:any element in the complex type denition that corresponds to an open
document. A document variable is considered open when the Allow unspecified fields
property is set to true. When wa.core.schema.createSchema.omitXSDAny is set to
true, the xsd:any element is omied from the schema portion of the WSDL document
even if the document variable has the Allow unspecified fields property is set to true.
When wa.core.schema.createSchema.omitXSDAny is set to false, Integration Server
includes the xsd:any element in the complex type denition only if the corresponding
document variable has the Allow unspecified fields property is set to true. The default for
wa.core.schema.createSchema.omitXSDAny is true.
watt.core.schema.generateAllTypeDocuments
When generating an IS document type from an XML schema denition, indicates
whether or not Integration Server generates IS document types for all complex types
regardless of whether the types are referenced or not. When this property is set to true,
Integration Server generates an IS document type for every complex type denition
in the XML schema. When this property is set to false, Integration Server generates a
separate IS document type for a complex type only if the complex type is referenced or is
derived from a referenced complex type. The default is false.
Note:
watt.core.generatedTypeName.namespaceName.authority
Used to create a service URI, in the format - 'hp://' authority path '/' service-name,
authority stands for the value specied by this property. String value usually indicating
the hostname.
watt.core.schema.generateSubstitutionGroups
When generating an IS document type from an XML schema denition that contains a
substitution group, indicates whether the resulting document type contains an optional
element for each member of a substitution group. When this property is set to false,
the resulting document type contains a eld that corresponds to the head element in the
substitution group, but does not contain any elements for members of the substitution
group. When this property is set to true, the resulting document type contains a
eld that corresponds to the head element and elds that correspond to each member
element of the substitution group. All the elds, including the head element, are marked
as optional elements. The default is false.
watt.core.schema.validateIncomingXSD
This is an internal property. Do not modify.
watt.core.template.enableFilterHtml
Indicates whether Integration Server HTML encodes the output from a %value
Variable % tag in a DSP or output template. When this property is set to true, the
value of %value Variable % tags, including XML and JavaScript, is HTML encoded.
Having Integration Server HTML encode the values helps prevent cross-site scripting
aacks. When this property is true, you can still indicate that you do not want
Integration Server to HTML encode the output of a %value Variable % tag by including
the encode(none) option (%value Variable encode(none)%). When this property is set to
webMethods Integration Server Administrators Guide Version 9.10
857
Even Header
Server Configuration Parameters
false, the values of %value Variable % tags are not encoded, and, as a result, DSP pages
watt.core.template.enableSecureUrlRedirection
For DSP pages, this parameter controls whether Integration Server performs secure URL
redirection. Internal DSP pages commonly use the variable names url and returnurl
with the %value% tag to indicate to Integration Server that URL redirection can occur
in the client. As a result, whether a DSP page is an internal DSP page or a custom DSP
page, when Integration Server encounters the variable name url or returnurl for a
%value% tag, it assumes that the value is meant for URL redirection.
When the wa.core.template.enableSecureUrlRedirection parameter is set to true,
Integration Server uses secure URL redirection. When performing secure URL
redirection, if the %value% tag uses the variable name url or returnurl, Integration
Server checks the URL to determine whether it is a relative path to a location within
Integration Server (e.g., ..\redirectedurl.dsp) or another value. If it is a relative path,
Integration Server considers a redirection to the URL to be safe, and as a result, takes no
action. However, for other values, Integration Server assumes the URL to be an external
URL (e.g., hp://example.com) and alters the output, even if the intent of the %value%
tag is not to redirect to the URL. Integration Server alters the URL so that if an aempt is
made to redirect to the external URL, the redirection goes to an error page. Integration
Server alters the URL by prepending the value error.dsp?data= to the output of the
%value% tag (e.g., error.dsp?data=hp://example.com).
Seing this parameter to false disables secure URL redirection and, as a result, might
put your applications at risk.
You should use the variable url or returnurl with the %value% tag only when you
want to redirect to an internal URL. If you have existing applications that use the
variable name url or returnurl, Software AG recommends that you update your
applications and do not use these variable names except for internal URL redirection.
If you do not want to change the variable names in existing applications, you can set
wa.core.template.enableSecureUrlRedirection parameter to false.
858
Odd Header
Server Configuration Parameters
watt.core.xsd.useGeneratedURIForCreateXSD
Indicates whether, while creating the XSD, Integration Server should use the nodes
path for the URI and the namespace name for the node and schema. If set to true,
Integration Server generates the URI based on the node's path. This URI is then used
webMethods Integration Server Administrators Guide Version 9.10
859
Even Header
Server Configuration Parameters
as the namespace name for the particular node or schema. If set to false (the default),
Integration Server sets the namespace to null.
watt.core.xsd.useGeneratedURIForNonRPC
Species whether Integration Server should use the URI generated for the message as
the namespace name for the WSDL message. If set to true (the default), Integration
Server uses the URI generated for the message as the namespace name for the WSDL
message only if the style is non-RPC. If set to false, Integration Server sets the
namespace to null.
watt.debug.
watt.debug.layout
Species the format of messages wrien to the server's log le and to the Logs > Server
screen. You can specify one of the following formats:
new
This format corresponds to the message format used in Integration Server prior
to version 7.1. Use this format if you need to maintain backward compatibility
with the previous message format. For example, you might have wrien code to
process messages wrien to the server log.
When you select legacy as the message layout, messages will appear in the
following format:
TimeStamp [ComponentID .00SubComponentID .MessageKeyMessageType ]
MessageText
2007-07-31 10:39:59 EDT [ISS.0025.0006I] License Manager started
This is the default.
watt.debug.level
Sets level of debugging information wrien to the server's log le and the Logs > Server
screen. The default is Info.
Specify...
To display...
No messages.
860
Odd Header
Server Configuration Parameters
Specify...
To display...
Fatal
Error
Warn
Info
Debug
Trace
Note:
You can also set the value of the wa.debug.level property by seing the
logging level for the Default facility on the Settings > Logging > View Server
Logger Details screen. For more information about conguring logging, see
"Specifying Amount and Type of Information to Include in the Server Log"
on page 217.
Prior to Integration Server 7.1, Integration Server used a number-based system to set
the level of debug information wrien to the server log. Integration Server maintains
backward compatibility with this system. The table below describes the number-based
system.
Specify...
To record...
3, 4
5, 6, 7
8, 9, 10
861
Even Header
Server Configuration Parameters
watt.debug.logfile
Species the fully qualied path to the directory that contains the server log le. The
default is the Integration Server_directory\instances\instance_name \logs directory. For
complete information, see "Changing the Default Server Log Location" on page 220.
watt.debug.warnOnClasspathError
Species whether or not a warning message about a missing classpath entry will be
wrien to standard out. Set this parameter to true to write the message "Classpath entry
in ini.cnf not found: <classpath_entry_name >" to standard out. Set this parameter to false
if you do not want the message wrien. The default is false.
Because this message will be generated before any of the Integration Server logging
facilities are initialized, the warning message is wrien to standard out.
This conguration parameter does not appear in Extended Seings or in the server.cnf.
To have Integration Server write these warnings, you must pass this property to
Integration Server as a command line option. Add a line to Software AG_directory/
proles/IS_instance/conguration/custom_wrapper.conf, for example:
wrapper.java.additional.NNN =-Dwatt.debug.warnOnClasspathError=true
watt.debug2.
watt.debug2.facList
Species a comma-delimited list of enabled facilities for which the server logs
information. The facilities are numbered. The default is 999, which indicates the server
is to log information for all facilities. Specify 1000 to prohibit the server from logging
information for any service.
To view the names of facilities, use the Log Settings screen of the Integration Server
Administrator to enable and disable facilities for which you want the server to log
information
watt.debug2.logstringfile
Species the name (without the extension .txt) for the dictionary le that contains error
codes and facilities. The default is lib\logstr (English Version).
watt.infradc.
watt.infradc.artmonitor
This is an internal parameter. Do not modify.
watt.infradc.artpollinterval
This is an internal parameter. Do not modify.
862
Odd Header
Server Configuration Parameters
watt.net.
watt.net.clientKeepaliveTimeout
Controls how long (in seconds) a client keep alive connection can remain idle before
Integration Server closes it. The default is 180 seconds (3 minutes).
watt.net.defaultBufferSize
Species the maximum content length of an HTTP request that the WmTomcat
package will process. If the content length of a request exceeds the size congured
with wa.net.defaultBuerSize, the WmTomcat package does not process the request
and issues an error message. Specify the maximum number of bytes that you want the
WmTomcat package to accept. The default is 8096 bytes. Do not set this parameter to an
excessively high value because for every HTTP request, the WmTomcat package creates
an array of the wa.net.defaultBuerSize in memory.
watt.net.email.validateHost
Controls whether the Integration Server enforces IP access restrictions for e-mail
listeners. When dening an e-mail port, you can dene IP access restrictions that specify
the hosts that are allowed or denied access via the e-mail port. Set this property to true
if you want server to enforce the IP access restrictions for e-mail listeners or false if you
do not. The default is true.
watt.net.encodeToUpperCase
Species whether Integration Server should use uppercase leers when encoding
the characters in the request URL. When Integration Server processes a URL request,
it converts the characters outside of the ASCII set in the URL to encoded characters
by adding "%" followed by two hexadecimal digits. If this parameter is set to true,
Integration Server uses uppercase leers in the hexadecimal digits. For example, the
encoded value for "value1>4" will be "value1%3E4". When set to false, Integration
Server does not convert the leers to uppercase. For example, the encoded value for
"value1>4" will be "value1%3e4". Default is true.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ftp.ignoreErrors
Species, using a comma-separated list, any FTP command error codes that you want
the FTP client to ignore. For example, seing the property to "501, 505" causes the FTP
client to ignore error codes 501 and 505.
watt.net.ftp.noExtensionKey
Species the extension Integration Server should use to determine the MIME type of
the input les when the les have no extension. When invoking an Integration Server
service through FTP commands, Integration Server uses the specied extension. The
default is ftp_no_extension, which means that Integration Server cannot determine
the MIME type because there is no extension.
863
Even Header
Server Configuration Parameters
watt.net.ftpClientDataConnTimeout
Species the number of milliseconds that a built-in FTP service executing in active
mode (as specied by the transfertype input parameter) waits for a remote FTP server
to connect to it. If the connection is not established in the specied amount of time, an
exception is thrown. The default value is 30000 milliseconds (30 seconds).
watt.net.ftpClientTimeout
Species the length of time, measured in seconds, an FTP session can be idle before it is
removed from memory. The default is 600 seconds (10 minutes).
watt.net.ftpConnTimeout
Species the maximum number of milliseconds the FTP listener allows the connection
with the client to remain inactive. The default is 15 minutes.
watt.net.ftpDataConn
Species whether an Integration Server functioning as an FTP server allows multiple
concurrent connections and supports parallel downloads. When this parameter is set to
true, Integration Server allows parallel downloads from multiple FTP sessions. When
this parameter is set to false, Integration Server does not allow parallel downloads and
will reuse the same FTP session. The default is false.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ftpDataConnTimeout
Species the maximum number of milliseconds the FTP listener waits between
successive reads when performing a le upload. The default is 60000 milliseconds (60
seconds).
watt.net.ftpPassiveLocalAddr
Species the address to be sent by the PORT command. A host name or IP address can
be specied.
Note:
When running in passive mode, the FTP or FTPS port sends a PORT command to the
FTP or FTPS client. The PORT command species the address and port to which the
client should connect to create a data connection. If the FTP or FTPS port is behind a
NAT server, however, the address of the host on which the Integration Server runs is not
visible to the FTP or FTPS client. Consequently the PORT command does not contain the
information the client needs to connect to the server. To remedy this situation, you can
specify a value for the wa.net.ftpPassiveLocalAddr property.
Alternatively, when you congure an FTP or FTPS port (see "Adding an FTP Port"
on page 187 or "Adding an FTPS Port" on page 183), you can use the Passive Mode
Listen Address eld to specify the passive mode address for an individual FTP or
FTPS port. That way, you can specify a dierent passive mode address for each
FTP port. If an address is specied in the Passive Mode Listen Address eld and in the
864
Odd Header
Server Configuration Parameters
865
Even Header
Server Configuration Parameters
When this property is set to false (the default), the Integration Server ignores the user
specied on a client certicate and logs the user in with the information provided on the
userid/password prompt instead.
When this property is set to true, if the client certicate has been previously mapped
to an Integration Server user, the Integration Server will log the user in as the userid
specied in the client certicate. The Integration Server ignores the userid provided on
the userid/password prompt.
For example, suppose wa.net.ftpUseCertMap is set to false, and a certicate has been
previously mapped to user Alice. When a user provides a certicate for user Alice
and enters Alice's user name and password in response to the prompt, the Integration
Server will log the user in as Alice. However, if the user provides the same certicate,
but provides Bob's user name and password in response to the prompt, the Integration
Server will log the user in as Bob. In other words, the Integration Server ignores the
certicate map.
Note:
watt.net.ftpUseDefaultContentHdlr
Species how the FTP listening port on Integration Server should handle an incoming
request with an unrecognized le extension. When set to true, the FTP listening port
processes the incoming request using the default content handler, which treats the
content as text/html. When set to false, the FTP listening port returns an exception
when an incoming request with an unrecognized le extension is received. The default is
true.
watt.net.httpChunkSize
Sets the default chunk size when sending an HTTP request or response using TransferEncoding:Chunked. The default chunk size is 8192 bytes. The minimum chunk size is
500 bytes.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.httpPass
The default HTTP password that Integration Server must use when invoking a service as
a client.
watt.net.httpUser
Species the default authenticated HTTP user name that Integration Server will use
while acting as a client to invoke a service. For example, if Integration Server is invoking
webMethods Integration Server Administrators Guide Version 9.10
866
Odd Header
Server Configuration Parameters
the pub.client:http service without specifying the auth /user parameter, then Integration
Server uses the value of this property as the user name. There is no default value.
watt.net.http401.throwException
Species whether the pub.client:http service throws a NetException when receiving
a 401 error response or, instead, places the HTTP response header and body in
the pipeline. When wa.net.hp401.throwException is set to true, when the
pub.client:http service receives a 401 error, the service throws a NetException. When
wa.net.hp401.throwException is set to false, when the pub.client:http service receives a
401 error, the service suppresses the NetException and places the HTTP response header
and body, if one exists, into the header and body elds in the service output. The default
is false.
watt.net.http501-599.throwException
Species whether the pub.client:http service throws a ServiceException or returns response
headers and response body when receiving a 501 to 599 level response from a remote
HTTP server. When set to true, the pub.client:http service throws a ServiceException when
it receives a 501 to 599 level response from a remote HTTP server. When set to false, the
pub.client:http service does not throw a ServiceException when it receives a 501 to 599 level
response from a remote HTTP server. Instead, when the pub.client:http service returns a
status code in the 501 to 599 range, the service returns the status code, response headers,
and response body in the service output. The default is true.
Note:
When the remote HTTP server returns a response code of 500, the
pub.client:http service returns the status code, response headers, and
response body.
watt.net.jsse.client.enabledCipherSuiteList
Species, using a comma-separated list, the cipher suites used on JSSE sockets that
are used while making outbound HTTPS requests. To include all the cipher suites
supported by the JVM, set this parameter to default.
For example:
watt.net.jsse.client.enabledCipherSuiteList=
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_
CBC_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA256
watt.net.jsse.client.enabledCipherSuiteList=default
watt.net.jsse.client.enabledProtocols
Species the SSL protocol versions that Integration Server supports when acting as a
client making outbound requests. Specify a comma-separated list that includes one or
more of the following:
SSLv2Hello
867
Even Header
Server Configuration Parameters
SSLv3
TLSv1
TLSv1.1
TLSv1.2
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.jsse.server.enabledCipherSuiteList
Species, using a comma-separated list, the cipher suites used on Integration Server
ports that use JSSE and handle inbound requests.
To include all the cipher suites supported by the JVM, set this parameter to default.
For example:
watt.net.jsse.server.enabledCipherSuiteList=
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_
256_CBC_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA256
watt.net.jsse.server.enabledCipherSuiteList=default
Important: For changes to this property to take eect, you must start the port. If the
port is already started, you can restart it by disabling the port and then
enabling it.
watt.net.jsse.server.enabledProtocols
Species the SSL protocol versions that Integration Server supports when acting as a
server handling inbound requests. Specify a comma-separated list that includes one or
more of the following:
SSLv2Hello
SSLv3
TLSv1
TLSv1.1
TLSv1.2
868
Odd Header
Server Configuration Parameters
Note:
These values are case-sensitive. Specify the values exactly as shown. The
value of wa.net.jsse.server.enabledProtocols aects all HTTPS ports that
use JSSE for SSL. An HTTPS port uses JSSE when the Use JSSE parameter
for the port is set to Yes.
You can also congure the allowed protocols for use with a particular JSSE port by
specifying the allowed protocols in the HTTPS port record of the listeners.cnf le. For
more information, see "Conguring the Allowed Protocols for JSSE per Port" on page
213.
Note:
watt.net.localhost
Sets the host name of the machine from which you are using the Integration Server.
There is no default.
In some instances, such as when the Integration Server needs to identify itself to
other Integration Servers, the IP address of the machine hosting Integration Server
is required. In this case, Integration Server performs a reverse DNS lookup on the
specied host name and supplies the IP address of the machine in place of the
loopback address (127.0.0.1 in IPv4 or ::1 in IPv6), which is sometimes returned by
java.net.InetAddress.getLocalHost() in place of the actual IP address. In many cases, the
loopback address is not sucient and Integration Server needs the actual address. This
most commonly occurs when the IP address of the host is acquired dynamically from a
DHCP server, or when the host has more than one network interface card.
In most cases, you can resolve the IP address by modifying the C:\Windows
\system32\drivers\etc le (in Windows) or the etc/hosts or the etc/nsswitch.conf les
(in Linux and Unix). When you cannot modify these les, or if modifying them does not
correct the problem, set wa.net.localhost.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.maxClientKeepaliveConns
Sets the default number of client keep alive connections to retain for a given target
endpoint. If not specied, ve keep alive connections are retained.
watt.net.maxRedirects
Species the maximum number of HTTP redirects to allow before throwing an I/O
exception. The default is 5.
watt.net.maxRetires
Species the maximum number of retry aempts Integration Server can make for a
failed socket connection. The default is 1. A value of 0 indicates that Integration Server
should not retry a failed socket connection.
869
Even Header
Server Configuration Parameters
watt.net.overrideSystemProxyselector
Species whether the proxy selector of Integration Server will override the default JVM
system proxy selector when a Java service tries to connect to a remote server. When this
property is set to true, all network connections will honor the proxy aliases congured
using Integration Server Administrator. When this property is set to false, the default
JVM system proxy selector will be used. The default is false.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.primaryListener
This is an internal property. Do not modify.
watt.net.proxySkipList
Species a comma-separated list of domain names for which the Integration Server
should not use proxy servers. The default is localhost.
watt.net.proxy.fallbackToDirectConnection
Species whether Integration Server should route HTTP, HTTPS, FTP, SFTP, and
SOCKS requests directly to the target server when connections through all of the
specied proxy server aliases for the requested protocol fail. For example, if the request
uses HTTP, Integration Server routes the request through an HTTP proxy server alias.
If this property is set to false and the connection to the destination server through
proxy aliases fails, Integration Server issues an exception. If this property is set to true,
Integration Server aempts to make a direct connection with the destination server
specied in the request. The default is true.
Note:
If there are no proxy server aliases dened for Integration Server, the value
of wa.net.proxy.fallbackToDirectConnection is ignored. For information
about proxy server aliases, see "Specifying a Default Proxy Server Alias" on
page 127.
watt.net.proxy.useNonDefaultProxies
Species whether Integration Server makes outbound connection requests
using all enabled proxy server aliases if the outbound request does not specify
a proxy server alias and if a default proxy server alias is not specied. When the
wa.net.proxy.useNonDefaultProxies parameter is set to true, if the outbound
request does not specify a proxy server alias and there is no default proxy server
alias, Integration Server makes outbound requests using each enabled proxy
server alias until the request is sent successfully or all proxy servers have been
tried. If all proxy servers have been tried and the aempt to send the request fails
or if there are no proxy aliases specied, Integration Server either makes a direct
connection to the target server or throws an exception depending on the seings
specied for the wa.net.proxy.fallbackToDirectConnection parameter. When the
wa.net.proxy.useNonDefaultProxies parameter is set to false, if a default proxy server
alias is not specied, Integration Server sends the request to the remote server using a
direct connection. Integration Server does not aempt to make outbound requests using
the enabled proxy server aliases. The default is true.
870
Odd Header
Server Configuration Parameters
For more information about how Integration Server uses proxy servers, see "How
Integration Server Uses Proxy Servers" on page 121.
watt.net.retries
Species the number of times to retry a server that times out. This can be overridden by
the client. The default is 0.
watt.net.sftpSweepInterval
Species the frequency, measured in minutes, at which an SFTP sweeper executes. The
SFTP sweeper iterates through the SFTP sessions in memory and removes the sessions
that have exceeded their alloed idle timeout. By default, the SFTP sweeper executes
every 10 minutes.
watt.net.socketpool.sweeperInterval
Species the frequency, in seconds, at which the socket pool sweeper executes. The
socket pool sweeper sends a ping request to all webMethods Enterprise Gateway
connections and HTTP client connections. During a sweep it removes any invalid HTTP
client connections. By default, the sweeper executes every 60 seconds.
Note:
Note:
watt.net.socketProvider
Identies the Java class that implements the com.wm.net.SocketProviderIf interface for
secure socket communication. The default is com.wm.ext.iaik.IaikSecureSocket.
watt.net.ssl.client.cipherSuiteList
Species a list of CipherSuites for outbound SSL connections. When the default value
is set to default, Integration Server uses its default list of cipher suites. If you want to
specify non-default cipher suites, enter a comma-separated list of CipherSuite names. If
the property wa.net.ssl.client.strongcipheronly is set to true, and if there are any nonstrong CipherSuites in the list specied, those will be ignored, and a warning message
will be logged.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ssl.client.handshake.maxVersion
Species the maximum SSL protocol version that Integration Server supports when
Integration Server acts as a client and makes an outbound request. For example, if set
to tls (the default), the maximum version of SSL protocol supported by Integration
Server is TLS 1.0. If set to sslv3, the maximum version of SSL protocol supported by
Integration Server is SSL 3.0.
871
Even Header
Server Configuration Parameters
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ssl.client.handshake.minVersion
Species the minimum version of SSL protocol Integration Server supports when
Integration Server acts as a client and makes an outbound request. Set to:
sslv2 (the default) to specify SSL 2.0
tls to specify TLS 1.0
sslv3 to specify SSL 3.0
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ssl.client.hostnameverification
When Integration Server is acting as an HTTPS client, this parameter species whether
Integration Server should restrict outbound HTTPS connections only when a valid
hostname is found in the servers certicate.
When set to true, Integration Server veries if the hostname is present in the
servers certicate. If this verication fails, an error is logged and the connection
is aborted.
When set to false, Integration Server will bypass the hostname verication. This
is the default.
When set to log, Integration Server logs the debug message in the server log if
the hostname verication fails, but allows the connection to go through. If the
hostname verication succeeds, no log is generated.
watt.net.ssl.client.strongcipheronly
Species whether the Integration Server is to restrict outbound HTTPS connections
to use strong cipher suites only (128 bit session keys or higher). If you specify false
(the default), when Integration Server initiates a connection to another server, it will
aempt to negotiate a strong cipher suite, and if unsuccessful will fall back to using a
weak (64, 56, or 40 bit) cipher suite. If you specify true, when Integration Server initiates
a connection to another server, it will aempt to negotiate a strong cipher suite, and if
unsuccessful will disconnect rather than use a weak cipher suite.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ssl.client.useJSSE
Controls the use of JSSE for all of the outbound HTTPS connections from Integration
Server. Set this parameter to true to use JSSE for all of the outbound HTTPS
connections. Set this property to false to indicate that JSSE is not used for outbound
HTTPS connections. The default is false.
872
Odd Header
Server Configuration Parameters
Note:
When executing the pub.client:http service, the value of the useJSSE input
parameter override the value of the wa.net.ssl.client.useJSSE server
conguration property.
watt.net.ssl.server.cipherSuiteList
Species a list of CipherSuites for inbound SSL connections. When the default value
is set to default, Integration Server uses its default list of cipher suites. If you want to
specify non-default cipher suites, enter a comma-separated list of CipherSuite names.
If the property wa.net.ssl.server.strongcipheronly is set to true, and if there are any
non-strong CipherSuites in the list, those will be ignored and a warning message will be
logged.
Important: If you change the seing of this parameter, you must restart any
impacted ports for the changes to take eect. To restart a port, you can
disable and then enable the port. Reloading the package associated with
the port or restarting Integration Server also restarts a port.
watt.net.ssl.randomAlgorithm
Identies the random algorithm name used by Integration Server. The default value is
FIPS186_2usingSHA1.
Note:
This parameter is for use only when Integration Server is installed on HPUX.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.net.ssl.server.clientHandshakeTimeout
Species the number of milliseconds the server waits for a response from the client
during an SSL handshake before timing out. The default is 20000 milliseconds.
watt.net.ssl.server.strongcipheronly
Species whether the Integration Server is to restrict inbound HTTPS connections to
use strong cipher suites only (128 bit session keys or higher). If you specify false (the
default), when a client connects to the Integration Server, the server will aempt to
negotiate a strong cipher suite, and if unsuccessful will fall back to using a weak (64,
56, or 40 bit) cipher suite. If you specify true, when a client connects to the Integration
Server, the server will aempt to negotiate a strong cipher suite, and if unsuccessful will
disconnect rather than use a weak cipher suite.
Important: If you change the seing of this parameter, you must restart any
impacted ports for the changes to take eect. To restart a port, you can
disable and then enable the port. Reloading the package associated with
the port or restarting Integration Server also restarts a port.
873
Even Header
Server Configuration Parameters
watt.net.timeout
Species the number of seconds the server waits for an HTTP request to be fullled
before the request times out. To set Integration Server to wait indenitely for a response
from the target server, set this parameter to 0. The default is 300 (5 minutes).
Important: If you set wa.net.timeout to 0 and the target server does not respond
to the request, the Integration Server making the request cannot process
new requests due to thread pool exhaustion.
watt.net.useCookies
Species whether Integration Server accepts or denies cookies when communicating
with web server. Set to true to accept cookies; set to false (or null) to deny cookies. The
default is true.
watt.net.userAgent
Species the value the server uses in the HTTP User Agent request header when
it requests a web document from a web server. The default is Mozilla/4.0 [en]
(WinNT; I).
watt.net.webapp.cookies.useRelevantPath
Species how WmTomcat can create fewer cookies to prevent the web application from
logging out because of exceeding the browser cookie limit.
When this property is set to true, WmTomcat returns cookies that contain the URI
prex in the pathname, and more cookies are created. By default, WmTomcat returns
cookies that contain a URI prex in the pathname. As a result, WmTomcat creates a
separate cookie for each unique path. For applications that include pages across many
dierent paths, the result can be many cookies. If the application exceeds the cookie
limit of the browser that invoked it, the application is forced to log out.
But when this property is set to false (the default), WmTomcat does not include the
URI prex in the cookie, and fewer cookies are created.
For example, when wa.net.webapp.cookies.useRelevantPath is set to false, and you
visit the WmTomcat sites site/a.jsp -> site/bar/b.jsp -> site/bar/baz/c.jsp,
WmTomcat creates just one cookie: cookie 1) name=ssnid, path=/.
But when this property is set to true, WmTomcat creates the following cookies:
cookie 1) name=ssnid, path=/site/
cookie 2) name=ssnid, path=/site/bar/
cookie 3) name=ssnid, path=/site/bar/baz
watt.security.
watt.security.cert.wmChainVerifier.enforceExtensionsChecks
Species whether Integration Server is to validate (true) or not validate (false)
certicate extensions, if any, when the server performs certicate verication. The
default is false.
874
Odd Header
Server Configuration Parameters
watt.security.cert.wmChainVerifier.trustByDefault
In cases where no directory or a directory containing no certicates is specied for the
Trusted Certicates directory, species whether the server is to trust:
Certicates presented by peer servers (in response to this server's outbound
request)
S/MIME signatures
Species whether the server is to trust (true) or not trust (false) certicates and
S/MIME signatures in this situation. The default is true. For improved security,
Software AG recommends that you set this parameter to false and specify a Trusted
Certicates directory.
watt.security.decrypt.keyAlias
Species the alias of the default private key Integration Server uses for decryption.
watt.security.decrypt.keyStoreAlias
Species the alias of the keystore containing the default private key Integration Server
uses for decryption.
watt.security.fips.mode
Species whether the server is to support FIPS (Federal Information Processing
Standards). The default is false. If this parameter is set to true, the server initializes
FIPS as part of server startup. If FIPS initialization fails, the error is logged to server.log
and the server shuts down.
watt.security.KeystoreAndTruststore.defaultAliasCreated
This is an internal parameter. Do not modify.
watt.security.keyStore.supportedTypes
Species the keystore types supported by Integration Server. Each supported type is
separated by a comma. The default values are JKS and PKCS12.
To specify additional keystore types for Integration Server, you need to do the following:
1. Add the new keystore type to the list of values for this property.
2. Add the keystore provider, using one of the following methods:
a. Using the "Add Security Provider" link in Integration Server Administrator.
b. Modifying the "java.security" le of the JVM (you must use this method for a
PKCS11-type keystore).
Note:
watt.security.ope.AllowInternalPasswordAccess
Species whether the built-in services supporting OPE (outbound password encryption)
for ow services may access the Integration Server's internal passwords. If this
parameter is set to true, the OPE services may access the internal passwords. If it is set
to false, the OPE services are not allowed access to the internal passwords. By default,
this parameter is set to false.
webMethods Integration Server Administrators Guide Version 9.10
875
Even Header
Server Configuration Parameters
Internal passwords are passwords for use by the Integration Server itself to access secure
resources (e.g., remote Integration Servers, JDBC connection pools, LDAP servers,
etc.). Internal passwords are managed using the Integration Server Administrator and
are stored in the outbound password store. Flow services are also allowed to store
passwords in the outbound password store. However, by default, passwords stored by
a ow service are considered public, as opposed to internal. This distinction allows
ow services to use the outbound password store as a secure mechanism for storing and
retrieving passwords, but protects the Integration Server's internal passwords.
You can allow ow services to access internal passwords (i.e., store, retrieve, and
modify) by seing wa.security.ope.AllowInternalPasswordAccess to true. However,
this should be done only if you explicitly wish to have a ow service work with internal
passwords. Otherwise, it is recommended you deny access to internal passwords by
seing wa.security.ope.AllowInternalPasswordAccess to false.
watt.security.openid.logExceptions
Species whether Integration Server writes OpenID errors to the error log. When
the OpenID authentication process encounters errors, Integration Server returns
error and error_description variables in the body of the HTTP response. When
wa.security.openid.logExceptions is true, the default, Integration Server throws an
exception from the redirection endpoint service, causing the error to be wrien to the
error log. To stop Integration Server from writing OpenID errors to the error log, set
wa.security.openid.logExceptions to false.
watt.security.pub.getFile.checkReadAllowed
Species whether the pub.file:getFile service is to check the allowedReadPaths property in
the leAccessControl.cnf le to determine if the requested le can be retrieved from the
le system. The allowedReadPaths property contains a list of directories to which the
services in the pub.le folder have read permission.
When wa.security.pub.getFile.checkReadAllowed is set to true, the pub.file:getFile
service checks the allowedReadPaths property in the leAccessControl.cnf le. If the
requested le or le directory is listed, the pub.file:getFile service returns its contents to the
pipeline.
If wa.security.pub.getFile.checkReadAllowed is set to true and the le or le directory
is not listed in the allowedReadPaths property, the pub.file:getFile service throws an
exception.
When wa.security.pub.getFile.checkReadAllowed is set to false, the pub.file:getFile
service retrieves the specied le from the local le system without checking the
leAccessControl.cnf le.
Changes to this property take eect immediately. However, if you modify the
leAccessControl.cnf le, the WmPublic package must be reloaded before the changes
take eect.
For more information about the pub.file:getFile service and conguring the
leAccessControl.cnf le, see webMethods Integration Server Built-In Services Reference.
watt.security.session.forceReauthOnExpiration
Species whether Integration Server accepts or rejects a request that includes an expired
or invalid session. When set to true, Integration Server rejects any request that includes
876
Odd Header
Server Configuration Parameters
a cookie identifying an expired or invalid session, even if the request includes valid user
credentials. The rejection response directs the browser to clear its session identier and
to prompt the user for credentials. When set to false, Integration Server creates a new
session using the credentials in the cookie. The default value is false. A value of true
oers more secure behavior.
watt.security.sign.keyAlias
Species the alias of the default private key Integration Server uses to digitally sign
documents.
watt.security.sign.keyStoreAlias
Species the alias of the keystore containing the default private key Integration Server
uses to digitally sign documents.
watt.security.ssl.cacheClientSessions
Controls whether Integration Server reuses previous SSL session information (for
example, client certicates) for connections to the same client. When this property is set
to true, Integration Server caches and reuses SSL session information. For example, set
this property to true when there are repeated HTTPS requests from the same client. If
set to false (the default), Integration Server does not cache the sessions and creates a
new session for every SSL handshake.
Note:
watt.security.ssl.cachedClientSessions.sweeperInterval
Species, in milliseconds, how often Integration Server checks for and removes expired
SSL client sessions from its session cache. The default value is 600000 milliseconds (10
minutes).
watt.security.ssl.client.ignoreEmptyAuthoritiesList
Species whether an Integration Server client will send its CA certicate when it receives
an empty list of trusted authorities from the SSL server. If set to true, the Integration
Server client accepts empty trusted authorities lists from the SSL server and returns its
CA certicate. If set to false, the client requires that the trusted authorities list contains
a trusted authority before sending its CA certicate. The default is false.
watt.security.ssl.ignoreExpiredChains
Species whether the Integration Server ignores expired CA certicates in a certicate
chain it receives from an Internet resource (i.e., a web server, another Integration Server).
To have the Integration Server ignore expired CA certicates and allow SSL connections
when a certicate is expired, set the watt.security.ssl.ignoreExpiredChains
seing to true. Note that this is less secure than denying connections when a certicate
is expired. The default is false. For more information about this seing, see "
Integration Server as an SSL Server" on page 403.
watt.security.ssl.keyAlias
Species the alias of the Integration Server default SSL private key.
watt.security.ssl.keypurposeverification
When Integration Server is acting as an HTTPS client, this parameter species whether
the server should restrict outbound HTTPS connections only when a valid Extended
877
Even Header
Server Configuration Parameters
Key Purpose eld is present in the server's certicate. The content of the Key Purpose
eld, id-kp-serverAuth, should be in the IETF-mandated format, TLS WWW server
authentication for the verication to pass. Refer to the section titled Extended
Key Usage, in the document hp://www.ietf.org/rfc/rfc3280.txt for more information
regarding this format.
Three values are allowed for this wa property - true, false and log.
When set to true, it will verify the presence of the key purpose eld in the
server's certicate. If the key purpose verication fails, an error is logged and the
connection is aborted. If the verication succeeds, no error is logged.
When set to false, it will bypass the verication of the key purpose eld. The
default is false.
When set to log, it will log a debug message in the server log if the key purpose
eld verication fails.wa.security.ssl.keyStoreAlias Species the alias of the
Integration Server default SSL keystore.
watt.security.ssl.keyStoreAlias
Species the alias of the Integration Server default SSL keystore.
watt.security.trustStoreAlias
Species the alias for the truststore that Integration Server uses as the default truststore.
When Integration Server is acting as a server, it uses the default truststore to verify
the trust relation when no truststore is provided. For example, Integration Server uses
the default truststore when no truststore is provided for HTTPS/FTPS ports or for web
service security when there is no truststore at the provider web service endpoints alias.
When Integration Server is acting as a client, most of the components in Integration
Serverr (for example, HTTPS, FTPS, remote server alias) always use the default
truststore to verity the trust relation with the server. However, for web service security,
Integration Server only uses the default truststore when the user does not provide a
truststore in the consumer endpoint alias.
watt.security.trustStore.supportedTypes
Species the truststore types supported by Integration Server. Each supported type is
separated by a comma. The default value is JKS.
To specify additional truststore types for Integration Server, you need to do the
following:
1. Add the new truststore type to the list of values for this property.
2. Add the truststore provider, using one of the following methods:
a. Using the "Add Security Provider" link in Integration Server Administrator.
b. Modifying the "java.security" le of the JVM.
Note:
878
Odd Header
Server Configuration Parameters
watt.server.
watt.server
This is an internal parameter. Do not modify.
watt.server.acl.groupScanInterval
Species how often, in milliseconds, Integration Server checks for the availability of
the My webMethods Server database, if the database is unavailable at Integration
Server startup. While the database is unavailable, group information about users that
are managed by Central User Management is unavailable. As a result, users in those
groups do not have the access rights granted by their associated ACLs. While the My
webMethods Server database is unavailable, the Security > Access Control List screen
displays the aected groups with the sux @--@, for example FinanceGroup@--@.
When the My webMethods Server database becomes available, the groups regain their
access rights and Integration Server removes the @--@ sux. The default seing is 10,000
milliseconds (10 seconds).
watt.server.allowDirective
Restricts the use of specied directives to specied ports. For information on directives,
see "Controlling the Use of Directives" on page 433). The syntax for this property is:
port-string is a comma-delimited list of port numbers such as "5555,6666".
Suppose you want to allow all ports to use the default directive, but you want specic
ports to use the other directives, as described below:
Restrict use of the invoke directive to ports 5555 and 7777
Restrict use of the web directive to ports 6666 and 7777
Restrict use of the SOAP directive to port 7777
To obtain the behavior described above, you would specify the following:
watt.server.allowDirective=invoke,5555,7777,web,6666,7777,soap,7777
watt.server.audit.dbEncoding
Species the character set used by the audit logging database. The default is
UTF-8. The value for this property must be a standard Internet Assigned Numbers
Authority (IANA)-assigned character set name, as dened in the IANA Character Sets
specication.
Important: If you change the value of this property, you must restart Integration
Server for the change to take eect.
watt.server.audit.displayLogs.convertTime
Species how dates are displayed when you view the service, error, session, guaranteed
delivery, and security logs from the Integration Server Administrator. When this
property is set to false, time stamps are shown as GMT/UTC. When this property is set
to true (the default), time stamps are shown in the local time zone of the Integration
Server, and in the format specied by wa.server.dateStampFmt.
879
Even Header
Server Configuration Parameters
watt.server.auditDocIdField
Species a custom document ID value to identify documents in a standard way and to
provide uniform business context in the logging display. Some documents are logged
by webMethods Broker through WmLogUtil to the document database, and some are
logged by various components within the Integration Server, for example, if a service
fails, or if the number of retries in a trigger are exceeded. As a result, when viewing
the Document Monitor, some documents are logged with a numeric document ID, and
some are logged with lengthy hexadecimal strings as the document ID. The custom
document ID value that you specify will be used to create the document logging ID.
This value is used in place of the BrokerEvent.getEventId() value (the original document
ID behavior). The value must be in the form of a Broker unicode string, and values in
excess of 128 characters will be truncated. If this extended seing is missing, the original
document ID behavior applies. If this extended seing is present but undened (null),
the _env.uuid value is used if present; if no _env.uuid value is dened, the original
document ID behavior applies. For more information about document logging, see
Administering webMethods Broker.
watt.server.audit.failFastLoggers
Species the loggers that can enter into fail-fast mode when fail-fast mode is enabled for
the ISCoreAudit functional alias.
If wa.server.audit.failFastLoggers is empty, all synchronous audit loggers that
use a database destination will have fail-fast capability.
If wa.server.audit.failFastLoggers is not empty, only the synchronous audit
loggers with a database destination listed in wa.server.audit.failFastLoggers
will have fail-fast capability.
Note:
Fail-fast mode is enabled for the ISCoreAudit functional alias when the
Fail-Fast Mode Enabled option is set to Yes for the alias.
If you want to identify the specic audit loggers that can enter fail-fast mode, use the
wa.server.audit.failFastLoggers to specify a comma-separated list of the loggers that
can enter into fail-fast mode. For example, if you want the Service Logger and Session
Logger to be able to enter into fail-fast mode, set the property as follows:
watt.server.audit.failFastLoggers=Service Logger,Session Logger
You must specify the word "Logger" as part of the logger name. The property is casesensitive. You must specify the logger name as it appears on the Settings > Logging page
of Integration Server Administrator. Do not include a space before or after the comma
that separates logger names.
Only synchronous loggers can enter fail-fast mode. Integration Server ignores any
asynchronous loggers specied in the wa.server.audit.failFastLoggers property.
The default for wa.server.audit.failFastLoggers is empty. That is, the default is that all
synchronous audit loggers that use a database destination will have fail-fast capability
when the ISCoreAudit functional species Yes for the Fail-Fast Mode Enabled option.
watt.server.audit.logDir
Species the directory that contains the audit log les. You can specify the
full-path name, or a relative path in relation to the Integration Server. The
880
Odd Header
Server Configuration Parameters
directory must exist on the server. The default value is logs, which indicates the
Integration Server_directory\instances\instance_name \logs directory. If an invalid value is
specied, Integration Server uses the default value and writes an error to the server log
during startup.
Important: If you change the value of this property, you must restart Integration
Server for the change to take eect.
Note that wa.server.audit.logDir does not aect audit loggers that write to a database.
watt.server.audit.schemaName
Species the name of the database schema that Integration Server should use
while requesting metadata for the audit logging database. There is no default. If
wa.server.audit.schemaName is not set, Integration Server does not retrieve database
metadata and assumes the lengths of the WMSERVICECUSTOMFLDS.STRINGVALUE
and WMSERVICEACTIVITYLOG.FULLMESSAGE columns are 512 and 1024,
respectively.
Note:
Note:
If you change the value of this property, you must restart Integration
Server for the changes to take eect.
watt.server.audit.um.sessionPool.min
Species the minimum number of sessions in the Universal Messaging session
pool. Integration Server maintains a separate session pool for each Universal
Messaging connection alias used by an audit logger. The value of this parameter
must be an integer value greater than 0 and less than or equal to the value of
wa.server.audit.um.sessionPool.max. The default value is 2.
If you specify an invalid value, Integration Server logs a warning message at start up
and then uses the default value at runtime. However, Integration Server does not persist
the default value over the invalid value you specied.
Note:
If you change the value of this property, you must restart Integration
Server for the changes to take eect.
watt.server.audit.um.sessionPool.max
Species the maximum number of sessions in the Universal Messaging session pool.
Integration Server maintains a separate session pool for Universal Messaging connection
alias used by an audit logger. The value of this parameter must be an integer greater
than 0 and greater than or equal to the value of wa.server.audit.um.sessionPool.min.
The default value is 10.
If you specify an invalid value, Integration Server logs a warning message at start up
and then uses the default value at runtime. However, Integration Server does not persist
the default value over the invalid value you specied.
881
Even Header
Server Configuration Parameters
Note:
If you change the value of this property, you must restart Integration
Server for the changes to take eect.
watt.server.audit.um.sessionPool.retryInterval
Species the number of seconds for Integration Server to wait between aempts to reestablish a session on the Universal Messaging server after an audit logger enters queue
fail-fast mode. An audit logger enters queue fail-fast mode when it cannot establish a
connection to the Universal Messaging server that contains the audit logging queue.
Specify an integer greater than 0 (zero). The default is 30 seconds.
If you specify an invalid value, Integration Server uses the default value at runtime.
However, Integration Server does not persist the default value over the invalid value
you specied.
Note:
If you change the value of this property, you must restart Integration
Server for the changes to take eect.
watt.server.auth.cache.capacity
Species the number of user name and password combinations Integration Server stores
in the authentication cache. The default value is 250.
watt.server.auth.cache.enabled
Species whether the authentication cache is enabled. When set to true, the
authentication cache is enabled. The default value is true.
watt.server.auth.cache.timeout
Species the number of milliseconds that each cache entry can remain idle before
Integration Server removes it from the authentication cache. The default is 300000 (5
minutes).
Note:
Entries removed from the authentication cache are added again the next
time the credentials are authenticated successfully.
Note:
Once a user has changed the password and logged in successfully with
the new password, Integration Server removes the old password from the
authentication cache.
watt.server.auth.checkWithSession
When Integration Server receives an HTTP request that includes both an Authorization
header and a Cookie header with a session identier, this parameter species whether
Integration Server should check that the user identied in the Authorization header is
the owner of the session identied in the Cookie header. When set to true (the default),
Integration Server conrms that the user of the Authorization header is the owner of the
identied in the Cookie header. If the headers do not match, Integration Server returns
an HTTP 401 status code with the following message:
The user identied in the request does not own the requested session.
Important: If you set wa.server.auth.checkWithSession to false,Integration
Server allows HTTP requests to use mismatched credentials to access
882
Odd Header
Server Configuration Parameters
Integration Server adds this property to the sever.cnf le when you specify
a value for the MWS SAML Resolver URL eld on the Settings > Resources
page of Integration Server Administrator. Software AG recommends that
you use the MWS SAML Resolver URL eld to specify the My webMethods
Server SAML artifact resolver endpoint instead of changing the value of
the wa.server.auth.samlResolver property.
watt.server.auth.session.retainJaasSubject
Species whether Integration Server should retain authentication credentials as part of
a session. When set to true, Integration Server retains the authentication credentials
until the session expires. If set to false (the default), Integration Server deletes the
authentication credentials from the session after it handles the initial request from the
client.
watt.server.auth.skipForMediator
Species whether Integration Server validates requests from Mediator to the native
service. When this parameter is set to true, Integration Server skips authentication for
Mediator requests. When set to false (the default) Integration Server authenticates all
Mediator requests.
883
Even Header
Server Configuration Parameters
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.broker.producer.multiclient
Species the number of sessions for the default client. The default client is the Broker
client that the Integration Server uses to publish documents to the Broker and to retrieve
documents delivered to the default client. When you set this parameter to a value
greater than 1, the Integration Server creates a new multi-session, shared state Broker
client named clientPrex _DefaultClient_MultiPub, to use for publishing documents
to the Broker. Using a publishing client with multiple sessions can lead to increased
performance because it allows multiple threads to publish documents concurrently. The
default is 1 session.
watt.server.broker.replyConsumer.fetchSize
Species the number of reply documents that the Integration Server retrieves from the
Broker at one time. Increasing the reply documents the Integration Server retrieves for
each call can reduce the number of calls the Integration Server makes to the Broker.
The Integration Server maintains all reply documents in memory. You can reduce the
amount of memory used for reply documents by decreasing the number of documents
the Integration Server retrieves at one time. The default is 5 documents.
watt.server.broker.replyConsumer.multiclient
Species the number of sessions for the request/reply client. The request/reply client
is the Broker client that the Integration Server uses to send request documents to the
Broker and to retrieve reply documents from the Broker. Increasing the number of
sessions for the request/reply client can lead to improved performance because it allows
multiple requests and replies to be sent and retrieved concurrently. The default is 1
session.
watt.server.broker.replyConsumer.sweeperInterval
Species how often (in milliseconds) the Integration Server sweeps its internal mailbox
to remove expired replies to published requests. The length of the interval should
balance the amount of memory consumed by expired replies with retrieving the replies
for waiting requests. The Integration Server uses one background thread to age and
remove expired replies and uses multiple background threads to retrieve replies for
waiting requests. When the sweeper thread removes expired replies, it blocks the
threads aempting to retrieve replies. When then sweeper interval is too low, the
frequent execution of the sweeper thread can degrade performance because other
background threads cannot retrieve replies as often. A sweeper interval that is too high
can cause an increase in memory usage because expired replies consume memory for a
longer period of time. The default is 30000 milliseconds (30 seconds).
watt.server.brokerTransport.dur
Species the number of seconds of idle time that the Broker waits before sending a
keep-alive message to Integration Server. If Integration Server does not respond within
the amount of time specied by the wa.server.brokerTransport.max property, the
Broker sends another keep-alive message to Integration Server. If Integration Server
continues to be unresponsive, the Broker continues sending keep-alive messages until it
reaches the retry limit specied by the watt.server.brokerTransport.ret property.
If the Integration Server still has not responded to the keep-alive message, the Broker
webMethods Integration Server Administrators Guide Version 9.10
884
Odd Header
Server Configuration Parameters
885
Even Header
Server Configuration Parameters
watt.server.cache.gcMins
Species how often (in minutes) the server sweeps the cache to perform garbage
collection. The default is 60 minutes.
Note:
watt.server.cacheManager.connectTimeout
Species the number of milliseconds a cache manager will wait while trying to connect
to a server specied in the Terracoa Server Array URLs list. The default is 60000
milliseconds (i.e. 60 seconds).
Note:
watt.server.cachemanager.logsDirectory
Species the location where Ehcache will write log les. The default value of this folder
is Integration Server_directory\instances\instance_name \logs\tc-client-logs
watt.server.cachemanager.parallelThreads
Species the maximum number of threads that you want Integration Server to use when
initializing cache managers at startup.
If the server contains a large number of cache managers, distributed cache managers, or
a cache manager with a large number of caches, the registration process at start up could
take a long time. To avoid this, you can increase the number of threads used to initialize
cache managers by seing the wa.server.cachemanager.parallel.threads property.
If you want Integration Server to initialize cache managers sequentially, set the value to
1. If you want Integration Server to initialize cache managers in parallel, set the value to
2 or higher. Software AG recommends that you do not exceed 10. The default value is 5.
watt.server.centralUsers.shutdownOnError
Species whether the Central Users component shuts down when it encounters an error.
When this property is set to true, the Central User component shuts down when it
encounters an error. When the Central Users component shuts down, the Integration
Server must be restarted. When this property is set to false, the default, the Central
User component does not shut down when it encounters an error.
watt.server.checkAclsInternally
Species whether Integration Server performs ACL checking when a service is directly
invoked by a client or trigger and when it is invoked from other services. When set to
true, Integration Server always checks the Execute ACL for a service, regardless of the
value of the Enforce Execute ACL property for the service. When set to false, the value
886
Odd Header
Server Configuration Parameters
of the Enforce Execute ACL property determines whether or not Integration Server
performs ACL checking when a service executes. The default is false.
watt.server.classloader.pkgpriority
Species the order in which Integration Server scans packages when loading a class le
for which no package information is available. When no order is specied, Integration
Server aempts to load the class by scanning all packages in the Packages directory, one
by one. This could delay class loading. For example, when a trigger contains a reference
to a Java class, the trigger does not have any package information. Integration Server
scans all the packages for the specic class le in random order. Specifying the packages
that Integration Server should scan rst may reduce the time needed for class loading.
Use the wa.server.classloader.pkgpriority property to specify a comma delimited list of
the packages whose class loader should load rst. The syntax for this property is:
watt.server.classloader.pkgpriority=packageName, packageName
For more information about class loading, refer to "How the Server Loads Java Classes"
on page 40.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.clientTimeout
Species the amount of time (in minutes) after which an idle user session times out. The
default is 10.
watt.server.cluster.action.errorOnStartup
Species how Integration Server responds when an error at start up prevents Integration
Server from joining the cluster. Select one of the following:
Value
Description
shutdown
option Shut DownIntegration Server on the Settings > Clustering > Edit
screen.
standalone
887
Even Header
Server Configuration Parameters
Value
Description
cluster if Integration Server does not encounter any start up
errors that prevent the connection to the Terracoa Server Array.
This is the default value.
standalone corresponds to the Action on Startup Error parameter
888
Odd Header
Server Configuration Parameters
The value of the wa.server.cluster.aware parameter is tied to the value of the Clustering
Status eld on the Settings > Clustering screen in Integration Server Administrator.
Software AG recommends that you use Integration Server Administrator to enable or
disable clustering for an Integration Server instead of using the wa.server.cluster.aware
property.
This parameter is applicable only when you are using this Integration Server in a cluster.
Important: You must restart Integration Server for changes to take eect.
Note:
watt.server.cluster.name
Species the name of the cluster to which Integration Server belongs. If Integration
Server does not belong to a cluster, this parameter is empty.
Keep the following in mind when specifying the cluster name:
The cluster name cannot include any periods .. Integration Server converts any
periods in the name to underscores when you save the cluster conguration.
The cluster name cannot exceed 32 characters. If it does, Integration Server uses
the rst 20 characters of the supplied name and then a hash for the remaining
characters.
The wa.server.cluster.name parameter displays the value specied in the Cluster Name
parameter on the Settings > Clustering and Settings > Clustering >Edit screens of Integration
Server Administrator. Software AG recommends that you specify the cluster name using
the Cluster Name parameter on the Settings > Clustering > Edit screen instead of by changing
the value of the wa.server.cluster.name parameter.
889
Even Header
Server Configuration Parameters
Important: You must restart Integration Server for changes to take eect.
Note:
watt.server.cluster.SessTimeout
Species number of minutes that the server allows inactive session objects to remain in
the cluster store before removing them. The default is 60.
This parameter is applicable only when you are using webMethods Integration Server
Clustering. For more information, refer to the webMethods Integration Server Clustering
Guide.
watt.server.cluster.tsaURLs
A comma-separated list of the Terracoa Server Array URLs that the cluster uses for
distributed system caches. This parameter is applicable only when Integration Server
belongs to a cluster.
The wa.server.cluster.tsaURLs parameter is tied to Terracotta Server ArrayURLs
parameter on the Settings > Clustering and Settings >Clustering > Edit screen in Integration
Server Administrator. Software AG recommends that you specify the Terracoa
Server Array URLs using the Terracotta Server ArrayURLs parameter on the Settings >
Clustering > Edit screen instead of by changing the value of the wa.server.cluster.tsaURLs
parameter.
Important: You must restart Integration Server for changes to take eect.
Note:
watt.server.coder.bincoder.trycontextloaderfirst
Species whether Integration Server uses the context loader before using the class
loader for the currently executing thread when Integration Server encodes or decodes a
pipeline. If a referenced class belongs to a particular package, it may be faster to use the
context loader rst. The default is false.
watt.server.compile
Species the compiler command that Integration Server uses to compile Java services
that are developed using Designer, for example, javac -classpath {0} -d {1} {2}. This
compiler command is also used from the jcode utility. If this property is omied or
empty, the server uses the JVM internal Java compile tool to compile Java services.
Note:
890
Odd Header
Server Configuration Parameters
watt.server.compile.exitOnError
Species whether the jcode utility should stop processing after it fails. If set to true,
the jcode utility stops processing at the package on which it fails. If set to false (the
default), the jcode utility will continue processing despite the failure.
watt.server.compile.readFromStdErr
Species from where Integration Server reads compiler errors and warnings. The
Software AG webMethods platform includes javac, the Java tool used to compile Java
services in Designer and with the jcode utility. The javac compiler returns information
about any errors or warnings it encountered during compilation to standard error. If
you use the wa.server.compile property to have Integration Server use a dierent
compiler, and that compiler returns errors and warnings to standard out rather
than standard error, set wa.server.compile.readFromStdErr to false so that the
compiler errors and warnings will be read and displayed to the Java developer. Set
wa.server.compile.readFromStdErr to true for Integration Server to read compiler
errors and warnings from standard error. The default is true.
watt.server.compile.unicode
Species the compiler command that Integration Server uses to compile Java services
that are stored in Unicode encoding, for example, javac -encoding Unicode -classpath
{0} -d {1} {2}. Note that the seing javac -encoding Unicode -classpath {0} -d {1} {2}
works with the Oracle JDK compiler. This compiler command is also used from the
jcode utility. If this property is omied or empty, the server uses the JVM internal Java
compile tool to compile Java services.
watt.server.content.type.default
Species what content type to use for HTTP requests that do not contain a Content-Type
header. The default value is application/octet-stream.
Note:
To specify that Integration Server should use a dierent Content-Type, change the
value of wa.server.content.type.default to a dierent registered content type, such as
text/xml or text/html. If you set the value of wa.server.content.type.default to an
unregistered content type, Integration Server treats requests with a Content-Type header
as if they are text/html.
Changes to this property take eect immediately.
watt.server.content.type.mappings
Maps wildcards found in the Accept header eld of an HTTP client request to specic
content types. The Accept header eld species which content type or types the client
will accept in a response. Integration Server selects an outbound content handler based
on the allowed content type. The syntax for this parameter is:
wa.server.content.type.mappings=<wildcard > <content-type >,<wildcard > <contenttype >,<wildcard > <content-type > ...
Where:
891
Even Header
Server Configuration Parameters
Integration Server parses the Accept header and aempts to select a content type or
types as dened in the W3C Hypertext Transfer Protocol specication.
The default seing is text/* text/xml. If this parameter is not specied, and an Accept
header eld species a wildcard, Integration Server selects a content handler based on
the major content type specied, as shown below.
This Accept Header field...
text/*
XML
application/*
CGI
multipart/*
Multipart
892
Odd Header
Server Configuration Parameters
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.control.controlledDeliverToTriggers.pctMaxThreshold
Species the trigger queue threshold at which the Integration Server slows down the
delivery rate of locally published documents. This threshold is expressed as a percentage
of the trigger queue capacity. For example, if you specify 80, the Integration Server
decreases the rate at which it delivers locally published documents to a trigger queue
when that trigger queue reaches 80% capacity. Integration Server resumes delivering
documents at the normal rate when the trigger queue capacity drops below the specied
threshold. The default is 90.
watt.server.control.freeMemoryThreshold
Species the threshold (as a percentage) at which Integration Server starts to warn of
insucient free memory. When the percentage of available free memory falls below the
value of this property, Integration Server generates a warning in the server log. Valid
values are 0 to 100. The default is 5.
watt.server.control.maxPersist
Species the capacity of the outbound document store. Integration Server places
published documents in the outbound document store when the congured Broker is
unavailable. When the number of documents in the outbound document store equals
the capacity, the Integration Server blocks any threads executing services that publish
documents. The Integration Server resumes execution of blocked threads after the
Broker becomes available. Set this parameter to a whole number greater than 0. The
default is 500,000 documents.
watt.server.control.maxPublishOnSuccess
Species the maximum number of documents that the server can publish on success at
one time. For example, suppose that you set the maximum to 100 documents. ServiceA
publishes 10 documents on success. ServiceB publishes 90 documents on success.
ServiceC publishes 5 documents on success. ServiceA and ServiceB can publish documents
concurrently. However, if ServiceC begins to publish documents before ServiceA or
ServiceB completes, the Integration Server throws an exception for ServiceC because the
documents published by ServiceC exceed the maximum number of documents that can be
published on success at one time. If ServiceD publishes 125 documents on success and the
maximum is 100, ServiceD will receive an exception every time it executes. The default is
50,000 documents.
watt.server.control.memorySensorInterval
The time interval (in milliseconds) at which the Integration Server will check the
available free memory. The default is 300000 (5 minutes).
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.control.serverThreadThreshold
Species the threshold at which Integration Server starts to warn of insucient available
threads. When the percentage of available server threads goes below the value of this
property, Integration Server generates a journal log message indicating the current
webMethods Integration Server Administrators Guide Version 9.10
893
Even Header
Server Configuration Parameters
It is recommended that you use the Available Threads Warning Threshold eld
in the Edit Resource Seings page of the Integration Server Administrator
to set the threshold value. For more information about seing an available
threads warning threshold, see "Managing the Server Thread Pool" on
page 110.
watt.server.control.threadSensorInterval
Species the interval, measured in milliseconds, at which Integration Server will monitor
the thread usage. When the percentage of available server threads goes below the
threshold value specied in the wa.server.control.serverThreadThreshold property,
Integration Server will generate a journal log message to warn of insucient available
threads. The default is 2000 milliseconds.
watt.server.control.triggerInputControl.delayIncrementInterval
Species the interval used in conjunction with
wa.server.control.triggerInputControl.delays to determine the frequency with which
Integration Server polls a trigger client queue on the Broker if the queue was empty
when it was last polled. The default is 10000.
Note:
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
For more information about controlling the polling frequency for trigger client queues
on the Broker, see "Delaying Polling Requests for webMethods Messaging Triggers" on
page 774.
watt.server.control.triggerInputControl.delays
Species a comma-separated list of values specifying the number of milliseconds that
Integration Server delays the polling of a trigger client queue on the Broker. Integration
Server changes the delay based on how long the trigger client queues has been empty.
The default value is 500,1000,1500,5000.
Note:
894
Odd Header
Server Configuration Parameters
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
For more information about controlling the polling frequency for trigger client queues
on the Broker, see "Delaying Polling Requests for webMethods Messaging Triggers" on
page 774.
watt.server.cors.allowedOrigins
Species the URIs from which Integration Server is to allow cross-origin requests to
access resources.
As recommended by the CORS (Cross-Origin Resource Sharing) standard, Integration
Server uses the values of this parameter to validate the request. Integration Server checks
the URI specied in the Origin header of the CORS request. If it does not match a URI
specied by this parameter, Integration Server refuses the request and returns an HTTP
403 status code with the following message:
Specified Origin is not allowed
If the URI matches a value specied by this parameter, Integration Server sends a
response with the CORS Access-Control-Allow-Origin response header back to the requesting
user agent.
To dene this parameter, enter protocol ://hostname or protocol ://hostname :portnumber .
You can specify the IP address or the name of the machine for hostname . The values are
case-sensitive. Use a space or comma delimiter to specify multiple values. You can use
an asterisk (*) to indicate that any URI or origin is allowed.
Note:
Note:
watt.server.cors.enabled
Species whether Integration Server is to support CORS. If this parameter is set to true,
Integration Server allows cross-origin requests. The default value is false.
Note:
For more information about using CORS with Integration Server, see " Using CORS with
Integration Server " on page 137. For instructions on how to congure Integration Server
to allow cross-origin requests, see "Conguring Integration Server to Accept CORS
Requests" on page 137.
watt.server.cors.exposedHeaders
Species the values Integration Server can include with the CORS Access-Control-ExposeHeaders header in response to a CORS request. The CORS Access-Control-Expose-Headers
header denes the headers that can be exposed to the user agent. Examine your client-
895
Even Header
Server Configuration Parameters
side code to determine which response headers, if any, are retrieved by the client and
need to be exposed.
The value for this parameter is case-sensitive. Use a space or comma delimiter to specify
multiple values. For example:
watt.server.cors.exposedHeaders=<value1,value2,value3>
To dene this parameter, enter hostname :port or hostname . You can specify the IP
address or the name of the machine for hostname . The value for this parameter is casesensitive. If a value is not provided for this parameter, Integration Server does not
validate the Host header in the request. If a value is provided but does not match the Host
header in the request, Integration Server returns a 403 response with the message.
Note:
watt.server.cors.maxAge
Species the amount of time in seconds a user agent is allowed to cache the results of a
preight request. Integration Server uses this value in the CORS Access-Control-Max-Age
response header.
The default is -1, which indicates the results do not remain on the client. The value must
be an integer.
watt.server.cors.supportsCredentials
Species whether Integration Server is to set the CORS Access-Control-Allow-Credentials
header in response to all CORS requests.
When set to true, Integration Server sets the CORS Access-Control-Allow-Credentials header
to true in the response. When seing this parameter to true, keep the following points in
mind:
If the user credentials are valid and the user is authorized to access the resources,
Integration Server will execute a CORS simple requests with credentials. The
user agent will display the response to the user.
When Integration Server responds to a CORS preight request, the response
includes the Access-Control-Allow-Credentials header set to true so the user agent will
allow the request with credentials.
896
Odd Header
Server Configuration Parameters
Note:
When set to false (the default), Integration Server does not set the CORS Access-ControlAllow-Credentials header in the response. When seing this parameter to false, keep the
following points in mind:
If the user credentials are valid and the user is authorized to access the resources,
Integration Server will execute a CORS simple requests with credentials. The
user agent will not display the response to the user.
When Integration Server responds to a CORS preight request, the response does
not include the Access-Control-Allow-Credentials header, so the user agent will not
allow the request with credentials.
Note:
watt.server.cors.supportedHeaders
Species the request headers Integration Server will allow in cross-origin requests.
Integration Server uses the value to validate the CORS Access-Control-RequestHeader request header. If the header is not an exact match of a value specied by
wa.server.cors.supportedHeaders, Integration Server refuses the request and returns an
HTTP 403 status code with the following message:
Header not supported
If the header matches the value specied by this parameter, Integration Server responds
with the CORS header Access-Control-Allow-Headers populated with the value of this
parameter.
Examine your server-side code to determine which request headers, if any, are read by
your server application and need to be explicitly allowed.
The value for this parameter is case-sensitive. Use a space or comma to separate multiple
request headers. For example,
watt.server.cors.supportedHeaders=<header1,header2,header3>
897
Even Header
Server Configuration Parameters
If the header matches a value specied by this parameter, Integration Server responds
with the CORS header Access-Control-Allow-Headers populated with the value of this
parameter.
Use a space or comma to separate multiple HTTP methods. Possible values are
OPTIONS, HEAD, GET, POST, PUT, and DELETE. Integration Server accepts any of
these values by default.
watt.server.createPackage.ignorePattern
Species the le types you do not want Integration Server to include when publishing
packages. You can use this parameter to specify the le types to exclude when
publishing packages through replication, publishing packages to VCS using the Version
Control System Integration feature in Integration Server, and deploying packages. For
example, to prevent Integration Server from publishing .svn les, you would specify the
parameter as wa.server.createPackage.ignorePaern=.svn.
You can specify several le types using a semi-colon (;) as a delimiter, as follows:
watt.server.createPackage.ignorePattern=.svn;.java;.xml
Important: The WmVCS package, which provides the functionality for using the VCS
Integration Feature, is deprecated as of Integration Server version 9.9.
Software AG recommends that you use the local service development
feature (Local Version Control Integration) to check package elements
and their supporting les into and out of a version control system (VCS)
directly from Designer.
watt.server.cronMaxThreads
The maximum number of threads maintained for the cronjob-based threadpool, which
Integration Server uses for scheduled system tasks. If this maximum number is reached,
Integration Server waits until processes complete and return threads to the pool before
running more processes. The default is 5.
watt.server.cronMinThreads
The minimum number of threads maintained for the cronjob-based threadpool, which
Integration Server uses for scheduled system tasks. When Integration Server starts, the
thread pool initially contains this minimum number of threads. The default is 2.
watt.server.dateStampFmt
Species the date format to use in the log les. For the server log, this parameter
species how the date format is displayed in the server log le as well as in Integration
Server Administrator. For all other logs, such as the service, error, session, guaranteed
delivery, and security logs, this parameter species how the date format is displayed
only in Integration Server Administrator.
Note:
In order to use this parameter to specify the date format for the
service, error, session, guaranteed delivery, and security log les, the
898
Odd Header
Server Configuration Parameters
899
Even Header
Server Configuration Parameters
this property to false if the Integration Server does not share the ISInternal database
with other Integration Servers. The default is false.
Important: You must restart Integration Server for changes to take eect.
watt.server.db.testSQL
Species a SQL statement that can be used to test a database connection in a JDBC
connection pool. If the wa.server.db.testSQL parameter species a SQL statement,
when a caller requests a JDBC connection from a JDBC connection pool, Integration
Server executes the specied SQL statement against the database used with the
JDBC connection pool. If the SQL statement executes successfully, Integration Server
considers the database connection to be valid and returns the connection to the caller.
If the SQL statement does not execute successfully, Integration Server considers
the database connection to be invalid and removes it from the JDBC connection
pool. Integration Server than creates a new JDBC connection, places it in the JDBC
connection pool, and returns the new connection to the caller. If no value is specied
for wa.server.db.testSQL, Integration Server does not test database connections in the
connection pool when a caller requests a JDBC connection. There is no default value for
the parameter.
Note:
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.debugFIPS
Species whether Integration Server checks the FIPS encryption provider every
time a user is authenticated. When this parameter is set to true, every time a user is
authenticated, Integration Server checks the FIPS encryption provider by using the
provider to create a java.security.MessageDigest instance. The provider check writes the
name of the provider and the generated MessageDigest to standard error. When set to
false, Integration Server does not check the encryption provider every time a user is
authenticated. The default is false.
Important: You must restart Integration Server for changes to take eect.
watt.server.defaultContentHandler
Species to which content handlers Integration Server should register the text/html
content type. If set to true (the default), then Integration Server registers the text/html
content type with the ContentHandler_Default content handler. If set to false, then
Integration Server registers the text/html content type with the ContentHandler_CGI
content handler.
Important: You must restart Integration Server for changes to take eect.
900
Odd Header
Server Configuration Parameters
watt.server.defaultCountry
Species the default country, a component of a Java Locale, that Integration Server uses
when selecting strings from ResourceBundles to return to a client. Any ISO country code
is a valid value. The default value for this property is US. The default locale is en-US.
Important: You must restart Integration Server for changes to take eect.
watt.server.defaultLanguage
The default language, a component of a Java Locale, that Integration Server uses when
selecting strings from ResourceBundles to return to a client. Any ISO language code is a
valid value. The default value for this property is en. The default locale is en-US.
Important: You must restart Integration Server for changes to take eect.
watt.server.defaultPackage
Species the name of the default package. If this value is not set, Integration Server uses
WmRoot as the default package.
Note:
If you start Integration Server in safe mode, WmRoot becomes the default
value regardless of the value of wa.server.defaultPackage.
watt.server.deprecatedExceptionLogging
Species how the Integration Server logs service exceptions to the Integration Server
error log. Set this parameter to true for basic exception logging or false (the default
seing) for more detailed exception logging to help pinpoint the source of the exception.
When set
to...
true
Integration Server...
Logs the exception for each service in a nested stack as the
exception moves up the stack. If a parent service catches the
exception and does not rethrow it, the Integration Server still logs
the exception for each child service it passed on its way up the
stack.
Displays the stack trace for each service.
false
Logs the exception only once, at the top-level service, even if the
exception occurred at a nested service. If any service in the stack
catches the exception and does not rethrow it, the Integration
Server does not log the exception.
Note: The exception may be logged more than once if a service
in the call stack, or one of the core classes that the service
uses, explicitly logs the exception.
Displays, for logged exceptions, the stack trace of the
innermost service where the exception rst occurred.
901
Even Header
Server Configuration Parameters
When set
to...
Integration Server...
This stack trace often gets truncated from the log when
watt.server.deprecatedExceptionLogging is set to true.
Concatenates the error messages from each of the nested
exceptions.
If this parameter is set to true, the cause of the exception becomes more dicult to
trace. For this reason, Software AG recommends that you do not set this parameter to
true unless you are executing services that catch exceptions and do not rethrow them.
For more information about interpreting the error log and using the log to help debug
services, see "Debugging Service Exceptions Using the Error Log" on page 993.
watt.server.diagnostic.logperiod
Species how many hours of logs are returned when you run the diagnostic tool. The
default is 6. When this property is set to 0, the diagnostic utility does not return any log
les. It returns only the congurational and run-time data les.
watt.server.diagnostic.port
Species the diagnostic port through which you can access Integration Server when
it is unresponsive. During installation, Integration Server automatically creates the
diagnostic port at 9999. The default is 9999.
Note:
This seing overrides the Port seing on the on the Edit Diagnostic Port
Conguration screen.
If you are running multiple Integration Servers on the same host machine, the diagnostic
port on each server must have a unique port number. Set this parameter for each
Integration Server instance to use a unique port number. For more information about the
diagnostic port and running multiple Integration Server instances, see "Adding an HTTP
Diagnostic Port" on page 196.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect. To change the diagnostic port
without restarting Integration Server, edit the default diagnostic port on
the Security > Ports page of Integration Server Administrator. For more
information, see "Editing a Port" on page 210.
watt.server.diagnostic.tabular
Species whether Integration Server should generate diagnostic les in tabular format. If
set to false, Integration Server generates the les in non-tabular format. The default is
true.
watt.server.dispatcher.comms.brokerPing
Species how often (in milliseconds) triggers (which are Broker clients) should ping
the Broker. When there is a rewall between the Integration Server and the Broker, the
rewall closes the connection between a trigger and the Broker when the connection
becomes idle. To prevent connections from becoming idle, trigger Broker clients
902
Odd Header
Server Configuration Parameters
periodically ping the webMethods Broker. The default is 1800000 milliseconds (30
minutes).
watt.server.dispatcher.comms.connectionShareLimit
Species the number of BrokerClient objects that Integration
Server can use to communicate with Broker. Integration
Server passes this value to set the following Broker API:
COM.activesw.api.client.BrokerConnectionDescriptor.setConnectionShareLimit (int
value).
For more information, see webMethods Broker Java Client API Reference.
Each Broker connection represents a socket open to the Broker. While decreasing the
value of the property can increase throughput, it also increases the number of resources
and le descriptors Integration Server uses. Set this parameter to either 0 or a value
greater than 1. When set to 0, connection sharing is turned o and each Broker client
uses its own Broker connection. The default is 5.
Note:
Broker does not support a value of 1. If the value is set to 1, Broker issues
an exception.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.dispatcher.join.reaperDelay
Species how often (in milliseconds) that the Integration Server removes state
information for completed and expired joins. The default is 1800000 milliseconds (30
minutes).
watt.server.dispatcher.messageStore.redeliverOriginalMessage
Species whether Integration Server stores and redelivers the original message or a
modied message for subsequent trigger service execution when retry failure occurs
for a trigger service invoked by webMethods messaging trigger. When set to true,
Integration Server stores and redelivers the message originally sent to the webMethods
messaging trigger. When set to false, Integration Server stores the message as it is at the
point at which retry failure occurs. Integration Server delivers a modied message to the
webMethods messaging trigger for subsequent processing. The default is false.
watt.server.displayDirectories
Species whether a browser user can view directories that reside on Integration Server
without using Integration Server Administrator. When this parameter is set to true (the
default), users can view Integration Server directories. When this parameter is set to
false, no directories are displayed.
watt.server.email.charset
Species the default character set used for encoding portions that contain non-ASCII
characters in email messages. Email elds that contain non-ASCII characters are
subject, MIME headers, body text, and aachments. The pub.client:smtp service uses this
property. The default is utf-8. For more information about the pub.client:smtp service, see
webMethods Integration Server Built-In Services Reference.
903
Even Header
Server Configuration Parameters
watt.server.email.from
Species the email address the server presents as its From address when sending emails
about errors. By default, the server uses Integration-Server@localhost for the From
Address, where localhost is the name of the host on which the Integration Server is
running.
watt.server.email.processReplyEmails
Species whether Integration Server should process the reply emails that it receives
in its email port if the Subject line of the email contains the prex "Re:". Set the
wa.server.email.processReplyEmails property to true if you want Integration Server to
process reply emails that contain the prex "Re:" along with a valid service name in the
Subject line. If the property is set to false, Integration Server does not process the email
if the Subject line contains the prex "Re:". Instead, Integration Server generates a server
log message. The default is false.
watt.server.email.waitForServiceCompletion
Species whether Integration Server should wait for the email port to complete the
processing of a message before returning the thread used to retrieve the message to the
thread pool.
When retrieving and processing messages received by an email port, Integration
Server uses one thread to retrieve a message and a second thread to execute the service
that processes the message. By default, after using a thread to retrieve a message,
Integration Server returns it to the server thread pool, making it available to perform
other processing.
If the email port receives a large number of messages in a short period of time, the email
port might monopolize the server thread pool for retrieving and processing messages.
In addition, if the service that processes the messages executes slowly, it is possible that
the email port message processing will negatively aect the performance of Integration
Server.
To avoid this issue, you can limit the number of threads used to process messages
received by an email port by seing the wa.server.email.waitForServiceCompletion
property.
When the property is set to true, Integration Server does not return the thread used to
retrieve the message to the thread pool until after the service that processes the message
executes to completion. As a result, the maximum number of threads used to retrieve
and process messages for an email port is equal to 2 or twice the value of the Number of
threads if multithreading is turned on eld.
If the email port is for a POP3 email server, Integration Server can use up to
2 threads for retrieving and processing messages for the port (one thread to
retrieve a message received by the email port and one thread to execute the
service that processes the message).
If the email port is for an IMAP email server and multithreading is disabled,
Integration Server can use up to 2 threads for retrieving and processing messages
for the port (one thread to retrieve a message received by the email port and one
thread to execute the service that processes the message).
904
Odd Header
Server Configuration Parameters
If the email port is for an IMAP email server and multithreading is enabled,
Integration Server can use a number of threads equal to twice the value of the
Number of threads if multithreading is turned on eld for retrieving and processing
messages for the port. For example, if the value of the Number of threads if
multithreading is turned on eld is 5, Integration Server can use a maximum of
10 threads to retrieve and process messages for the email port (5 threads to
concurrently retrieve messages for the email port and another 5 threads to
process those messages).
When wa.server.email.waitForServiceCompletion is set to false, Integration Server
does not wait for the service that processes the message to execute to completion before
returning the thread used to retrieve the message to the thread pool.
The default is false.
Note:
watt.server.enableHotDeployment
This is an internal property. Do not modify.
watt.server.errorMail
Species the email address to which Integration Server sends messages about critical
server log entries. There is no default.
watt.server.event.audit.async
Species whether the event handlers for the audit event are invoked asynchronously or
synchronously. When this parameter is set to true, Integration Server invokes the event
handlers (services) that subscribe to audit events asynchronously. When this parameter
is set to false, Integration Server invokes the event handlers that subscribe to audit
events synchronously. The default is true.
watt.server.event.exception.async
Species whether the event handlers for the exception event, error event, or journal
event are invoked asynchronously or synchronously. When this parameter is set to
true, Integration Server invokes the event handlers (services) that subscribe to exception
events asynchronously. When this parameter is set to false, Integration Server invokes
the event handlers that subscribe to exception events synchronously. The default is true.
watt.server.event.gd.async
Species whether the event handlers for guaranteed delivery events (gdStart and
gdEnd) are invoked asynchronously or synchronously. When this parameter is set
to true, Integration Server invokes the event handlers (services) that subscribe to
guaranteed delivery events asynchronously. When this parameter is set to false,
Integration Server invokes the event handlers that subscribe to guaranteed delivery
events synchronously. The default is true.
watt.server.event.jmsDeliveryError.async
Species whether the event handlers for JMS delivery failure events are invoked
asynchronously or synchronously. When this parameter is set to true, Integration
Server invokes the event handlers (services) that subscribe to JMS delivery failure events
905
Even Header
Server Configuration Parameters
asynchronously. When this parameter is set to false, Integration Server invokes the
event handlers that subscribe to JMS delivery failure events synchronously. The default
is true.
watt.server.event.jmsRetrievalError.async
Species whether the event handlers for JMS retrieval failure events are invoked
asynchronously or synchronously. When this parameter is set to true, Integration
Server invokes the event handlers (services) that subscribe to JMS retrieval failure events
asynchronously. When this parameter is set to false, Integration Server invokes the
event handlers that subscribe to JMS retrieval failure events synchronously. The default
is true.
watt.server.event.nerv.subscribeService.user
Species the default user who will invoke the service specied in the
pub.event.nerv:subscribe built-in service when an event is received for a subscribed event
type. This user can be dened either internally or in an external directory but must
belong to an existing group that has appropriate ACL permissions to invoke the
specied service. Integration Server does not validate this user until the service specied
in pub.event.nerv:subscribe is executed.
It is not necessary to restart Integration Server after you change the value of this
parameter. Note, however, that the new value applies only to new subscriptions created
with pub.event.nerv:subscribe. Existing subscriptions will continue to use the previous value
of this parameter.
watt.server.event.replication.async
Species whether the event handlers for replication events are invoked asynchronously
or synchronously. When this parameter is set to true, Integration Server invokes the
event handlers (services) that subscribe to replication events asynchronously. When this
parameter is set to false, Integration Server invokes the event handlers that subscribe to
the replication events synchronously. The default is true.
watt.server.event.routing.runAsUser
Species the user who will invoke the service specied in the pub.event.routing:send and
pub.event.routing:subscribe built-in services. Integration Server uses the user specied in
this parameter only if no user is specied in the runAsUser input parameter of the
pub.event.routing:send and pub.event.routing:subscribe services. The default is Administrator.
This user can be dened either internally or in an external directory but must belong to
an existing group that has appropriate ACL permissions to invoke the specied service.
Integration Server does not validate this user until the service is executed.
The new value of the parameter applies to existing subscriptions as well as new
subscriptions created using pub.event.routing:subscribe.
watt.server.event.security.async
Species whether the event handler for security events is invoked asynchronously
or synchronously. When this parameter is set to true, Integration Server invokes the
event handlers (services) that subscribe to security events asynchronously. When this
parameter is set to false, Integration Server invokes the event handlers that subscribe to
security events synchronously. The default is true.
906
Odd Header
Server Configuration Parameters
watt.server.event.session.async
Species whether the event handlers for session events (sessionStart, sessionEnd, and
sessionExpire) are invoked asynchronously or synchronously. When this parameter is
set to true, Integration Server invokes the event handlers (services) that subscribe to
session events asynchronously. When this parameter is set to false, Integration Server
invokes the event handlers that subscribe to session events synchronously. The default is
true.
watt.server.event.stat.async
Species whether the event handlers for stat (statistics) events are invoked
asynchronously or synchronously. When this parameter is set to true, Integration
Server invokes the event handlers (services) that subscribe to the statistics events
asynchronously. When this parameter is set to false, Integration Server invokes the
event handlers that subscribe to the statistics events synchronously. The default is true.
watt.server.event.tx.async
Species whether the event handlers for the transaction events (txStart and txEnd)
are invoked asynchronously or synchronously. When this parameter is set to true,
Integration Server invokes the event handlers (services) that subscribe to transaction
events asynchronously. When this parameter is set to false, Integration Server invokes
the event handlers that subscribe to transaction events synchronously. The default is
true.
watt.server.eventHandlerCreateSession
Controls whether Integration Server should create a session for the service that is
invoked by the Event Manager. When set to true, Integration Server creates a session
and associates it with the invoked service. When set to false, Integration Server does
not create a session for the service that is invoked by the Event Manager. The default is
false.
Note:
When set to true, specify a timeout value for the session using the
wa.server.eventHandlerSessionTimeout parameter.
watt.server.eventHandlerSessionTimeout
When wa.server.eventHandlerCreateSession is set to true,
wa.server.eventHandlerSessionTimeout species the timeout value for sessions created
by Integration Server for services that are invoked by the Event Manager. The default
value is 60000 milliseconds.
watt.server.eventMgr.maxThreads
Species the maximum number of threads that you want Integration Server to use for
the Event Manager thread pool. The default is 5.
Integration Server veries that this value is greater than
wa.server.eventMgr.minThreads. If the value of wa.server.eventMgr.maxThreads
is less than the value of wa.server.eventMgr.minThreads, Integration
Server sets the value of wa.server.eventMgr.maxThreads to one more than
wa.server.eventMgr.minThreads. For example, if wa.server.eventMgr.minThreads
is set to 6 and wa.server.eventMgr.maxThreads is set to 5, Integration Server sets the
value of wa.server.eventMgr.maxThreads to 7.
907
Even Header
Server Configuration Parameters
watt.server.eventMgr.minThreads
Species the minimum number of threads that you want Integration Server to use for the
Event Manager thread pool. The default is 2.
Integration Server veries that this value is 1 or greater. If set to a value less than 1,
Integration Server resets it to 1.
watt.server.fileEncoding
Species the encoding the server is to use when reading and writing text les. This
seing has no eect on les stored as Unicode. The default is your JVM's le.encoding
property.
Note:
watt.server.ftpConnect.message
Species the content of the 220 message that Integration Server returns to an FTP client
when the client issues a connect request.
When this parameter is set to true (the default), Integration Server returns the following
messages to the FTP client:
Connected to IS_hostname.
220 IS_hostname FTP server (webMethods
Integration Server version n.n.n.n) ready.
When this parameter is set to false, Integration Server returns the following messages
to the FTP client:
Connected to IS_hostname . 220
When this parameter is set to any other value, that value is returned in the 220 message.
For example, if you specify Custom FTP connect message, Integration Server will
return the following to the FTP client:
Connected to IS_hostname . 220 Custom FTP connect message.
watt.server.ftp.listingFileAge
Species the number of seconds that must elapse before a le that has been updated
or created on an Integration Server functioning as an FTP server can be accessed. Files
created or updated within the time specied by this parameter will not be part of the
results of the FTP LIST command. The default value is 60 seconds.
watt.server.ftpLogin.message
Species the content of the 230 message that Integration Server returns to an FTP client
when the client issues a login request.
When this parameter is set to true (the default), Integration Server returns the following
message to the FTP client: 230 User userid logged in.
When this parameter is set to false, Integration Server returns the following message to
the FTP client: 230
908
Odd Header
Server Configuration Parameters
When this parameter is set to any other value, that value is returned in the 230 message.
For example, if you specify Custom FTP login message, Integration Server will return
the following to the FTP client:
230 Custom FTP login message.
watt.server.ftpSystem.message
Species the content of message 215 that Integration Server returns to an FTP client
when the client issues a system request. When this parameter is set to true (the default),
Integration Server returns the following message to the FTP client:
215 UNIX Type: L8 Version: webMethods IS FTP <Integration Server n.n.n.n>
When this parameter is set to false, Integration Server returns the following message to
the FTP client:
215
When this parameter is set to any other value, that value is returned in the 215 message.
For example, if you specify Custom FTP system message, Integration Server returns the
following to the FTP client:
215 Custom FTP system message.
watt.server.ftp.usecommandip
Controls whether the pub.client:ftp service uses connection information from a NAT server
when connecting to an FTP server.
When the pub.client:ftp service tries to transfer data to or from an FTP server, Integration
Server rst connects to the FTP server at the IP address specied by the pub.client:ftp
service. In response, the FTP server sends back the IP address on the FTP server to which
Integration Server should connect to perform the transfer. If the FTP server sits behind
a NAT server, the NAT server intercepts this address, translates it, then sends it on to
Integration Server.
This property controls whether Integration Server uses the address provided by the NAT
server or the address already specied by the pub.client:ftp service.
When this parameter is set to true, Integration Server bypasses the translated address
and immediately tries the address specied by the service. If this aempt fails,
Integration Server throws an exception.
When this parameter is set to false, the default, Integration Server tries the address
provided by the NAT server. If that aempt fails, Integration Server tries the IP address
specied on the pub.client:ftp service. If both aempts fail, Integration Server throws an
exception.
watt.server.hostAccessMode
Species IP access for ports that do not have a custom IP access seing. When this
parameter is set to include, the server accepts requests from all IP addresses, except
those specically denied on the Integration Server Administrator interface. When this
parameter is set to exclude, the server denies requests from all IP addresses except
those specically allowed on the Integration Server Administrator interface. The default
is include.
909
Even Header
Server Configuration Parameters
watt.server.hostAllow
Species the name of the host that is allowed service. There is no default.
watt.server.hotDeploymentAutoRecover
This is an internal property. Do not modify.
watt.server.hotDeploymentTimeout
This is an internal property. Do not modify.
watt.server.http.allowOptions
Indicates whether Integration Server allows a client to use the HTTP OPTIONS method
to determine the HTTP methods supported by Integration Server. When this parameter
is set to true, Integration Server allows the OPTIONS method. When this parameter is
set to false (or any other value), OPTIONS requests from clients receive a 405 Method
Not Allowed response.
The default is true.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.http.authorizationEncoding
Species the encoding that the HTTP client (such as a browser) uses when encoding
the user name and password for Integration Server. The HTTP client sends the user
name and password to Integration Server in the Authorization aribute in the header
of the HTTP request. Set the wa.server.hp.authorizationEncoding property to the
encoding that your browser uses for the Authorization aribute. Consult the browser
documentation, or contact the browser manufacturer, to nd what encoding is used in
your environment. The default is UTF-8.
Note:
watt.server.http.header.useHttpOnly
Species whether Integration Server includes the HpOnly aribute in the Set-Cookie
header in the response to an HTTP client. When this property is set to true (the default),
Integration Server includes the HpOnly aribute in the Set-Cookie header of the HTTP
response to an HTTP client. Software AG recommends seing this property to true
because it prevents a client side script from accessing a protected cookie. If you are
working with an HTTP client that does not support the HpOnly aribute, set this
property to false.
watt.server.http.header.useSecure
Species whether Integration Server includes the secure aribute in the Set-Cookie
header in the response to an HTTP/S client. When the wa.server.hp.header.useSecure
property is set to true (the default), Integration Server includes the secure aribute
in the Set-Cookie header of the HTTPS response to an HTTP/S client. Software AG
910
Odd Header
Server Configuration Parameters
recommends seing this property to true because it ensures that the cookie is always
encrypted while being transmied from client to server.
watt.server.hostDeny
Species the name of the host that is denied service. There is no default.
watt.server.http.jsonFormat
Species how Integration Server handles JSON content in HTTP client requests. When
this property is set to parsed (the default), Integration Server parses JSON content into
pipeline variables automatically. Clients can then use JSON to compose pipelines and
execute existing services without having to call pub.json:jsonStreamToDocument.
If wa.server.hp.jsonFormat is set to stream, Integration Server places a jsonStream
variable containing the JSON content in the pipeline as an InputStream. You can then
use pub.json:jsonStreamToDocument to parse jsonStream into pipeline variables.
If wa.server.hp.jsonFormat is set to bytes, Integration Server places the incoming
stream of JSON into a byte array.
You can override the behavior specied by wa.server.hp.jsonFormat in individual
requests by adding the jsonFormat query parameter to the request URI. For example, if
wa.server.hp.jsonFormat is set to parsed, a client can override this seing and instead
specify a value of stream for the request by entering a URI as follows:
/invoke/myfolder/myservice?jsonFormat=stream
This will result in the request being placed in a jsonStream variable in the pipeline as an
InputStream containing the JSON content.
watt.server.http.listRequestVars
Species how Integration Server handles duplicate query tokens in an HTTP request.
When set
to...
Integration Server...
always
becomes
INVOKE folder:service {arg1=X, arg1List=[X,Y], arg2=Z,
arg2List=[Z]}
asNeeded
becomes
INVOKE folder:service {arg1=X, arg1List=[X,Y], arg2=Z}
911
Even Header
Server Configuration Parameters
When set
to...
Integration Server...
http://host:5555/folder/service?arg1=X&arg1=Y&arg2=Z
never
becomes
INVOKE folder:service {arg1=X, arg2=Z}
watt.server.http.preserveUriReservedChars
Species whether Integration Server should decode percent-encoded URI paths in
requests before evaluating URI paths. When this property is set to true (the default),
Integration Server defers decoding percent-encoded reserved characters until after
evaluating URI paths. When set to false, Integration Server decodes percent-encoded
reserved characters prior to evaluating the URI paths.
Note:
Note:
If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.http.reauth.user-agent.list
Species a semicolon-delimited list of HTTP clients from which you want Integration
Server to request re-authentication after an HTTP session expires. By default, this
parameter is set to Firefox;MSIE so that requests from the Mozilla Firefox and
Microsoft Internet Explorer browsers will be asked to re-authenticate if the associated
HTTP session has expired. For user agents not specied on this list, Integration Server
sends a new session cookie when the session expires.
If you remove this property and restart Integration Server, the value of this property
resets to Firefox;MSIE.
912
Odd Header
Server Configuration Parameters
watt.server.http.returnException
Species whether Integration Server should return a stack trace in the HTTP/SOAP
response it sends to the invoking client when an invoked service ends in error. You can
specify one of the following:
Value
true
false
webMethods
watt.server.http.securityRealm
Species the name of the Integration Server security realm. This value is included in
the headers of HTTP responses that Integration Server sends to clients that request
authentication. The default value is Integration Server.
watt.server.http.useAcceptHeader
Species whether Integration Server supports the Accept header eld in an HTTP
request. The Accept header eld species a content type or types the HTTP client will
accept in the HTTP response. The default seing is true. This parameter must be set
to true if you want to use the wa.server.content.type.mappings parameter to map
wildcard content types in the Accept header eld to specic content types.
watt.server.http.x-frame-options
Controls how Integration Server is to handle the X-Frame-Options aribute in response
headers.
Note:
To indicate that...
SAMEORIGIN
913
Even Header
Server Configuration Parameters
Specify...
To indicate that...
ALLOW-FROM
other_origin
Note:
The value DENY is dened for the X-Frame-Options aribute but is not
allowed for Integration Server. DENY means that the page can never
appear in a frame, regardless of the frame's origin. This would cause
Integration Server Administrator to be unusable. If wa.server.hp.xframe-options is set to DENY, that value is ignored and SAMEORIGIN is
used instead.
To indicate that...
bytes
enhanced
node
stream
914
Odd Header
Server Configuration Parameters
This feature can be used when submiing and receiving XML via HTTP of HTTPS only.
Note:
Note:
watt.server.httplog
Species whether Integration Server should log outbound HTTP/HTTPS
requests to a separate log le. If set to true, Integration Server creates the
Integration Server_directory\instances\instance_name \logs\hp.log le, which logs data
for HTTP/HTTPS requests. The hp.log le is created separately from the data captured
in the server log. The default is false.
Integration Server logs the following in hp.log:
Parameter
Description
CURRENTTIME
SIZE-OFRESPONSE
Size of the data (in bytes) in the response. This is either the
current size of the in-memory byte buer or the size of the
input stream.
TIME-TAKEN
HOSTADDRESS
REQUESTEDURL
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.idr.reaperInterval
Species the interval, measured in minutes, at which the scheduled system service
Message History Sweeper executes and removes expired document history entries. The
default is 10 minutes.
915
Even Header
Server Configuration Parameters
watt.server.illegalNSChars
Species the characters that you cannot use when naming a package, folder or service.
The default is ?`-#&@^!%*:$.\ /';,~+=)(|}{][><.
watt.server.illegalUserChars
Species characters that you cannot use in user names and passwords. The default is
"\<&.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
Important: Do not remove characters from this property. If you remove characters
and create users that contain those characters, Integration Server cannot
parse users.cnf and will be unable to start.
watt.server.inetaddress
Species the IP address on which the server is to listen for incoming requests. By default,
Integration Server listens on all available IP addresses. To limit the server to listening on
a single IP address, specify the IP address as the value of this property.
watt.server.invokeDirective
Species an alternative word to use for the invoke directive in URLs
that invoke services on Integration Server. By default, this parameter
is set as watt.server.invokeDirective=invoke, which means users
must specify the invoke directive as invoke (http://host:port/
invoke/folder/service_name). To allow users to specify the invoke directive
as either invoke or an alternative word, set this parameter to the alternative
word. For example, to allow users to specify the invoke directive as either
invoke or submit, (http://host:port/invoke/folder/service_name or
http://host:port/submit/folder/service_name), set this parameter as
watt.server.invokeDirective=submit.
watt.server.invoke.maxRetryPeriod
Species the total amount of waiting time (in milliseconds) that can elapse if the
Integration Server makes the maximum aempts to retry a service. The default is 15,000
milliseconds (15 seconds). When conguring retries for an individual service, the value
calculated by multiplying Max attempts value by the Retry interval cannot exceed the value
set by this server parameter. For more information about conguring service retry, see
webMethods Service Development Help.
watt.server.java.unicode
Species whether the source code for Java services is stored in Unicode encoding. The
default is false. Set this value to true if the source code contains characters that cannot
be rendered in the server's native encoding.
watt.server.jca.connectionPool.createConnection.interrupt.waitTime
Species the wait time, measured in milliseconds, that elapses before Integration Server
interrupts a connection creation thread that is in a wait state. There is no default value.
916
Odd Header
Server Configuration Parameters
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.jca.connectionPool.thresholdWaitingRequest
When enabled, this property represents the percentage value that is used in addition
to the congured maximum number of connections (set by the Maximum Pool Size
parameter on the Connections page) for the connection pool. For example, seing the
property as watt.server.jca.connectionPool.thresholdWaitingRequest=20 sets
the threshold to 120% of congured maximum number of connections.
If the property is not dened or if the value is less than or equal to zero, the feature
remains disabled.
When this property is enabled, the connection pool ensures that the waiting connection
requests plus the busy connections in the connection pool do not exceed the threshold
limit.
watt.server.jca.transaction.rollbackOnWriteFailure
If Integration Server cannot store the status of a transaction and its participating
resources in the XA recovery store (for example, because the store is corrupted), species
whether Integration Server should try to continue with the transaction anyway (false)
or try to roll it back (true). Seing the parameter to false involves some risk; if
Integration Server ends abnormally, no statuses will have been saved to the XA recovery
store, and Integration Server will not be able to resolve the uncompleted transaction or
give you the chance to resolve it manually.
watt.server.jca.transaction.writeRecoveryRecord
Species whether Integration Server maintains XA transaction information for use with
XA transaction recovery. If Integration Server does not save XA transaction information,
uncompleted XA transactions cannot be recovered using Integration Server. That is,
Integration Server does not aempt to recover incomplete XA transactions automatically
and you cannot use Integration Server Administrator to manually recover or resolve an
incomplete transaction. Specify true to enable XA transaction recovery. Specify false to
disable XA transaction recovery. The default is true.
watt.server.jdbc.datadirect.snoop.default
Species the default seings for the DataDirect Snoop tool for DataDirect Connect JDBC
drivers. The DataDirect Snoop tool logs network packets between Integration Server
and an external RDBMS. The resulting log le can be used for tracing and diagnostic
purposes.
Note:
This option is for use with an external RDBMS only. It is not for use with
the embedded IS internal database.
Set this parameter on each DataDirect Connect JDBC driver for which you want to log
data.
Important: To enable this feature for use with Integration Server, you must select
the Snoop option on either the Edit JDBC Connection Pool Alias screen or
the Create JDBC Connection Pool Alias screen of the Integration Server
Administrator.
917
Even Header
Server Configuration Parameters
For DB2, include the following command at the end of the value:
ddtdbg.ProtocolTraceEBCDIC=true
The default value denes the name and location of the log le and DataDirect Snoop
tool aributes. Typically, you do not need to change the default value. However, you
can modify the value if the aributes do not meet the needs of your system. If you
change the log le location, be aware that the diagnostic tool collects data from the
Integration Server_directory/instances/instance_name /logs/snoop directory. If you change
the log le location, the diagnostic utility might not import the data logged by the
DataDirect Snoop tool. For more information about using the diagnostic utility, see
"Using the Diagnostic Utility" on page 833. For more information about seing the
DataDirect Snoop tool aributes, consult the documentation on the DataDirect website.
Important: If you change the value of this parameter, you must restart the connection
pool for the changes to take eect.
watt.server.jdbc.datadirect.spy.default
Species the default seings for the DataDirect Spy diagnostic feature for DataDirect
Connect JDBC drivers. DataDirect Spy logs JDBC calls and SQL statement interactions
between Integration Server and an external RDBMS. The resulting log le can be used
for tracing and diagnostic purposes.
Note:
This option is for use with an external RDBMS only. It is not for use with
the embedded IS internal database.
Set this parameter for each DataDirect Connect JDBC driver for which you want to log
data.
Important: To enable this feature for use with Integration Server, you must select the
Spy option on either the Edit JDBC Connection Pool Alias screen or the Create
JDBC Connection Pool Alias screen of the Integration Server Administrator.
The default value for this parameter is:
SpyAttributes=(log=(file)/logs/
spy/<alias_name>.log;logTName=yes;timestamp=yes)
918
Odd Header
Server Configuration Parameters
Spy. For more information about the diagnostic utility, see "Using the Diagnostic Utility"
on page 833. For more information about seing DataDirect Spy aributes, consult the
documentation on the DataDirect website.
Important: If you change the seing of this parameter, you must restart the
connection pool for the changes to take eect.
watt.server.jdbc.defaultDriver
For use with WmDB. Species the name of the Java class for the driver you want to use
to connect to databases when no driver name is supplied for a database alias.
watt.server.jdbc.derby.commitTolerance
Species the length of time, in milliseconds, that Integration Server waits for a commit
to the embedded database to complete before removing the associated connection
from the connection pool. Integration Server uses this property when it is congured
to use the embedded database for any of the ISInternal, DocumentHistory, and Xref
functions. If the commit process takes longer than the value dened by this property,
Integration Server removes the associated connection from the connection pool so that a
new connection can be initiated for future requests. The default value for this property is
150 milliseconds.
watt.server.jdbc.driverList
Species a comma-delimited list of JDBC drivers you want the server to load when it
initializes. There is no default.
Note:
watt.server.jdbcLogFile
Species the name of the log le that contains JDBC log activity. When
the wa.server.jdbcLogging property is enabled (set to on), the server
logs activity to this le. The default value is jdbc.log. It is located in the
Integration Server_directory\instances\instance_name \logs folder. Note that the log le is
generated after WmDB makes a connection to the database.
Note:
watt.server.jdbc.loginTimeout
Sets the maximum time, in seconds, that the JDBC driver on Integration Server is to
wait for a response while aempting to connect to a database. If Integration Server does
not receive a response in the alloed time, it terminates the request, logs the error and
moves on. The default value is 60 seconds.
If Integration Server is unable to connect to the audit logging database within the
number of seconds specied by wa.server.jdbc.loginTimeout, Integration Server
removes all connections from the ISCoreAudit JDBC connection pool and recreates
them. If the connection problem is resolved quickly (such as a momentary network
interruption), Integration Server reconnects to the audit logging database. If Integration
Server is unable to connect to the audit logging database, such as when the database is
oine, Integration Server writes an exception to the server log.
919
Even Header
Server Configuration Parameters
Important: If you change the seing of this parameter, you must restart the
ISCoreAudit JDBC connection pool for the changes to take eect. To
restart the pool, in Integration Server Administrator, go to the Settings >
JDBC Pools page and click Restart for the ISCoreAudit functional alias.
watt.server.jdbcLogging
Species whether Integration Server is to enable logging on java.sql.DriverManager in
order to log JDBC activity. When set to on, the server writes the log le data to the le
specied by wa.server.jdbcLogFile. The default is off.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
Note:
watt.server.jdbc.moreResults
Species if the Integration Server is to process the stored procedure results from a single
result set or multiple result sets. When set to true, Integration Server processes and
returns information produced by multiple result sets. When set to false, Integration
Server processes information produced from a single result set. The default is false.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
Note:
watt.server.jdbc.sp.mandateParams
Species whether the $data input parameter of the pub.db:call service expects values to
invoke a stored procedure through the pub.db:call service. Set this property to false if
you do not want to specify values for the $data input parameter. Set this property to
true if you want the pub.db:call service to expect values for the $data input parameter.
The default is true.
watt.server.jdbc.statementCache
Species whether Integration Server is to cache prepared statements for later use.
When set to true, the server saves prepared statements in a local cache. When the server
receives subsequent requests to a database, it can reuse the prepared statements in the
cache instead of recreating them each time a request is made. To use Java heap space
eciently, the server removes cached statements automatically if it is not reused within
30 seconds. The default is false.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
Note:
watt.server.jms.csq.maxRedeliveryCount
Species the number of aempts to redeliver a document from the client side queue.
Specify a positive integer value. The default is 5. If Integration Server is unable to deliver
webMethods Integration Server Administrators Guide Version 9.10
920
Odd Header
Server Configuration Parameters
the document in the congured number of aempts, the document is dropped from
the client side queue and not delivered. In this situation, Integration Server raises a
JMSDeliveryFailureEvent.
Note:
Specifying a large value for this property can impact Integration Server
performance if the failure to deliver the document is not a transient error,
such as the Broker being unavailable. If the reason a document cannot be
delivered is because there is problem with the document itself, Integration
Server performance is impacted because it will continue to aempt to
redeliver the document for the number of times you congure.
watt.server.jms.connection.monitorPeriod
Species the frequency (measured in seconds) with which Integration Server checks the
state of a connection to the JMS provider. The minimum is 1 second. If this parameter
is set to less than 1, Integration Server uses the default value instead. The default is 45
seconds.
watt.server.jms.connection.pingDestination
Congures Integration Server to send a keep-alive message to a destination on the JMS
provider, thereby preventing the rewall from terminating the connection between
Integration Server and a third-party JMS provider. A keep-alive message is a blank, nonpersistent JMS message with an immediate time out.
Set this parameter to one of the following values:
Specify...
To...
blank
temp
Note:
watt.server.jms.connection.pingPeriod
Species how often, measured in seconds, Integration Server should ping the JMS
provider. The ping serves as a keep alive request sent to the JMS provider. The default is
300 seconds (5 minutes).
921
Even Header
Server Configuration Parameters
watt.server.jms.connection.retryPeriod
Species the length of time, in seconds, that Integration Server waits between connection
aempts when a connection to the JMS provider or JNDI provider fails. The default is 20
seconds.
watt.server.jms.connection.update.blockingTime
Species the maximum amount of time, measured in milliseconds, that a pub.jms* service
will wait for a connection while the connection used by the service is being updated.
If Integration Server does not restart the connection before the blocking time elapses,
Integration Server throws an ISRuntimeException and the sending service fails. A value
of 0 (zero) indicates that Integration Server does not block the pub.jms* services while
the JMS connection alias updates; Integration Server throws an ISRuntimeException
immediately. The maximum value is 10,000 milliseconds (10 seconds). The default is
1000 milliseconds.
Integration Server resets the wa.server.jms.connection.update.blockingTime parameter
to the default value if an invalid value is entered.
Important: You must restart Integration Server for the new value to take eect.
watt.server.jms.connection.update.restartDelay
Species the length of time, measured in milliseconds, Integration Server waits for
services sending JMS messages to execute to completion when the connection used
by the services needs to be updated. After the restart delay elapses, Integration
Server refreshes the connection using the updated connection factory object and then
restarts the connection. If the restart delay elapses before the pub.jms*services execute
to completion, Integration Server throws an ISRuntimeException and the sending
service fails. The maximum value is 10,000 milliseconds (10 seconds). The default is 500
milliseconds.
Integration Server resets the wa.server.jms.connection.update.restartDelay parameter
to the default value if an invalid value is entered.
Important: You must restart Integration Server for the new value to take eect.
watt.server.jms.csq.batchProcessingSize
Species the maximum number of messages Integration Server retrieves from the client
side queue and then sends to the JMS provider. Integration Server places sent messages
in the client side queue when the connection to the JMS provider fails. Integration Server
begins to drain the client side queue after the connection to the JMS provider becomes
available. The default is 25.
watt.server.jms.debugTrace
Enables an extra level of verbose logging for JMS triggers that can be controlled globally
or at the individual JMS trigger level.
To enable debugTrace logging for all JMS triggers, set the
wa.server.jms.debugTrace property to true. For this seing to take eect, you
need to disable and then enable all JMS triggers. For information about using
922
Odd Header
Server Configuration Parameters
Integration Server Administrator to enable and disable all JMS triggers, see
"Enabling, Disabling, and Suspending JMS Triggers" on page 782.
To enable debugTrace logging for an specic JMS trigger, append the fully
qualied JMS trigger name to the wa.server.jms.debugTrace property and
set that property to true. For example, to enable debugTrace logging for the
JMS trigger named myFolder:myJMSTrigger, enter the following on the Edit
Extended Seings page:
wa.server.jms.debugTrace.myFolder:myJMSTrigger=true
For this seing to take eect, you need to disable and then enable the JMS
trigger specied in the property. For information about using Integration
Server Administrator to disable and enable an individual trigger, see "Enabling,
Disabling, and Suspending JMS Triggers" on page 782.
watt.server.jms.guaranteedMultisend.alwaysUseTxLogging
Species whether or not Integration Server always uses XA transaction logging when
sending a JMS message in accordance with a multisend guaranteed policy. In XA
transaction logging, Integration Server logs the state of each transaction. The XA
transaction logging allows Integration Server to recover any transactions that did not
complete due to Integration Server failure. While this is the most reliable way to ensure
the integrity of a transaction, it may be expensive in terms of performance and may
not always be necessary. When this property is set to true, Integration Server always
uses XA transaction logging and can perform XA transaction recovery for a multisend
guaranteed policy regardless of the connection transaction type When set to false,
Integration Server uses XA transaction logging only if the connection transaction type is
XA_TRANSACTION. The default is false.
watt.server.jms.nirvana.durableSubscriber.includeClientId
Species whether the client ID of the JMS connection alias will be used as the prex in
the names of durable subscribers created using Designer. Set to true to use the value of
the Client ID property in the JMS connection alias as a prex in the durable subscriber
name. Even if the wa.server.jms.nirvana.durableSubscriber.includeClientId is set to
true, if the Client ID property is empty the durable subscriber name will not have a client
ID prex. Set to false to omit the use of the client ID as a prex. The default is true.
watt.server.jms.producer.pooledSession.timeout
Species the number of milliseconds for which an inactive entry remains in the default
session pool or a destination-specic pool before Integration Server removes the entry.
Integration Server uses this value when -1 is specied for the Idle Timeout eld for a JMS
connection alias. The default is 60000.
watt.server.jms.trigger.concurrent.consecutiveMessageThreshold
Species the consecutive number of successful requests for more messages that a
concurrent JMS trigger must make before the trigger becomes multithreaded. For
example, when this property is set to 1000, Integration Serverbegins using multiple
threads for a concurrent JMS trigger when the JMS trigger retrieves messages fro the
JMS provider in 1000 consecutive requests. The default for this property is 0, which
indicates that Integration Server does not use a threshold to determine when JMS trigger
become multithreaded. When threshold is not used, the concurrent JMS trigger will
923
Even Header
Server Configuration Parameters
always be multithreaded when more than one message is available for processing.
For more information about using a threshold for thread usage for a concurrent JMS
trigger, see "Establishing a Threshold for Using Multiple Threads with a Concurrent JMS
Trigger" on page 787.
Note:
The threshold for using multiple threads with concurrent JMS triggers
applies to all the concurrent JMS triggers on the Integration Server. This
includes standard JMS triggers, SOAP-JMS triggers, and WS-Endpoint
triggers.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.jms.trigger.concurrent.primaryThread.pollingInterval
Species the lengthy of time (in milliseconds) for which the primary sever thread for a
concurrent JMS trigger polls the JMS provider for more messages. Each concurrent JMS
trigger has a server thread that retrieves messages from the JMS provider. This thread
is considered to be the primary thread for the concurrent JMS trigger. A short polling
interval increases the amount of CPU used by Integration Server and increases the load
on the JMS provider. However, a short polling interval can improve performance under
heavy load and in request-reply scenarios. The default is 500 milliseconds.
If a value of 0 is specied, Integration Server uses the
javax.jms.MessageConsumer.receiveNoWait() API to retrieve messages
from the JMS provider. The javax.jms.MessageConsumer.receiveNoWait()
API may or may not be supported by all JMS providers. If the JMS provider
from which a JMS trigger receives messages does not support this API
then the JMS trigger will be disabled. If this happens, modify the value of
wa.server.jms.trigger.concurrent.primaryThread.pollingInterval to be a positive
integer. and enable the JMS trigger.
Note:
Note:
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
924
Odd Header
Server Configuration Parameters
watt.server.jms.trigger.concurrent.secondaryThread.pollingInterval
Species the lengthy of time (in milliseconds) with which the secondary server threads
for a concurrent JMS trigger poll the JMS provider for more messages. The secondary
server threads are the additional threads that can be used to retrieve messages for a
concurrent JMS trigger. The number of secondary server threads for a concurrent JMS
trigger corresponds to the value Max execution threads property value minus 1. A short
polling interval increases the amount of CPU used by Integration Server and increases
the load on the JMS provider. A long polling interval can impact the time required for
Integration Server to shut down as Integration Server must wait for the polling interval
to elapse for each secondary thread used by concurrent JMS triggers. The default value
is 1 millisecond.
The value of wa.server.jms.trigger.concurrent.secondaryThread.pollingInterval must be
less than or equal to the value of
wa.server.jms.trigger.concurrent.primaryThread.pollingInterval.
If a value of 0 is specied, Integration Server uses the
javax.jms.MessageConsumer.receiveNoWait() API to retrieve messages
from the JMS provider. The javax.jms.MessageConsumer.receiveNoWait()
API may or may not be supported by all JMS providers. If the JMS provider
from which a JMS trigger receives messages does not support this API then
you may see unexpected behavior. If this happens, modify the value of
wa.server.jms.trigger.concurrent.secondaryThread.pollingInterval to be a positive
integer.
Note:
Note:
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.jms.trigger.extendedDelay.delayIncrementInterval
Species the time interval, measured in milliseconds, at which Integration Server
introduces the polling delay for an inactive concurrent JMS trigger. If the JMS trigger
remains inactive, the same time interval determines when Integration Server increases
the extended delay. The default value is 0 which indicates that Integration Server
925
Even Header
Server Configuration Parameters
does not use an extended polling delay for inactive concurrent JMS triggers. For
more information about delaying polling requests, see "Delaying Polling Requests for
Concurrent JMS Triggers" on page 789.
Important: You must restart Integration Server for the new value to take eect.
watt.server.jms.trigger.extendedDelay.delays
Species the length of the delay that an inactive concurrent JMS trigger waits before
polling the JMS provider for more messages. To increase the delay while the JMS
trigger remains inactive, specify a comma-separated list of increasing integers. The
wa.server.jms.trigger.extendedDelay.delays parameter is measured in milliseconds and
has a default value of: 0, 1000, 2000, 3000.
For more information about delaying polling requests, see "Delaying Polling Requests
for Concurrent JMS Triggers" on page 789.
Important: You must restart Integration Server for the new value to take eect.
watt.server.jms.trigger.maxDeliveryCount
Species the maximum number of times the JMS provider can deliver a message to
Integration Server. The default is 100.
watt.server.jms.trigger.maxPrefetchSize
Species the maximum number of messages that the webMethods Broker API for JMS
will retrieve and cache per request for a JMS trigger. Using pre-fetch cache can speed
up the retrieval of messages from the webMethods Broker. Because messages will be
placed in Integration Server memory, you may want to decrease this seing if you have
JMS triggers receiving very large messages. Otherwise, memory issues can occur. This
property only applies to JMS triggers receiving messages from the webMethods Broker.
The default is 10 messages.
Integration Server checks this value when a JMS trigger starts. To apply a new value to
all JMS triggers, use Integration Server Administrator to disable and then enable JMS
triggers. For information about using Integration Server Administrator to disable and
enable an individual trigger, see "Managing JMS Triggers" on page 781.
This property only takes eect when the trigger's prefetch property is set to -1.
When working in a cluster of Integration Servers, the behavior controlled by this
property might appear at rst to be misleading. For example, suppose that you have a
cluster of two Integration Servers. Each Integration Server contains the same JMS trigger.
Twenty messages are sent to a destination from which JMS trigger receives messages. It
might be expected the JMS trigger on Integration Server 1 will receive the rst message,
the JMS trigger on Integration Server 1 will receive the second message, and so forth.
However, what may happen is that the JMS trigger on Integration Server 1 will receive
the rst 10 messages and the JMS trigger on Integration Server 2 will receive the second
10 messages.
watt.server.jms.trigger.monitoringInterval
Species the interval, measured in seconds, at which Integration Server executes
resource monitoring services for JMS triggers. A resource monitoring service is a service
that you create to check the availability of resources used by a JMS trigger service.
926
Odd Header
Server Configuration Parameters
After Integration Server suspends a JMS trigger because all retry aempts have failed,
it schedules a system task to execute the resource monitoring service assigned to the
JMS trigger. The default is 60 seconds. Changes to this property take eect the next time
Integration Server schedules a system task to execute a resource monitoring service for a
JMS trigger.
For more information about building resource monitoring services for JMS triggers, see
Using webMethods Integration Server to Build a Client for JMS.
watt.server.jms.trigger.pollingSession.timeout
Species the frequency (measured in minutes) with which Integration Server refreshes
an inactive connection for a JMS trigger. A JMS trigger session is considered to be
inactive when the JMS trigger does not use the session to retrieve messages. The default
is 30 minutes.
watt.server.jms.trigger.pooledConsumer.timeout
Species the length of time, in milliseconds, that an inactive pooled consumer remains
in the consumer pool before it is removed. Integration Server uses a pool of consumers
to retrieve and process messages for concurrent JMS triggers. When the timeout value
elapses, Integration Server deletes the inactive pooled consumer. For the Integration
Server to retrieve more messages for the concurrent JMS trigger, Integration Server
must create a new consumer, which entails creating a javax.jms.MessageConsumer and
javax.jms.Session. For some JMS providers, this can be an expensive operation. Seing a
high value for wa.server.jms.trigger.pooledConsumer.timeout server property results
in the JMS session and messageConsumer remaining open for a long period of time. If
the load on Integration Server is high, a long timeout value reduces the frequency with
which the pooled consumers must be created. However, when the timeout value is high
and the load on Integration Server is low there may be unused pooled consumers.There
is no default timeout value.
watt.server.jms.trigger.raiseEventOnException
Indicates whether Integration Server generates a JMS retrieval failure event when a JMS
trigger experiences a fatal exception, such as a non-transient error or a message that
cannot be reprocessed, during message processing. Specify true if you want Integration
Server to generate a JMS retrieval failure event. The default is true.
watt.server.jms.trigger.raiseEventOnRetryFailure
Indicates that Integration Server generates a JMS retrieval failure event when a JMS
trigger experiences a retry failure. A retry failure can occur when the JMS provider
has reached the max delivery count for a message or when an ISRuntimeException
is thrown and the JMS trigger is not congured to recover the message (for example,
if retry failure handling for a non-transacted JMS trigger is set to "Throw exception"
instead of "Suspend and Retry Later".) When set to true, Integration Server generates
a JMS retrieval failure event for a JMS trigger when retry failure occurs. The default is
true.
watt.server.jms.trigger.retryOnConsumerError
Determines whether or not Integration Server aempts to re-enable JMS triggers
automatically when an error unrelated to the connection to the JMS provider causes the
JMS trigger to be disabled. Set wa.server.jms.trigger.retryOnConsumerError to true
to instruct Integration Server to re-enable JMS triggers automatically. Set the property
927
Even Header
Server Configuration Parameters
to false to instruct Integration Server to leave JMS triggers disabled when the message
consumer encounters an unexpected error unrelated to the connection to the JMS
provider. The default is true.
watt.server.jms.trigger.reuseJmsTxSession
Species whether or not sessions can be reused across multiple transactions for a
transacted JMS trigger. When set to true, a transacted JMS trigger will reuse the same
JMS session for receiving messages from the JMS provider. When set to false, Integration
Server creates and closes a session for each message a transacted JMS trigger receives
and processes. The default value is true.
Some JMS providers might not support the use of a single session across
multiple transactions. When working with these JMS providers, set
wa.server.jms.trigger.reuseJmsTxSession to false.
Important: You must restart Integration Server for the new value to take eect.
watt.server.jms.trigger.reuseSession
Indicates whether instances of a JMS trigger use the same session on Integration Server.
When this property is set to true, the JMS trigger uses a shared session. Each of the
trigger services executed by the JMS trigger will use the same session ID. When this
property is set to false, Integration Server uses a new session for each instance of a JMS
trigger. Reusing sessions for a JMS trigger might improve performance. However, this
property does not work with all adapters. If you are working with an adapter, such as
the SAP adapter, that requires the session ID to be unique, set this property to false. The
default is false.
watt.server.jms.trigger.serial.primaryThread.pollingInterval
Species the length of time (in milliseconds) for which the server thread for a serial
JMS trigger polls the JMS provider for messages. A short polling interval increases the
amount of CPU used by Integration Server and increases the load on the JMS provider.
However, shorter polling intervals can improve performance under heavy load and in
request-reply scenarios. The default is 500 milliseconds.
If a value of 0 is specied, Integration Server uses the
javax.jms.MessageConsumer.receiveNoWait() API to retrieve messages
from the JMS provider. The javax.jms.MessageConsumer.receiveNoWait()
API may or may not be supported by all JMS providers. If the JMS provider
from which a JMS trigger receives messages does not support this API
then the JMS trigger will be disabled. If this happens, modify the value of
wa.server.jms.trigger.serial.primaryThread.pollingInterval to be a positive integer and
then enable the JMS trigger.
Note:
928
Odd Header
Server Configuration Parameters
Note:
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.jms.trigger.stopRequestTimeout
Species the maximum amount of time, measured in seconds that Integration Server
waits after a JMS trigger is disabled before forcing the JMS trigger to stop processing
messages. The minimum value is 0. The default is 3 seconds.
Note:
Important: You must restart Integration Server for the new value to take eect.
watt.server.jms.trigger.wmjms.clientIDSharing
Indicates that Integration Server aempts to receive messages from durable subscribers
in a load-balanced fashion. When set to true, Integration Server does the following:
If the durable subscriber specied by the JMS trigger does not exist, Integration
Server creates the durable subscriber on the Broker and enables state sharing.
Integration Server also uses the message processing mode to set the Shared State
Order mode for the durable subscriber. (A message processing mode of serial
maps to a shared state order mode of publisher, a message processing mode of
concurrent maps to a shared state order mode of none.)
If the durable subscriber already exists, Integration Server does not make any
changes to the durable subscriber when it saves the JMS trigger.
Indicates to the Broker that client identiers can be shared by seing the
com.webmethods.jms.clientIDSharing property within Integration Server to true.
929
Even Header
Server Configuration Parameters
This property only applies when the JMS trigger uses a JMS connection alias that
connects to the webMethods Broker using the native webMethods API.
The default is true.
Important: You must restart Integration Server for a new value to take eect.
watt.server.jms.wmjms.lms.readTimeout
Species the amount of time (measured in milliseconds) that Integration Server waits
for the next portion of an input stream before throwing WmReadTimeoutException. The
read timeout only applies after Integration Server retrieves the initial piece of the input
stream. The default is 30000 milliseconds.
watt.server.jndi.searchresult.maxlimit
Species the maximum number of records that Integration Server displays when
searching for users or groups in the LDAP or central directory and no search criteria
are specied. The default is 0. When set to 0, Integration Server displays all available
records.
watt.server.json.allowUnquotedFieldNames
The JSON standard requires that eld names be enclosed in double quotes. However,
when parsing legacy JavaScript as JSON text it may be helpful to allow unquoted eld
names as JavaScript does not require eld names to be enclosed in double quotes. If this
parameter is set to true, the pub.json:jsonStringToDocument and pub.json:jsonStreamToDocument
services allow unquoted eld names in any supplied JSON text. If this parameter is
set to false, the services throw a ServiceException when encountering unquoted eld
names. The default is false.
930
Odd Header
Server Configuration Parameters
false, Integration Server converts the real number to a Float Java wrapper type. The
default is true (Double).
watt.server.json.optimizeForUniqueKeys
Controls how Integration Server parses JSON documents based on whether the
documents have unique keys or duplicate keys. Integration Server can parse JSON
documents faster when you set this parameter based on the nature of the documents
you expect to receive. If you expect to process JSON documents that have unique keys or
only a few duplicate keys, set this property to true (the default). If you expect to process
JSON documents that have a lot of duplicate keys, set this property to false.
Note:
watt.server.json.prettyPrint
Species whether the output of JSONCoder.encode() is formaed with carriage returns
and indentation to make the output easier to read. When Integration Server responds
to a client request with JSON content, the format of that response is controlled by this
property. If this parameter is set to true, Integration Server encodes JSON with carriage
returns and indentation to ease readability. The default is false. For more information
about JSONCoder, see webMethods Integration Server Java API Reference.
You can override this seing in individual requests that use the invoke or rest directives
by including a query parameter of jsonPrettyPrint=true or jsonPrettyPrint=false
in the URL used to invoke a service.
Note:
You cannot override this seing when using other directives, such as soap
or ws.
Note:
931
Even Header
Server Configuration Parameters
watt.server.key
Species the license key for the server. There is no default.
watt.server.ldap.cleanContext
Species whether Integration Server should close the TCP/IP connection and clean
the LDAP context (the connectionHandle object) after processing a pub.client.ldap service
request. When this property is set to true, Integration Server closes the connection
and cleans the underlying LDAP context; Integration Server does not return the LDAP
context to the pipeline. When this property is set to false (the default), Integration
Server does not close the connection and returns the LDAP context to the pipeline.
For more information about the pub.client.ldap services, see webMethods Integration Server
Built-In Services Reference.
watt.server.ldap.DNescapeChars
Species the characters Integration Server can escape (using the \ character) in
distinguished names presented to an LDAP server. By default, this property is set to
null, meaning no characters are escaped.
Use this parameter if the distinguished names you are using include special characters
that Integration Server needs to escape. For example, if your LDAP server maintains
userids such as abc/def, specify the following:
watt.server.ldap.DNescapeChars = /
watt.server.ldap.DNescapePairs
Species the characters in LDAP distinguished names that Integration Server should
not double-escape prior to their presentation to an LDAP server. To escape special
characters in a distinguished name, you must precede the character with a backslash
(\). By default, the following characters are never double-escaped, and should not be
specied in wa.server.ldap.DNescapePairs:
,=+<>#;/\
If the distinguished names in your LDAP server contain special characters other than
those specied above, add them to wa.server.ldap.DNescapePairs so that Integration
Server does not double-escape the characters. For example, do not add an equal sign
(=) to wa.server.ldap.DNescapePairs, since this is never double-escaped by default.
However, if the LDAP distinguished name contains an ampersand (&) and it should
be double-escaped, add an ampersand character to wa.server.ldap.DNescapePairs as
follows:
watt.server.ldap.DNescapePairs=&
This property has no default value. If no value is supplied, no special characters beyond
the set listed above are protected from double-escape. This property is not dynamic.
Changes to its value go into eect after Integration Server is restarted.
watt.server.ldap.DNescapeURL
Indicates whether Integration Server should ignore the rst three forward slashes (/)
in domain names, or to treat them as escape characters. If set to false (the default),
Integration Server ignores the rst three slashes in a domain name. Integration
932
Odd Header
Server Configuration Parameters
Server treats the slashes as part of the domain name, not as escape characters,
regardless of the escape characters dened in the wa.server.ldap.DNescapeChars and
wa.server.ldap.DNescapePairs server conguration parameters.
If set to true, Integration Server treats the forward slashes as escape characters and
escapes domain names in accordance to the seings of wa.server.ldap.DNescapeChars
and wa.server.ldap.DNescapePairs.
Important: You must restart Integration Server after you modify the value of this
property.
watt.server.ldap.DNstripQuotes
Species whether Integration Server should strip leading and trailing quotes from
domain names presented to an LDAP server. When set to true (the default), Integration
Server strips the quotes from domain names that contain special characters.
Note:
Important: You must restart Integration Server after you modify the value of this
property.
watt.server.ldap.doNotBind
Species whether the Integration Server authenticates against the LDAP server. If your
Integration Server uses a custom authentication module and you do not require users
to be authenticated against the LDAP directory, set this property to true to prevent
unnecessary requests to the LDAP server. The default is false.
watt.server.ldap.extendedMessages
Controls whether the Integration Server displays additional information returned from
the LDAP server when an authentication error occurs. This information is available only
if the LDAP server provides it. Active Directory is an LDAP server that provides this
additional information. The default is false.
When set to false, an error message might look like this:
When set to true, the same error would be displayed like this:
For Active Directory users, the data code (data 52e above) contains the reason the
authentication failed. You can convert the code to decimal and look it up on hp://
msdn.microsoft.com/library/en-us/debug/base/system_error_codes.asp to determine the
problem.
933
Even Header
Server Configuration Parameters
watt.server.ldap.extendedProps
Species LDAP environment properties that the Integration Server will pass directly to
an LDAP implementation when initializing a JNDI context. It takes this form:
For example, if you are using a specialized JNDI provider other than the default, or if
your LDAP directory requires a special JNDI property to be passed into the environment
when a context is created, you could set the property customProperty to customValue:
watt.server.ldap.extendedProps=java.naming.customProperty=customValue
There is no default.
watt.server.ldap.memberInfoInGroups
Controls where Integration Server looks for LDAP group membership information.
When set to true, the default, the Integration Server looks for group membership
information in the group object. When set to false, the Integration Server looks for
group membership information in the user object.
watt.server.ldap.retryCount
Species how many times Integration Server should automatically try to reconnect to
an LDAP server after a network outage or LDAP server restart. If set to 0, the default,
Integration Server will prompt the LDAP user for credentials rather than retrying the
connection. If set to a positive integer, Integration Server will retry the connection the
number of times specied. The default is 0.
watt.server.ldap.retryWait
Species how long Integration Server should wait before trying to reconnect to an LDAP
server after a network outage or LDAP server restart. When set to 0, if there is a transient
failure while communicating with LDAP, Integration Server will not try to reconnect to
the LDAP server. If set to a positive integer, Integration Server will retry the connection
the number of times specied in watt.server.ldap.retryCount and will wait the
amount of time specied in watt.server.ldap.retryWait between retry aempts. The
default is 0.
watt.server.licenses
Species the number of licenses. The default is 1.
watt.server.log.alertMaxEntries
Species the number of entries that you can display in the Logs > logName page beyond
which Integration Server Administrator displays an alert message. If the value entered
in the Number of entries to display eld in the Logs > logName page is more than the value
specied for wa.server.log.alertMaxEntries, Integration Server Administrator displays
a message informing that the number of requested entries exceeds the threshold and
that displaying more entries might aect Integration Server performance. If no value is
specied for wa.server.log.alertMaxEntries, Integration Server Administrator does not
display any alert message.
watt.server.log.maxEntries
Species the default number of log entries to be displayed in the log viewing utility. The
default is 35 entries (the most recent entries). For complete information, see "Changing
the Display Permanently for All Logs" on page 226.
934
Odd Header
Server Configuration Parameters
watt.server.log.orphanLoggers
Species the orphan loggers that you want to be adopted by the IS logging hierarchy.
Some Integration Server logs become lled with debug messages even though the
logging level is set to be higher than debug. This can happen when Integration Server
has orphan loggers (loggers that are not part of the IS logging tree hierarchy) and
a custom application congures the root logger of log4j. If there is not a custom
conguration of log4j, the orphan loggers will inherit the logging levels specied in the
IS logging tree hierarchy. However, if a custom application recongures the root logger
in the log4j conguration le, the orphaned loggers inherit the logging level from the
root logger. Consequently, if the log4j.rootLogger is set to DEBUG, the orphaned loggers
will log at the Debug level.Use this parameter to prevent orphan loggers from logging at
the modied log4j.rootLogger level. Use a comma to separate multiple orphan loggers.
For example:
watt.server.log.orphanLoggers=WEBMETHODS.DEFAULT,log4j.logger.com.softwareag
.wsstack,log4j.logger.com.softwareag.security,Debug.com.webmethods.lwq,com
.webmethods.jms.db.DbJMSClient
watt.server.log.queued
Species whether the server is to queue log entries wrien by its facilities in memory,
then use a background thread to write them to the server log. The default is true (queue
log entries). For complete information, see the webMethods Audit Logging Guide.
watt.server.log.refreshInterval
Species the length of time (in seconds) that Integration Server Administrator refreshes
the displayed server log. The default is 90 seconds. For complete information, see
"Changing the Display Permanently for All Logs" on page 226.
watt.server.logEncoding
Species the encoding that Integration Server uses for reading and writing text to the log
les or to the console. The default is UTF-8.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.logRotateInterval
Species the length of the log recycle interval (in milliseconds) for log entries. Starting
with Integration Server 9.7, this server conguration parameter has been renamed
wa.server.statsLogRotateInterval.
The wa.server.logRotateInterval parameter was removed from Integration Server after
8.2 SP2. When it was reintroduced for the following xes, the scope of the parameter
changed so that it aected only the stats.log:
IS_9.0_SP1_Core_Fix6
IS_9.5_SP1_Core_Fix3
IS_9.6_Core_Fix2
If you migrate from Integration Server 9.6 or earlier to Integration Server 9.7, Integration
Server:
935
Even Header
Server Configuration Parameters
Important: You must restart Integration Server after you modify the value of this
property.
watt.server.logs.dateStampFmt
Species the format of the date and timestamp to be used in audit log les
(FailedAudit_*, WMERROR*, WMSESSION*, WMTXIN*, WMTXOUT*). The
format you specify must adhere to the java.text.SimpleDateFormat class. If the
wa.server.logs.dateStampFmt property is not set, Integration Server uses the default
format, which is yyyy -MM -dd Thh:mm :ss .SSS Z (for example, 2010-04-19T19:07:21.505Z).
watt.server.logs.dateStampTimeZone
Species the time zone to be used in audit log les (FailedAudit_*, WMERROR*,
WMSESSION*, WMTXIN*, WMTXOUT*). The format you specify must adhere to the
java.util.TimeZone class (for example, wa.server.logs.dateStampTimeZone=EST). If this
property is not set, Integration Server uses local time zone hosting. For this property to
take eect, the wa.server.logs.dateStampFmt must also be specied.
watt.server.math.floatOperation.mode
Species whether the pub.math:*Floats services return the exact result of an operation
involving two oating point numbers, the result as calculated by the JVM, or the result
based on a xed number of decimal places.
Set this parameter to one of the following values:
936
Odd Header
Server Configuration Parameters
Specify...
dynamic
Return the precise result of the math operation. For example, when
using pub.math:addFloats to add 62.98 and 23, the service returns a
sum of 85.98.
default
fixed
Note:
Important: You must restart Integration Server for a new value to take eect.
watt.server.metadata.registry.timeout
The number of minutes a connection to aCentraSite registry can remain inactive before
Integration Server closes it. Integration Server connects to one or more CentraSite
registries to publish and retract metadata for your Integration Server assets. If no assets
are published to or retracted from a CentraSite registry for a period of time, Integration
Server closes the connection to that registry. The default period is 10 minutes.
watt.server.mime.decodeHeaders
Determines the global default behavior for how the pub.mime:createMimeData service
handles header decoding. The property can have one of the following values:
Specify...
To indicate that...
NONE
937
Even Header
Server Configuration Parameters
Specify...
To indicate that...
ONLY_MIME_HEADER
Species that by default the pub.mime:createMimeData service
Note:
Note:
watt.server.netEncoding
Species the encoding the server is to use when reading and writing text to the
network. This seing has no eect on text that is explicitly encoded in a particular
encoding. The default is UTF-8. The encoding parameter in the pub.client:soapHTTP service,
if set, overrides the wa.server.netEncoding seing. For more information about
pub.client:soapHTTP, see webMethods Integration Server Built-In Services Reference.
watt.server.new.http.session.context
Species whether Integration Server should create a new session object when executing
the pub.client:http service. When this property is set to true, Integration Server ignores
the values from the session object of the last invocation of pub.client:http and creates a new
session object. When this property is set to false, Integration Server uses the values
from the existing session object. The default value is false.
watt.server.noObjectURL
Species the URL to which the server redirects a request after three aempts to log on
to the Integration Server Administrator have failed because the server cannot nd the
document the user is requesting. The default is for the server to display an HTML screen
saying "No such object."
watt.server.noAccessURL
Species the URL to which the server is to redirect a request after three aempts to log
on to the Integration Server Administrator have failed because the user does not have
access to the requested document. The default is for the server to display an HTML
screen saying "Access denied."
938
Odd Header
Server Configuration Parameters
watt.server.ns.backupNodes
Species whether services are removed completely when they are deleted. When set
to true, service node.ndf les will be renamed to node.bak when they are deleted. The
default is false.
watt.server.ns.dependencyManager
Species whether the dependency checking features are enabled or disabled. When
set to true, the dependency checking features identify elements that will be aected
by moving, renaming, or deleting another element. For optimization in a production
environment, you might set this parameter to false. The default for this parameter is
true.
watt.server.ns.hideWmRoot
Indicates whether Integration Server should hide the WmRoot package from the
Software AG Designer workspace. When set to true (the default), Designer does not
display the WmRoot package in the workspace.
watt.server.ns.lockingMode
Species whether le locking is enabled on the Integration Server:
To enable use of the Version Control System Integration feature, set this value to
vcs.
To enable local locking on the Integration Server, set this value to full. This is
the default value.
To disable user locking and show no locks, set this value to none.
To disable user locking but show system locks, set this value to system. This
value is required to use the Local Service Development feature.
Important: The WmVCS package, which provides the functionality for using the VCS
Integration Feature, is deprecated as of Integration Server version 9.9.
Software AG recommends that you use the local service development
feature (Local Version Control Integration) to check package elements
and their supporting les into and out of a version control system (VCS)
directly from Designer.
watt.server.oauth.approvalpage.footer
Species the footer information that Integration Server displays on the OAuth approval
page. There is no default.
watt.server.oauth.approvalpage.header
Species the heading information that Integration Server displays on the OAuth
approval page. The default is Resource access approval.
watt.server.oauth.approvalpage.logo
Species the URL of the image le that Integration Server displays on the OAuth
approval page. Keep the following points in mind when specifying an image le:
Image les can be of any width, but can be no larger than 92 pixels high.
939
Even Header
Server Configuration Parameters
You can specify an image of any image le format (for example, .gif, .png, .jpeg,
or another image le format) that your browser can display.
The image le does not have to reside on Integration Server. If the image le is
hosted on another server, provide the absolute path.
The default is /WmPublic/images/fw_logo_sag.gif, which is 234x92 pixels.
watt.server.oauth.approvalpage.title
Species the title that Integration Server displays on the OAuth approval page. The
default is Access Approval.
watt.server.oauth.authCode.expirySeconds
Species the amount of time (in seconds) before the OAuth authorization code expires.
A value of -1 indicates that the authorization code never expires. The maximum value is
2147483647. The default is 600.
The value of the wa.server.oauth.authCode.expirySeconds parameter is tied to the
value of the Authorization code expiration interval eld on the Security > OAuth > Edit OAuth
Global Settings screen in Integration Server Administrator. Software AG recommends that
you use Integration Server Administrator to specify the expiration time for the OAuth
authorization code instead of using the wa.server.oauth.authCode.expirySeconds
property. For more information about seing the expiration time for the OAuth
authorization code, see "Conguring OAuth" on page 535.
watt.server.oauth.authServer.alias
Species the alias of the remote server that Integration Server uses as an authorization
server. The value should match the Alias eld on the Settings > Remote Servers page of
Integration Server Administrator. For example, local.
Note:
You must add the remote server on the Settings > Remote Servers
page of Integration Server Administratorbefore specifying the alias in
wa.server.oauth.authServer.alias.
940
Odd Header
Server Configuration Parameters
OpenID error messages will appear as X-OAuth-Error response header aributes in the
server log.
The default value for wa.server.oauth.custom.responseHeader is false.
watt.server.oauth.requireHTTPS
Indicates whether Integration Server requires that client applications use HTTPS to
access the pub.oauth:authorize, pub.oauth:getAccessToken, and pub.oauth:refreshAccessToken
services. If you set the value of this property to false, Integration Server allows client
applications to use HTTP to access the pub.oauth services. The default is true.
If you set the value of this property to true and the client application accesses any of the
pub.oauth services over HTTP, Integration Server issues an HTTP 500 error response to
the client and writes a service exception to the error log.
Note:
To conform to the OAuth 2.0 Authorization Framework, you must set this
property to true.
941
Even Header
Server Configuration Parameters
load packages in parallel, set the value to 2 or higher. It is recommended that you do not
exceed 10. The default value is 6.
Note:
watt.server.package.wsd.loadExternalResources
Species whether, at package load time, Integration Server loads the external resources
for a consumer web service descriptor or a WSDL rst provider web descriptor created
on a pre-8.2 version of Integration Server with thePre-8.2 compatibility mode property set to
true.
When this parameter is set to true , Integration Server resolves all the import and include
statements in the source WSDL document and related XML Schema denition les for
consumer web service descriptors or WSDL rst provider web service descriptors at the
package load time.
When this parameter is set to false , Integration Server skips loading the external
resources contained in the source WSDL document used to create the web service
descriptor. In some environments, seing this parameter to false may speed up the
loading of web service descriptors. The default is true.
watt.server.partner
Species the IP address or domain name of a hub server. This seing allows the partner
server to issue a remote invoke request to a remote Integration Server. Integration Server
will ignore a port number if you specify one as part of an IP address.
watt.server.password.minDigits
Species the minimum number of digits a password must contain for non-Administrator
users. When a non-Administrator user changes a password, he or she must create a
password containing at least the number of digits specied by this parameter. If the
minimum number of digits is not met, Integration Server sends a warning message to
the Administrator user. The default is 1.
watt.server.password.minLength
Species the minimum number of characters a password must contain for nonAdministrator users. The character length includes upper and lower case alphabetic
characters, digits (0-9), and special characters combined. When a non-Administrator user
changes a password, he or she must create a password containing at least the number
of characters specied by this parameter. If the minimum length is not met, Integration
Server sends a warning message to the Administrator user. The default is 8.
watt.server.password.minLowerChars
Species the minimum number of lowercase alphabetic characters a password must
contain for non-Administrator users. When a non-Administrator user changes a
password, he or she must create a password containing at least the number of lowercase
characters specied by this parameter. If the minimum is not met, Integration Server
sends a warning message to the administrator user. The default is 2.
watt.server.password.minSpecialChars
Species the minimum number of special characters, such as asterisk (*), period(.), and
question mark(?), a password must contain for non-Administrator users. When a nonwebMethods Integration Server Administrators Guide Version 9.10
942
Odd Header
Server Configuration Parameters
Important: You must restart Integration Server for the new value to take eect.
watt.server.port
Species the port number of the Integration Server's primary port. The default is 5555.
watt.server.portQueue
Species the size of the port queue for HTTP and HTTPS ports. The port queue is the
number of outstanding inbound connections that are queued in the TCP/IP stack. The
default is 65534. If your server runs on AS/400, set this number to 511.
watt.server.publish.local.rejectOOS
Species whether Integration Server should reject locally published documents when the
queue for the subscribing trigger is at maximum capacity.
When this parameter is set to true, before placing a locally published document into
a subscribing trigger's queue, Integration Server rst checks the trigger's queue size. If
943
Even Header
Server Configuration Parameters
the queue already contains the maximum number of documents allowed by the trigger's
Capacity property, Integration Server rejects the locally published document for that
trigger queue only.
When this parameter is set to false, Integration Server continues to place locally
published documents into a subscribing trigger's queue even when the queue is at
capacity. This is the default.
Note:
Note:
watt.server.publish.useCSQ
Species whether Integration Server uses outbound client-side queuing if documents
are published when the Broker is unavailable. Set this parameter to always to send
published documents to the outbound document store when the Broker is not
available. Set this parameter to never to instruct the publishing service to throw a
ServiceException when the Broker is not available. The default is always.
watt.server.publish.drainCSQInOrder
If client-side queuing is enabled, this parameter species whether Integration Server
should empty the outbound document store in publication order or in parallel with
newly published documents. When this parameter is set to true, Integration Server
sends all newly published documents (guaranteed and volatile) to the outbound
document store until the outbound store has been emptied. This allows the Integration
Server to maintain publication order. When this parameter is set to false, the outbound
store is emptied while new documents are being published to the Broker. The default is
true.
Note:
watt.server.publish.usePipelineBrokerEvent
Species whether Integration Server should bypass encoding that is normally performed
when documents are published to the Broker. If this property is set to true, Integration
Server checks the pipeline for an object called $brokerEvent. If the object is found and is
of type BrokerEvent, Integration Server sends its value to the Broker and no additional
encoding is performed. Set this parameter to true if Integration Server is sending native
Broker events. The default is false.
For more information about publishing native Broker events, see the Publish-Subscribe
Developers Guide.
watt.server.publish.validateOnIS
Species whether Integration Server validates published documents. Set this parameter
to one of the following values:
944
Odd Header
Server Configuration Parameters
Specify...
To...
always
never
perDoc
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
For information about handling native Broker events and specifying validation for an
individual publishable document type, see the Publish-Subscribe Developers Guide.
watt.server.recordTodocument.bufferSize
Species the size of the buer that Integration Server uses to write an XML string when
converting a document (IData) to an XML string. Increase the buer size if the majority
of the created XML strings will be greater than 4 KB. Decrease the buer size if the
majority of the created XML strings will be small documents less than 4 KB in size. The
default size is 4 KB.
watt.server.requestCerts
Species whether the Integration Server requests a digital certicate from clients that
connect to it through SSL. Set this parameter to true if you want the server to request
certicates. Set it to false if you do not want the server to request certicates. The
default is false.
945
Even Header
Server Configuration Parameters
watt.server.RESTDirective
Species an alternative word to use for the rest directive in URLs that
access resources on Integration Server. By default, this parameter is set as
watt.server.RESTDirective=rest, which means users must specify the rest directive
as rest (for example, GET http://host:port/rest/resource/resourceID).
To allow users to specify the rest directive as either rest or an alternative word, set
this parameter to the alternative word. For example, to allow users to specify the
rest directive as either rest or process, (GET http://host:port/rest/resource/
resourceID) or GET http://host:port/process/resource/resourceID), set this
parameter as watt.server.RESTDirective=process.
watt.server.revInvoke.proxyMapUserCerts
For webMethods Enterprise Gateway only. Species whether an Enterprise Gateway
Server is to perform client authentication itself in addition to passing authentication
information to the Internal Server for processing. The default is false. If this property is
set to true, Enterprise Gateway Server will reject all anonymous requests (no certicate
and no username/password supplied), even if the request is for an unprotected service
on the Internal Server. See "Conguring webMethods Enterprise Gateway " on page 493
for more information.
watt.server.rg.internalregistration.timeout
For webMethods Enterprise Gateway conguration only. Set this value on the Internal
Server to specify the time (in seconds) the Internal Server will wait before closing an
unresponsive connection to the Enterprise Gateway Server. The default is 0, which
means the Internal Server will not time out (a timeout period of innity).
Important: Set the value of wa.server.rg.internalregistration.timeout
on the Internal Server to a value greater than the ping values
dened by the wa.net.socketpool.sweeperInterval server
conguration parameter on the Enterprise Gateway Server. Seing
wa.server.rg.internalregistration.timeout to a value that is lower than
wa.net.socketpool.sweeperInterval will cause the Internal Server to close
the connection to the Enterprise Gateway Server and re-establish a new
connection regularly.
watt.server.scheduler.deleteCompletedTasks
Species whether or not scheduled tasks that have expired should be automatically
deleted. When set to true, Integration Server deletes expired tasks when they expire. Set
this parameter to false if you want Integration Server to wait until the next server restart
to delete expired tasks. The default is true.
watt.server.scheduler.ignoreReferenceValidationErrors
Species whether Integration Server creates or executes a scheduled task if the
scheduled service has a broken reference. Set the property to true to indicate that
Integration Server ignores broken references for the scheduled service when executing
a scheduled task. Set it to false to indicate that Integration Server should not execute a
scheduled task if the scheduled service has one or more broken references. The default is
false.
946
Odd Header
Server Configuration Parameters
watt.server.scheduler.logical.hostname
Species a unique logical name to identify Integration Server instances in a cluster
hosted on a single machine. By default, Integration Server uses the host name
to identify itself while scheduling tasks. However, when a cluster of Integration
Servers are hosted on a single machine, the host name itself cannot uniquely
identify the individual Integration Server instances. In such cases, use the
wa.server.scheduler.logical.hostname property to specify a unique logical name to
identify individual Integration Server instances.
The default value for this parameter is the host name.
Keep the following points in mind when seing the
wa.server.scheduler.logical.hostname property:
Set this property only if you are running multiple Integration Servers in a cluster
on a single machine.
Set this property on each Integration Server instance in the cluster before
scheduling any tasks.
The logical host name you specify must be unique.
The logical host name you specify cannot contain a semicolon (;).
This property is also useful when Integration Server is installed on a virtual
server whose host name or IP address might change over time. You can use
wa.server.scheduler.logical.hostname to provide a xed value that identies each
server in a cluster.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.scheduler.maxWait
Maximum time in seconds Integration Server waits between queries of the task queue.
The server periodically checks the queue for tasks that are scheduled to run. If there are
no tasks waiting to run, the server waits the maxWait time before checking the queue
again. If there are tasks waiting to run, the server checks again at the task's schedule
execution time, or after the maxWait time, whichever is earlier. For example, if the
pending task is due to execute in 30 seconds and the maxWait time is 60, the server will
check the queue again in 30 seconds. The default is 60.
Note:
You must ensure that the value you specify for this parameter must be less
than the minimum time interval set for a scheduled task.
If you run a cluster of Integration Servers and schedule a task to run on all servers in the
cluster, you might notice tasks starting at dierent times on the dierent servers if the
servers have dierent seings for this property. For this reason, if you are running in a
clustered environment, all the servers in your cluster should have the same seings for
this property. See the webMethods Integration Server Clustering Guide for more information
about conguring Integration Servers in a cluster.
947
Even Header
Server Configuration Parameters
watt.server.scheduler.threadThrottle
Percentage of Integration Server threads the scheduler process is permied to use. The
default is 75%.
watt.server.serverlogRotateSize
Species the le size at which Integration Server rolls over the server.log le. Set this
property to N [KB|MB|GB], where N is any valid integer greater than or equal to 33.
The minimum size at which Integration Server rotates the server.log le is 33KB. Do not
include any spaces between the integer and the unit of measure.
There is no default value for this parameter. That is, by default, the parameter has no
value. If no value is specied for wa.server.serverlogRotateSize, Integration Server
rotates the server.log le at midnight only.
If an invalid value is specied, Integration Server resets the parameter to -1. Note that a
value of -1 results in the same behavior as specifying no value for the parameter.
For more information about the server.log, see "Seing Up the Server Log" on page 215.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.server.serverlogQueueSize
Controls the number of entries allowed in the server log queue. This property is related
to the watt.server.log.queued property, which controls whether the server is to
write entries directly to the server log, or queue them in memory rst and then use
a background thread to write them to the server log. If your conguration has the
watt.server.log.queued property set to true and you notice that expected server log
entries are not included in the log, try increasing the queue size. For more information
about the server log and the server log queue, see "Specifying Whether to Queue Server
Log Entries" on page 219. The default queue size is 8192.
watt.server.serverclassloadername
This is an internal property. Do not modify.
watt.server.service.lazyEval
Controls whether Integration Server initializes Java services during startup. When set
to true (the default), Integration Server does not initialize Java Services until they are
referenced during runtime. This can increase performance if the server initializes a lot of
Java Services at start up.
watt.server.serviceMail
Species the email address to which Integration Server sends messages about service
failures. There is no default.
When you specify an email address on this parameter, Integration Server creates
a simple scheduled task to perform the notication. This task requires a thread,
which Integration Server takes from the cronjob-based thread pool. See the
wa.server.cron.maxThreads and wa.server.cron.minThreads parameters for more
information about this thread pool.
948
Odd Header
Server Configuration Parameters
watt.server.serviceUsageDSP.RefreshInterval
Species the interval, measured in seconds, that elapses before Integration Server
Administrator refreshes the data on the Server > Statistics page. The default is 90 seconds.
The change to the parameter takes eect the next time the Server > Statistic page is
reloaded.
watt.server.session.stateful.enableLimit
Controls whether the stateful session limit feature is enabled. When this property is
set to true, Integration Server allows stateful sessions to be created as needed until it
reaches the maximum allowed, which is specied by the wa.server.session.stateful.max
property. You can view statistics for stateful sessions on the Server > Statistics screen in
Integration Server Administrator.
watt.server.session.stateful.max
Species the number of concurrent stateful sessions allowed on the Integration Server.
If a user aempts to access the server and execute a stateful service while the maximum
number of stateful sessions are in use, the server rejects the request and returns an error
to the user.
The value for wa.server.session.stateful.max must be a positive integer. If a value is
not specied or the wa.server.session.stateful.enableLimit property is set to false, the
maximum number of concurrent sessions is dened by your Integration Server license.
Note:
It is recommended that you use the Maximum Stateful Sessions eld in the
Edit Resource Seings page of the Integration Server Administrator to set
the maximum value. For more information about seing a maximum limit
for stateful sessions, see "Managing Server Sessions" on page 112.
watt.server.session.stateful.warning
Species the threshold at which Integration Server starts to warn of insucient available
stateful sessions. When the percentage of available stateful sessions is equal to or less
than the value of this property, Integration Server generates a server log message stating:
The default is 25%.
Note:
It is recommended that you use the Enable Stateful Session Limit eld in the
Edit Resource Seings page of the Integration Server Administrator to
set the threshold value. For more information about seing an available
stateful sessions warning threshold, see "Managing Server Sessions" on
page 112.
watt.server.setResponse.pre82Mode
Species the order in which the pub.flow:setResponse service looks for and uses the
deprecated input parameters when neither of the input parameters responseString or
responseBytes are provided.
When set to true, the pub.flow:setResponse service follows a precedence order similar to
what was available in Integration Server 7.1x and 8.0x. Specically, the service looks
for the deprecated parameters in the following order and uses the value of the rst
parameter that it nds: response , string , bytes
949
Even Header
Server Configuration Parameters
Integration Server...
None
Explicit
Implicit
watt.server.smtpTrustStoreAlias
Species the alias for the truststore that contains the list of certicates that Integration
Server uses to validate the trust relationship between Integration Server and the SMTP
server. If you do not specify a truststore alias, the default truststore alias specied in
the wa.security.trustStoreAlias property will be used. For more information about
truststore alias, see "Creating Truststore Aliases" on page 412.
950
Odd Header
Server Configuration Parameters
watt.server.SOAP.addEmptyHeader
Species whether Integration Server should create an empty header entry
in the SOAP message created by executing the pub.soap.utils:createSoapData or
pub.soap.utils:stringToSoapData services. When this property is set to true, Integration Server
creates an empty header in the SOAP message. When this property is set to false,
Integration Server does not create a header entry in the SOAP message. The default is
true.
The addEmptyHeader parameter in the pub.soap.utils:createSoapData
or pub.soap.utils:stringToSoapData services, if set, overrides the
wa.server.SOAP.addEmptyHeader seing.
For more information about pub.soap.utils:createSoapData and pub.soap.utils:stringToSoapData
services, see webMethods Integration Server Built-In Services Reference.
watt.server.SOAP.completeLoad
Species whether the XML node added by pub.utils:addBodyEntry, pub.utils:addHeaderEntry,
pub.utils:addTrailer will be completely loaded before adding to the SOAP message. When
set to true, Integration Server loads the entire XML node. When set to false, Integration
Server does not completely load the XML node before adding it to the service. The
default is true.
watt.server.soap.convertPlainTextHTTPResponseIntoSOAPFault
Species how Integration Server returns the response from a web service invocation
when it is acting as a client and the web service results in a plain text HTTP response.
This parameter applies only when the web service connector was created using:
Integration Server version 8.2 or later, but the web service descriptors Pre-8.2
compatibility mode property is true
A version of Integration Server prior to version 8.2
When the wa.server.soap.convertPlainTextHTTPResponseIntoSOAPFault parameter
is set to true (the default), Integration Server converts the plain text HTTP response and
returns the information from the HTTP response within web service connector's output
parameters.
If the web service connector was created using Integration Server version 8.2 or
later and the Pre-8.2 compatibility mode property is true, Integration Server returns
the converted HTTP payload in the web service connectors fault/reasons output
parameter.
If the web service connector was creating using a version of Integration Server
prior to version 8.2, Integration Server returns the converted HTTP payload in
one of the following based on the SOAP protocol in use:
SOAP-FAULT/Fault_1_1/faultstring
SOAP-FAULT/Fault_1_2/SOAP-ENV:Reason/SOAP-ENV:Text
Having the plain text HTTP response converted and returned in the web service
connectors output parameter can be helpful because it might contain the cause of the
exception.
951
Even Header
Server Configuration Parameters
If you set the parameter to false, when the web service results in a plain text HTTP
response, Integration Server throws an exception indicating that an invalid SOAP
envelope is received.
Important: After updating this parameter, you must restart Integration Server for
changes to this parameter to take eect.
watt.server.soap.decodeElementWithPrefix
Species whether Integration Server recognizes document types that have dened XML
namespace URIs but do not have prexes associated with each namespace. By default,
in Integration Server version 8.2 SP2 and higher, if document types that have a dened
XML namespace URI but do not have a prex associated with each namespace are
specied as inputs to services, the SOAP processor fails to recognize the document types
at run time. If the wa.server.soap.decodeElementWithPrex property is set to true,
Integration Server recognizes the document types that have dened XML namespaces
but do not have prexes associated with each namespace.
The default is false.
The wa.server.soap.decodeElementWithPrex server conguration parameter value
aects how Integration Server decodes inbound SOAP messages for web service
descriptors created on Integration Server version 7.1.x. Specically, the parameter
aects how Integration Server decodes SOAP response messages received by a 7.1.x web
service connector and SOAP request messages received by a 7.1.x web service provider.
When wa.server.soap.decodeElementWithPrex is set to true, when decoding
an inbound SOAP message, Integration Server does not consider namespace and/
or prex declarations when decoding the SOAP message to IData for any web
service or web service connector that is part of a web service descriptor created
in 7.1.x. Integration Server will map namespace qualied elements in the XML
string to elds in an IS document type even if the eld names do not include
a prex. That is, when the parameter is set to true Integration Server uses the
decoding behavior available in version 7.1.x. for any web service or web service
connector that is part of a web service descriptor created in Integration Server
7.1.x.
Note:
952
Odd Header
Server Configuration Parameters
not include a prex. That is, when the parameter is set to false, Integration Server
uses the decoding behavior available in version 8.2 SP2 and later for any web
service or web service connector that is part of a web service descriptor created in
Integration Server 7.1.x and later.
Note:
For web service descriptors created in Integration Server 8.2 SP2 onwards,
you must associate a prex with an XML namespace URI for elds in the
service signature.
953
Even Header
Server Configuration Parameters
will be omied. The default is true. Software AG recommends using a value of true for
this parameter.
watt.server.SOAP.encodeXSITypeValue
Indicates whether Integration Server should include the xsi:type aribute and its
value for an element of xsd:anyType in SOAP requests and responses. When set to
false, Integration Server omits the xsi:type aribute and its value for an element of
xsd:anyType in SOAP requests and responses. When set to true, Integration Server
includes the xsi:type aribute and its value for an element of xsd:anyType in SOAP
requests and responses. The default is true.
Note:
watt.server.SOAP.generateNilTags
Species whether or not Integration Server generates an xsi:nil aribute for an element
in a SOAP message. When set to true, Integration Server generates an xsi:nil aribute
for an element that is nillable (the Allow null property for the corresponding eld is
set to true) and the eld is null at run time. When wa.server.SOAP.generateNilTags
is set to false, Integration Server omits the xsi:nil aribute for an element even if the
corresponding eld is nillable and the eld is null at run time. The default is true.
watt.server.SOAP.generateRequiredTags
Species whether or not a SOAP message generated by Integration Server
includes empty element tags for required parameters for which a value was
not supplied at run time. When set to true, Integration Server generates empty
element tags for required parameters for which a value is not specied. When
wa.server.SOAP.generateRequiredTags is set to false, Integration Server omits empty
element tags for required parameters for which a value is not specied. The default is
true.
watt.server.SOAP.hideEPRHostInFault
Hides the endpoint reference host name and IP address details in the SOAP fault.
When this parameter is set to true, Integration Server replaces the host name and IP
address with *:* in the SOAP fault. When this parameter is set to false, Integration Server
includes the host name and IP address details of the endpoint reference in the SOAP
fault. The default is false.
Note:
This parameter applies only when the Pre-8.2 compatibility mode property of
the web service descriptor is set to false.
watt.server.SOAP.ignoreMissingResponseHeader
Determines whether missing required headers in a SOAP response results in an error.
When set to true, a SOAP response that does not contain a required header will not
result in an error. When set to false, a SOAP response that does not contain a required
header results in an error. The default is false.
Note that all headers in a web service descriptor, whether generated from the original
WSDL document or added to the web service descriptor, are treated as required. This
954
Odd Header
Server Configuration Parameters
is an application of the WS-I basic prole rules declaring that all headers in a WSDL be
treated as required. Prior to Integration Server version 9.0, when processing a SOAP
response received by a web service descriptor, Integration Server did not properly
validate that all of the SOAP headers were present. As a result, Integration Server did
not throw an error when a SOAP response was missing a SOAP header. Beginning in
Integration Server version 9.0, Integration Server properly validates SOAP responses
for required headers. If a required header is not present, Integration Server throws the
following error: [ISS.0088.9443] One or more required Headers <headerName> are
not present in the SOAP response. While failure when a required header is missing
is the correct behavior, Integration Server provides a conguration property to control
whether missing required headers in a SOAP response results in an error. This can be
useful in migration situations.
watt.server.SOAP.MTOMStreaming.cachedFiles.location
Species the absolute path to the hard disk drive space that Integration Server
uses to temporarily store inbound SOAP messages when performing MTOM
streaming. This parameter takes eect only when MTOM streaming is enabled (i.e.,
wa.server.SOAP.MTOMStreaming.enable is set to true).
You can specify a directory on the same machine as the Integration Server or in
any other location accessible to Integration Server, such as a mapped logical drive
or network directory. The default value is Integration Server_directory\instances
\instance_name \temp\mtom\cached les.
Note:
watt.server.SOAP.MTOMStreaming.enable
Indicates whether MTOM streaming is enabled for inbound SOAP messages and
whether HTTP chunking is enabled for outbound requests. Set this property to true
to enable MTOM streaming for inbound SOAP messages and HTTP chunking for
outbound requests. Set this property to false to disable MTOM streaming and HTTP
chunking. The default is false.
watt.server.SOAP.MTOMStreaming.threshold
Species the number of bytes an MTOM aachment in an inbound SOAP
message must be before Integration Server uses MTOM streaming for the MTOM
aachment. This parameter takes eect only when MTOM streaming is enabled (i.e.,
wa.server.SOAP.MTOMStreaming.enable is set to true).
Set the property to a positive integer to indicate the number of bytes for the MTOM
streaming threshold. Integration Server uses MTOM streaming when an MTOM
aachment is larger than the number of bytes you specify. The default is 4000 bytes.
watt.server.SOAP.MTOMThreshold
Species the eld size, in kilobytes, that determines whether Integration Server handles
base64binary encoded data in an outbound SOAP request as a MIME aachment or
whether it sends it inline in the SOAP message. If the web service descriptor for the
SOAP message enables aachments for the SOAP request, Integration Server passes
955
Even Header
Server Configuration Parameters
as MIME aachments any base64 elds in a SOAP message that are larger than the
threshold. The default is 0.
watt.server.SOAP.request.timeout
Species the length of time, in seconds, Integration Server will wait for the SOAP
response from the server hosting the remote procedure. If Integration Server does not
receive a response in the alloed time, it terminates the request. The default value is -1,
which indicates that Integration Server will use the value set for the wa.net.timeout
property.
watt.server.SOAP.setNamespaceURIsToRoot
Species how Integration Server declares XML namespaces in a SOAP response. When
the wa.server.SOAP.setNamespaceURIsToRoot property is set to true, Integration
Server declares the namespace and prex once at the root element of the SOAP response
and then uses the prex for each element in the response. When set to false, Integration
Server declares the namespace the way it is dened in the original document, either
dening each element explicitly with the full namespace or declaring the namespace and
prex just once at the root element. The default value for this property is false.
watt.server.SOAP.streamHandlers
Species the custom SOAP handlers that expect stream inputs. Enter the SOAP handlers
as a semi-colon (;) separated list. There is no default.
watt.server.SOAP.treatNilAsNull
Indicates whether or not Integration Server, when decoding a SOAP message, generates
an @xsi:nil eld for an element for which the xsi:nil aribute is set to true. When set
to true, Integration Server treats an element that carries the xsi:nil aribute as a null
value and does not create an @xsi:nil aribute for the element. When this parameter is
set to false, Integration Server generates an @xsi:nil eld for an element that carries the
xsi:nil=true aribute. This conguration parameter aects all web services running on
Integration Server. The default is true.
Important: You must restart Integration Server for changes to this parameter to take
eect.
watt.server.SOAP.useMultiReference
For elements that appear in multiple places in a SOAP message, species whether
Integration Server serializes each occurrence of the element or serializes it in on only
one place and uses the href aribute in the other locations. When set to true, Integration
Server serializes one location and uses the href aribute in other locations. This
parameter applies to RPC/Encoded web services only. The default is true.
watt.server.SOAP.useStringforAnyTypewithSimpleValue
Species how Integration Server decodes an xsd:anyType element with simple content
in SOAP responses. When set to false, Integration Server decodes xsd:anyType
elements with simple content into an IData with an @xsi:type eld to retain the xsi:type
value and a *body eld to contain the element value. This is the default behavior.
When the wa.server.SOAP.useStringforAnyTypewithSimpleValue server conguration
parameter is set to true, Integration Server decodes xsd:anyType elements with simple
content into a String type eld that contains the element value. The element's xsi:type
956
Odd Header
Server Configuration Parameters
information will be gone. You do not have to restart Integration Server for the change to
take eect.
watt.server.soap.validateResponse
Enables or disables SOAP response validation. When set to true, Integration Server
validates the SOAP response received by a web service connector. When set to false,
Integration Server does not validate the received SOAP response. The default is true.
watt.server.SOAP.validateSOAPMessage
When Integration Server acts as the web service provider, indicates whether Integration
Server validates inbound SOAP requests and outbound SOAP responses. When set
to true, Integration Server validates inbound SOAP requests and outbound SOAP
responses. The default is true.
watt.server.SOAP.warnOnPartValidation
When creating a web service descriptor from a WSDL document, indicates whether
Integration Server should treat message parts that are dened by the type aribute
instead of the element aribute as a warning and not an error. Set this parameter to
true to indicate that Integration Server should return a warning and allow the web
service descriptor to be created. Set this parameter to false to indicate that Integration
Server should return an error and not allow the web service descriptor to be created. The
default is false.
watt.server.soapJMS.defaultMessageType
Species the default message type for web service request messages sent using SOAP
over JMS. Set this parameter to "BytesMessage" to send a message whose body contains
a stream of uninterrupted bytes. Set this parameter to "TextMessage" to send a message
whose body contains a Java string. BytesMessage is considered to be a more ecient
way of sending JMS messages. However, you may want to set the parameter to
TextMessage for debugging purposes because the resulting messages will be in a
human-readable format. Keep in mind that the message type of the request message
determines the message type of the response message. The default is BytesMessage.
Important: You must restart Integration Server for changes to this parameter to take
eect.
Note:
The default message type can be overwrien during web service connector
execution by seing the jms.messageType property in the transportHeaders
input parameter.
Note:
watt.server.soapjms.request.timeout
Species the number of seconds that Integration Server waits for a response to a SOAP
request sent using SOAP over JMS. This value must be an integer greater than or
957
Even Header
Server Configuration Parameters
equal to zero. A value of 0 indicates that Integration Server will wait indenitely for a
response. The default is 10 seconds.
Important: You must restart Integration Server for changes to this parameter to take
eect.
watt.server.SoapRPC.checkHeaders
Indicates whether Integration Server should check SOAP headers for SOAP RPC
requests. The default is true.
Important: You must restart Integration Server for changes to this parameter to take
eect.
watt.server.SoapRPC.distinguishDuplicateElements
Indicates whether Integration Server should dierentiate identically named arrays in
the SOAP response for a SOAP/RPC web service. When set to true, Integration Server
appends a number to the xsi:type value to distinguish between identically named
array elements in the SOAP response, for example elementName and elementName1.
When set to false, Integration Server does not dierentiate identically named arrays in
the SOAP response. The default is true.
watt.server.SoapRPC.useSecondaryType
Instructs Integration Server to use a second type denition when creating the SOAP
response for a service whose input or output signatures contain identically named
variables of dierent types. When creating a WSDL from a provider web service
descriptor that contains a service with identically named elds of dierent types,
Integration Server renames the second instance of the eld type in the WSDL. At run
time, for RPC-Encoded SOAP binding, Integration Server encodes the types in the SOAP
response. When this property is set to true, the SOAP response refers to the renamed
type denition. When set to false, the SOAP response refers to the original type
denition instead of the renamed one. The default is false. This property is applicable
to RPC-Encoded SOAP binding only.
watt.server.ssl.keyStoreAlias
Name of the keystore alias for the Integration Server keystore that contains the
information needed to establish an SSL connection with an SSL-enabled external
server. There is no default value for this parameter. For more information about storing
keystore information for an SSL connection to an external server, see "Storing SSL
Information for the Integration Server JVM in a Secure Manner" on page 415.
Important: You must restart Integration Server for changes to this parameter to take
eect.
watt.server.ssl.trustStoreAlias
Name of the truststore alias for the Integration Server truststore that contains the
information needed to establish an SSL connection an SSL-enabled external server. There
is no default value for this parameter. For more information about storing truststore
information for an SSL connection to a an external server, see "Storing SSL Information
for the Integration Server JVM in a Secure Manner" on page 415.
958
Odd Header
Server Configuration Parameters
Important: You must restart Integration Server for changes to this parameter to take
eect.
watt.server.stats.avgTime
Species the time period (in seconds) for which performance metrics are averaged. The
default is 10.
watt.server.stats.logfile
Species the name of the le to receive statistics. The default is logs\stats.log.
watt.server.statsLogRotateInterval
Species the length of the log recycle interval (in minutes) for the stats.log le. The
recycle interval is the period of time that Integration Server retains statistics log records.
The default is 1440 (24 hours).
Integration Server Administrator displays this value as the Log Recycle task on
the Server > Scheduler > View System Tasks page. Integration Server Administrator
displays this value in seconds instead of minutes. For example, if you set
wa.server.statsLogRotateInterval to the default value of 1440, Integration Server
Administrator displays the value for the Log Recycle interval as 86400 seconds. For more
information about viewing system tasks, see "Viewing Scheduled User Tasks" on page
649.
Note:
watt.server.stats.pollTime
Species the number of seconds between updates of statistics loggings. For a standalone Integration Server, the wa.server.stats.pollTime must be an integer greater than
or equal to 0 (zero). For an Integration Server in a cluster, the wa.server.stats.pollTime
must be an integer greater than 0 (zero) but less than or equal to 60. The default is 60.
watt.server.storage.addKeyToStoreIfNotPresent
Species whether the pub.storage:lock service adds the specied key to the data store if the
key does not exist in the data store at the time the service executes. Set this parameter
to true to have the pub.storage:lock service add the specied key to the data store if the
key does not exist at the time the service executes. The pub.storage:lock service creates the
specied key, assigns it a NULL value, and then locks the entry in the data store. Set this
parameter to false if you do not want the pub.storage:lock service to add the key to the data
store. The pub.storage:lock service is a NOP (no operation) if the specied key value does
not exist in the data store. The default value is false. For more information about the
pub.storage services, see the webMethods Integration Server Built-In Services Reference.
watt.server.storage.lock.maxDuration
Species the maximum number of milliseconds a pub.storage service will hold a lock.
The default value is 180000 milliseconds (3 minutes). For more information about the
pub.storage services, see the webMethods Integration Server Built-In Services Reference.
959
Even Header
Server Configuration Parameters
watt.server.storage.lock.maxWait
Species the maximum number of milliseconds a pub.storage service will wait to obtain a
lock. The default value is 240000 milliseconds (4 minutes). For more information about
the pub.storage services, see the webMethods Integration Server Built-In Services Reference.
watt.server.storage.lock.sweepInterval
Species how often (in seconds) Integration Server deletes expired pub.storage
locks. An expired pub.storage lock is one that is older than the value specied on
the wa.server.storage.lock.maxDuration parameter. The default is 5 seconds. If
the wa.server.storage.lock.sweepInterval parameter is set to a value less than one,
Integration Server ignores the seing and uses 5 seconds instead. Integration Server does
not have to be restarted for changes to this property to take eect. For more information
about the pub.storage services, see the webMethods Integration Server Built-In Services
Reference.
watt.server.strictAccessExceptionLogging
Species whether Integration Server will log HTTP 401 Access Denied as an error and
trigger a notication. When this property is set to true, Integration Server will log HTTP
401 AccessDenied as an error and trigger notications. When this property is set to
false, Integration Server will not log HTTP 401 Access Denied as an error and will not
trigger a notication. The default is false.
watt.server.suppresscwarn
Species whether, when running a C service in Designer, Integration Server should
write the warning messages issued about the missing variables to the server log. When
this property is set to true, Integration Server does not write these messages to the
server log. When this property is set to false, Integration Server writes messages about
missing variables to the server log. The default is false.
watt.server.sync.timeout
Species the time period that a lock object exists for a given key for which a notication
has been issued. After calling a pub.sync:notify service to create the notication, a
pub.sync:wait can receive the notication. Any thread that is waiting for a notication for
the key , receives the notication as long as the lifespan of the wait request overlaps with
the lifespan of the notication. However, if a thread with an exclusive wait is registered
for the notication key before any other service is waiting, the notication ends as soon
as the exclusive wait receives the notication. The default is 60 seconds.
watt.server.thread.aging.limit
Species the length of time, in minutes, a thread can remain in the thread pool. When
this length of time is reached and the thread has been used the maximum number of
times as specied by the wa.server.thread.usage.limit parameter, Integration Server
waits until the service is complete and releases the thread from the pool. A value of
-1 indicates that threads can remain indenitely in the thread pool. The default is 60
minutes.
Note:
Integration Server releases an expired thread only when the values for
both wa.server.thread.aging.limit and wa.server.thread.usage.limit are
reached. Both parameters must be set to a positive integer. If either or both
parameters have a value of -1, both parameters will be disabled.
960
Odd Header
Server Configuration Parameters
Important: Use this seing with extreme care because it will aect server
performance and throughput.
watt.server.thread.usage.limit
Species the maximum number of times a pooled thread can be used. When
this maximum number is reached and the length of time specied by the
wa.server.thread.aging.limit parameter is reached, Integration Server waits until the
service is complete and releases the thread from the pool. A value of -1 indicates that
threads can be reused indenitely. The default is 1000.
Note:
Integration Server releases a used thread only when the values for both
wa.server.thread.aging.limit and wa.server.thread.usage.limit are
reached. Both parameters must be set to a positive integer. If either or both
parameters have a value of -1, both parameters will be disabled.
Important: Use this seing with extreme care because it will aect server
performance and throughput.
watt.server.threadKill.enabled
Controls whether the thread kill facility is enabled. This facility allows you to cancel or
kill service threads in cases where a service is unresponsive. When you cancel a thread,
Integration Server frees up resources that are held by the thread. When you kill a thread,
Integration Server stops the thread, releases it from the thread pool, and replenishes
the thread pool. The default is true. When the thread kill facility is enabled, you can
cancel or kill threads by going to the Server > Statistics > System Threads screen. For more
information about canceling and killing threads, refer to "Canceling and Killing Threads
Associated with a Service" on page 637.
watt.server.threadKill.interruptThread.enabled
Species whether Integration Server should interrupt a service for which a timeout
is triggered or is cancelled. If set to true, when a timeout is triggered or the service is
cancelled, Integration Server interrupts the service thread that is executing a service. The
default is false.
Important: If you change the value of this property, you must restart Integration
Server for the change to take eect.
watt.server.threadKill.timeout.enabled
Controls how Integration Server handles the timeout seing of ow steps. Flow
steps have a timeout property that controls how long the step can run. By default
(true), when the step has exceeded the timeout period, Integration Server raises a
FlowTimeoutException, and ow execution continues with the next step. When this
property is set to false, it is possible for the ow step to run beyond its timeout period,
in some cases. For instance, if a ow step calls another service, for example ServiceA,
and ServiceA is executing when the timeout period has passed, ServiceA will continue
executing past the timeout period. When ServiceA ends, it passes control back to the
parent ow service, which then issues an exception.
961
Even Header
Server Configuration Parameters
watt.server.threadPool
Species the maximum number of threads that the server maintains in the thread pool
that it uses to run services. If this maximum number is reached, the server waits until
services complete and return threads to the pool before running more services. The
default is 75.
watt.server.threadPoolMin
Species the minimum number of threads that the server maintains in the thread pool
that it uses to run services. When the server starts, the thread pool initially contains
this minimum number of threads. The server adds threads to the pool as needed until
it reaches the maximum allowed, which is specied by the watt.server.threadPool
seing. The default is 10.
watt.server.transaction.recovery.abandonTimeout
If an error occurs while Integration Server tries to resolve an uncompleted XA
transaction, species the maximum length of time (in minutes) during which Integration
Server should make additional aempts. The default is 5 minutes.
watt.server.transaction.recovery.sleepInterval
If an error occurs while Integration Server tries to resolve an uncompleted XA
transaction, species the length of time (in seconds) that Integration Server waits
between additional aempts. The default is 30 seconds.
watt.server.trigger.interruptRetryOnShutdown
Species whether or not a request to shut down the Integration Server interrupts the
retry process for a webMethods messaging trigger service. If this parameter is set to
false, Integration Server waits for the maximum retry aempts to be made before
shuing down. Integration Server will also shut down if the trigger service executes
successfully during a retry aempt. If this parameter is set to true, Integration Server
waits for the current service retry to complete. If the webMethods messaging trigger
service needs to be retried again (the service ends because of an ISRuntimeException),
the Integration Server stops the retry process and shuts down. Upon restart, the
transport (Broker, Universal Messaging, or, for a local publish, the transient store)
redelivers the document to the trigger for processing. The default is false.
watt.server.trigger.keepAsBrokerEvent
Species whether Integration Server should bypass decoding that is normally performed
when documents are retrieved from the Broker on behalf of a webMethods messaging
trigger. If this property is set to true, Integration Server passes the value of the
Broker event to the trigger service in an object called $brokerEvent and no decoding is
performed. Set this parameter to true if Integration Server is receiving native Broker
events. The default is false.
For more information about publishing native Broker events, see the Publish-Subscribe
Developers Guide.
watt.server.trigger.local.checkTTL
Species whether Integration Server should strictly enforce a locally published
document's time-to-live. When this parameter is set to true, before processing a locally
published document in a trigger queue, Integration Server determines whether the
962
Odd Header
Server Configuration Parameters
document has expired. Integration Server discards the document if it has expired. The
default is false.
watt.server.trigger.managementUI.excludeList
Species a comma-delimited list of triggers to exclude from the webMethods Messaging
TriggerManagement pages in Integration Server Administrator. Integration Server also
excludes these webMethods messaging triggers from trigger management changes
that suspend or resume document retrieval or document processing for all triggers.
Integration Server does not exclude these webMethods messaging triggers from changes
to capacity, rell level, or maximum execution threads that are made using the global
trigger controls (Queue Capacity Throle and Trigger Execution Threads Throle).
Note:
You can specify the fully qualied names of all the webMethods messaging triggers that
you want to exclude. You can also use paern matching to exclude a group of triggers
by specifying the beginning portion of the fully qualied name and following it with
an asterisk (*). The Integration Server excludes all triggers that begin with the supplied
paern. For example, if you want to exclude all triggers located in the pub.prt folder,
specify:
watt.server.trigger.managementUI.excludeList = pub.prt*
watt.server.trigger.monitoringInterval
Species the interval, measured in seconds, at which Integration Server executes
resource monitoring services for webMethods messaging triggers. A resource
monitoring service is a service that you create to check the availability of resources used
by a trigger service. When it suspends a webMethods messaging trigger because all
retry aempts have failed, Integration Server executes the resource monitoring service to
determine if all the resources are available. The default is 60 seconds.
For more information about resource monitoring services, see the Publish-Subscribe
Developers Guide.
watt.server.trigger.preprocess.monitorDatabaseOnConnectionException
Indicates whether Integration Server schedules a system task to monitor the document
history database when a ConnectionException causes a transient error occurs during
trigger preprocessing. A ConnectionException indicates that the document history
database is not enabled for exactly-once processing or is not properly congured.
When this property is set to true, Integration Server schedules a system task that
executes an internal service that monitors the connection to the document history
database. When the document history database is enabled for exactly-once processing or
is properly congured, the internal service indicates that the connection to the document
history database is available. Then, Integration Server resumes the trigger and reexecutes it when the connection to the document history database is available.
When this property is set to false, Integration Server does not schedule a system task
to check for the database's availability and will not resume the trigger automatically.
You must manually resume the trigger after conguring the document history database
properly.
963
Even Header
Server Configuration Parameters
964
Odd Header
Server Configuration Parameters
Note:
watt.server.trigger.reuseSession
Indicates whether instances of a webMethods messaging trigger use the same session
on Integration Server when the document locale is the same as the default locale of
Integration Server. When this property is set to true, Integration Server checks the locale
of the document before processing it. If the document locale is the same as the default
locale of Integration Server, or no locale is specied, the trigger uses a shared session.
If the document locale is dierent from the default, then Integration Server creates a
new session for the trigger to use to process that document. When this property is set to
false, Integration Server uses a new session for each instance of a trigger. The default is
false.
965
Even Header
Server Configuration Parameters
To...
Never
Error
Important: You must restart Integration Server for changes to this parameter to take
eect.
The wa.server.trigger.suspendOnAuditErrorWhen conguration parameter only
applies when the audit subsystem is congured to write data synchronously.
966
Odd Header
Server Configuration Parameters
watt.server.tspace.location
Species the absolute directory path of the hard disk drive space in which the
Integration Server is to temporarily store large documents rather than keep them in
memory. Each le that the Integration Server stores in this directory is given the name
DocResxxxxx .dat, where xxxxx is a value that can vary in length and character. Specify
the absolute directory path to a directory on the same machine as the Integration Server.
The default value is JVM's temporary directory (i.e., the value of java.io.tmpdir).
Example: If you want the Integration Server to use the LargeDocTemp directory on your
D drive, specify the following:
watt.server.tspace.location=D:\LargeDocTemp
If you have a cluster of Integration Servers, each one must have its own Tspace.
Important: You must restart Integration Server after you modify the value of this
property.
watt.server.tspace.max
Species the maximum number of bytes that can be stored at any one time in the hard
disk drive space that you dened using the watt.server.tspace.location property.
If the Integration Server aempts to write a large document to the hard disk drive space
that will cause the number of bytes you specify to be exceeded, an error message is
displayed on the server console, and the document is not stored. Specify a positive
whole number of bytes. The default value is 52,428,800 bytes (50 MB).
Example: To set the maximum number of bytes that can be stored to 30,000,000 bytes,
specify the following:
watt.server.tspace.max=30000000
Tip:
The size of the hard disk drive space for temporarily saving documents
will vary based on the number of documents that you process concurrently
and the size of the documents that you process. For example, if your
typical concurrent document load is 10, you would need a hard disk drive
space that is 10 to 15 times the combined size of the documents being
processed concurrently.
Important: You must restart the Integration Server after you modify the value of this
property.
watt.server.tspace.timeToLive
Species the amount of time in milliseconds that documents can remain in the Tspace
before they are deleted. If a document remains in the Tspace longer than the value
dened by this parameter, the document expires and becomes eligible for removal from
the Tspace. Expired Tspace documents are removed when the Tspace begins to run low
on free disk space. The default is 0.
Important: You must restart the Integration Server after you modify the value of this
property.
967
Even Header
Server Configuration Parameters
watt.server.txMail
Species the email address of an administrator to notify when guaranteed delivery
capabilities are disabled due to an error (for example, if the Integration Server
encounters a disk full condition or if the audit-trail log is full). There is no default.
watt.server.tx.cluster.lockBreakSecs
Species the number of seconds a cluster server waits before breaking a lock on a job in a
cluster job store. The default is 120.
You must be using webMethods Integration Server Clustering to use this seing. For
more information, refer to the webMethods Integration Server Clustering Guide.
watt.server.tx.cluster.lockTimeoutMillis
Species the number of milliseconds a cluster server sleeps between aempts to place an
update lock on a job in a cluster job store. The default is 100.
You must be using webMethods Integration Server Clustering to use this seing. For
more information, refer to the webMethods Integration Server Clustering Guide.
watt.server.tx.heuristicFailRetry
Species whether the Integration Server is to re-execute services for guaranteed delivery
transactions in the job store that are pending when the Integration Server is restarted
after a failure. If a transaction is pending, the service began execution before the
Integration Server failed.
If the seing is true, the Integration Server resets the transaction status from pending to
new, and the service will be re-executed. If the seing is false, the Integration Server
resets the transaction status from pending to fail to indicate the heuristic failure, and the
service will not be re-executed. The default is true.
watt.server.tx.sweepTime
Species the number of seconds between sweeps (clean up) of the job store for inbound
guaranteed delivery transactions. The server sweeps the job store to remove expired
transactions. The default is 60.
watt.server.url.alias.partialMatching
Species whether Integration Server enables partial matching on URL aliases. If you set
this server conguration parameter to trueand dene a URL alias in Integration Server
Administrator, Integration Server enables partial matching on URL aliases. The default
is false.
When partial matching is enabled Integration Server considers an alias a match if the
entire alias matches all or part of the request URL, starting with the rst character of the
request URL path.
For information about partial matching and dening URL aliases, see "Seing Up HTTP
URL Aliases" on page 381. For specic information about partial matching for REST
resources, see REST Developers Guide.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
968
Odd Header
Server Configuration Parameters
watt.server.userFtpRootDir
Species the FTP root directory that the Integration Server will create at startup. When
any Integration Server user logs into the FTP Listener, the server creates that user's
FTP home directory in this root directory, for example FtpRoot/username . You can
specify any directory to be the root directory, including a mapped network directory. If
this property is not dened, a default directory named userFtpRoot is created in your
Integration Server home directory.
The user who connects to Integration Server through FTP listener is placed either
in the default FTP root directory or the client user directory as dened in the
wa.server.login.userFtpDir property.
Administrators, Replicators, and non-privileged users can perform put and get
operations in the following directories:
This user...
Can access...
Administrator
Replicator
When a user completes a put command in his or her own user directory (that is,
when the STOR command is completed on the server side but before the server
acknowledges the client with return code 226), an event is red to notify interested
parties by publishing a pub.client.ftp:putCompletedNotication document to the
webMethods Broker. EDI packages will subscribe to this document and will retrieve the
le just put onto the server.
Note:
969
Even Header
Server Configuration Parameters
watt.server.ws.71xHandlerChainBehavior
Species whether Integration Server uses the 7.1x handler chain processing behavior
when executing handlers for a web service descriptor created in 7.1x. When set to true,
Integration Server uses the handler chain processing behavior available in Integration
Server version 7.1x for a 7.1x web service descriptor. When set to false, Integration
Server uses the handler chain processing behavior available in Integration Server 8.0 for
a 7.1x web service descriptor. The default is false.
watt.server.ws.defaultNamespace
This is an internal property. Do not modify.
watt.server.ws.defaultPrefix
Species the prex assigned to the namespace hp://www.webMethods.com/2001/10/
soap/encoding for use in details for SOAP faults. The default is webM.
watt.server.ws.responseTNS.from.request
For a provider web service descriptor for which thePre-8.2 compatibility mode property
is set to true, species whether the target namespace of the top-level element in the
response uses the target namespace of the top-level element in the request. When
set to true, a web service response sent by the Integration Server uses the target
namespace of the top-level element in the request as the top-level namespace of
the response. While this is incorrect behavior, it provides backward compatibility.
If existing web service clients failed because the client expected a response that
used the namespace of the top-level element of the request and you want to allow
existing clients to continue to process responses without any changes to the client, set
wa.server.ws.responseTNS.from.request to true.
When set to false, Integration Server uses the target namespace of the provider web
service descriptor as the namespace of the top-level element in the response. This is the
correct behavior. The default value is false.
Note:
watt.server.ws.security.timestampMaximumSkew
Species the maximum number of seconds that the web services client and host clocks
can dier so that the timestamp expiry validation does not fail. Integration Server
validates the inbound SOAP message only if the creation timestamp of the message is
webMethods Integration Server Administrators Guide Version 9.10
970
Odd Header
Server Configuration Parameters
less than the sum of the timestamp maximum skew value and the current system clock
time.
You can use this parameter to set the timestamp maximum skew value when Integration
Server uses WS-Security policy to implement security and if you have not set a value in
the Timestamp Maximum Skew eld in the Create web Service Endpoints Alias screen. The
value must be a positive integer or zero. The default is 300 seconds.
watt.server.ws.security.timestampPrecisionInMilliseconds
Species whether the timestamp placed in the Timestamp element of the security
header of an outbound message is precise to seconds or milliseconds. If you set the
precision to milliseconds, Integration Server uses the timestamp format yyyy-MMdd'T'HH:mm:ss:SSS'Z'. If you set the precision to seconds, Integration Server uses the
timestamp format yyyy-MM-dd'T'HH:mm:ss'Z'.
You can use this parameter to set the precision when Integration Server uses WS-Policy
to implement WS-Security and if you have not set a value in the Timestamp Precision field
in the Create Web Service Endpoints Alias screen. Set this property to true, if you want
the timestamp precision set to milliseconds. Set this property to false, if you want the
timestamp precision set to seconds. The default is true.
watt.server.ws.security.timestampTimeToLive
Species the time-to-live value for an outbound message in seconds. Integration Server
uses this value to set the expiry time in the Timestamp element of outbound messages.
You can use this parameter to set the time-to-live value when Integration Server uses
WS-Policy to implement WS-Security and if you have not set a value in the Timestamp
Time to Live field in the Create web Service Endpoints Alias screen. The value must be an
integer greater than 0. The default is 300 seconds.
watt.server.wsdl.debug
Species whether Integration Server prints debug information to standard out and
stack traces to standard error while generating or consuming WSDL. When set to true,
Integration Server prints debug information to standard out and stack traces to standard
error. The default is false.
watt.server.xml.encoding
Species the encoding that Integration Server must use when processing incoming XML
les.
If an encoding is not dened in the XML header, Integration Server aempts to process
the XML le using the charset encoding of the hp or ftp request. If charset encoding is
not available in the request header, then Integration Server uses the character encoding
specied in the wa.server.xml.encoding server conguration parameter. There is no
default value for this parameter.
Note:
971
Even Header
Server Configuration Parameters
972
Odd Header
Server Configuration Parameters
Note that only the last <e1> element in the source XML is retained in the resulting
document.
watt.server.xml.xmlNodeToDocument.makeArrayforWS
Species how Integration Server decodes duplicate elements contained in an anyType
element. Set wa.server.xml.xmlNodeToDocument.makeArrayforWS to true if you
want Integration Server to create an array for duplicate elements contained in an
element of type anyType. Set this parameter to false if you want Integration Server
to leave duplicate elements as separate, repeated elements in the element dened to
be of type anyType. When set to false, Integration Server does not create an array for
elements that appear more than once in the element dened to be of type anyType. The
default is false.
watt.ssl.
watt.ssl.accelerator.provider
Enables the use of the SSL accelerator provided with a T1/T2 processor on a Solaris 10
OS machine. The only value you can specify with this parameter is SunPKCS11-Solaris.
To use this accelerator, Integration Server must be running with JVM 1.5 and the HSM
Based Keystore eld must be set to true on the Security > Keystore > Create Keystore Alias
screen.
If you do not specify this parameter, SSL ports will be able to use the nCipher accelerator
only. To use this accelerator, the HSM Based Keystore eld must be set to True on the
Security > Keystore > Create Keystore Alias screen.
watt.ssl.entrust.toolkit.ssl.fragmentblockcipher
Species whether the Entrust library is to fragment SSL records when a block cipher is
used.
The Entrust library included with Integration Server addresses an SSL vulnerability
identied in the US-CERT Vulnerability Note VU#864643 (hp://www.kb.cert.org/vuls/
id/864643). The Entrust library changes the way SSL records are fragmented when using
a block cipher such as AES. When a block cipher is used, the Entrust library breaks up
the SSL record into two records: a 1-byte record and a record consisting of the remaining
bytes. This change prevents the exploit from working.
If you need to disable fragmentation of the SSL records for
interoperability, you can disable the fragmentation feature by seing the
973
Even Header
Server Configuration Parameters
watt.ssh.
watt.ssh.jsch.ciphers
Species a list of ciphers that JSch supports by default. The default values are aes256ctr,aes192-ctr,arcfour,arcfour128,arcfour256. To include any other ciphers that
Integration Server acting as an SFTP client presents to the SFTP server while establishing
a connection, you can append to the default list of ciphers by entering comma-separated
list of cipher names.
Important: If you change the seing of this parameter, you must restart Integration
Server for the changes to take eect.
watt.ssh.jsch.logging
Enables JSch logging. When this property is set to true, all the logs from JSch will be
printed on Integration Server console. The default is false.
974
Odd Header
Server Configuration Parameters
watt.wm.tnextdc.
watt.wm.tnextdc.configVersion
This is an internal parameter. Do not modify.
watt.tx.
watt.tx.defaultTTLMins
Species the default time-to-live (TTL) value for outbound guaranteed delivery
transactions. Specify the number of minutes you want the server to maintain outbound
transactions in the job store when a service initiating an outbound transaction does not
specify a TTL value. The default is 30.
watt.tx.disabled
Species whether you want to disable the use of guaranteed delivery for outbound
transactions. By default, the server allows the use of guaranteed delivery for outbound
transactions. The default is false.
watt.tx.heuristicFailRetry
Species whether Integration Server is to re-execute services for guaranteed delivery
transactions in the job store that are pending when Integration Server is restarted after
a heuristic failure. If the transaction status is pending, it means that the service began
execution before Integration Server failed.
If wa.tx.heuristicFailRetry seing is true, Integration Server resets the transaction
status from pending to new, and Integration Server will retry the service. When the
seing is true, a request to execute a service can only fail if the transaction expires
before Integration Server executes the service.
If the seing is false, Integration Server resets the transaction status from pending to
fail to indicate the heuristic failure, and Integration Server does not retry the service.
When the seing is false, a request to execute a service can fail due to a heuristic failure
or due to the transaction expiring.
The default is true.
watt.tx.jobThreads
Species the number of client threads you want to make available in a thread pool to
service pending requests in the outbound guaranteed delivery job store. The default is 5.
watt.tx.retryBackoffTime
Species the number of seconds to wait after a service request failure before the Job
Manager resubmits the request to execute the service to the Integration Server. The
default is 60.
975
Even Header
Server Configuration Parameters
watt.tx.sweepTime
Species the number of seconds between sweeps of the job store of outbound
guaranteed delivery transactions. The server sweeps the job store to identify transactions
that it needs to submit. The default is 60.
watt.tx.vm.id
Species an Integration Server ID. Use this parameter when multiple Integration
Servers are running on the same host machine and they all use guaranteed delivery. By
specifying a unique ID for each Integration Server, you prevent the creation of duplicate
guaranteed delivery transaction IDs. The value must be an integer from 0 through
2147483647. The default is 0.
watt.xslt.
watt.xslt.debug.facList
Identies the facilities for which Integration Server logs XSLT information. The default is
999, which indicates that Integration Server is to log information for all XSLT facilities.
If you do not want Integration Server to log information for any XSLT facilities, specify
1000. If you want to log information for certain XSLT facilities only, specify the numbers
for those facilities in a comma-delimited list. The facilities are as follows:
Number
Facility
Description
SAX
JAXP
XSLT services
Admin
services
999
All services
1000
None
Note:
Software AG recommends that you use the Settings > Logging > View
Server Logger Details screen to specify the facilities for which Integration
Server logs XSLT information, instead of changing the value of the
wa.xslt.debug.facList parameter.
976
Odd Header
Server Configuration Parameters
watt.xslt.debug.level
Sets the level of debugging information for XSLT services that Integration Server records
in its log le. The default is the level that is currently set for Integration Server. For
information on logging levels, see webMethods Audit Logging Guide.
Note:
Software AG recommends that you use the Settings > Logging > View Server
Logger Details screen to specify the debug level, instead of changing the
value of the wa.xslt.debug.level parameter.
watt.xslt.debug.logfile
Identies the fully qualied name of the le to which Integration Server writes
debugging information. The default is packages/WmXSLT/logs/xslt.log, which is in
the server instances home directory.
Note:
If you start Integration Server from the command prompt using the -log
none switch, it overrides the value assigned to wa.xslt.debug.logle for
this session. Instead, Integration Server displays logging information on
the computer console where you started Integration Server.
977
Even Header
978
Odd Header
FIPS 140-2 Compliance
980
979
Even Header
FIPS 140-2 Compliance
Running Integration Server in FIPS 140-2-compliant mode ensures that it only uses FIPS
compliant algorithms in the FIPS compliant modes. You can enable FIPS mode by seing
the following extended seing on the Integration Server:
wa.security.ps.mode=true
Refer to "Server Conguration Parameters" on page 851 for a detailed description of this
server conguration parameter. Also, refer to "Working with Extended Conguration
Seings" on page 130 for instructions on viewing and updating extended seings for the
Integration Server.
In addition to running the server in FIPS compliant mode, you must follow the other
instructions in the Entrust Cryptographic Module Security Policy. The instructions
include implementing safeguards such as not allowing multiple users to access the
computer and ensuring that the computer is physically protected. In particular,
see section 5.4 of that document ("Operational Environment"). Depending on your
organization's policies, you might also be required to use the same hardware, operating
system, and JDK as was used in the Entrust approval.
FIPS mode encryption is only applicable to HTTPS or FTPS communications and S/
MIME encryption/signing.
980
Odd Header
Using NTLM Authentication and Integrated Windows Authentication with Integration Server
Overview .....................................................................................................................................
982
Using NTLM Authentication when Integration Server Acts as the Client ...................................
982
982
983
981
Even Header
Using NTLM Authentication and Integrated Windows Authentication with Integration Server
Overview
This appendix explains how to use NTLM authentication with Integration Server when
Integration Server acts as the client. This appendix also explains how to use Integrated
Windows authentication with Integration Server.
982
Odd Header
Using NTLM Authentication and Integrated Windows Authentication with Integration Server
Note:
You can use Integrated Windows authentication for connections between Integration
Server and web servers on an intranet. Integration Server supports Integrated Windows
authentication on the connection from the Integration Server to a proxy; however, it does
not support Integrated Windows authentication on the connection from a proxy to the
Internet.
If Integration Server is running as an NT service, it uses the local system rights for
authentication when responding to an Integrated Windows authentication. If you log on
as a user, Integration Server uses the credentials associated with that logon session when
responding to an Integrated Windows authentication.
983
Even Header
Using NTLM Authentication and Integrated Windows Authentication with Integration Server
984
Odd Header
Wireless Communication with the Integration Server
986
How Does the Integration Server Communicate with Wireless Devices? ..................................
986
988
990
985
Even Header
Wireless Communication with the Integration Server
Overview
The webMethods Integration Server can receive requests from and send responses to
Internet-enabled wireless devices. A wireless device requests information from the
Integration Server the using a URL. The responses sent by the server contain WML
(Wireless Markup Language) content or HDML (Handheld Device Markup Language)
content. Examples of wireless devices that the Integration Server can communicate
with include Internet-enabled wireless phones and Internet-enabled personal digital
assistants.
You might want to use a wireless device to communicate with the Integration Server to:
Check inventory levels at your company or at a supplier.
Place an order or check the status of an existing order.
Receive order conrmation for an order submied with a wireless device.
Send or receive notication to alert subscribers to trade fulllments of security price
changes.
Collect statistics about your Integration Server by using event handlers that send
information to wireless devices.
Request an HDML or WML page stored on the Integration Server.
You access the Integration Server from a wireless device by entering a URL in the web
browser of wireless device. The URL can invoke a service on the Integration Server or
can request a WML or HDML page stored on the Integration Server.
986
Odd Header
Wireless Communication with the Integration Server
Stage
Description
987
Even Header
Wireless Communication with the Integration Server
For more information about wireless gateways and wireless protocol, see
www.wapforum.org.
Some web browsers for wireless devices place limitations on the length of
a URL that a user can enter or select. Make sure any WML or HDML pages
that you create for use with wireless devices are compliant with browser
requirements.
Note:
To minimize the amount of user input and therefore reduce the possibilities
for input errors, embed hyperlinks to URLs in the WML or HDML page.
Item
1
Description
Identies the name and port number for the Integration Server on
which the service you want to invoke resides.
Important:For wireless access, the server name (localhost) must be
a registered domain name; that is, the server needs to be
accessible via the Internet.
Important:Many wireless gateways use port 80 as the default registered
port number. If you want to use a dierent port number,
make sure to register the server name and port number with
the wireless gateway. (For security reasons, Software AG
discourages using port numbers below 1024. For more
information, see "Seing Up Aliases for Remote Integration
Servers" on page 117.
988
Odd Header
Wireless Communication with the Integration Server
Item
Description
Identies the service that you want to invoke. This eld is case
sensitive. Be sure to use the same combination of upper and lower
case leers as specied in the service name on the Integration Server.
Species the input values for the service. Specify a question mark
(?) before the input values. The question mark signals the beginning
of input values. Each input value is represented as a variable =value
pair. The variable portion is case sensitive. Be sure to use the same
combination of upper and lower case leers as specied in your
service. If your service requires more than one input value, separate
each variable =value pair with an ampersand (&).
Note:
Only specify this part of the URL when using the HTTP GET
method.
For more information about invoking a service with a URL, see "Building a Browser
Based Client" in webMethods Service Development Help.
Note:
If you use the URL to invoke a service, make sure that the service applies
the output to the appropriate template type (WML or HDML). For more
information about creating output templates, see the Dynamic Server Pages and
Output Templates Developers Guide.
989
Even Header
Wireless Communication with the Integration Server
Item
1
Description
Identies the name and port number for the Integration Server on
which the le you want to request resides.
Important:For wireless access, the server name (localhost) must be
a registered domain name; that is, the server needs to be
accessible outside via the Internet.
Important:Many wireless gateways use port 80 as the default registered
port number. If you want to use a dierent port number,
make sure to register the server name and port number with
the wireless gateway. (For security reasons, Software AG
discourages using port numbers below 1024. For more
information, see "Seing Up Aliases for Remote Integration
Servers" on page 117.)
Species the pub directory. WML and HDML les that can be served
to wireless devices need to reside in this directory.
Note:
For example, the following URLs access the hello.wml le from the pub directory for the
Wireless package:
hp://localhost:5555/Wireless/pub/hello.wml
-ORhp://localhost:5555/Wireless/hello.wml
990
Odd Header
Wireless Communication with the Integration Server
with the Integration Server. These les are located in the sample.wirelessfolder in the
WmSamples package. These samples provide examples of services that you might create
to enable wireless devices to order products, view order history, obtain Integration
Server statistics, and request the current date and time.
For more information about using these samples, see the following le:
WmSamples\pub\WAPDemo.htm
You can nd the WmSamples package in the certied samples area of the Knowledge
Base on the Empower Product Support website.
991
Even Header
992
Odd Header
Debugging Service Exceptions Using the Error Log
994
994
994
995
993
Even Header
Debugging Service Exceptions Using the Error Log
Introduction
The Integration Server error log maintains information about exceptions that are
thrown by services. This appendix describes how to use this log to help debug service
exceptions.
Details
Timestamp
Service Name
Service Stack
Error Message
Stack Trace
Root Context
Parent Context
Current Context
994
Odd Header
Debugging Service Exceptions Using the Error Log
995
Even Header
Debugging Service Exceptions Using the Error Log
For ow services, the Service Stack column also shows an indexed path that identies the
step within a service at which the exception occurred. The path takes the form /n/n/n...,
where n represents a sequential index of ow steps and / indicates a level of nesting:
This path helps pinpoint the step at which the exception occurred and is particularly
useful when a ow service is called multiple times or when the service or step is deeply
nested. For example, suppose serviceA invokes serviceB three times, and the exception
occurred at the second invocation of serviceB. The Service Stack column in the error log
would show the path as serviceA(/1/2):
Step
Index
INVOKE serviceB
/0
SEQUENCE
/1
INVOKE serviceD
/1/0
INVOKE serviceE
/1/1
INVOKE serviceB
SEQUENCE
/2
INVOKE serviceC
/2/0
INVOKE serviceB
/2/1
996
Odd Header
Debugging Service Exceptions Using the Error Log
In addition to the standard error message text that Integration Server provides (for
example, "[ISS.0062.9021] "object" is null"), exception messages may also contain
additional, customized text that a service developer provides in the error handling
portion of the service.
997
Even Header
998
Odd Header
Server Log Facilities
1000
1000
1007
1008
1008
Mediator ....................................................................................................................................
1008
999
Even Header
Server Log Facilities
Integration Server
The table below gives the list of Integration Server facilities for which the server logs
information.
Facility
0000
General Debugging
0001
License Manager
0002
LDAP Connection
0003
Database
Connection
Manager
Database connections.
0004
JDBC Connection
0006
0007
Authorization
0008
NIS Connection
0009
Certicate
0011
Proxies
Proxy servers.
1000
Odd Header
Server Log Facilities
Facility
0012
Authentication
0013
Content Handler
Content handlers.
0014
Server
0015
Service Manager
0016
Service Caching
Service caching.
0017
Ehcache
Ehcache conguration.
0018
Utility classes
0021
Integration Cloud
0022
Code Generation
0024
User Manager
User management.
0025
Server Initialization
Server initialization.
0026
Services
0027
Server
Conguration
0028
Packages
0033
Cluster Manager
0036
Client Context
Client transactions.
1001
Even Header
Server Log Facilities
Facility
0037
Guaranteed
Delivery Context
0038
HTTP Header
HTTP headers.
0039
HTTP Request
0040
HTTP Response
0041
HTTP Cookie
HTTP cookies.
0042
XML Parser
XML parser.
0043
0046
HTTP Listener
HTTP listeners.
0047
HTTPS Listener
HTTPS listeners.
0048
0049
Flow Operation
Flow operations.
0050
Flow Map
0051
Port Manager
0053
HTTP Dispatch
0054
HTTP Document
Handler
0055
Java Services
Java services.
0056
Mailer
0057
Deployer
Deployer.
1002
Odd Header
Server Log Facilities
Facility
0059
Service Thread
Service thread.
0061
Remote Servers
Remote servers.
0062
Core Services
0063
Transaction Job
Manager
Transaction manager.
0064
Network Services
Network services.
0068
Email Listener
E-mail listeners.
0070
Listeners
0071
FTP Listener
FTP listeners.
0072
Reporter
DSP processing.
0075
WmDB
WmDB package.
0076
Coders
0077
com.wm.util
com.wm.util coder.
0079
Enterprise Gateway
0080
Asynchronous
Connection API
Network sockets.
0081
Namespace
Namespace congurations.
0082
XML Schema
XML Schema.
0085
WmRoot Package
WmRoot package.
1003
Even Header
Server Log Facilities
Facility
0087
WmWin32 Package
WmWin32 package.
0088
SOAP
SOAP messages.
0090
0091
WmRoot Admin
Services
0094
Repository V4
Repository Version 4.
0095
0096
JDBC Connection
Manager
0097
Broker Document
Type Synchronizer
0098
Dispatcher
0099
Broker Transport
Layer
Broker connectivity.
0100
Web Container
0101
Process Runtime
WmPRT package.
0105
Cross-referencing
and Latching
0106
Join Manager
0109
Server Statistics
1004
Odd Header
Server Log Facilities
Facility
0114
Adapter Runtime
0115
Adapter Runtime
(Listener)
0116
Adapter Runtime
(Notication)
0117
Adapter Runtime
(Adapter Service)
0118
Adapter Runtime
(Connection)
0119
Monitor
webMethods Monitor.
0120
Monitor (Database
Layer)
0121
Adapter Runtime
(SCC Transaction
Manager)
0123
Basis FSData
0125
Supervisory Control
Mechanism
0126
Adapter Runtime
(SCC Connection
Manager)
0127
Basis Transient
Store
1005
Even Header
Server Log Facilities
Facility
0128
Exactly Once
Processor
0129
.NET Package
.NET services.
0130
Mainframe Package
Mainframe package.
0131
Diagnostic Port
0132
Version Control
System
0133
DOM
Implementation
0134
JMS Subsystem
JMS Subsystem.
0135
JNDI Client
Conguration
0137
0138
Asset Publisher
0139
Keystore
Keystores.
0140
Designer
Software AG Designer
0141
0142
Thread Kill
0144
XML Security
Services
0147
SFTP Client
1006
Odd Header
Server Log Facilities
Facility
0149
Enterprise Gateway
Rules
0150
SPM
0151
Monitoring (CMP)
0152
CORS
0153
Dispatcher
(Universal
Messaging)
0154
Protocol Buer
Encoding
(Universal
Messaging)
0155
Hot Deployment
0156
Event Routing
0157
Assets
0158
OData
OData services.
WmMobileSupport Package
The table below gives the list of WmMobileSupport package facilities for which the
server logs information.
Facility
0701
1007
Even Header
Server Log Facilities
WmXSLT Package
The table below gives the list of WmXSLT package facilities for which the server logs
information.
Facility
0001
SAX
0002
JAXP
0003
Services
0004
Admin Services
Flat File
The table below gives the list of at le facilities for which the server logs information.
Facility
0000
FlatFile Logger
Flat le processing.
0001
FlatFile Listener
0002
FlatFile Parser
Flat le parsers.
Mediator
The table below gives the list of Mediator facilities for which the server logs information.
Facility
0001
Event Logging
0010
Core
Service deployment.
1008
Odd Header
Server Log Facilities
Facility
0030
CentraSite
Communication
0050
Runtime
0070
Mediators
0100
Mediator
Listener
0110
Mediator
Incoming
Messages
0120
Mediator
Transformation
Logging
0200
Monitor
and Event
Notication
(MEN)
0201
MEN - Runtime
0202
MEN - Alerts
0203
MEN - Cache
0204
MEN - Interval
Processing
0205
MEN - Events
0206
MEN Processors
0207
MEN - Readers
1009
M
Index
1010
M
Index
Index
Numerics
Accept header
HTTP request 819
Access Control Lists (ACLs)
ACL used when none assigned to service 439,
443
Administrators 439, 439
Anonymous 439
assigning to services 443
creating 440
Default 439, 439
deleting 441
description of use 435
Developers 439, 439
how they work with services 442
Internal 439
predefined 439
protecting use of remote server aliases 117
removing from services 444
removing protection from files 446
Replicators 440, 440
updating 441
access file, using to control access to files 445
accessing
any web document for package 595
home page for package 595
accessToken 883, 883
ACLs. 435
Action On Startup Error 887
activating packages 597
adding
Access Control Lists (ACLs) 440
administrators 94
aliases for remote servers 118
aliases for web services 134
developers 95
groups 101
packages 596
port restrictions 431, 432
ports 159
services manually 636
user accounts 92
users to a group 102, 103
administered objects
creating 297
Administrator user account 92
administrators
adding alternate administrators 32
defining 94
defining external users as 573
email address for guaranteed delivery 673
password for predefined user account 31
predefined ACL, description 439
predefined group, description 100
predefined user account, description 31, 92
receiving messages, overview 31
responsibilities 30
role 30
SMTP server for email address for guaranteed
delivery 673
Administrators ACL 439
Administrators group 100
alias
for JNDI providers 271
JMS connection alias 277
JNDI provider 271
predefined for JNDI providers 270
predefined JMS connection alias 276
predefined JNDI provider 270
aliases
remote servers
deleting 120
identifying 118
testing connection 120
updating 120
Allow By Default
port IP access (custom) 426
port IP access (global) 425
allowUnquotedFieldNames 930
Anonymous ACL, description 439
Anonymous group 100
anyType element with duplicates 973
architecture, we bMet hods Integration Server 35
archiving packages 600
AS/400 systems, port queue size 943
audit logging
fail-fast mode 880, 880
auditing
1011
M
Index
security 51
audit-trail logging
overview 51
writing log to screen 59
authenticating
basic authentication 448
client certificates 454
using Integrated Windows authentication 983
using user names and passwords (basic) 448
using user names and passwords with Integrated
Windows authentication 983
when invalid password supplied 448
when invalid user name supplied 448
when it occurs 458
when user name not supplied 448
automatic pull facility 617
available threads warning threshold 111
1012
M
Index
Integration Server 42
Java 42
using to prepare client to communicate with
server 847
client certificates
certificates required to validate 160
description 454
client groups, switching 235
client ID, usi n g in durable subscriber name 923
client libraries, for JMS providers 305
client prefix, for webMethods Integration Server
234, 238
client.jar file
using to prepare client to commun icate with
server 847
clientKeepaliveTimeout 863
clients
preparing t o communicate with server 847
client-side queuing, described 263
client-side queuing, enabling or disabling 944
cluster
aware 889
configured 889
name of 889
Terracotta Server Array URLs 890
cluster error on startup 887
cluster synchronization
configuring for trigger management 768
monitoring for triggers 770
Cluster View page, display of 770
code subdirectory 585
command line
starting server from 55
communications with server, securing with SSL 402
configuration settings
bypass list for proxy servers 128
controlling who can set 94
descriptions 852
guaranteed delivery 673
how long to keep inactive sessions 112, 113
how to set 88
LDAP 566
license keys 108
overriding when starting server 55
ports 156
proxy servers 121
server.cnf file 88
configuring
additional ports 159
1013
M
Index
user accounts 93
Deny By Defa ult
access to services through a port 429
Deny By Default
port IP access (custom) 427
port IP access (global) 424
dependency manager, enabling and disabling 939
Designer
predefined user account to use 92
privilege required to access server from 95
user account 92
destinations
managing through Designer
JMS triggers 287
developers
defining 95
defining external users as 575
predefined ACL, description 439
predefined group, description 100
predefined user account, description 92
Developers ACL 439
Developers group 100
diagnostic data, description 832
diagnostic port
assigning 196, 200
dedicated thread pool 832
description 832, 832
thread priority 833
url 833
diagnostic utility
description 833, 833
diagnostics_hostname_port_yyyyMMddHHmmss.zip
833
wm.server.admin.getDiagnosticData 833
digital certificates
certificates required to validate client certificates
160
client certificates for authentication 454
direc tives
invoke 916
directives
default 433
invoke 433
rest 433
REST 946
restricting to specified ports 879
soap 433, 953
web 433
disabled keep-alive mode
1014
M
Index
configuring 258
description of 256
disabling
guaranteed delivery for outbound requests 676
JMS connection alias 295
JMS triggers 782
packages 598
ports 210, 210
users 98
displaying
active sessions 66, 110
documentation for packages 594
folders 634
license key 108
licensed session limit 110
log information on screen 59
membership for groups 104
package subscribers 608
package subscriptions 618
packages 589
packages residing on your server 589
packages, enabled/disabled 591
packages, loaded/unloaded 590
scheduled service execution time 649
service information 634
service statistics 669
services 634
system task execution time 654
distribution files for packages
creating 612
sending 612
DMZ, running an Enterprise Gateway Server in 494
doc subdirectory 586
docu ment types
removing subscri ptions on reload or reinstall 965
docum ent stores
default
re fil l level 260
document history database
ConnectionException 963
reaper interval 798
document history database, removing expired
entries 915
document proc essing
server threads for 758
document processing
enforcing TTL 962
increasing or decreasing threads for 759
limiting threads for 766
1015
M
Index
editing
JMS connection alias 295
JNDI provider alias 273
email
address for messages when guaranteed delivery
fails 673, 676
ports, assigning 159
SMTP server to use for messages when g
uaranteed delivery fails 673
SMTP server to use for messages when
guaranteed delivery fails 676
empty tags, including or omitting in SOAP requests
954
Enabled icon, color descriptions 591
enabling
client-side queuing 263
JMS connection alias 295
JMS triggers 782
packages 598
ports 211
users 99
encryption keys
for outbound passwords 472
endpoint aliases
adding 134
Enterprise Gateway
overview 494
error log
OpenID exceptions 876
errors
suspending triggers for 964
Event Manager 640
eventcfg.bin file 640
events, running services in response to 640, 640
Everybody group 101
exactly-once processing
statistics, clearing 799
statistics, viewing 799
exceptions
logging to error log 901
using error log to debug 994
executing
replication services 639
services 39
services at scheduled times 644
shutdown services 639
1016
M
Index
gateway. 986
generateAllTypeDocuments 857
group name
description 100
specifying for groups 100
groups
adding 101
adding users to 102, 103
administrator privileges 100
Administrators 100
Anonymous 100
changing membership 104
considerations when using external directories
572
defining 99
deleting 105
developer privileges 100
Developers 100
externally-defined 564
group name 100
overview 90
predefined 100
privileges that can be shared 99
purpose 90
Replicator 101
replicator privileges 101
settings 100
specify members of 100
specify users that belong to 91
viewing membership 104
guaranteed delivery
ad ministering 677
configuring 673
description of 672
In Doubt documents
1017
M
Index
jar files
where to place custom 49
where to place for packages 48
where to place thrid party 49
Java class loaders
how the process works 45
Java classes
how Integration Server loads them 40
loading 40
Java services
adding to server manually 636
specifying compiler command 891
Java system properties
passing to Integration Server at startup 64
java.transaction.Status interface for XA transactions
804
java.transaction.xa.Xid interface for XA transactions
804
javax.net.ssl properties 415
1018
M
Index
LDAP
assigning groups to ACLs 576
configuration settings 566
considerations for user accounts and groups 572
1019
M
Index
ns subdirectory 586
nsps 252
1020
M
Index
activating 597
archivi ng 600
archiving 600
canceling subscriptions to 624
code subdirectory 585
controlling ac cess 598
copying 601
copying to another server 600
creating 596
cutting 601
deleting 599, 599
description 580
directory structure 48, 585
disabling 598
doc subdirectory 586
documentation for 594
Enabled icon color descriptions 591
enabling 598
filtering the list 589
full vs. patch release 602
home page 595
information you can view 587
installing published package 624
List, filtering 589
Loaded? icon color descriptions 590
loading 597
location 585
making available 598
manifest file 587
moving 601
ns subdirectory 586
package replication group 101
package replication guidelines 607
partial release 602
pasting 601
predefined 580
prohibiting access to 598
pub subdirectory 586
publishing to other servers 612
recovering 599
release 602
reloading 597
effect on trigger subscriptions 965
replicating 600, 612
residing on your server 589
resources subdirectory 586
retrieving automatically 617
retrieving manually 617
safe delete 599
sampleservices 584
status, enabled/disabled 591
status, loaded/unl oaded 590
subscribing to 619
subscriptions to 618
tasks you can perform 595
templates subdirectory 587
updating
effect on trigger subscripti ons 965
user account for package replication 92
web subdirectory 587
who can subscribe to 606
page size, controlling for adapters 852
pagination, controlling for adapter elements 852
partial release, of a package 602
passive FTP/FTPS listeners, port range for 207
passman.props file, definition 475
passwords 472
changing 96
description 91
inbound vs. outbound 472
predefined Administrator user account 31
requirements 97
specifying in user accounts 91
patch release, of a package 602
PBE (Password-Based encryption), used for
outbound passwords 472
pipeline Broker e v e nts
checking for $brokerEvent objects 944
pipeline Broker events
bypassing decoding for trigger services 962
disabling document validation 945
PKCS5, encryption used for outbound passwords
472
polli ng interval
serial JMS triggers 928
polling delay
examples 792
increment interval 789, 790, 925
length of delay 789, 926
polling interval
concurrent J M S tri ggers 925
concurrent JMS triggers 924
port queue size, lowering for AS/400 943
ports
adding 159
adding a security prov ider 212
configuring 156
controlling access to services through 422, 429
1021
M
Index
1022
M
Index
1023
M
Index
safe mode
autom atic 837
description 836
SAML artifact resolver endpoint 883
scheduler
server thread allotment 112
scheduling execution of services 651
canceling scheduled user task 654
changing scheduled times 651
description 644
examples of complex scheduling options 655,
657
pausing all scheduled user tasks 652
resuming a scheduled user task 652
resuming all user sceduled tasks 653
suspending a scheduled user task 651
system tasks 644
user tasks 644
viewing scheduled times 649
viewing when system tasks execute 654
screens
email client configuration 189
secondary thread, concurrent JMS trig gers 925
Secure Sockets Layer (SSL)
background information 402
checklist to implement 404
client certificates 454
configuring server to use 410, 412
controlling security level by port 415
how server uses 402
security
auditing 51
checklist 847
checklist to implement SSL 404
controlling access to services and files 435
controlling access to services by port 422, 429
controlling SSL security level by port 415
controlling who can configure the server 94
controlling who can develo p services 95
securing server communications 402
security provider
adding 212
sending
distribution files 612
releases 612
sending and receiving flat files
via Trading Networks 38
serv ices
testing 636
Server Administrat or
description 31
Server Administrator
controlling access to 94
description 84
how to use 86
picture of 86
starting 84
server log
configuring server log to rotate based on size
221
controlling content of 217
controlling format of 224
file location 217
logging levels 219
message format 860
overriding logging level and location of server log
file 227
queuing log entries for 219
response header 940
rotating 948
send ing messages about critical log entries 222
setting up 217
viewing 223
server resources 129, 130
server security 448, 462, 982
server session
stateful session limit 113
warning threshold 114
server thread pool
document retrieval threads 766
limiting thread usage 766
1024
M
Index
1025
M
Index
1026
M
Index
1027
M
Index
wa tt . server.logs.dateStampTimeZone 936
wa tt.se rv e r.c o ntr ol .threadSensorInterval 894
wa tt.server.scheduler.thread Throttle 948
wa tt.server.userFtpRootDir 969
wa tt.t x.defaultTTLMins 676
WAP gateway. 986
warning threshold, server thread availabliity 111
wat t . server.centralUsers.shutdownOnError 886
wat t .se r ver.illegalUserChars 916
wat t.ser ve r. jdbc.loginTimeout 919
wat t.server.password.minSpecialChars 942
watt . server.ldap.DNe scapeChars 932
1028
M
Index
watt.net.clientKeepaliveTimeout 863
watt.net.defaultBufferSize 863
watt.net.email.validateHost 863
watt.net.ftp.ignoreErrors 863
watt.net.ftpClient DataConnTimeout 864
watt.net.ftpClientTimeout 864
watt.net.ftpConnTimeout 864
watt.net.ftpDataConn 864
watt.net.ftpDataConnTimeout 864
watt.net.ftpPassiveLocalAddr 864
watt.net.ftpPassivePort.max 207, 865
watt.net.ftpPassivePort.min 865
watt.net.ftpSweepInterval 865
watt.net.ftpUseCertMap 865
watt.net.http401.throwException 867
watt.net.http501-599.throwException 867
watt.net.httpUser 866
watt.net.jsse.client.enabledCipherSuiteList 867
watt.net.jsse.client.enabledProtocols 867
watt.net.jsse.server.enabledCipherSuiteList 868
watt.net.jsse.server.enabledProtocols 868
watt.net.localhost 869
watt.net.maxClientKeepaliveConns 869
watt.net.maxRedirects 869
watt.net.primaryListener 870
watt.net.proxy.fallbackToDirectConnection 870
watt.net.proxy.useNonDefaultProxies 870
watt.net.proxySkipList 870
watt.net.retries 871
watt.net.sftpSweepInterval 871
watt.net.socketpool.sweeperInterval 871
watt.net.socketProvider 871
watt.net.ssl.client.cipherSuiteList 871
watt.net.ssl.client.handshake.maxVersion 871
watt.net.ssl.client.handshake.minVersion 872
watt.net.ssl.client.hostnameverification 872
watt.net.ssl.client.strongcipheronly 872
watt.net.ssl.client.useJSSE 872
watt.net.ssl.randomAlgorithm 873
watt.net.ssl.server.cip herS uiteList 873
watt.net.ssl.server.clientHandshakeTimeout 873
watt.net.ssl.server.strongcipheronly 873
watt.net.timeout 874
watt.net.useCookies 874
watt.net.userAgent 874
watt.net.webapp.cookies.useRelevantPath 874
watt.s e r ver.ftp.connectMessage 908
watt.s erver.ldap.re tryCount 934
watt.se rver.l dap.doNotBind 933
1029
M
Index
watt.server.acl.groupScanInterval 879
watt.server.control.controlledDeliverToTriggers.delays
watt.server.allowDirective 879
892
watt.server.audit.dbEncoding 879
watt.server.control.freeMemoryThreshold 893
watt.server.audit.displayLogs.convertTime 879
watt.server.control.maxPersist 265, 893
watt.server.audit.failFastLoggers 880
watt.server.control.maxPublishOnSuccess 893
watt.server.audit.schemaName 881
watt.server.control.memorySensorInterval 893
watt.server.auditDocIdField 880
watt.server.control.serverThreadThreshold 893
watt.server.auth.cache.capacity 882
watt.server.control.triggerInputCont rol.delays 894
watt.server.auth.cache.enabled 882
watt.server.control.triggerInputControl.delayIncrementInterval
watt.server.auth.cache.timeout 882
894
watt.server.auth.checkWithSession 882
watt.server.cronMaxThreads 898
watt.server.auth.oauth.accessToken.useHeaderFields watt.server.cronMinThreads 898
883
watt.server.date.suppressPatternError 899
watt.server.auth.oauth.accessToken.useQueryParameters
watt.server.dateStampFmt 898
883
watt.server.db.blocktimeout 899
watt.server.auth.samlResolver 883
watt.server.db.connectionCache 899
watt.server.auth.session.retainJaasSubject 883
watt.server.db.maintainminimum 899
watt.server.auth.skipForMediator 883
watt.server.db.share.ISInternal 899
watt.server.broker.producer.multiclient 884
watt.server.db.testSQL 900
watt.server.broker.r eplyConsumer.fetchSize 884
watt.server.debugFIPS 900
watt.server.broker.replyConsumer.multiclient 884
watt.server.defaultContentHandler 900
watt.server.broker.replyConsumer.sweeperInterval
watt.server.defaultCountry 901
884
watt.server.defaultLanguage 901
watt.server.brokerTransport.dur 257, 884
watt.server.defaultPackage 901
watt.server.brokerTransport.max 257, 885
watt.server.depreca te dException L o g ging 901
watt.server.brokerTransport.ret 257, 885
watt.server.diagnostic.logperiod 902
watt.server.cache.flushMins 885
watt.server.diagnostic.port 902
watt.server.cache.gcMins 886
watt.server.diagnostic.tabular 902
watt.server.cache.prefetchUser 885
watt.server.dispatcher.comms .brokerP ing 902
watt.server.cgi.unicode 885
watt.server.dispatcher.comms.connectionShareLimit
watt.server.checkAclsInternally 886
903
watt.server.classloader.pkgpriority 46, 47, 887
watt.server.dispatcher.join.reaperDelay 903
watt.server.clientTimeout 887
watt.server.dispatcher.messageStore.redeliverOriginalMessage
watt.server.cluster.action.errorOnStartup 887
903
watt.server.cluster.aliasList 889
watt.server.displayDirectories 903
watt.server.cluster.aware 889
watt.server.ema il .from 904
watt.server.cluster.name 889
watt.server.email.charset 903
watt.server.cluster.SessTimeout 890
watt.server.email.processReplyEmails 904
watt.server.cluster.tsaURLs 890
watt.server.email.waitForServiceCompletion 904
watt.server.coder.bincoder.trycontextloaderfirst 890
watt.server.errorMail 905
watt.server.compile 890
watt.server.event.audit.a sync 905
watt.server.compile.exitOnError 891
watt.server.event.exception.async 905
watt.server.compile.readFromStdError 891
watt.server.event.gd.async 905
watt.server.compile.unicode 891
watt.server.event.jmsDeliveryError.async 905
watt.server.content.type.default 891
watt.server.event.jmsRetrievalError.async 906
watt.server.content.type.mappings 891
watt.server.event.nerv.subscribeService.user 906
watt.server.control.controlledDeliverToTriggers 893
watt.server.event.replication.async 906
watt.server.control.controlledDeliverToTriggers.delayIncrementInterval
watt.server.event.routing.callbackService.runAsUser
892
906
webMethods Integration Server Administrators Guide Version 9.10
1030
M
Index
watt.server.event.security.async 906
watt.server.jms.trigger.concurrent.primaryThread.po
watt.server.event.session.async 907
llingInterval 924
watt.server.event.tx.async 907
watt.server.jms.trigger.concurrent.secondaryThread.pollingInterval
watt.server.eventMgr.maxThreads 907
925
watt.server.eventMgr.minThreads 908
watt.server.jms.trigger.extendedDelay.delayIncr em
watt.server.extendedMessages 933
entInterval 925
watt.server.fileEncoding 908
watt.server.jms.trigger.extendedDelay.delayIncrementInterval
watt.server.ftp.listingFileAge 908
789, 790
watt.server.ftp.loginMessage 908
watt.server.jms.trigger.extendedDelay.delays 789,
watt.server.ftp.usecommandip 909
790, 926
watt.server.hostAccessMode 909
watt.server.jms.trigger.maxDeliveryCount 926
watt.server.hostAllow 910
watt.server.jms.trigger.monitoringInterval 926
watt.server.hostDeny 911
watt.server.jms.trigger.pooledConsumer.timeout
watt.server.http.authorizationEncoding 910
927
watt.server.http.header.useHt tpOnly 910
watt.server.jms.trigger.raiseEventOnException 927
watt.server.http.jsonFormat 911
watt.server.jms.trigger.retryOnConsumerError 927
watt.server.http.listRequestVars 911
watt.server.jms.trigger.reuseJmsTxSession 928
watt.server.http.returnException 913
watt.server.jms.trigger.reuseSession 928
watt.server.http.securityRealm 913
watt.server.jms.trigger.serial.primaryThread.pollingInterval
watt.server.http.useAcceptHeader 913
928
watt.server.http.xmlFormat 914
watt.server.jms.trigger.stopRequestTimeout 929
watt.server.idr.reaperInterval 798, 915
watt.server.jms.trigger.wmjms.clientIDSharing 929
watt.server.illegalNSChars 916
watt.server.jms.wmjms.lms.readTimeout 930
watt.server.inetaddress 916
watt.server.jndi.searchresult.maxlimit 930
watt.server.invoke.m axRetryPeriod 916
watt.server.json.allowUnquotedFieldNames 930
watt.server.java.unico de 916
watt.server.json.decodeInteg erAsLong 930
watt.server.jca.connectionPool.createConnection.interrupt.waitTime
watt.server.json.decodeRealAsDouble 930
916
watt.server.json.prettyPrint 931
watt.server.jca.connectionPool.thresholdWaitingRequestwatt.server.json.quoteFIeldNames 931
917
watt.server.l dap.extendedProps 934
watt.server.jca.transaction.rollbackOnWriteFailure
watt.server.ldap.cleanContext 932
809, 917
watt.server.ldap.DNescapePairs 932
watt.server.jca.transaction.writeRecoveryRecord
watt.server.ldap.DNescapeURL 932
808
watt.server.ldap.memberInfoInGroups 934
watt.server.jdbc.defaultDriver 919
watt.server.ldap.retryWait 934
watt.server.jdbc.derby.commitTolerance 919
watt.server.licenses 934
watt.server.jdbc.driverList 919
watt.server.log.alertMaxEntries 934
watt.server.jms.connection.pi ngDestination 921
watt.server.log.maxEntries 934
watt.server.jms.connection.pingPeriod 297, 921
watt.server.log.or phanLoggers 935
watt.server.jms.connection.retryPeriod 922
watt.server.log.q ueued 935
watt.server.jms.csq.batchProcessingSize 922
watt.server.log.refreshInterval 935
watt.server.jms.debugTrace 922
watt.server.logEncoding 935
watt.server.jms.nirvana.durableSubscriber.includeClientIdwatt.server.loginFailureLimit 936
923
watt.server.logRotateInterval 935, 959
watt.server.jms.producer.po oledSession.timeout
watt.server.logs.dateStampFmt 936
923
watt.server.math.floatOperation.mode 936
watt.server.jms.tri gger.raiseE vent OnRetryFailu re
watt.server.mime.decodeHeaders 937
927
watt.server.netEncoding 938
watt.server.jms.trigger. maxPrefetchSize 926
watt.server.new.http.session.context 938
webMethods Integration Server Administrators Guide Version 9.10
1031
M
Index
watt.server.noAccessURL 938
watt.server.noObjectURL 938
watt.server.ns.b ackupNode 939
watt.server.ns.dependencyManager 939
watt.server.ns.hideWmRoot 939
watt.server.ns.lockingMode 939
watt.server.oauth.approvalpage.footer 939
watt.server.oauth.approvalpage.logo 939
watt.server.oauth.approvalpage.title 940
watt.server.oauth.authCode.expirySecon ds 940
watt.server.oauth.authServer.alias 940
watt.server.oauth.custom.responseHeader 940
watt.server.oauth.requireHTTPS 941
watt.server.oauth.token.defaultExpirySeconds 941
watt.server.package.WSD.loadExternalResources
942
watt.server.partner 942
watt.server.pas sword.minUpp erChars 943
watt.server.pass word.minDigits 942
watt.server.password.minLength 942
watt.server.port 943
watt.server.portQ ueue 943
watt.server.publi sh.useCSQ 944
watt.server.publish. local.rejectOOS 943
watt.server.publish.usePipelineB rokerE v ent 944
watt.server.recordTodocument. bu f fersize 945
watt.server.requestCerts 945
watt.server.RESTDirective 946
watt.server.revInvoke.proxyMapUserCerts 946
watt.server.rg.int ernalreg istration.timeout 946
watt.server.scheduler.maxWait 947
watt.server.serv iceMail 948
watt.server.serverclassloadername 948
watt.server.serverlogQueueSize 948
watt.server.serverlogRotateSize 948
watt.server.servic e.lazyEval 948
watt.server.setReponse.pre82Mode 949
watt.server.smtpServer 673, 950
watt.server.smtpServerPort 950
watt.server.smtpTransportSecurity 950
watt.server.smtpTrustStoreAlias 950
watt.server.SOAP.addEmptyHeader 951
watt.server.SOAP.completeLoad 951
watt.server.SOAP.defaultProtoc ol 953
watt.server.SOAP.encodeXSITypeValue 954
watt.server.SOAP.generate RequiredTags 954
watt.server.SOAP.M TOMThreshold 955
watt.server.SOAP.request.timeout 956
watt.server.SOAP.streamHandlers 956
watt.server.soap.validateResponse 957
watt.server.SOAP.validateSOAPMessage 957
watt.server.soapjms.defaultMessageType 957
watt.server.SoapRPC. useSecondaryType 958
watt.server.SoapRPC.checkHeaders 958
watt.server.SoapRPC.distinguishDuplicateElements
958
watt.server.ssl.keyStoreAlias 415
watt.server.ssl.trustStoreAlias 415, 958
watt.server.stats.avgTime 959
watt.server.stats.logfile 959
watt.server.stats.pollTime 959, 960
watt.server.statsLogRotateInterval 935, 959
watt.server.storage.lock.maxDuration 959
watt.server.storage.lock.sweep Interval 960
watt.server.sup presscwarn 960
watt.server.sync.timeout 960
watt.server.t
rigger.preprocess.suspendAndRetryOnError 964
watt.server.th readPool 962
watt.server.threadKill.enabled 961
watt.server.threadKill.interru pt Thread.enabled 961
watt.server.threadKill.timeout.enabled 961
watt.server.tr igger.reuseSession 965
watt.server.transaction.recove ry.abandonTimeout
809
watt.server.transaction.recovery.abandonTimeout
962
watt.server.transaction.recovery.sleepInterval 809,
962
watt.server.trigger.interruptRetryOnShutdown 772,
962
watt.server.trigger.keepAsBrokerEvent 962
watt.server.trigger.local.chec kTTL 962
watt.server.trigger.managementUI.e xcludeList 963
watt.server.trigger.preprocess.monitorDatabaseOnConnectionException
963
watt.server.trigger.removeSubscriptionOnRelo
adOrReinstall 965
watt.server.trigger.reuseSession 965
watt.server.tspace .max 967
watt.server.tspace.location 967
watt.server.tx.cluster.lock BreakSecs 968
watt.server.tx.cluster.lockTimeoutMillis 968
watt.server.tx.heuristicFailRetry 674, 968
watt.server.tx.swe epTime 968
watt.server.tx.sweepTime 674
watt.server.txMail 673, 968
watt.server.url.alias.partialMatching 968
1032
M
Index
watt.server.ws.71xHandlerChainBehavior 970
shutting down 65
watt.server.ws.defaultNamespace 970
webMethods Integration Server
watt.server.ws.responseTNS.from.request 970
accessing with URLs 988
watt.server.ws.security.timestampMaximumSkew
architecture 35
970
client authentication 458
watt.server.ws.security.timestampPrecisionInMilliseconds client prefix 234, 238
971
configuration settings 852
watt.server.ws.security.timestampTimeToLive 971
configuring 107
watt.server.xml.encoding 971
debug mode 57
watt.server.xml.xmlNodeToDocument.keepDup
deploying 842
licates 972
determining if running 61
watt.server.xml.xmlNodeToDocument.makeArrayforWS how SSL is used 402
973
identify hosts that can connect 424, 427
watt.ssh.jsch.ciphers 974
installing 842
watt.ssh.jsch.logging 974
license keys 108
watt.ssl.accelerator.provider 973
overview 34
watt.ssl.iaik.clientAllowUnboundRenegotiate 974
preventing use of port 210
watt.ssl.iaik.debug 974
process for executing services 39
watt.ssl.iaik.serverAllowUnboundRenegotiate 974
process when starting 61
watt.tx. disabled 975
rejecting connections from specifi ed hosts 425
watt.tx.defaultTTLMins 975
restarting 67
watt.tx.disabled 676
retrieving data for services 37
watt.tx.heuristicFailRetry 975
role 34
watt.tx.jobThreads 676, 975
setting up aliases for remote serv ers 117
watt.tx.retryBackoff 676
shutting down 66
watt.tx.retryBackoffTime 975
starting from command line 55
watt.tx.sweepTime 676, 976
starting on UNIX 55
watt.tx.vm.id 674, 976
testing installation 849
watt.wm.tnextdc.configVersion 975
using with wireless gateways 986
watt.xslt.debug.facList 976
when to restart 67
watt.xslt.debug.level 977
wireless devices, communicating with 986
watt.xslt.debug.logfile 977
wireless devices, using with 986
web
webMethods messaging
directive 433
SSL with Universal Messaging 252
web directive, using with proxy port 434
webMethods messaging triggers
web servi ces
cluster synchronization 768, 768
timestampMaximumSkew 970
configuring 768
web service response, target namespace 970
log messages for 768
web services
monitoring 770
adding endpoint aliases 134, 312
document processing
handler chain behavior 970
concurrent trigger execution threads 759
timest ampPrecisionInMilliseconds 971
limiting threads 766
timestampTimeToLive 971
overview 757
web subdirectory 587
resuming for all triggers 762
webMe thods Integration Server
resuming for one trigger 764
audit-trail logging, overview 51
suspending for all triggers 762
webMethods Broker
suspending for one trigger 764
connecting to using native webMethods API 276
thread usage 758, 759
webMethods Integr ation Server
document retrieval
webMethods Integration Server Administrators Guide Version 9.10
1033
M
Index
overview 748
resuming for all triggers 753
resuming for one trigger 755, 755
suspending for all triggers 753
suspending for one trigger 755
thread usage 749, 749
editing properties 770
queue capacity, reducung 751
refill level, reducing 751
resuming all document processing 762
resuming document processing 762, 764
resuming document retrieval 753, 755
specifying user account 265
throttle controls
Execution Threads Throttle 759
Queue Capacity Throttle 751
webMethods Universal Messaging
client libraries 309
JMS provider 303
webMethodsIntegration Server
recovery after hardware or software failure 68
Windows authentication 983
wireless devices
communicating with webMethods Integration
Server 986
invoking services with URLs 988
requesting HDML or WML pages 989
using URLs to access servers 988
using with webMethods Integration Server 986
wireless gateway, role in wireless communication
986
Wireless Markup Language. 986
wm.server.admin
getDiagnosticData 833
WML (Wireless Markup Language) 986, 989
WML pages, accessing with wireless devices 989
WmSamples package, description 584
WS endpoint triggers
about 792
editing 793
1034