Client properties file

Create a properties file based on your requirements for WebSphere® eXtreme Scale client processes.

Sample client properties file

[Java programming language only] You can use the sampleClient.properties file that is in the wxs_home/properties directory to create your properties file.

[.net programming language only] You can use the Client.Net.properties file that is in the net_client_home\config\ directory to create your properties file.

[Java programming language only]

Specifying a client properties file for Java clients

You can specify the client properties file in one of the following ways. Specifying a setting by using one of the items later in the list overrides the previous setting. For example, if you specify a system property value for the client properties file, the properties in that file override the values in the objectGridClient.properties file that is in the class path.

  1. As a well-named file anywhere in the WebSphere Application Server class path. Putting this file in the system current directory is not supported:
    objectGridClient.properties
  2. As a system property in either a stand-alone or WebSphere Application Server configuration. This value can specify a file in the system current directory, but not a file in the class path:
    -Dobjectgrid.client.props=file_name
    Note: In a WebSphere Application Server configuration, the client properties file must be in the classpath if you want to specify a particular client properties file to use with the system property; for example, was_root/properties or profile_root/properties, depending on whether you want the properties file to apply to a specific profile, or the entire installation.
  3. As a programmatic override using the ClientClusterContext.getClientProperties method. The data in the object is populated with the data from the properties files. You cannot configure security properties with this method.
[.net programming language only][Version 8.6 and later]

Specifying a client properties file for WebSphere eXtreme Scale Client for .NET

The default client properties file is in the net_client_home\config\Client.Net.properties directory. If you want to specify your own property files, supply the full property file path to each Connect method call.

IGridManager gm = GridManagerFactory.GetGridManager( );
ICatalogDomainInfo cdi = gm.CatalogDomainManager.CreateCatalogDomainInfo( "localhost:2809" );
ccc = gm.Connect( cdi, @"C:\MyLocation\MyClient.properties" );
grid = gm.GetGrid( ccc, gridName );

Client properties

Client properties
[.net programming language only][Version 8.6.0.2 and later] enableDynamicConfiguration
When set to true, any changes that are made to the requestRetryTimeout property in the client properties file are detected dynamically. The new property value is used immediately to calculate the new request retry timeout value.

Default: false

[Java programming language only] listenerHost

Specifies the host name to which the Object Request Broker (ORB) or eXtremeIO (XIO) transport protocol binds for communication. The value must be a fully qualified domain name or IP address. If your configuration involves multiple network cards, set the listener host and port to let the transport mechanism in the JVM know the IP address for which to bind. If you do not specify which IP address to use, symptoms such as connection timeouts, unusual API failures, and clients that seem to hang can occur.

[Java programming language only] listenerPort
Specifies the port number to which the Object Request Broker or the eXtremeIO (XIO) transport protocol binds for communication. The port number that is defined for listenerPort is used for communication between a client and a catalog server, and communication between a container server and a catalog server that are in the same domain. It is also used for interdomain and intradomain communication between catalog servers.

Default: 2809

Note: When a data grid server is run inside WebSphere Application Server and the ORB transport protocol is being used, another port ORB_LISTENER_ADDRESS must also be opened. The BOOTSTRAP_ADDRESS port forwards requests to this port. If you are using the XIO transport protocol, the XIO_ADDRESS port must be opened.
[Java programming language only] preferLocalProcess
This property is not currently used. It is reserved for future use.
[Java programming language only] preferLocalHost
This property is not currently used. It is reserved for future use.
[Java programming language only][.net programming language only] preferZones
Specifies a list of preferred routing zones. Each specified zone is separated by a comma in the form: preferZones=ZoneA,ZoneB,ZoneC

Default: no value

[Java programming language only][.net programming language only] requestRetryTimeout
Specifies how long to continue processing a request (in milliseconds) after an exception occurs. Use one of the following valid values:
  • A value of 0 indicates that the request should fail fast and skip over the internal retry logic.
  • A value of -1 indicates that the request retry timeout is not set, meaning that the request duration is governed by the transaction timeout. (Default). The following levels of checking the request retry timeout are used to determine the default behavior:
    • Session instance requestRetryTimeout value
    • Client properties file requestRetryTimeout value
    • If neither of the previous values are set, then the lowest value between the transaction timeout value and 30 seconds is selected. For example, if the transaction timeout value has the default value of 10 minutes, then the request times out at 30 seconds. Alternatively, if you set the transaction timeout value to 20 seconds, then the request times out after 20 seconds.
  • A value over 0 indicates the request entry timeout value in milliseconds. Exceptions that are not successfully created are returned. Even when exceptions, such as DuplicateException, are tried again, they are also returned when they do not succeed. The transaction timeout is still used as the maximum time to wait.
[Java programming language only][.net programming language only][Version 8.6 and later] shuffleBootstrapAddresses
Specifies if the catalog service addresses should be randomized when used by a client while bootstrapping to the data grid. The values must be either true or false.

