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) 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 transport protocol binds for communication.
- 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"
/>