WS-Addressing 1.0 stateful services / Server side |
In your 4GL function declared as session initiator, you have to:
Handle the creation of the session
Fill the state variable before to return from the function
Store the new session in a database based on the state variable (in order to keep the session across consecutive requests from the same client).
FUNCTION GetInstance() LET EndpointReferenceState.address = NULL # Use default end point location LET EndpointReferenceState.ref.OpaqueID = com.Util.CreateUUIDString() # Generate an unique string (can come from a database table id) LET EndpointReferenceState.ref.Expiration = CURRENT + INTERVAL HOUR TO HOUR (1) # Create expiration date in one hour to discard request after that date ... Store OpaqueID into database or use directly a database table entry ... to hold the session END FUNCTION