Product Documentation

Configure two StoreFront stores to share a common subscription datastore

May 22, 2017

As of version 2.0, StoreFront no longer uses an SQL database to maintain its subscription data. Citrix replaced the SQL database with a Windows datastore that requires no additional configuration when StoreFront is first installed. The installation installs the Windows datastore locally on each StoreFront server. In StoreFront server group environments, each server also maintains a copy of the subscription data used by its store. This data is propagated to other servers to maintain user subscriptions across the whole group. By default, StoreFront creates a single datastore for each store. Each subscription datastore is updated independently from each other store.  

Where different configuration settings are required, it is common for administrators to configure StoreFront with two distinct stores; one for external access to resources using Netscaler Gateway and another for internal access using the corporate LAN. You can configure both "external" and "internal" stores to share a common subscription datastore by making a simple change to the store web.config file.

In the default scenario involving two stores and their corresponding subscription datastores, a user must subscribe to the same resource twice. Configuring the two stores to share a common subscription database improves and simplifies the roaming experience when users access the same resource from inside or outside the corporate network. With a shared subscription datastore it does not matter whether they use the "external" or "internal" store when they initially subscribe to a new resource.

  • Each store has a web.config file located in C:\inetpub\wwwroot\citrix\<storename>.
  • Each store web.config contains a client endpoint for the Subscription Store Service.
<clientEndpoint uri="net.pipe://localhost/Citrix/Subscriptions/1__Citrix_<StoreName>" authenticationMode="windows" transferMode="Streamed"> 
 

The subscription data for each Store is located in:

C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_<StoreName> 

For two stores to share a subscription datastore, you need only point one store to the subscription service end point of the other store. In the case of a server group deployment, all servers have identical pairs of stores defined and identical copies of the shared datastore they both share.

Note: The XenApp, XenDesktop and AppC controllers configured on each store must match exactly; otherwise, an inconsistent set of resource subscriptions on one store compared to another might occur. Sharing a datastore is supported only when the two stores reside on the same StoreFront server or server group deployment.

StoreFront subscription datastore endpoints

  1. On a single StoreFront deployment, open the external store web.config file using Notepad and search for the clientEndpoint. For example:
    <subscriptionsStoreClient enabled="true"> 
    <clientEndpoint uri="net.pipe://localhost/Citrix/Subscriptions/1__Citrix_External" authenticationMode="windows" transferMode="Streamed"> 
    <clientCertificate thumbprint="0" /> 
    </clientEndpoint> 
    </subscriptionsStoreClient> 
    
  2. Change the external to match the internal store endpoint:
    <subscriptionsStoreClient enabled="true"> 
    <clientEndpoint uri="net.pipe://localhost/Citrix/Subscriptions/1__Citrix_Internal" authenticationMode="windows" transferMode="Streamed"> 
    <clientCertificate thumbprint="0" /> 
    </clientEndpoint> 
    </subscriptionsStoreClient> 
    
  3. If using StoreFront server group then propagate any changes made to the web.config file of the primary node to all other nodes.

Both stores are now set to share the internal store subscription datastore.