Attribut CopyMode

Vous pouvez ajuster le nombre de copies en définissant l'attribut CopyMode des objets BackingMap et ObjectMap dans le fichier descripteur XML d'ObjectGrid.

Vous pouvez ajuster le nombre de copies en définissant l'attribut CopyMode des objets BackingMap et ObjectMap. Cet attribut a les valeurs suivantes : COPY_ON_READ_AND_COMMIT est la valeur par défaut. La valeur COPY_ON_READ copie les données initiales récupérées, mais ne copie pas au moment de la validation. Ce mode est sûr si l'application ne modifie pas une valeur après la validation d'une transaction. La valeur NO_COPY ne copie pas de données, ce qui n'est sûr que pour les données en lecture seule. Si les données ne changent jamais, vous n'avez alors pas besoin de les copier pour des raisons d'isolement.

Lorsque vous utilisez la valeur d'attribut NO_COPY, faites attention aux mappes pouvant être mises à jour. WebSphere eXtreme Scale utilise la copie en premier appui pour autoriser l'annulation de la transaction. L'application a changé uniquement la copie, et par conséquent, eXtreme Scale supprime la copie. Si la valeur d'attribut NO_COPY est utilisée et que l'application modifie la valeur validée, il est impossible de procéder à une annulation. La modification de la valeur validée génère des problèmes d'index, de réplication, etc. car les index et les fragments réplique se mettent à jour à la validation de la transaction. Si vous modifiez des données validées puis annulez la transaction, qui n'est pas vraiment annulée, alors les index ne sont pas mis à jour et les réplications ne se produisent pas. D'autres unités d'exécution peuvent voir les changements non validés immédiatement, même s'ils sont verrouillés. Utilisez la valeur d'attribut NO_COPY pour les mappes en lecture seule pour les applications qui effectuent la copie appropriée avant la modification de la valeur. Si vous utilisez la valeur d'attribut NO_COPY et que vous contactez le support technique IBM® pour un problème d'intégrité de données, il vous est demandé de reproduire le problème avec le mode de copie défini sur COPY_ON_READ_AND_COMMIT.

La valeur COPY_TO_BYTES stocke les valeurs dans la mappe dans un formulaire sérialisé. Au moment de la lecture, eXtreme Scale gonfle la valeur depuis un formulaire sérialisé et la stocke dans un autre au moment de la validation. Avec cette méthode, une copie est créée au moment de la lecture et au moment de la validation.

Le mode de copie par défaut pour une mappe est configurable sur l'objet BackingMap. Vous pouvez également changer le mode de copie sur les mappes avant de commencer une transaction en utilisant la méthode ObjectMap.setCopyMode.

Un exemple de fragment de mappe de sauvegarde provenant d'un fichier objectgrid.xml qui montre comment définir le mode de copie pour une mappe de sauvegarde donnée suit. Cet exemple part du principe que vous utilisez cc comme espace de noms objectgrid/config.
<cc:backingMap name="RuntimeLifespan" copyMode="NO_COPY"/>