Parallel XMLA requests

You can send multiple XMLA requests in parallel using the same session. This advantage of parallel requests is that clients need to connect only once per user, but they can execute different requests in parallel.

There are three phases of a session.

  • Session creation

    A thread on the client side sends a BeginSession request to connect the user. If successful, it receives a session ID.

  • Session usage

    The client shares the session ID with other threads. Each thread can issue XMLA requests using this session ID. Each request is processed separately from the other ones.

  • Session end

    If the session is not used anymore, one of the threads issues an EndSession request. This closes the session.

The functionality is available only to core XMLA requests. For example, MDX statements and XMLA schema requests.

Other requests sent over XMLA, like XML requests, must not be executed in parallel. Ensure that requests that create an intermediate state. For example, DataareaDefine, are not called alternating on different threads on the same session.

The session must not be ended by the client while there are requests running on that session ID.