WebSphere Work Area-APIs und -SPIs nicht verfügbar

Die folgenden WebSphere Work Area-APIs und -SPIs sind in Liberty nicht verfügbar:

Diese Regel kennzeichnet jede Instanz dieser Pakete einmal pro Java Klasse. Sie müssen die Anwendung ändern, damit sie in Liberty ausgeführt werden kann.

Obwohl es keine genauen Alternativen gibt, sollten Sie die folgenden Migrationsvorschläge prüfen.

Nutzung auswerten

Notieren Sie sich, welche Funktionen von Work Area APIs und SPIs in Ihrem Code verwendet werden, und überlegen Sie, welche Funktionen benötigt werden. Siehe die com.ibm.websphere.workarea Javadoc.

Einige der schwierigeren Funktionen, die zu migrieren sind, sind:

Mögliche Alternativen

com.ibm.websphere.appserver.api.DistributedMap

java.lang.ThreadLocal

java.lang.InheritableThreadLocal

Datenbank

DistributedMap Beispiel

Dieses Beispiel zeigt, wie Sie die Migration zu DistributedMap wenn Ihre Anwendung keine der schwer zu migrierenden Funktionen benötigt, die im Abschnitt Verwendung auswerten aufgeführt sind.

Die Standardinstanz von WebSphere Dynamic Cache wird erstellt, wenn der Cache in der Verwaltungskonsole aktiviert wird, und ist an die globale JNDI namespace mit dem Namen services/cache/distributedmap. Weitere Cache-Instanzen können mit Hilfe einer Eigenschaftsdatei erstellt werden cacheinstances.properties oder durch die Definition einer resource-ref für den Cache im Bereitstellungsdeskriptor Ihres Moduls.

Weitere Informationen und Beispielcode finden Sie in der Open Liberty Dokumentation für DistributedMap:

UserWorkArea

DistributedMap

begin(java.lang.String name)

InitialContext ic = new InitialContext();

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

complete()

Meistens nicht zutreffend, aber erwägen Sie, Schlüssel in einer DistributedMap ungültig zu machen, wenn Sie sie nicht mehr benötigen

distributedMap.addChangeListener(...)

distributedMap.invalidate(key)

get(java.lang.String key)

distributedMap.get(Object key) // returns Object

getMode(java.lang.String key)

Nicht zutreffend

getName()

Nicht zutreffend

remove(java.lang.String key)

distributedMap.addChangeListener(InvalidationListener listener)

distributedMap.invalidate(Object key)

Alternativ können Sie auch timeToLive oder inactivityTime wenn Sie ein Object LinkedIn 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)

Nicht zutreffend

Weitere Informationen zu weiteren APIs und SPIs, die in Liberty nicht verfügbar sind, finden Sie unter Einige APIs und SPIs sind in Liberty nicht verfügbar.