Issue 2, 2015
Install, configure, upgrade, cluster and troubleshoot
The fundamentals (First in a series of three)
With webMethods 8.2.2, customers were introduced to Terracotta, Software AG’s in-memory caching and clustering solution. Since then, usage of Terracotta across the webMethods suite has expanded and several new versions of Terracotta have been released. How does webMethods work with Terracotta? What architectural changes have occurred now that we are using Terracotta instead of Oracle® Coherence? How do you install, upgrade and configure it? What clustering options are available? And are there any tips for troubleshooting? This is the first of a trilogy of articles in which we will explore these questions.
Fundamentals of Terracotta and webMethods
In this article, we will address the basics of webMethods and Terracotta including: architecture; version compatibility; installation; and fix handling. We will also review the advantages of using Terracotta within the webMethods suite. Included are these topics:
- History of webMethods and Terracotta
- Architecture of Terracotta
- Version compatibility
- How Terracotta is used in webMethods
- Installing and upgrading
webMethods + Terracotta = A powerful combination
Starting with webMethods 8.2.2, Terracotta was introduced as a clustering and caching solution that offered both functional and architectural advantages, as shown in Table 1.
|Speed and scale||Support for highly distributed architectures|
|Cloud deployable||Embedded data services|
|Web & mobile ready||Event-driven architecture|
|Internet of Things enabled||Standards compliance|
Table 1: Functional and Architectural Advantages of Terracotta for Clustering and Caching
Terracotta’s BigMemory family of products, as a standalone offering, can also be used to manage massive quantities of data quickly and reliably. Organizations that have big data use cases will approach Terracotta from a perspective that includes high levels of customization and tuning.
Both the standalone version of Terracotta and the version provided with webMethods are technically identical; they are based on the same code base and share a single set of product documentation. However, they are branded and packaged differently. In addition, Terracotta with webMethods is configured out-of-the-box to suit webMethods use cases in which the amount of data is small but reliability, extensibility and manageability are critical.
Terracotta with webMethods
How does it work?
Terracotta’s architecture is substantially different from that of Oracle Coherence. Coherence was installed as a library within the Integration Server container, and a cluster was formed by configuring multiple Coherence instances to communicate with each other. Coherence did not run on a separate server or even in a separate Java Virtual Machine (JVM®). The minimum cluster size recommended was four nodes, and it relied on multicast, a less desirable option for cloud environments.
Terracotta has two components: the local Ehcache library and the Terracotta Server Array (TSA). The local Ehcache library, installed with webMethods Integration Server, is used for in-memory caching of local data and runs within the Integration Server JVM. The TSA provides distributed caching and clustering. In order to cluster multiple webMethods servers or share information between multiple servers, the TSA is installed as a separate run- time.
Figure 1: Example of a Recommended Deployment Architecture
As shown in Figure 1, it is recommended that webMethods customers configure their Terracotta Server Array to have a single stripe that contains two TSA servers. One server is the active instance and the other is the passive instance. Deploying each Terracotta server instance on its own machine will provide the highest level of failover and high availability, but it is not required. In order for cluster nodes to share data, they only need to ensure connectivity to the Terracotta Server Array and not between all cluster nodes. This is similar to ensuring database connectivity, a familiar paradigm for administrators. Unlike the Coherence architecture, Terracotta supports clusters of less than four nodes.
What does it do?
From clustering to performance enhancing, Terracotta Server Array is used for a variety of purposes throughout the webMethods suite:
- Integration Server: Local caching of XML parser docs and service results. Server-side caching of cluster state, sessions, nonce and Oauth tokens for authentication
- Mediator: Distributed caching of cluster state, API keys, Oauth data, consumer apps, consumers, metrics, policies and virtual services
- Enterprise Gateway: Local caching of the nonce to accelerate authentication.
- CloudStreams: Server-side caching of cluster state, consumer apps and metrics. Local caching of policies and virtual services
- BPM/process engine: Local caching of audit failures for retry; server-side caching of active process steps
- Optimize for Process and Optimize for Infrastructure: Server-side caching of cluster state, dimensions, event maps, KPIs and rules; local caching for notifications and event handling
- CentraSite: Local caching of object lookups and type lookups
- OneData: Server-side caching of release data objects
- Trading Networks: Local caching of query results, partner info and doc attributes
- eStandards: Server-side caching of session, partner, profile and inbound/outbound messages
- Command Central/platform manager: Local cache for state data and node attributes
- Event-driven architecture: Local cache for guaranteed delivery of events
What do I get?
For webMethods products that are licensed to use Terracotta, customers will automatically receive a limited license of Terracotta. After installing the Terracotta Server Array and the client-side license key, they can configure a cluster with Terracotta.
webMethods 8.2 through 9.6 are compatible with Terracotta 3.7. As licensed with webMethods, this version of Terracotta does not allow off-heap storage to be used. Integration Server customers have a pub.cache service to add local caching capabilities to their applications.
webMethods 9.7 through 9.9 are compatible with Terracotta 4.1 or 4.3, sold as Terracotta BigMemory. As licensed with webMethods, the 4.x versions of Terracotta also do not allow off-heap storage. webMethods licensing requires the Terracotta Server Array to be configured in hybrid mode. In this mode, the cached data on the Terracotta Server Array is written to disk. A small amount of off-heap is needed as a working space for the Terracotta engine. Integration Server customers continue to have pub.cache services available for implementing local caching in their applications.
When do you need additional licensing?
Additional licensing is available for several use cases beyond what is provided out-of-the-box with webMethods:
- To store cached data off-heap either on the local client or on the server, the customer will need to purchase additional licensing for BigMemory. This is desirable for rapid access to large amounts of data, either locally or on the Terracotta Server Array.
- Creating a custom cache on the Terracotta Server Array for distributed use is an additional license charge. Applications that run in a clustered mode and share state will typically find it useful to do so via a distributed cache on the TSA.
- Only one stripe (an active and a mirror instance) of the Terracotta Server Array is included in the webMethods licensing. Additional mirrors, or stripes, are an extra charge.
Terracotta servers and clients are tightly coupled and versions must match in order to work properly. Each release of webMethods includes Terracotta client libraries that are compatible with a specific version of the Terracotta Server.
The following diagram shows which versions of Integration Server (IS) support corresponding clustering technologies.
Figure 2: Release Compatibility between Terracotta and webMethods
Installing and applying fixes
We continue to mature life-cycle support, and each successive release of Terracotta has provided improvements in installation and fix management. The following table summarizes the evolution of Terracotta life-cycle support:
Compatible with Terracotta 3.5.3
For more information
To learn more about Terracotta and webMethods, check out these resources
- Getting Started with the webMethods Product Suite and Terracotta
- The Terracotta Server Array Introduction
- Terracotta Server Array Architecture
Look for our follow up articles on Terracotta and webMethods in the next two issues of TECHniques. In September’s issue we will review clustering options, scalability and high availability. In the December issue, we will discuss configuring, debugging and managing Terracotta in webMethods.