Spring descriptor XML file

Use a Spring descriptor XML file to configure and integrate eXtreme Scale with Spring.

In the following sections, each element and attribute of the Spring objectgrid.xsd file is defined. The Spring objectgrid.xsd file is in the ogspring.jar file and the ObjectGrid namespace com/ibm/ws/objectgrid/spring/namespace. See the Spring objectgrid.xsd file for an example of the descriptor XML schema.

register element

Use the register element to register the default bean factory for the ObjectGrid.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
id
Specifies the name of the default bean directory for a particular ObjectGrid.
gridname
Specifies the name of the ObjectGrid instance. The value assigned to this attribute must correspond to a valid ObjectGrid configured in the ObjectGrid descriptor file.
<register
	id="register id"
	gridname="ObjectGrid name"
/>

server element

Use the server element to define a server, which can host a container, a catalog service, or both.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
id
Specifies the name of the eXtreme Scale server.
tracespec
Indicates the type of trace and enables trace and trace specification for the server.
tracefile
Provides the path and name of the trace file to create and use.
statspec
Indicates the statistic specification for the server.
jmxport
Specifies the port that is used by the high availability (HA) manager for heartbeat communication between peer container servers. The HAManagerPort port is only used for peer-to-peer communication between container servers that are in same domain. If the HAManagerPort property is not defined, then an ephemeral port is used. In WebSphere® Application Server, this setting is inherited by the high availability manager port configuration.
isCatalog
Specifies whether the particular server hosts a catalog service. The default value is false.
name
Specifies the name of the server.
haManagerPort
Specifies the port that is used by the high availability (HA) manager for heartbeat communication between peer container servers. The HAManagerPort port is only used for peer-to-peer communication between container servers that are in same domain. If the HAManagerPort property is not defined, then an ephemeral port is used. In WebSphere Application Server, this setting is inherited by the high availability manager port configuration.
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 the IP address for which to bind. By setting the listener and host port, it allows the transport mechanism in the JVM know which IP address to use. 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.

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 for communication between a client and a catalog server in the same domain. It is also used for communication between a container server and a catalog server that are in the same domain. This port is also used for inter-domain and intra-domain communication between catalog servers.
maximumThreadPoolSize
Sets the maximum number of threads in the pool.
memoryThresholdPercentage
Sets the memory threshold (percentage of max heap) for memory-based eviction.
minimumThreadPoolSize
Sets the minimum number of threads in the pool.
workingDirectory
The property that defines which directory the ObjectGrid server uses for all default settings.
zoneName
Defines the zone to which this server belongs.
enableSystemStreamToFile
Defines whether SystemOut and SystemErr is sent to a file.
enableMBeans
Determines whether the ObjectGrid registers MBeans in this process.
serverPropertyFile
Loads the server properties from a file.
catalogServerProperties
Specifies the catalog server that hosts server.
<server
	id="server id"
	tracespec="the server trace specification"
	tracefile="the server trace file"
	statspec="the server statistic specification"
	jmxport="JMX port number"
	isCatalog="true"|”false”
	name="the server name”
	haManagerPort="the haManager port"
 	listenerHost="the orb binding host name"
 	listenerPort="the orb binding listener port"
 	maximumThreadPoolSize="the number of maximum threads"
 	memoryThresholdPercentage="the memory threshold (percentage of max heap)"
 	minimumThreadPoolSize="the number of minimum threads"
	workingDirectory="location for the working directory"
	zoneName="the zone name"
	enableSystemStreamToFile="true"|”false”
	enableMBeans="true"|”false”
	serverPropertyFile="location of the server properties file."
	catalogServerProperties="the catalog server properties reference"
/>

catalog element

Use the catalog element to route to container servers in the data grid.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
host
Specifies the host name of the workstation where the catalog service is running.
port
Specifies the port number paired with the host name to determine the catalog service port to which the client can connect.
<catalog
	host="catalog service host name"
	port="catalog service port number"
/>

catalogServerProperties element

Use the catalog server properties element to define a catalog service.
Attributes
catalogServerEndPoint
Specifies the connection properties for the catalog server.
enableQuorum
Determines whether to enable quorum.
heartBeatFrequencyLevel
Sets the heartbeat frequency level.
domainName
Defines the domain name used to uniquely identify this catalog service domain to clients when routing to multiple catalog service domains.
clusterSecurityURL
Sets the location of the security file specific to the catalog service.
<catalogServerProperties
	catalogServerEndPoint="a catalog server endpoint reference"
	enableQuorum="true"|"false"
	heartBeatFrequencyLevel="
		HEARTBEAT_FREQUENCY_LEVEL_TYPICAL|
		HEARTBEAT_FREQUENCY_LEVEL_RELAXED|
		HEARTBEAT_FREQUENCY_LEVEL_AGGRESSIVE"
	domainName="the domain name used to uniquely identify this catalog service domain"
 	clusterSecurityURL="the The cluster security file location.">
	<foreignDomains>
		<foreignDomain name="name_of_foreign_domain_1">
			<endPoint host="catalog server host 1" port="2809"/>
			<endPoint host="catalog server host 2" port="2809"/>
		</foreignDomain>
		<foreignDomain name="name_of_foreign_domain_2">
			<endPoint host="catalog server host 3" port="2809"/>
			<endPoint host="catalog server host 4" port="2809"/>
		</foreignDomain>
	</foreignDomains>
</catalogServerProperties>

foreignDomains element

Use the foreignDomains element to connect to a list of other catalog service domains. You must include the name of each catalog service domain and the end points for the catalog servers within each catalog service domain.

foreignDomain element

