Interface du gestionnaire de partitions Work Area
Les applications interagissent avec le service Work Area Partition par le biais de l'interface du gestionnaire de partitions Work Area. Un utilisateur peut extraire une instance de l'interface du gestionnaire de partitions Work Area par le biais de JNDI et utiliser les méthodes définies ci-dessous.
Une implémentation de l'interface du gestionnaire de partitions Work Area est liée dans JNDI (Java™ naming) à java:comp/websphere/WorkAreaPartitionManager. Cette interface permet de créer, d'extraire et de gérer les partitions Work Area :
package com.ibm.websphere.workarea;
import com.ibm.websphere.workarea.UserWorkArea;
import com.ibm.websphere.workarea.PartitionAlreadyExistsException;
import com.ibm.websphere.workarea.NoSuchPartitionException;
import java.util.Properties;
public interface WorkAreaPartitionManager {
//Returns an instance of a work area partition for the given name, or throws an exception if the
//partition name doesn't exists.
public UserWorkArea getWorkAreaPartition(String partitionName) throws NoSuchPartitionException;
//Returns a new instance of a work area partition (an implementation of the UserWorkArea interface)
//or throws an exception if the partition name already exists. The createWorkAreaPartition should
//only be used within a Java EE platform client and NOT on the
//server. To create a work area partition on the server, use the WebSphere administrative
//console.
public UserWorkArea createWorkAreaPartition(String partitionName, Properties props) throws
PartitionAlreadyExistsException, java.lang.IllegalAccessException;
}
}
Les applications EJB ne peuvent utiliser l'interface du gestionnaire de partitions Work Area que dans l'implémentation de méthodes appartenant à l'interface éloignée ou locale. De même, les servlets ne peuvent utiliser l'interface que dans la méthode service de la classe HTTPServlet. L'utilisation de zones de travail dans une méthode de cycle de vie d'un servlet ou d'un bean enterprise est considérée comme un écart par rapport au modèle de programmation de zone de travail et n'est pas prise en charge.
La création à l'aide d'un programme d'une partition Work Area via la méthode createWorkAreaPartition ne peut s'effectuer qu'à partir d'un client Java EE. Pour créer une partition Work Area sur le serveur, utilisez la console d'administration WebSphere, comme décrit dans l'article Configuration de partitions Work Area. Toutes les partitions d'un processus serveur doivent être créées avant que le serveur ait fini de démarrer, ceci pour permettre au service WorkArea de s'enregistrer auprès des collaborateurs de conteneur appropriés. Ainsi, si la méthode createWorkAreaPartition est appelée dans un processus serveur après que le serveur a démarré, une exception java.lang.IllegalAccessException est générée. La méthode createWorkAreaPartition peut être appelée à tout moment dans une application client Java EE.
Propriétés de partition Work Area configurables
Cette section traite de l'utilisation de la méthode createWorkAreaPartition dans l'interface WorkAreaPartitionManager. As previously described, this method should only be used on a Java EE client. Pour créer une partition sur le serveur, veuillez consulter Configuration de partitions Work Area.
La méthode "createWorkAreaPartition" de l'interface WorkAreaPartitionManager prend un objet java.util.Properties. Cet objet Properties, ainsi que les propriétés qu'il contient, sert à définir la partition Work Area. Following is an example of creating a Properties object and setting a property:
java.util.Properties props = new java.util.Properties():
props.put("maxSendSize","12345");
Les paires clé/valeurs (propriétés)acceptables pour définir une partition sont les suivantes :
- maxSendSize - Indique la taille maximale (octets) d'une zone de travail
qui peut être envoyée sur un appel distant. Les valeurs acceptables sont :
- "-1" = Utilise la taille par défaut de 32767.
- "0" = Taille illimitée, cette valeur ne sera pas réglementée, ce qui peut améliorer un peu les performances, en fonction du nombre de zones de travail dont dispose l'application.
- "1" = Integer.MAX_VALUE
- maxReceiveSize - Indique la taille maximale (octets) d'une zone de travail
qui peut être reçue.
Les valeurs acceptables sont :
- "-1" = Utilise la taille par défaut de 32767.
- "0" = Taille illimitée, cette valeur ne sera pas réglementée, ce qui peut améliorer un peu les performances, en fonction du nombre de zones de travail dont dispose l'application.
- "1" = Integer.MAX_VALUE
- Bidirectionnel - Indique si le contexte de zone de travail changé par un
processus en aval devrait être renvoyé en amont à l'émetteur
du contexte. Pour une description plus complète de cette propriété, consultez la section "Propagation bidirectionnelle du contexte de zone
de travail" de l'article Service de partition Work Area. Les valeurs acceptables sont :
- "true" = Les modifications du contexte seront renvoyées à partir d'un appel distant.
- "false" = Les modifications du contexte ne seront pas renvoyées à partir d'un appel distant.
Avertissement : Le paramètre par défaut est "false." - DeferredAttributeSerialization - Indique si la sérialisation
de l'attribut doit être optimisée pour ne survenir qu'une fois par processus. Pour une description plus complète de cette propriété, consultez la section "Sérialisation d'attribut reportée du contexte de zone de travail" de l'article Service de partition Work Area. Les valeurs acceptables sont :
- "true"
- Si un attribut est paramétré dans la zone de travail, il ne sera pas sérialisé jusqu'à ce qu'une requête distante soit effectuée.
- Si la réponse ne modifie pas la valeur, la forme sérialisée sera utilisée pour les requêtes ultérieures ; l'objet actif sera extrait par des méthodes getter.
- Si des requêtes sont effectuées lors d'une requête distante, une valeur est désérialisée une seule fois à la demande. La forme sérialisée est utilisée pour les requêtes ultérieures à partir de ce processus distant sur cette unité d'exécution distribuée ; les requêtes ultérieures du processus concernant le même attribut renvoient la valeur déjà désérialisée. La méthode DeferredAttributeSerialization comporte des risques de concurrence des accès. Après une sérialisation dans un processus client, les mises à jour de l'attribut ne sont plus reflétées dans la copie de la zone de travail tant que la valeur n'est pas explicitement redéfinie dans l'interface UserWorkArea. Les modifications effectuées à une référence extraite dans un processus en aval ne sont pas propagées aux requêtes en aval suivantes (ni renvoyées comme réponse en tant que valeur modifiée) si elles n'ont pas été explicitement redéfinies dans l'interface UserWorkArea.
- "false"
- Si un attribut est défini dans la zone de travail, il est immédiatement sérialisé et les octets sont stockés.
- Si un attribut est extrait de la zone de travail, il est toujours désérialisé à partir des octets stockés.
Avertissement : La valeur par défaut est "false." - "true"
- EnableWebServicePropagation - Indique si le contexte de la zone de travail doit
se propager sur un appel WebService. Les valeurs acceptables sont :
- "true" = Le contexte se propage sur un appel WebService.
- "false" = Le contexte ne se propage pas sur un appel WebService.
Avertissement : La valeur par défaut est "false."
Exceptions
- PartitionAlreadyExistsException
- Cette exception est générée par la méthode createWorkAreaPartition dans l'implémentation WorkAreaPartitionManager si un utilisateur tente de créer une partition Work Area dont le nom existe déjà. Les noms de partition doivent être uniques.
- NoSuchPartitionException
- Cette exception est générée par la méthode getWorkAreaPartition dans l'implémentation WorkAreaPartitionManager si un utilisateur demande une partition Work Area dont le nom n'existe pas.
- java.lang.IllegalAccessException
- Cette exception est générée par la méthode createWorkAreaPartition dans l'implémentation WorkAreaPartitionManager si un utilisateur tente de créer une partition Work Area au cours l'exécution d'un processus serveur. Cette méthode ne peut être utilisée que dans un processus client Java EE. Dans un processus serveur, une partition doit être créée à l'aide de la console d'administration.
Pour plus d'informations relatives aux zones de travail, voir le module com.ibm.websphere.workarea dans la documentation sur les API (Application Programming Interface). La documentation sur les API générées est disponible dans la table des matières du centre de documentation, sous
.