Connection Group Conflicts in App-V 5.0

Share on facebook
Share on twitter
Share on linkedin
Share on reddit
Share on stumbleupon

Connection Groups are proving a really popular feature in App-V 5.0, however how do we handle the situation whereby one application is the member of more than one connection group and both are published to the same AD group?

Let’s take this following theoretical scenario with 3 apps (NotePad++, Winrar and Mozilla Thunderbird), apps that would never normally need to be in a connection group however they will do for the sake of explanation in this case:

winrarnotepadthunderbird

In the above scenario WinRar is a member of two connection groups, so what happens if we publish both these two connection groups to a user and that user launches one of these applications?

connectiongroups

 

Well it all depends what application we launch in terms of how this conflict is handled….

 

Scenario 1 – Launch NotePad++

 

This works fine, NotePad++ launches and loads Connection Group 1 that also contains WinRar:

notepadandwinrar

Notice Connection Group 1 is in use after launching NotePad++.

Scenario 2 – Launch Thunderbird

Same as above, when we launch Thunderbird it will go ahead and load its Connection Group 2 with WinRar:

thunderbirdandwinrar

 

Scenario 3 – Launch WinRar

 

WinRar is at the centre of this conflict because it has a foot in each connection group, therefore when we launch WinRar the App-V client doesn’t know which connection group to launch and we get the following error:

error

If we look this error up in Event Viewer we get a much clearer description of the issue stating

“The virtual application ‘\Device\HarddiskVolume1\ProgramData\App-V\FEA2DAD8-4B20-4F3E-9CC1-94023FDC5E8B\E425387E-5AD4-4279-B941-01B8691A1337\Root\WinRAR.exe’ could not be launched because the App-V Client could not determine which environment to use.  Provide a priority to the app connection group for the package and try again.

eventviewer

To fix this conflict we need to set a priority for the connection groups as advised by the error log. Theoretically we can do this on the Management Server using PowerShell:

This command will show the current connection groups, notice the priority values for both are set to 0 as default:

getconngroup

Let’s now make Connection Group 2 have a lower priority by running the following command:

setconngroup

Now this connection group has a lower priority and allow us to run WinRar. NOTE: If you are experiencing some issues around this setting not being reflected on the client please install Hotfix 1 for App-V 5.0 SP1 Management Server as detailed here.

Scenario 4 – Launch NotePad++ and then Thunderbird

This actually works just fine because we are never in the position where the client doesn’t know which connection group to launch, in this case launching NotePad++ will launch Connection Group 1 and then subsequently launching Thunderbird will in turn load Connection Group 2.

everything

I hope this sheds some light on how Connection Group conflicts are handled in App-V 5.0

For more on Connection Groups check these links out:

Advanced Connection Groups – The Sanity Check

Connection Groups – DSC improved for App-V 5.0

Deploying Connection Groups in Microsoft App-V v5

Connection Groups Internals (App-V 5.0)

Sequencing for Connection Groups

Leave a Reply.

