Sep 09, 2013 - 10 Comments - Virtual Vibes -

Virtual Environments in Configuration Manager 2012 SP1 – Flexible Connection Groups

Following on from my post about Connection Groups in App-V 5.0 Full Infrastructure and how far we have come from DSC in App-V 4.x, let’s take a look at Connection Groups cousin in Configuration Manager (CM) 2012 SP1, Virtual Environments!

Virtual Environments in CM 2012 SP1 allows us to take full benefit of the connection group functionality the App-V Client has, letting us share a virtual environment between a set of packages, giving that direct visibility and interaction that is so vital in certain scenarios.

To setup a Virtual Environment all we do is chose to Create Virtual Environment:

We then name our Virtual Environment:

This particular Virtual Environment (VE) will be used for applications that utilise JDK 7 Update 11. Now we need to add deployments, how you handle this all depends on what logic you want to use in in your VE, AND or OR; more on that later.

In this case I’m going to add in Java JDK into its own group.

So now we have Java JDK in:

Now it’s time to add whatever applications are dependent on Java being present:

Here we have another group containing the Java dependants. Notice the resultant logic that has been created:

This specifies:

IF Java JDK AND (Netbeans OR NetBeans Plugin) are published to the user then create a Connection Group for them.

The simple rule that dictates the logic is packages that are in the same group (like NetBeans and NetBeans plugin) will be linked by OR logic and separate groups will be linked via AND logic (Java JDK and Java Dependants).

Now the VE is created, CM will update is policy and then on the next evaluation cycle on the client, we will see the Connection Group get created.

Flexible

You may have observed the Virtual Environment model in CM 2012 SP1 is much more flexible than Connection Groups in App-V 5.0 Full Infrastructure. This is for two reasons:

  1. They are not directly linked with the publishing of a package. In Full Infrastructure, Connection Groups are a list of packages that will be published as a connection group. In CM 2012 SP1 App-V packages are delivered independently and then Virtual Environments overlay to specify if certain packages are present we should dynamically create a Connection Group.
  2. AND/OR logic allows us to be more dynamic in how we specify these relationships. Instead of the static lists we have with Full Infrastructure Connection Groups, Virtual Environments allow us to be much more relaxed in how we create these relationships because the rule based delivery will analyse the currently available applications to assess whether we need the Connection Group or not.

…One downside

There is one downside to Virtual Environments however which concerns Connection Group Conflicts whereby one application is in multiple connection groups. As you may have noticed above the priority for my connection group is a whopping 4.2 Billion!

This is the default for all CM Virtual Environment delivered Connection Groups which means there is no way to resolve any priority conflicts as we discussed with Full Infrastructure in a previous post. So while Virtual Environments are very flexible, for the time being at least, we need to be careful not to have applications in more than one Virtual Environment delivered to the same user/machine.

Thamim Karim

10 Responses to Virtual Environments in Configuration Manager 2012 SP1 – Flexible Connection Groups

  1. Phil

    Thanks you, If we cannot manage connection group priority, you cannot use, for example, Oracle Virtual client in two different connection group ? 🙁

    26 Apr 2014 - Reply
  2. Anonymous

    Couldn’t you make a copy of an application and put it in a 2nd virtual environment?

    26 Apr 2014 - Reply
  3. Thamim Karim

    You can but remember the GUID will remain the same and there is currently no conflict handler for this with CM delivery.

    26 Apr 2014 - Reply
  4. Vasanth

    Hi Thameem, I do have a scenario. Let us consider ABC application is having a dependency of XYZ. Hence they both are connection grouped. I do have another application DEF which needs ABC as its dependent. In this situation how we need to proceed.

    26 Apr 2014 - Reply
    • Thamim Karim

      Hi, unfortunately the conflict handler is not available in CM virtual environments, I have discussed the different scenarios here:http://virtualvibes.co.uk/connection-group-conflicts-in-app-v-5-0/

      26 Apr 2014 - Reply
      • Vasanth

        Hi Thamim, Thanks for the reply. I do have another issue. I have 4 virtual apps (A,B,C,D) in a single virtual environment in SCCM 2012. When i deploy the application B for which A and C are the dependency, The connection group is automatically divided into AB and AC without my intervention. I am totally lost of why it is doing so. It should be in a single connection group as ABC but it is not…please assist

        26 Apr 2014 - Reply
  5. App-V 5.0 Ramp up Guide | VirtualVibes

    […] Virtual Environments in Configuration Manager 2012 SP1 – Flexible Connection Groups | Blog […]

    1 May 2014 - Reply
  6. Planning for App-V Virtual Environments with SCCM 2012 | Virtual Vibes

    […] I first took a look at how SCCM manages App-V connection groups I have to say I was really impressed with the flexibility of the rule based approach of Virtual […]

    3 Jun 2015 - Reply
  7. KWest

    Thamim, nice article. I have a little challenge. I share one virtualised Java runtime with several apps. What happens when I update the virtual environment to add another app? Will it apply to existing devices at the next app evaluation? Do I run the risk of causing an outage by breaking existing apps?

    23 Aug 2017 - Reply
    • Thamim Karim

      Hi KWest,

      The next evaluation when the new app is delivered you will find the updated connection group is also deployed. I have sometimes noticed a small delay between app and connection group delivery however, this is something you should test in your environment.

      26 Aug 2017 - Reply

Leave a Reply

Your email address will not be published. Required fields are marked *