Step 4: Create the BDL session initiator function and instantiate a new session

In your BDL function declared as session initiator, you have to:

  • Handle the creation of the session

  • Fill the state variable before returning 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).

For example:

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