Les API et les SPI WebSphere Work Area sont indisponibles

Les API et les SPI WebSphere Work Area ci-dessous ne sont pas disponibles sous Liberty :

Cette règle signale toute instance de ces paquets une fois par classe Java. Vous devez modifier l'application de sorte qu'elle puisse être exécutée dans Liberty.

Bien qu'il n'existe pas d'alternatives exactes, examinez les suggestions de migration suivantes.

Évaluer l'utilisation

Prenez note des caractéristiques des Work Area APIs et des SPIs utilisées dans votre code et réfléchissez à celles dont vous avez besoin. Reportez-vous à la page com.ibm.websphere.workarea Javadoc.

Parmi les fonctionnalités les plus difficiles à migrer, citons les suivantes :

Alternatives potentielles

com.ibm.websphere.appserver.api.DistributedMap

java.lang.ThreadLocal

java.lang.InheritableThreadLocal

Base de données

DistributedMap exemple

Cet exemple montre comment vous pouvez migrer vers DistributedMap si votre application n'a besoin d'aucune des fonctionnalités difficiles à migrer, qui sont énumérées dans la section Évaluer l'utilisation.

L'instance par défaut de WebSphere Dynamic Cache est créée lorsque le cache est activé dans la console d'administration et est liée à l'instance globale de JNDI avec le nom services/cache/distributedmap. D'autres instances de cache peuvent être créées à l'aide d'un fichier de propriétés cacheinstances.properties ou en définissant un resource-ref pour le cache dans le descripteur de déploiement de votre module.

Pour en savoir plus et voir un exemple de code, consultez la documentation Open Liberty pour DistributedMap:

UserWorkArea

DistributedMap

begin(java.lang.String name)

InitialContext ic = new InitialContext();

DistributedMap distributedMap = (DistributedMap)ic.lookup("services/cache/customObjCache");

complete()

Généralement sans objet, mais pensez à invalider les clés dans un site DistributedMap si vous n'en avez plus besoin

distributedMap.addChangeListener(...)

distributedMap.invalidate(key)

get(java.lang.String key)

distributedMap.get(Object key) // returns Object

getMode(java.lang.String key)

Non applicable

getName()

Non applicable

remove(java.lang.String key)

distributedMap.addChangeListener(InvalidationListener listener)

distributedMap.invalidate(Object key)

Vous pouvez également définir timeToLive ou inactivityTime lorsque vous définissez ou mettez à jour un Object dans DistributedMap.

distributedMap.put(Object key, Object value, int priority, int timeToLive, int inactivityTime, int sharingPolicy, Object[] dependencyIds)

retrieveAllKeys()

Set dmSet = distributedMap.keySet(boolean includeDiskCache); // returns Set

String[] keys = dmSet.toArray(new String[0]);

set(java.lang.String key, java.io.Serializable value)

distributedMap.put(Object key, Object value)

distributedMap.put(Object key, Object value, int priority, int timeToLive, int inactivityTime, int sharingPolicy, Object[] dependencyIds)

distributedMap.put(Object key, Object value, int priority, int timeToLive, int sharingPolicy, Object[] dependencyIds)

set(java.lang.String key, java.io.Serializable value, PropertyModeType mode)

Non applicable

Pour plus d'informations sur les autres API et SPI qui ne sont pas prises en charge dans Liberty, voir Certaines API et SPI ne sont pas disponibles dans Liberty.