Default: true

[Java programming language only][Version 8.6.0.2 and later] xioTimeout
Specifies the timeout value, in seconds, for outbound socket connection attempts by eXtremeIO. It is also used as a default timeout for internal eXtremeIO logic.
[Java programming language only][Version 8.6.0.2 and later] xioRequestTimeout
Specifies how many seconds any request waits for a response before giving up. This property influences the amount of time a client takes to fail over if a network outage failure occurs. If you set this property too low, requests might time out inadvertently. Carefully consider the value of this property to prevent inadvertent timeouts.

Security client properties

General security properties
[Java programming language only][.net programming language only] securityEnabled
Enables WebSphere eXtreme Scale client security. This setting should match with the securityEnabled setting in theWebSphere eXtreme Scale server properties file. If the settings do not match, the client connection to the data grid fails.

Default: false

Credential authentication configuration properties
[Java programming language only][.net programming language only] credentialAuthentication
Specifies the client credential authentication support. Use one of the following valid values:
  • Never: The client does not support credential authentication.
  • Supported: The client supports credential authentication if the server also supports credential authentication. (Default)
  • Required: The client requires credential authentication.
[Java programming language only][.net programming language only] authenticationRetryCount
Specifies the number of times that authentication is tried if the credential is expired. If the value is set to 0, attempts to authenticate are not tried again.

Default: 3

[.net programming language only][Version 8.6 and later] credentialGeneratorAssembly
Specifies the name of the assembly that is used to generate credentials for the WebSphere eXtreme Scale Client for .NET. To specify this property, the credentialAuthentication property must be set to Supported or Required. The value must be a valid C# .dll assembly name with version, culture and other properties included.

Example: IBM.WebSphere.Caching.CredentialGenerator, Version=8.6.0.0, Culture=neutral, PublicKeyToken=b439a24ee43b0816

[Java programming language only][.net programming language only] credentialGeneratorClass
Specifies the name of the class that implements the com.ibm.websphere.objectgrid.security.plugins.CredentialGenerator interface. To specify this property, the credentialAuthentication property must be set to Supported or Required. This class is used to get credentials for clients.

Default: no value

[Java programming language only][.net programming language only] credentialGeneratorProps
Specifies the properties for the CredentialGenerator implementation class. The properties are set to the object with the setProperties(String) method. To specify this property, the credentialAuthentication property must be set to Supported or Required. The credentialGeneratorprops value is used only if the value of the credentialGeneratorClass property is not null.
Transport layer security configuration properties
[Java programming language only][.net programming language only] transportType
Specifies the client transport type. The possible values are:
  • TCP/IP: Indicates that the client only supports TCP/IP connections.
  • SSL-Supported: Indicates that the client supports both TCP/IP and Secure Sockets Layer (SSL) connections. (Default)
    [Version 8.6 only] Restriction: (Version 8.6.0.0 and Version 8.6.0.1 only) You cannot use the SSL-supported setting with IBM eXtremeIO (XIO) configurations.
  • SSL-Required: Indicates that the client requires SSL connections.
SSL configuration properties
[Java programming language only] alias
Specifies the alias name in the keystore. This property is used if the keystore has multiple key pair certificates and you want to select one of the certificates.

Default: no value

[Java programming language only] contextProvider
Specifies the name of the context provider for the trust service. If you indicate a value that is not valid, a security exception results that indicates that the context provider type is incorrect.

Valid values: IBMJSSE2, IBMJSSE, IBMJSSEFIPS, and so on.

[Java programming language only] keyStore
Specifies a fully qualified path to the keystore file.

Example:

etc/test/security/client.private

[Java programming language only] keyStoreType
Indicates the type of keystore. If you indicate a value that is not valid, a runtime security exception occurs.

Valid values: JKS, JCEK, PKCS12, and so on.

[Java programming language only][.net programming language only] protocol
Indicates the type of security protocol to use for the client. Set this protocol value based on which security provider you use. If you indicate a value that is not valid, a security exception results that indicates that the protocol value is incorrect.

[Java programming language only] Valid values: SSL, SSLv3, TLS, TLSv1, and so on.

[.net programming language only] Valid values: SSLv2, SSLv3, TLS or Default (SSLv3 or TLS1.0)

[.net programming language only][Version 8.6 and later] publicKeyFile
Specifies a fully-qualified path name to a file that contains the exported public key from the server.

Example: c:\tmp\wxs\serverA.cer

[Java programming language only] trustStoreType
Indicates the type of truststore. If you indicate a value that is not valid, a runtime security exception results.

Valid values: JKS, JCEK, PKCS12, and so on.

[Java programming language only] trustStore
Specifies a fully qualified path to the truststore file.

Example:

etc/test/security/server.public

[Java programming language only] keyStorePassword
Specifies the string password to the keystore. You can encode this value or use the actual value.
[Java programming language only] trustStorePassword
Specifies a string password to the truststore. You can encode this value or use the actual value.