The client might be configured by using the jboss-ejb-client.properties file or a programatic approach by using the PropertiesBasedEJBClientConfiguration. The properies can be used in both cases.
This properties are vaild for the whole library in the same Scope
| Property Name
|| A name of the client endpoint, if not set it will be default to 'client-endpoint'.
Can be helpful to distinguish different endpoint settings because the thread name contain this property.
|remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED|| Boolean value whether SSL protocol is enabled for all connections
|deployment.node.selector|| The full qualified name of an implementation of org.jboss.ejb.client.DeploymentNodeSelector.
It will be used to load balance the invocation for EJBs.
|invocation.timeout|| A timeout in milliseconds for EJB invocation request/response cycle, i.e. handshake or method invocation.
The invocation of any method throws an java.util.concurrent.TimeoutException if the execution take longer than the timeout, the server side will not be interrupted and the execution will finish.
|reconnect.tasks.timeout|| The timeout for the background reconnect tasks.
If there are a number of connections down for whatever reason the next EJB invokation of the client will have an algorithm which decide that a reconnect might be necessary to find the right node. So it triggers a number of threads in background (depends how much reconnect tasks are available) and waits for a maximum of reconnect.tasks.timeout. If the reconnect of those completes (either failure or success) within that time then it waits no more so at a maximum the main thread will "block" for that long. The default value is 10 seconds (10000 ms). The value is in milliseconds, if a value of <=0 is provided, it will default to 10 seconds. As with other properties, these should be provided as Strings.
|org.jboss.ejb.client.scoped.context||Boolean value (false). If set to true it will enable scoped EJB client context (introduced in AS7.2) which will be tied to the JNDI context, otherwise the EJB client context will use the global selector in the JVM to determine the properties to call the remote EJB and host.|
This properties start with the prefix 'remote.connection.<connection-name>.' where the connection-name is a local identifer, only used by the client-configuration, to separate the settings for each connection.
| connection property name
|remote.connections|| A list of active connection-names, separated by ',', each connection is configured by using this name
||The hostname or IP for the connection|
||The port for the connection (server use 4447 by default)|
||A user name for the connection security|
||The password to authenticate the user|
|...connect.timeout|| The timeout for initial connection timeout. Defaults to 5 seconds
After that the reconnect task will periodically check whether the connection can be established.
|...callback.handler.class||Full qualified name of the CallbackHandler class. It will be used to establish the connection, but can not changed as long as the connection is open.|
|...channel.options.org.jboss.remoting3.RemotingOptions.MAX_OUTBOUND_MESSAGES|| A Integer value how many messages (requests) can be send through this channel in parallel until the next will be blocked. The default is 80.
There is only one connection from the client (JVM) to the server to handle all invocations.
|...channel.options.org.jboss.remoting3.RemotingOptions.MAX_INBOUND_MESSAGES|| A Integer value how many messages (requests) via this channel are possible to receive in parallel
|...connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS||Boolean value (default=true), if it is set to true credentials must be given in the client to connect successful. false will allow the invocation if the remoting-connector does not request a security-realm.|
|...connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS|| Disables certain SASL mechanisms used for authenticating during connection creation.
JBOSS_LOCAL_USER; means the silent authentication mechanism used when the client and server are on the same machine, is disabled.
|...connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT|| Boolean, enables/disables the use of plain text messages during the authentication, i.e. if JAAS it must be set to false to use a plain text password.
|...connect.options.org.xnio.Options.SSL_ENABLED||Boolean value whether SSL protocol is enabled for this connection.|
||The interval to use for connection heartbeat, in milliseconds. If the connection is idle in the outbound direction for this amount of time, a ping message will be sent, which will trigger a corresponding reply message to avoid automatic closure (i.e. firewall).|
If the initial connection connects to a clustered environment the topologie of the cluster will be received automatically asynchronous to the invocation. The properties are used to connect to each received member.
Each property start with the prefix 'remote.cluster.<cluster-name>.' where cluster-name is related to the servers infinispan subsystem configuration.
| cluster property name
|...clusternode.selector|| The full qualified name of an implementation of org.jboss.ejb.client.ClusterNodeSelector.
It will be used to load balance the invocations if the EJB has an affinity to a cluster, instead of the DeploymentNodeSelector.
The affinity is set by the server, there is no explicit setting of affinities by user code.
ClusteredBeans have a hard affinity to the cluster, if the cluster is complete down the invocation will fail with 'no ejb receiver available'.
|...channel.options.org.jboss.remoting3.RemotingOptions.MAX_OUTBOUND_MESSAGES||A Integer value how many request are possible to the whole cluster.|
| A Integer value how many request are possible to this specific cluster-node.
TODO: unclear how to set the node-name EJBCLIENT-20 EJBCLIENT23