When the Tamino Server calls a server extension function for the first time in a given XML session, an instance of the server extension object that implements the server extension function is initialized. If the same server extension function is called again within the same XML session, this same instance of the server extension object is used. When an XML session ends, all server extension objects that were created by that session are destroyed. In the case of sessionless XML requests (running in so-called anonymous sessions), the life cycle of the server extension object is the XML transaction instead of the XML session.
If a second XML session calls the same server extension function, the call is handled in a separate instance of the server extension object. This means that any data held as a member variable of the server extension object is protected from concurrent calls, whereas global variables would be shared by both instances. Data that is held as a member variable of a server extension object is kept for the duration of an XML session (or XML transaction in the case of anonymous sessions) and can be used by a subsequent call of the same server extension function.