51 thoughts on “Connection Group Conflicts in App-V 5.0”

  1. This will come in handy. Thanks for posting it Thamim. I'm still learning App-V but got a quick question. Let's say Connection Group 1 is not working for whatever reason. Will WinRar automatically default to Connection Group 2 and launch from there?

    Reply
    • Hi Parvez, If the failure is on a application level App-V has no way to detect this therefore there will be no failover. The priority is only to handle conflicts and not for failing over. Hope that helps and give us a shout if you need more info!

      Reply
  2. Hi Thamim, thanks a lot  for this post. It's very interresting. But, I have two questions : Which App-V 5.0 version have you use ? Can you do those steps with App-V 5.0 SP1 ? (Have you tried?)

    Reply
      • Thank you for your quick answer. I work with App-V 5.0 SP1 and even if I set the priority for each group (with PowerShell on the server), the App-V 5.0 Client doesn’t see those values. I note that the Xml generated on the server doesn’t send the groups priority to the App-V Client. In the database ([AppVManagement].[PackageGroups].[Priority]), each groups have a different priority, but in the XML generated on the server, the priority of each group is “0” every time. On the Client, in PowerShell, the priority of each group is “0”.

        Reply
        • Hi, I get exactly the same! It's mentioned in the post that I have been unable to set priorities with the server. This is a known issue and you are not alone! The only current workarounds are to manually edit the descriptor.xml locally on the client or deliver the groups via standalone mode.

          Reply
  3. Thanks in part to Tim Mangan's AppV_Manage tool found here (http://www.tmurgent.com/…/AppV_Manage)  I was able to come up with work around for the Connection Group Priority issue while Microsoft attempts to fix this.  The work around involves a few more steps and at large scale I would not use it but it suffices for now. Step 1. Download AppV_Manage and install on App-V 5.0 client Step 2. Create the connection group(s) you need using the tool. Set the appropriate priority for the group. Step 3. Copy the connection group XML files from the client to a central repository; optionally renaming them something that makes sense. I rename the XML files the same name that I chose for the connection group name. Step 4. Go to each end point where clients will be logging in and add the connection group; DO NOT enable it at this point. Powershell: Add-AppvClientConnectionGroup -Path C:\pathtoXMLFile.xml Step 5. Use a logon script or similar technology to enable the connection group for the user at logon based on their AD group membership.  I am using Appsense to do this.  Basically if user is in group A then enable connection group A.   Powershell: Enable-AppvClientConnectiongroup -Name NameofCconnectiongroup I still am maintaining the Default Connection group with a priority of 0 on the management server with no issue. All subsequent groups need to be managed in this way or something similar. I would be interested to find out about any other work arounds people find. PS. This is just one of several problems with App-V 5.0.  Microsoft please fix your product!!!

    Reply
  4. hi, In the Example mentioned above, When i launch Winrar which is there in both connection groups, will winrar able to talk to both the other apps notepad++ and thunderbird. I mean to ask, we create connection group, so that they talk to each other. so can winrar talk to both the apps here as it is part of both connection groups.

    Reply
    • Hi Nagendra,

      No, not in the setup above. Winrar can only open in one connection group. To achieve this you would put Winrar into a single connection group with both Thunderbird and NotePad++.

      Reply
      • hi Thamim,    Thanks. i am trying to use connection groups using app-v 5 sp1 + hotfix(KB2873465) . i published 2 conneciton groups and assigned priority. but in publishing server page, am seeing only one conenction group and priority has not been changed. In short, changes to connection groups are not taking place. is there a bug already there.

        Reply
          • Hi Thamim,

            I am learning APP-v 5.0,I have created one connection group with two applications.For Exmp: A and B.IN the both packages file are same.the only change is in port numbers mentioned in one INI file.A will access 2010 B will access 2020.When the connection group published the two shortcuts in two applications are accessing 2010.When i launch B also it is accessing 2010(It should access 2020).Please explain me more on this case.

          • Hi Thamim,

            Thank you very much for your reply.Having few more quires…

            Yes both the .ini are in same place and same name.

            Q1. when i have two packages in connection group how it is picking one package as an Primary package ? I tried to re order the packages still it is taking 2010 not 2020.

            Question 2:When we have two packages in connection group,and launching the one application ,those two separate bubbles will be merged into single bubble in connection group right?and if suppose two packages have same files and same INSTALLDIR one will be overridden by primary one right. Please correct if am wrong.

            Question 3:I have published application through powershell. When I launch the shortcut the targeted .exe is triggering 2 sub-process, which can be killed through terminate child after closing the parent one. when i close the parent one the parent process itself is not closing,so it is not killing the sub-process.So i am not able to uninstall the app due to virtual environment is in use.In this case how to kill the parent .exe.
            My thinking is can we write the parent .exe in terminatevirtualenvironment in userscripts of deploymentconfig.xml?

            Please suggest …

          • Hi Dinesh,

            Q1: The connection group member priority is defined by the order in which they are listed inside the connection group – what method are you using to deliver packages and connection groups?

            Q2: Yes you are correct however if there is no direct conflict then the files and folders will merge.

            Q3: To be clear, have you correctly set the kill child processes for the parent process?

          • Q1 : I am using powershell commands to deploy the packages and connection groups.my connection group is below.

            I have tried to reorder it 1.MistralNAS and 2.MistralATM but still it is taking value of 2010(MistralNAS value).Packaging process:first there is package MistralNAS.From that i just replaced the .ini and did save as a new package(MistralATM) using 5.0sp2 hotfix4.

            Q3: Below is the one which i have in my deployment file.

            Application Path=”[{LocalAppData}]\Citrix\GoToMeeting\2553\g2mstart.exe”/>

            The parent one is g2mstart.exe it will start 2 child process.after closing the application g2mstart.exe(this will not be closed in task manager.Process will be keep on running in tak manager).So how to kill that after closing the parent one(g2smart.exe)

            Please suggest.

          • AppConnectionGroupId=”GroupID” VersionId=”versionid” Priority=”0″ DisplayName=”Mistral”>

          • Hi Thamim,

            I tried to launch the process(explorer.exe) in the virtual environment.

            $test=Get-appvclientpackage *Mistral_ATM*
            start-appvvirtualprocess -filepath “explorer.exe path” -appvclientobject $test.

            It opens explorer.but ican’t see the files of my application(the files installed to VFS).we can’t see the files installed into ROOT ?when i extract the package into local machine it is placing files under c:\ and c:\PF(x86)…

            Please suggest

          • Thanks Thamim for you help,Will try once again and let you know.

            One more question: Can we edit the shortcuts with out going for update option every time when we need to change name or someother else..in stand alone mode(Installing package through MSI).

            Please suggest.

          • Hi Thamim,

            I am the learning SCCM 2012 for deploying APP-V 5 Packages .

            Can i have a link (Videos or Documentation)Which should explain me Deploying APP-V 5.0 Applications Using SCCM 2012.

            Please Post you suggestions.

            Regards

            DD

  5. The Connection group priority failure to be passed to the client has been raised as an issue with the SP2 beta as well – so not fixed yet.

    Reply
  6. AppConnectionGroupId=”ffd61dff-bc04-4b41-9a84-44691fbe70c5″ VersionId=”b501de61-7cc6-4121-888c-bed3f039eb74″ Priority=”0″ DisplayName=”Mistral”>

    Reply
  7. I have 2 or more than that excel add-in package ( without shortcuts ) which I have virtualized and I want after launching of Excel shortcut on client both packages add-in should display then how I can achieve that ? Note that Office is not virtualized here. Also I don’t want both excel should be part of single connection group.

    I tried with Run virtual subkey but it accepts only one default key resulting into only one add-in display.
    Can someone please help me ? It would be really appreciated.

    Reply
      • Hi Thamim

        Thanks for the prompt reply. Well I have tried above method suggested by Steve but no luck. Maybe I have done something wrong. Please find my test case –

        As per the post I had created empty package ( which consist of only single text file ) and created 2 separate add-in packages. Created 2 connection group as below :
        Connection group 1 : Empty package + Add in 1 package
        Connection group 2 : Empty package + Add in 2 package

        Here we have not created single group which consist of all 3 packages. As we used to get many packaging request so you never know which add-ins are already present on users machine.

        And in RunVirtual\excel.exe key given default value of empty package ID combination.
        So when I launched Microsoft Office 2010\Excel shortcut it just launches the add-in of only 1 package. I tried to assign priority also but it launches only one.

        How can I launch both excel add-in in a single go ?

        Hope you got my concern.

        Reply
          • I have added empty package in 1 connection group which consist of 1 add in package, so here it works. How we can acheive this for all other addin packages which may install on same machine in future ? I want generic solution by which whenever I sequence addin package it should launch by Excel shortcut and all addin should come.

        • If you have separate connection groups then only one of them will load when the empty package is invoked. If you want them together you need to put them into a single connection group and make sure the open key is being built up in order as mentioned in the blog post. Adding a new plugin will mean updating the connection group.

          Reply
          • Thanks.
            Single connection group can be created when we know which multiple Add-in package will be installed on users machine at a time. That combination I can put in single conn. group.
            However in future say after 6 months if we virtualize any other Excel add-in package and we want that to be installed on few users machine ( on which already other add-ins are present ) then in that case how I can have new connection group with empty package ?

            RunVirtual registry can have only single default key then how the new add-in package will create its own default key ?

  8. Hi Thamim

    Is there any way to virtualize excel add-in in above scenario ?

    I strongly feel with different connection group it is not possible to invoke all add-ins , also Run virtual key has limitation of only one default key of same EXE which preventing us to launch other add-ins.

    We have tried in our test machines with all scenarios ( single connection group also tried but it is not suitable solution for our domain ). Before closing this just need your expertise advice.

    Thanks.

    Reply
  9. Hi Thamim,

    We have 3 deployment type for the both application listed below
    1. for VM
    2. For STD
    3. For RDS

    After deploying (SCCM) the package we are getting more than 1 connection groups the same application. Because of this package is not getting publish or we can shortcut is not working.We already set the windows requirement for each deployment type.
    Connection groups are :

    Get-AppvclientConnectionGroup

    group id : XXXXXXXXX
    Version id : XXXXXXXXXXXX
    Name : VE_LIVR1XXX30_R3_LIVR9XXX_R14_DT_VM
    IsEnabletoUser : False
    Userpending : False
    IsEnabledGlobally : True
    GlobalPending : False
    InUse : False
    Percentloaded : 100
    Priority : 7295

    group id : *********
    Version id : ***********
    Name : VE_LIVR1XXX30_R3_LIVR9XXX_R14_DT_STD
    IsEnabletoUser : False
    Userpending : False
    IsEnabledGlobally : True
    GlobalPending : False
    InUse : False
    Percentloaded : 100
    Priority : 7295

    This might be issue with the same priority number.

    AS I erliear said there are 3 DT for both the application so
    1. only two coming 3rd one is not?
    2. As per me only RDS one has to come but this one is not coming?
    3. Any idea how to fix the issue.

    Note: If I remove one connection id the application is working fine.

    Reply
  10. Hi Karim,

    Is it possible to launch Two independent addin to load in a single package?

    For eg A is the Primary package and B & C are two addin for A.

    When A is launched is it possible for A to be launched with B and C? Provided all are Virtualised. We are trying with Virtual Environment and we could able to launch only one Add-in but couldn’t achieve both. Any idea?

    Reply
  11. After Decreasing Priority of Connection Group 2 to 1, what happens if we launch WinRAR?
    Does it launch in Connection group 1 ? If so, how to get WinRAR in Connection Group 2?
    is it the only way to get WinRAR in Connection group 2 is disabling the Connection Group 1.

    Reply

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.