Opening multiple Reflection Host sessions with the .NET API results in all sessions opening in the same Workspace

  • 7025209
  • 22-Jul-2021
  • 16-Sep-2021

Environment

Reflection Desktop (including Pro, for IBM or for UNIX and OpenVMS) 16.2 through 16.2 Update 4

Situation

When opening multiple Reflection Desktop Host sessions with the .NET API, all the host sessions open in the same Reflection Workspace, instead of individual Reflection Workspaces as expected.
  • .NET API application has been written in C#, which uses unique IPC Channel names for launching multiple Reflection “Frames” and is designed to open a Host session in each one. When using this methodology, the unique IPC channel names should cause each Host session to open in its own Reflection Workspace.
  • With Reflection Desktop 16.1 (and Reflection Desktop 16.1 SP1), each host session launched ends up in its own Reflection Workspace.
  • Starting with Reflection Desktop 16.2 (through Reflection Desktop 16.2 Update 4), each host session launched ends up in the same Reflection Workspace, which can cause problems when individual Host sessions are opened and closed.

Resolution

This issue is resolved in Reflection Desktop 17.0 and higher.

To workaround this issue with versions of Reflection Desktop 16.2 prior to 17.0, call MyReflection.Start() before calling MyReflection.CreateApplication() which will create separate Reflection Workspaces whether the IPC channels are the same or different.

        Existing code which fails:
        Int ran = rnd.Next(1,10000);
        Attachmate.Reflection.Framework.Application reflectionApplication = MyReflection.CreateApplication("myWorkspace" + ran.ToString(), true);

        Updated code which will resolve the issue:
        Int ran = rnd.Next(1,10000);
        MyReflection.Start((“myWorkspace” + ran.ToString())
        Attachmate.Reflection.Framework.Application reflectionApplication = MyReflection.CreateApplication(“myWorkspace” + ran.ToString(),true);

If the MyReflection.Start() method has been added to the application code, this will still continue to work correctly in future releases including Reflection Desktop 17.0 and later.