2016-08-24 2 views
0

Est-il possible d'utiliser le nom de base de données personnalisé (pas le point de terminaison) pour les sagas d'hôte nservicebus persistantes à l'aide de RavenDb? J'utilise NServiceBus 3.3 et Raven DB 2.5. et initialiser endpoind de telle manière:Nom de la base de données personnalisée pour les sagas d'hôte persistants

public class RavenConfig : IWantCustomInitialization 
{ 
    public void Init() 
    { 
      Configure.Instance.RavenPersistence("AllHostsRavenDB"); 
      Configure.Instance.RavenSagaPersister(); 
      Configure.Instance.RavenSubscriptionStorage(); 
      Configure.Instance.UseRavenTimeoutPersister(); 
    } 
} 

Mon App.config contient:

<connectionStrings> 
    <add name="AllHostsRavenDB" 
    connectionString="Url=http://localhost:8080; DefaultDatabase=ABC;" /> 
</connectionStrings> 

Répondre

0

De la documentation:

Pour contrôler le nom de base de données dans le code, au lieu de via le configuration, utilisez la signature Configure.RavenPersistence (chaîne connectionStringName, string databaseName). Cela peut être utile dans un scénario multitenant.

http://docs.particular.net/nservicebus/ravendb/#nservicebus-3-and-nservicebus-4-overriding-the-defaults

Est-ce que résoudre votre problème?

+0

Non, mais merci. –

+0

Vous devriez pouvoir utiliser 'Configure.RavenPersistence (" AllHostsRavenDB ", databaseName_has_to_be_guid)' Je pense, mais quand j'essaye, je reçois des exceptions du corbeau pour ne pas spécifier de guid valide (bien que je sois presque sûr qu'il est valide :)). Je vais enquêter et vous mettre à jour. – wlabaj

1

J'ai finalement réussi à le faire fonctionner! J'ai changé intitialization personnalisé à partir de:

public class RavenConfig : IWantCustomInitialization 
{ 
    public void Init() 
    { 
     Configure.Instance.RavenPersistence("AllHostsRavenDB"); 
     Configure.Instance.RavenSagaPersister(); 
     Configure.Instance.RavenSubscriptionStorage(); 
     Configure.Instance.UseRavenTimeoutPersister(); 
    } 
} 

à:

public class RavenConfig : IWantToRunBeforeConfigurationIsFinalized 
{ 
    public void Run() 
    { 
     Configure.Instance.RavenPersistence("AllHostsRavenDB"); 
     Configure.Instance.RavenSagaPersister(); 
     Configure.Instance.RavenSubscriptionStorage(); 
     Configure.Instance.UseRavenTimeoutPersister(); 
    } 
}