The Memory adapter allows to store and retrieve values to respectively from the memory. You can find all data types and operations of the Memory adapter in the service panel at Base Types/Bridge Base/Base Components/Add Ons/Memory.
Using the Memory adapter, you can
|Task||Adapter Operation||Description||Documentation Reference|
|Store data to memory||store||You can use the Memory adapter to store data to memory.|
|Retrieve data from memory||retrieve||You can use the Memory adapter to retrieve data from memory.|
|Remove data from memory||remove||You can remove data elements from memory that have been stored to a dedicated key.|
|Clear the memory||clear||You can wipe the complete memory used by the service.|
Adding a Memory Adapter Operation to a Diagram
|Expand the path to the Memory adapter in the service panel (Base Types/Bridge Base/Base Components/Add Ons/Memory).|
Configuring the Memory Adapter Operation
Once an operation has been added to a diagram, it needs to be configured as a Memory adapter.
Select the newly added Memory adapter operation and switch to the Attributes panel. Depending on the diagram type you can see the following information (example BPMN execution diagram):
All this is predefined and cannot be changed.
Click Add Stereotype to define the selected operation as to be a Memory adapter.
Select Memory Adapter from the list of available adapter stereotypes.
The Attributes panel now shows the added adapter stereotype. Now you still need to configure the adapter.
Expand the stereotype by clicking the arrow on the right.
On the Memory adapter, you can configure the scope the value should be stored to, and the adapter action. Click the beside the related option to configure it.
Click the icon to remove unwanted configurations.
By default, the memory is in scope of the service (server process), but it is also possible to store values in a request session context. Basically, the memory adapter is a thread-safe hash list allowing to
- share objects between requests (service/global scope)
To store objects in global scope and to share them between requests to the same service, set scope to global on the Memory adapter. In this case, you need to propagate the memory key between requests, or use a static key.
- keep data for one request (session scope) only
To keep data for the request only, set scope to session on the Memory adapter. At the end of the request session, the memory will be cleared. Regarding the Designer, the session scope corresponds to the implementation of one execution diagram.
Refer to xUML Runtime Transaction Concepts for more information on what is regarded as a session by the Runtime in general, and about transaction handling.