Utilisez un fichier XML de descripteur de Spring pour configurer et
intégrer eXtreme Scale à Spring.
Dans les sections ci-après, chacun des éléments et attributs du
fichier objectgrid.xsd de Spring est défini.
Le fichier Spring objectgrid.xsd se trouve dans le fichier ogspring.jar et l'espace de nom ObjectGrid com/ibm/ws/objectgrid/spring/namespace.
Pour un exemple de schéma XML de descripteur, voir la rubrique Fichier objectgrid.xsd de Spring.
Elément register
Utilisez l'élément register pour
enregistrer la fabrique de beans par défaut de l'ObjectGrid.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- id
- Spécifie le nom du répertoire de beans par défaut d'un ObjectGrid
particulier.
- gridname
- Spécifie le nom de l'instance ObjectGrid. La valeur affectée à cet
attribut doit correspondre à un ObjectGrid valide configuré dans le
fichier du descripteur d'ObjectGrid.
<register
id="register id"
gridname="ObjectGrid name"
/>
Elément server
Utilisez l'élément de serveur pour définir un serveur qui peut héberger un conteneur, un service de catalogue ou les deux.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- id
- Spécifie le nom du serveur eXtreme Scale.
- tracespec
- Indique le type de trace et active la trace et la spécification de trace pour le serveur.
- tracefile
- Fournit le chemin et le nom du fichier de trace à créer et utiliser.
- statspec
- Indique la spécification des statistiques du serveur.
- jmxport
- Indique le numéro de port utilisé par le
gestionnaire de haute disponibilité. Si cette propriété n'est pas définie, un port libre est choisi. Cette propriété est ignorée dans les environnements
WebSphere
Application Server.
- isCatalog
- Spécifie si le serveur particulier héberge un service de catalogue.
La valeur par défaut est false.
- name
- Spécifie le nom du serveur.
- haManagerPort
- Indique le numéro de port utilisé par le
gestionnaire de haute disponibilité. Si cette propriété n'est pas définie, un port libre est choisi. Cette propriété est ignorée dans les environnements
WebSphere
Application Server.
- listenerHost
Indique le nom d'hôte auquel l'ORB (Object Request Broker) se connecte pour communiquer avec IIOP (Internet
Inter-ORB Protocol). La valeur doit être un nom qualifié complet de domaine ou une adresse IP. Si la configuration implique plusieurs cartes réseau, configurez l'hôte du programme d'écoute et le port d'écoute pour que l'ORB (Object Request Broker) dans la machine JVM connaisse l'adresse IP à laquelle se connecter. Si vous ne définissez pas l'adresse IP à utiliser, des symptômes (délais de connexion, défaillances inhabituelles d'API et clients qui semblent se bloquer) apparaissent.
- listenerPort
- Indique le numéro de port auquel se connecte l'ORB (Object Request Broker). Ce paramètre configure les conteneurs et les clients pour communiquer avec le service de catalogue via l'ORB.
Dans WebSphere
Application Server, le port d'écoute est hérité par la configuration de port BOOTSTRAP_ADDRESS. Cette propriété s'applique au serveur de conteneur et au service de catalogue.
- maximumThreadPoolSize
- Définit le nombre maximum d'unités d'exécution dans le pool.
- memoryThresholdPercentage
- Définit le seuil de mémoire (pourcentage du segment maximum) pour l'expulsion basée sur la mémoire.
- minimumThreadPoolSize
- Définit le nombre minimum d'unités d'exécution dans le pool.
- workingDirectory
- Propriété qui définit le répertoire que le serveur ObjectGrid utilise pour tous ses paramètres par défaut.
- zoneName
- Définit la zone à laquelle appartient ce serveur.
- enableSystemStreamToFile
- Indique si SystemOut et SystemErr sont envoyés dans un fichier.
- enableMBeans
- Détermine si l'ObjectGrid enregistre les MBeans dans ce processus.
- serverPropertyFile
- Charge les propriétés de serveur à partir d'un fichier.
- catalogServerProperties
- Spécifie le serveur de catalogue qui héberge le serveur.
<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"
/>
Elément catalog
L'élément catalog permet d'acheminer
vers des serveurs de conteneur dans la grille de données.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- host
- Spécifie le nom d'hôte du poste de travail sur lequel le service de
catalogue est exécuté.
- port
- Indique le numéro de port associé au nom d'hôte pour déterminer le port du service de catalogue auquel le client peut se connecter.
<catalog
host="catalog service host name"
port="catalog service port number"
/>
catalogServerProperties
element
Utilisez l'élément de propriétés du serveur de catalogue pour définir un service de catalogue.
Attributs- catalogServerEndPoint
- Spécifie les propriétés de connexion du serveur de catalogue.
- enableQuorum
- Détermine si le quorum doit être activé.
- heartBeatFrequencyLevel
- Définit le niveau de fréquence des signaux de présence.
- domainName
- Spécifie le nom de domaine utilisé pour identifier de manière unique
ce domaine de service de catalogue lors d'un routage vers plusieurs domaines de service de catalogue.
- clusterSecurityURL
- Définit l'emplacement du fichier de sécurité spécifique au service de catalogue.
<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>
Elément foreignDomains
Utilisez l'élément foreignDomains pour vous connecter à une liste d'autres domaines de service de catalogue. Vous devez inclure le nom de chaque domaine de service de catalogue et les noeud finals pour les serveurs de catalogue dans chaque domaine de service de catalogue.
Elément foreignDomaint
Indique le nom du domaine de service de catalogue à connecter. Ce nom est défini avec l'attribut
domainName dans l'élément catalogServiceProperties.
- nombre d'occurrences : une à plusieurs
- Elément parent : Elément foreignDomains
- Elément enfant : Elément endPoint
- Attributs
- name
- Indique le nom qui identifie le domaine de service de catalogue externe.
Elément endPoint
Indique une liste de noeuds finals de service de catalogue pour un domaine de service de catalogue externe spécifié.
- nombre d'occurrences : une à plusieurs
- Elément parent : Elément foreignDomaint
- élément enfant : aucun
- Attributs
- host
- Indique le nom d'hôte de l'un des serveurs de catalogue dans le domaine de service de catalogue.
- port
- Indique le port de l'un des serveurs de catalogue dans le domaine de service de catalogue.
Elément catalog server endpoint
Utilisez l'élément de noeud final de serveur de catalogue pour créer un noeud final de serveur de catalogue devant être utilisé par un élément de serveur de catalogue.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- serverName
- Spécifie le nom qui permettra d'identifier le processus que vous lancez.
- hostName
- Spécifie le nom d'hôte de l'ordinateur sur lequel le serveur est lancé.
- clientPort
- Spécifie le port utilisé pour les communications homologues de cluster de catalogues.
- peerPort
- Spécifie le port utilisé pour les communications homologues de cluster de catalogues.
<catalogServerEndPoint
name="catalog server endpoint name"
host=""
clientPort=""
peerPort=""
/>
Elément container
L'élément container permet de
stocker les données.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- objectgridxml
- Spécifie le chemin d'accès et le nom du fichier XML du descripteur à
utiliser qui spécifie les caractéristiques de l'ObjectGrid, avec les mappes,
la stratégie de verrouillage et les plug-in.
- deploymentxml
- Indique le chemin et le nom du fichier XML qui est utilisé avec le fichier XML descripteur Ce fichier détermine le partitionnement, la réplication, le nombre de conteneurs initial, ainsi que d'autres paramètres.
- server
- Spécifie le serveur sur lequel le conteneur est hébergé.
<server
objectgridxml="the objectgrid descriptor XML file"
deploymentxml ="the objectgrid deployment descriptor XML file "
server="the server reference "
/>
Elément JPALoader
Utilisez l'élément JPALoader pour synchroniser le cache d'ObjectGrid avec un magasin de données dorsal existant si vous utilisez l'API ObjectMap.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- entityClassName
- Permet l'utilisation d'API de persistance Java, telles
qu'EntityManager.persist et EntityManager.find.
L'attribut entityClassName est requis pour le chargeur JPA.
- preloadPartition
- Spécifie le numéro de partition à partir duquel le préchargement de la mappe démarre.
Si la valeur est inférieure à 0 ou supérieure à (totalNumberOfPartition
– 1), le préchargement de la mappe n'est pas démarré.
<JPALoader
entityClassName="the entity class name"
preloadPartition ="int"
/>
Elément JPATxCallback
Utilisez l'élément JPATxCallback
pour coordonner les transactions JPA et ObjectGrid.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- persistenceUnitName
- Crée une fabrique de JPA EntityManagerFactory et recherchez les métadonnées d'entité JPA dans le fichier persistence.xml. L'attribut
persistenceUnitName est requis.
- jpaPropertyFactory
- Spécifie la fabrique permettant de créer une mappe de propriétés de
persistance pour remplacer les propriétés de persistance par défaut. Cet attribut fait référence à un bean.
- exceptionMapper
- Spécifie le plug-in ExceptionMapper qui peut être utilisé pour les fonctions
de mappage des exceptions spécifiques à JPA ou à la base de données. Cet attribut fait référence à un bean.
<JPATxCallback
persistenceUnitName="the JPA persistence unit name"
jpaPropertyFactory ="JPAPropertyFactory bean reference"
exceptionMapper="ExceptionMapper bean reference"
/>
Elément JPAEntityLoader
Utilisez l'élément JPAEntityLoader pour synchroniser le cache d'ObjectGrid avec un magasin de données dorsal existant si vous utilisez l'API
EntityManager.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- entityClassName
- Permet l'utilisation d'API de persistance Java, telles
qu'EntityManager.persist et EntityManager.find.
L'attribut entityClassName est facultatif pour l'élément JPAEntityLoader. Si
l'élément n'est pas configuré, la classe d'entités configurée dans la mappe
d'entités d'ObjectGrid est utilisée. La même classe doit être utilisée pour
le gestionnaire d'entités d'ObjectGrid et le fournisseur JPA.
- preloadPartition
- Spécifie le numéro de partition à partir duquel le préchargement de la mappe démarre.
Si la valeur est inférieure à 0 ou supérieure à (totalNumberOfPartition – 1),
le préchargement de la mappe n'est pas lancé.
<JPAEntityLoader
entityClassName="the entity class name"
preloadPartition ="int"
/>
Elément LRUEvictor
L'élément LRUEvictor permet de
déterminer les entrées à expulser lorsqu'une mappe dépasse son nombre d'entrées
maximal.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- maxSize
- Spécifie le nombre total d'entrées dans une file d'attente avant que
l'expulseur ne doive intervenir.
- sleepTime
- Définit la durée en secondes entre le balayage d'expulsion sur les files d'attente de mappe pour déterminer les éventuelles actions requises sur la mappe.
- numberOfLRUQueues
- Spécifie le nombre de files d'attente que l'expulseur doit analyser
pour éviter d'avoir une seule file d'attente dont la taille correspond à celle
de la mappe toute entière.
<LRUEvictor
maxSize="int"
sleepTime ="seconds"
numberOfLRUQueues ="int"
/>
Elément LFUEvictor
L'élément LFUEvictor permet de
déterminer les entrées à expulser lorsqu'une mappe dépasse son nombre d'entrées
maximal.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- maxSize
- Spécifie le nombre total d'entrées autorisées dans chaque segment de
mémoire avant que l'expulseur ne doive intervenir.
- sleepTime
- Définit la durée en secondes entre le balayage d'expulsions sur les segments de mémoire de mappe pour déterminer les éventuelles actions requises sur la mappe.
- numberOfHeaps
- Spécifie le nombre de segments de mémoire que l'expulseur doit analyser pour
éviter d'avoir un seul segment de mémoire dont la taille correspond à celle de la
mappe toute entière.
<LFUEvictor
maxSize="int"
sleepTime ="seconds"
numberOfHeaps ="int"
/>
Elément HashIndex
Utilisez l'élément HashIndex avec la
réflexion Java pour introspecter de manière dynamique les objets stockés dans
une mappe lorsque les objets sont mis à jour.
- nombre d'occurrences : zéro à plusieurs
- élément enfant : aucun
Attributs- name
- Spécifie le nom de l'index, qui doit être unique pour chaque mappe.
- attributeName
- Spécifie le nom de l'attribut à indexer. Pour les index d'accès par zone,
le nom d'attribut est équivalent au nom de zone. Pour les index d'accès par propriété, le nom d'attribut est le nom de la propriété compatible JavaBeans.
- rangeIndex
- Indique si l'indexation des plages est activée. La valeur par défaut est
false.
- fieldAccessAttribute
- Utilisée pour les mappes qui ne correspondent pas à des entités. La méthode d'accès get permet d'accéder aux
données. La valeur par défaut est
false. Si vous
spécifiez la valeur true, l'objet est accessible
directement par les zones.
- POJOKeyIndex
- Utilisée pour les mappes qui ne correspondent pas à des entités. La valeur par défaut est
false.
Si vous définissez la valeur true, l'index introspecte l'objet dans la partie clé de la mappe. Cette inspection est utile lorsque la clé est une clé composite et que la valeur ne contient pas un clé intégrée. Si
vous ne spécifiez pas de valeur ou que vous spécifiez la valeur
false, l'index introspecte l'objet dans la partie valeur
de la mappe.
<HashIndex
name="index name"
attributeName="attribute name"
rangeIndex ="true"|"false"
fieldAccessAttribute ="true"|"false"
POJOKeyIndex ="true"|"false"
/>