Indicates the name of the catalog service domain to connect. This name is defined with the domainName attribute on the catalogServiceProperties element.
  • Number of occurrences: One to many
  • Parent element: foreignDomains element
  • Child element: endPoint element
  • Attributes
    name
    Specifies the name that identifies the foreign catalog service domain.

endPoint element

Indicates a list of catalog service end points for a specified foreign catalog service domain.
  • Number of occurrences: One to many
  • Parent element: foreignDomain element
  • Child element: None
  • Attributes
    host
    Specifies the host name of one of the catalog servers in the catalog service domain.
    port
    Specifies the port of one of the catalog servers in the catalog service domain.

catalog server endpoint element

Use the catalog server endpoint element to create a catalog server endpoint to be used by a catalog server element.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
serverName
Specifies the name that identifies the process that you are launching.
hostName
Specifies the host name for the machine where the server is launched.
clientPort
Specifies the port used for peer catalog cluster communication.
peerPort
Specifies the port used for peer catalog cluster communication.
<catalogServerEndPoint
 	name="catalog server endpoint name"
	host=""
	clientPort=""
	peerPort=""
/>

container element

Use the container element to store the data itself.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
objectgridxml
Specifies the path and name of the descriptor XML file to use that specifies characteristics for the ObjectGrid, including maps, locking strategy, and plug-ins.
deploymentxml
Specifies the path and name of the XML file that is used with the descriptor XML file. This file determines partitioning, replication, number of initial containers, and other settings.
server
Specifies the server on which the container is hosted.
<server
 	objectgridxml="the objectgrid descriptor XML file"
	deploymentxml ="the objectgrid deployment descriptor XML file "
	server="the server reference "
/>

JPALoader element

Use the JPALoader element to synchronize the ObjectGrid cache with an existing backend data store when using the ObjectMap API.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
entityClassName
Enables usage of JPAs such as EntityManager.persist and EntityManager.find. The entityClassName attribute is required for the JPALoader.
preloadPartition
Specifies the partition number at which the map preload is started. If the value is less than 0, or greater than (totalNumberOfPartition – 1), the map preload is not started.
<JPALoader
	entityClassName="the entity class name"
	preloadPartition ="int"
/>

JPATxCallback element

Use the JPATxCallback element to coordinate JPA and ObjectGrid transactions.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
persistenceUnitName
Creates a JPA EntityManagerFactory and locates the JPA entity metadata in the persistence.xml file. The persistenceUnitName attribute is required.
jpaPropertyFactory
Specifies the factory to create a persistence property map to override the default persistence properties. This attribute references a bean.
exceptionMapper
Specifies the ExceptionMapper plug-in that can be used for JPA-specific or database-specific exception mapping functions. This attribute references a bean.
<JPATxCallback
	persistenceUnitName="the JPA persistence unit name"
	jpaPropertyFactory ="JPAPropertyFactory bean reference"
	exceptionMapper="ExceptionMapper bean reference"
/>

JPAEntityLoader element

Use the JPAEntityLoader element to synchronize the ObjectGrid cache with an existing backend data store when using the EntityManager API.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
entityClassName
Enables usage of JPAs such as EntityManager.persist and EntityManager.find. The entityClassName attribute is optional for the JPAEntityLoader element. If the element is not configured, the entity class configured in the ObjectGrid entity map is used. The same class must be used for the ObjectGrid EntityManager and for the JPA provider.
preloadPartition
Specifies the partition number at which the map preload is started. If the value is less than 0, or greater than (totalNumberOfPartition – 1) the map preload is not launched.
<JPAEntityLoader
	entityClassName="the entity class name"
	preloadPartition ="int"
/>

LRUEvictor element

Use the LRUEvictor element to decide which entries to evict when a map exceeds its maximum number of entries.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
maxSize
Specifies the total entries in a queue until the evictor must intervene.
sleepTime
Sets the time in seconds between the eviction sweep over map queues to determine any necessary actions on the map.
numberOfLRUQueues
Specifies the setting of how many queues the evictor must scan to avoid having a single queue that is the size of the entire map.
<LRUEvictor
	maxSize="int"
	sleepTime ="seconds"
	numberOfLRUQueues ="int"
/>

LFUEvictor element

Use the LFUEvictor element to determine which entries to evict when a map exceeds its maximum number of entries.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
maxSize
Specifies the total entries that are allowed in each heap until the evictor must act.
sleepTime
Sets the time in seconds between eviction sweeps over map heaps to determine any necessary actions on the map.
numberOfHeaps
Specifies the setting of how many heaps the evictor must scan to avoid having a single heap that is the size of the entire map.
<LFUEvictor
	maxSize="int"
	sleepTime ="seconds"
	numberOfHeaps ="int"
/>

HashIndex element

Use the HashIndex element with Java™ reflection to dynamically introspect objects stored in a map when the objects are updated.
  • Number of occurrences: Zero to many
  • Child element: None
Attributes
name
Specifies the name of the index, which must be unique for each map.
attributeName
Specifies the name of the attribute to index. For field-access indexes, the attribute name is equivalent to the field name. For property-access indexes, the attribute name is the JavaBeans compatible property name.
rangeIndex
Indicates whether range indexing is enabled. The default value is false.
fieldAccessAttribute
Used for non-entity maps. The getter method is used to access the data. The default value is false. If you specify the value as true, the object is accessed using the fields directly.
POJOKeyIndex
Used for non-entity maps. The default value is false. If you specify the value as true, the index introspects the object in the key part of the map. This inspection is useful when the key is a composite key and the value does not have an embedded key. If you do not set the value or you specify the value as false, the index introspects the object in the value part of the map.
<HashIndex
	name="index name"
	attributeName="attribute name"
	rangeIndex ="true"|"false"
	fieldAccessAttribute ="true"|"false"
	POJOKeyIndex ="true"|"false"
/>