Skip to Content
Author's profile photo Former Member

Voyager, multi-tabbed browsers, http sessions, Ctrl N, errors, crashes and hangs

Voyager uses session scoped JSF Managed Beans. Understanding how this works is key to avoiding certain errors and, if you are not on the right patch level, crashes and hangs in the MDAS server.

The technology

Voyager uses a technology called Java Server Faces (JSF) to implement its web application tier. The version of JSF Voyager uses is version 1.1. Voyager uses a JSF concept called a Managed Bean to store the state of the application. Beans have a specified scope which governs in what context a state is valid. Possible scope values are none, application, session and request. As Voyager can have multiple users in multiple sessions it can’t store its state in a bean which doesn’t have a scope or with a scope of the application so Voyager uses a value of session. This increases efficiency over a value of request as Voyager will not have to serialize and de-serialize the state of a users session on each request.

For more information on the scope property of managed beans have a look at this tutorial.

The problems

This approach works well if a user is only ever using one Voyager workspace at a time, which is the majority use case. However, on occasions where two or more Voyager workspace are required by the user at one time this can lead to problems for some browsers depending on how the different instances of the browsers were created.

The problem occurs because each Voyager workspace needs its own instance of a managed bean to hold its state. An instance of a bean is linked to the users session, therefore the user needs a different http session for each workspace.

How do I know I’m in a new session?

A rule of thumb to determine whether you are in a new http session when you open a browser or tab is to see whether you had to log onto InfoView again. If when opening the browser and navigating to an InfoView page you had to log in to InfoView, this means you are in a new session. If you didn’t have to log in then this probably means that your browser is using an existing session.

Using Voyager in multiple browser windows

If you need to use Voyager in multiple windows you need to know how to create a new browser window that has its own session. Below is a list of browsers and methods of creating new windows with an indication of which workflows end up with a shared session.

Internet Explorer 7

These methods end up sharing a session:

  • Using CTRL T to create a new tab
  • Using CTRL N to create a new window
  • Going to the File menu and selecting New Window
  • Going to the File menu and selecting New Tab

Creating a new instance of Internet Explorer by going through the Start menu or an icon on the desktop or quick launch toolbar will create a new session.

Internet Explorer 6

These methods end up sharing a session:

  • Using CTRL N to create a new window
  • Going to the File menu and selecting New Window

Creating a new instance of Internet Explorer by going through the Start menu or an icon on the desktop or quick launch toolbar will create a new session.

Firefox 3

All methods here end up sharing a session:

  • Using CTRL T to create a new tab
  • Using CTRL N to create a new window
  • Going to the File menu and selecting New Window
  • Going to the File menu and selecting New Tab
  • Creating a new instance of Firefox by going through the start menu or icon on the desktop or quick launch toolbar
  • What happens when I’m in a shared session?

    When two or more browser are sharing the same session requests from different workspaces will be trying to update the same session state. This can lead to the state of the session being inconsistent state, contradictory and can ultimately cause errors.

    For this workflow an initial request to load a workspace is issued. This request may take some time as it may be retrieving data from an OLAP data base. If, before this request completes, a second request is issued on the same session it will overwrite or change some of the state generated from the first request. Now when a response is being generated it may not have a consistent state from which to generate that response and this results in an error message.

    Abandoning a loading workspace

    Even when a user is only using a single browser there are situations where multiple requests can conflict with each other. This occurs if a user has attempted to open a Voyager workspace, the workspace takes a while to load so the user decides to abandon that workspace and either relaunch the same workspace or another workspace.

    There are a number of work flows which the user might follow to encounter this problem.

    Before Fix Pack 2.1 for XI 3.1
    1. In InfoView find a Voyager workspace that takes a while to load (enough time for clicks to be made elsewhere)
    2. Open the Voyager workspace either by double clicking on the workspace or right clicking and choosing ‘View’
    3. While the workspace is loading, load another workspace. It can be the same workspace or a different one.
    After Fix Pack 2.1 for XI 3.1

    Fix pack 2.1 introduces a ‘loading’ screen when launching a Voyager workspace. This means that the list of documents can’t immediately be seen and therefore there an additional step is required to reproduce the issue.

    1. In InfoView find a Voyager workspace that takes a while to load (enough time for clicks to be made elsewhere)
    2. Open the Voyager workspace either by double clicking on the workspace or right clicking and choosing ‘View’
    3. Close the window loading the Voyager workspace (See the screen shot below. The red arrow indicates the ‘X’ to click to close the appropriate window)

    4. You should now be back at the list of documents. Open another Voyager workspace either by double clicking on the workspace or right clicking and choosing ‘View’

    5. When the workspace completes loading you will see an error as indicated in the following screen shot

    In addition to clicking the ‘x’ indicated above, the ‘Home’ or ‘Document List’ buttons could be clicked to navigate back to the document list. Any other method of launching another Voyager report while maintaining the same session will also result in this error.

    Avoiding the problems

    To be able to use Voyager in multiple browser windows you need to ensure the browser windows have different http sessions. This can be done using Internet Explorer using the methods described above.

    If you abandon a workspace, to avoid having any issues always make sure that new Voyager requests are issued from a session that is not actively processing another request. This means either:

    1. Waiting for the current request to return
    2. Closing the browser, opening a new browser and starting a new session

    If the Voyager request is taking a long time to process option 1 will not be appropriate and option 2 must be followed. When following option 2 it is important to remember do the following:

    1. Close the browser window by using the Exit option from the File menu or ‘X’ in the top right hand corner
    2. Open a new browser window by clicking or double clicking on the browser’s icon rather than by spawning the new browser from an existing one by using Ctrl N or the New item from the File menu.
    3. If the new browser automatically logs in to InfoView (as may happen if you are using Firefox 3 for example) log out and log back in again to ensure you have a fresh session

    It is also recommended to be on patch level of Fix Pack 2.1 for XI 3.1 or higher. At lower patch levels this work flow may result in hangs or crashes of the MDAS server.

    Assigned Tags

        Be the first to leave a comment
        You must be Logged on to comment or reply to a post.