Ich speichere einige Informationen in einem MbGlobalMap
(eingebetteten globalen Cache) des IBM Integration Bus. Wenn die Karte genannt wird EXAMPLE.MAP
kann ich die Werte wie folgt zugreifen:Wie bekomme ich alle Werte einer MbGlobalMap in den IIB Global Cache?
MbGlobalMap map = MbGlobalMap.getGlobalMap("EXAMPLE.MAP");
Object value = map.get(key);
Aber ich möchte alle Werte der EXAMPLE.MAP
bekommen, auch wenn ich nicht weiß, alle Schlüssel der Karte. Ich kann nicht über die MbGlobalMap
iterieren und ein Cast zu java.util.Map
wird überhaupt nicht funktionieren.
Dies ist die Dokumentation der Klasse: https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.plugin.doc/com/ibm/broker/plugin/MbGlobalMap.html. Es gibt keine Methode, alle Elemente innerhalb der Map zurückzugeben.
Eine Abhilfe könnte eine Liste mit allen aktuellen Schlüsseln darin sein, so dass Sie diese Liste bekommen können und damit Sie alle Werte innerhalb der Karte erhalten können. Aber das ist keine saubere Lösung, denke ich.
Danke für die schnelle Antwort. Die 'putAll()' -Funktion von 'MbGlobalMap' speichert kein Objekt von' java.util.Map' im globalen Cache sondern alle Einträge davon. "Fügt alle Einträge in der gelieferten Karte in diese Karte ein." (Quelle: [link] (https://www.ibm.com/support/knowledgecenter/SSKM8N_8.0.0/com.ibm.etools.mft.plugin .doc/com/ibm/broker/plugin/MbGlobalMap.html)) – Yannick
Mein Fehler, ich musste die Frage erneut lesen. Der einzige Weg, an den ich denken konnte, war zu sehen, ob irgendwelche MQSI-Befehle verfügbar sind oder ob es REST-Endpunkte dafür gibt. Beide existieren nicht. Also wirst du hier etwas Brauchbares zusammenstellen müssen. –
Ja, ein mqsi-Befehl zum Lesen sogar aller globalen Cache-Inhalte wäre großartig. Ich werde beweisen, ob es eine Auflösung auf extremer Gitterebene gibt. Ansonsten werde ich hier einen Workaround erstellen. – Yannick