Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinispan doc updates #4101

Open
wants to merge 14 commits into
base: docs-staging
Choose a base branch
from
60 changes: 26 additions & 34 deletions docs/extend/extend-apiml/api-mediation-infinispan.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Using Infinispan as a storage solution through the Caching service
# Using Infinispan as a storage solution through the Caching Service

:::info Required roles: system administrator, security administrator
:::

You can configure Infinispan as a storage solution through the Caching service, as well as configure Infinispan for high availability to replicate data to provide data durability and availability.
You can configure Infinispan as a storage solution through the Caching Service, as well as configure Infinispan for high availability to replicate data to provide data durability and availability.

- [Using Infinispan as a storage solution through the Caching service](#using-infinispan-as-a-storage-solution-through-the-caching-service)
- [Using Infinispan as a storage solution through the Caching Service](#using-infinispan-as-a-storage-solution-through-the-caching-service)
- [Understanding Infinispan](#understanding-infinispan)
- [Infinispan replica instances](#infinispan-replica-instances)
- [Infinispan configuration](#infinispan-configuration)

## Understanding Infinispan

Infinispan is a storage solution that stores data structures in key-value pairs. The API Caching service uses hash sets, where each
service storing data via the Caching service has its own hash, and each data entry is a key-value entry within that service's Infinispan hash set.
Infinispan is a storage solution that stores data structures in key-value pairs. The API Caching Service uses hash sets, where each
service storing data via the Caching Service has its own hash, and each data entry is a key-value entry within that service's Infinispan hash set.

For more information on Infinispan, see the [official Infinispan documentation](https://infinispan.org/documentation/).

Expand All @@ -26,40 +26,36 @@ For more information on Infinispan replication and how to configure a replica in

## Infinispan configuration

Configure Infinispan as a storage solution through the Caching service by setting the following configuration parameters in the `zowe.yaml`.
Configure Infinispan as a storage solution through the Caching Service by setting the following configuration parameters in the `zowe.yaml`.

* **`zowe.components.caching-service.storage.infinispan.initialHosts`**
* **zowe.components.caching-service.storage.infinispan.initialHosts**

This property specifies the list of cluster nodes (members). In case of multiple instances, the value for each Caching Service instance can be
either a list of all the members, separated by a comma, or just the replica. The format is `${haInstance.hostname}[${zowe.components.caching-service.storage.infinispan.jgroups.port}]`.

* **`zowe.components.caching-service.storage.infinispan.persistence.dataLocation`**

The path where the service keeps its data files for the Infinispan Soft-Index Cache Store.
The default value is `data`. If you run the Caching Service in HA and the instances use the same filesystem, you have to specify a different value of the data property for each instance. For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).
* **zowe.components.caching-service.storage.infinispan.jgroups.port**

(Optional) The default value is `7600`. The port number used by Infinispan to synchronise data among Caching Service instances.

* **`zowe.components.caching-service.storage.infinispan.persistence.indexLocation`**
:::note
We recommend you define this value to avoid potential problems or errors in future Zowe upgrades.
:::

The path where the service keeps its index data for the Infinispan Soft-Index Cache Store.
The default value is `index`. If you run the Caching Service in HA and the instances use the same filesystem, you have to specify a different value of the index property for each instance. For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).
* **zowe.components.caching-service.storage.infinispan.jgroups.host**

(Optional) The default value is taken from zowe hostname. The hostname used by Infinispan to synchronise data among Caching Service instances.

* **`zowe.components.caching-service.storage.infinispan.jgroups.port`**
:::note
We recommend you define this value to avoid potential problems or errors in future Zowe upgrades.
:::

(OPTIONAL)The default value is `7098`. The port number used by Infinispan to synchronise data among cahing-service instances.
* **zowe.components.caching-service.storage.infinispan.keyExchange.port**

* **`zowe.components.caching-service.storage.infinispan.jgroups.host`**
(Optional) The default value is `7601`. The port number used by Infinispan to exchange encryption key among Caching Service instances.

(OPTIONAL)The default value is taken from zowe hostname. The hostname used by Infinispan to synchronise data among cahing-service instances.


* **`zowe.components.caching-service.storage.infinispan.keyExchange.port`**

(OPTIONAL)The default value is `7118`. The port number used by Infinispan to exchange encryption key among cahing-service instances.


**Example of Caching service HA configuration using Infinispan:**
**Example of Caching Service HA configuration using Infinispan:**

```yaml
haInstances:
Expand All @@ -68,19 +64,15 @@ Configure Infinispan as a storage solution through the Caching service by settin
caching-service:
storage:
mode: infinispan
infinispan:
initialHosts: lpar2[7098]
persistence:
dataLocation: /global/zowe/workspace/caching-service/data01
indexLocation: /global/zowe/workspace/caching-service/index01
infinispan:
jgroups.port: 7600
initialHosts: lpar2[7600]
lpar2:
components:
caching-service:
storage:
mode: infinispan
infinispan:
initialHosts: lpar1[7098]
persistence:
dataLocation: /global/zowe/workspace/caching-service/data02
indexLocation: /global/zowe/workspace/caching-service/index02
infinispan:
jgroups.port: 7600
initialHosts: lpar1[7600]
```
8 changes: 4 additions & 4 deletions docs/user-guide/address-network-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Each Jobname has a default prefix of ZWE1, but that can be customized via the `z
| 7552 | API Mediation Layer | api-catalog | ZWE1**AC** | AAC | Used to view API swagger / openAPI specifications for registered API services in the API Catalog.
| 7553 | API Mediation Layer | discovery | ZWE1**AD** | ADS | Discovery server port which dynamic API services can issue APIs to register or unregister themselves.
| 7554 | API Mediation Layer | gateway | ZWE1**AG** | AGW | The northbound edge of the API Gateway used to accept client requests before routing them to registered API services. This port must be exposed outside the z/OS network so clients (web browsers, VS Code, processes running the Zowe CLI) can reach the gateway.
| 7555 | API Mediation Layer | caching-service | ZWE1**CS** | ACS | Port of the caching service that is used to share state between different Zowe instances in a high availability topology.
| 7555 | API Mediation Layer | Caching Service | ZWE1**CS** | ACS | Port of the Caching Service that is used to share state between different Zowe instances in a high availability topology.
| 7556 | App Framework | app-server | ZWE1**DS** & ZWE1SV | D | The Zowe Desktop (also known as ZLUX) port used to log in through web browsers.
| 7557 | App Framework | zss | ZWE1**SZ** | SZ | Z Secure Services (ZSS) provides REST API services to ZLUX, used by the File Editor application and other ZLUX applications in the Zowe Desktop.
| 7558 | API Mediation Layer | zaas | ZWE1**AZ** | AZ |
Expand All @@ -39,9 +39,9 @@ To enable or disable cluster mode, see the [Advanced Application Framework Confi
The Caching Service will use these additional ports if enabled (`zowe.components.caching-service.enabled: true`) and set to use infinispan (the default, `zowe.components.caching-service.storage.mode: infinispan`).

| Port number | zowe.yaml variable name | Purpose |
|------|------|------|
| 7601 | zowe.components.caching-service.storage.infinispan.jgroups.keyExchange.port | The port at which the key server in Infinispan is listening. If the port is not available, the next port is probed, up to port+5. Used by the key server (server) to create an SSLServerSocket and by clients to connect to the key server.
| 7600 | zowe.components.caching-service.storage.infinispan.jgroups.port | Bind port for the socket that is used to form an Infinispan cluster.
|-------------|------|------|
| 7601 | zowe.components.caching-service.storage.infinispan.jgroups.keyExchange.port | The port at which the key server in Infinispan is listening. If the port is not available, the next port is probed, up to port+5. Used by the key server (server) to create an SSLServerSocket and by clients to connect to the key server.
| 7600 | zowe.components.caching-service.storage.infinispan.jgroups.port | Bind port for the socket that is used to form an Infinispan cluster.

## IP Addresses

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Using Infinispan as a storage solution through the Caching service
# Using Infinispan as a storage solution through the Caching Service

:::info Required roles: system administrator, security administrator
:::

You can configure Infinispan as a storage solution through the Caching service, as well as configure Infinispan for high availability to replicate data to provide data durability and availability.
You can configure Infinispan as a storage solution through the Caching Service, as well as configure Infinispan for high availability (HA) to replicate data to provide data durability and availability.

- [Using Infinispan as a storage solution through the Caching service](#using-infinispan-as-a-storage-solution-through-the-caching-service)
- [Using Infinispan as a storage solution through the Caching Service](#using-infinispan-as-a-storage-solution-through-the-caching-service)
- [Understanding Infinispan](#understanding-infinispan)
- [Infinispan replica instances](#infinispan-replica-instances)
- [Infinispan configuration](#infinispan-configuration)

## Understanding Infinispan

Infinispan is a storage solution that stores data structures in key-value pairs. The API Caching service uses hash sets, where each
service storing data via the Caching service has its own hash, and each data entry is a key-value entry within that service's Infinispan hash set.
Infinispan is a storage solution that stores data structures in key-value pairs. The API Caching Service uses hash sets, where each
service storing data via the Caching Service has its own hash, and each data entry is a key-value entry within that service's Infinispan hash set.

For more information on Infinispan, see the [official Infinispan documentation](https://infinispan.org/documentation/).

Expand All @@ -26,40 +26,56 @@ For more information on Infinispan replication and how to configure a replica in

## Infinispan configuration

Configure Infinispan as a storage solution through the Caching service by setting the following configuration parameters in the `zowe.yaml`.
Configure Infinispan as a storage solution through the Caching Service by setting the following configuration parameters in the `zowe.yaml`.

* **`zowe.components.caching-service.storage.infinispan.initialHosts`**
* **zowe.components.caching-service.storage.infinispan.initialHosts**

This property specifies the list of cluster nodes (members). In case of multiple instances, the value for each Caching Service instance can be
either a list of all the members, separated by a comma, or just the replica. The format is `${haInstance.hostname}[${zowe.components.caching-service.storage.infinispan.jgroups.port}]`.

* **`zowe.components.caching-service.storage.infinispan.persistence.dataLocation`**
* **zowe.components.caching-service.storage.infinispan.persistence.dataLocation**

The path where the service keeps its data files for the Infinispan Soft-Index Cache Store.
The default value is `data`. If you run the Caching Service in HA and the instances use the same filesystem, you have to specify a different value of the data property for each instance. For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).
The default value is `data`. To run the Caching Service in HA, ensure that you apply the following configuration conditions:

- The value should be the same for each instance.
- The location should point to a non-shared filesystem. Each instance requires unique storage.
- For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).

* **`zowe.components.caching-service.storage.infinispan.persistence.indexLocation`**

* **zowe.components.caching-service.storage.infinispan.persistence.indexLocation**

The path where the service keeps its index data for the Infinispan Soft-Index Cache Store.
The default value is `index`. If you run the Caching Service in HA and the instances use the same filesystem, you have to specify a different value of the index property for each instance. For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).
The default value is `index`. To run the Caching Service in HA, ensure that you apply the following configuration conditions:

- The value should be the same for each instance.
- The location should point to a non-shared filesystem. Each instance requires unique storage.
- For more information, see the [Soft-Index File Store](https://infinispan.org/blog/2014/10/31/soft-index-file-store).


* **`zowe.components.caching-service.storage.infinispan.jgroups.port`**
* **zowe.components.caching-service.storage.infinispan.jgroups.port**

(OPTIONAL)The default value is `7098`. The port number used by Infinispan to synchronise data among cahing-service instances.
(Optional) The default value is `7600`. The port number is used by Infinispan to synchronise data among Caching Service instances.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is going with 3.2, I'd keep the 7098, I believe we need to update that in the defaults.yaml

* **`zowe.components.caching-service.storage.infinispan.jgroups.host`**
:::note
We recommend you define this value to avoid potential problems or errors in future Zowe upgrades, for example
from version 2.x through v3.1 to v3.2 and newer versions.
:::

(OPTIONAL)The default value is taken from zowe hostname. The hostname used by Infinispan to synchronise data among cahing-service instances.
* **zowe.components.caching-service.storage.infinispan.jgroups.host**

(Optional) The default value is taken from zowe hostname. The hostname used by Infinispan to synchronise data among Caching Service instances.

* **`zowe.components.caching-service.storage.infinispan.keyExchange.port`**
* **zowe.components.caching-service.storage.infinispan.keyExchange.port**

(OPTIONAL)The default value is `7118`. The port number used by Infinispan to exchange encryption key among cahing-service instances.
(Optional) The default value is `7601`. The port number is used by Infinispan to exchange encryption key among Caching Service instances.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:::note
We recommend you define this value to avoid potential problems or errors in future Zowe upgrades, for example
from version 2.x through v3.1 to v3.2 and newer versions.
:::

**Example of Caching service HA configuration using Infinispan:**
**Example of Caching Service HA configuration using Infinispan:**

```yaml
haInstances:
Expand All @@ -68,19 +84,21 @@ Configure Infinispan as a storage solution through the Caching service by settin
caching-service:
storage:
mode: infinispan
infinispan:
initialHosts: lpar2[7098]
infinispan:
jgroups.port: 7600
initialHosts: lpar2[7600]
persistence:
dataLocation: /global/zowe/workspace/caching-service/data01
indexLocation: /global/zowe/workspace/caching-service/index01
dataLocation: /global/zowe/workspace/caching-service/data
indexLocation: /global/zowe/workspace/caching-service/index
lpar2:
Comment on lines +91 to +92
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add a comment to the example about needing to be in a non-shared filesystem (tendency to copy-paste)

components:
caching-service:
storage:
mode: infinispan
infinispan:
initialHosts: lpar1[7098]
infinispan:
jgroups.port: 7600
initialHosts: lpar1[7600]
persistence:
dataLocation: /global/zowe/workspace/caching-service/data02
indexLocation: /global/zowe/workspace/caching-service/index02
dataLocation: /global/zowe/workspace/caching-service/data
indexLocation: /global/zowe/workspace/caching-service/index
```
Loading