private IPersistence Create() { var mongo = Environment.GetEnvironmentVariable("NSTORE_MONGODB"); if (string.IsNullOrWhiteSpace(mongo)) { throw new TestMisconfiguredException("NSTORE_MONGODB environment variable not set"); } _id = Interlocked.Increment(ref _staticId); _options = new MongoStoreOptions { PartitionsConnectionString = mongo, UseLocalSequence = true, PartitionsCollectionName = "partitions_" + GetType().Name + "_" + _id, SequenceCollectionName = "seq_" + _id, DropOnInit = true }; _mongoPersistence = new MongoPersistence(_options); _mongoPersistence.InitAsync(CancellationToken.None).Wait(); return(_mongoPersistence); }
static IPersistence BuildStore(string store) { Console.WriteLine($"Selected store is {store}"); switch (store.ToLowerInvariant()) { case "memory": { var network = new ReliableNetworkSimulator(2, 10); return(new InMemoryPersistence(network, ObjectSerializer.Clone)); } case "mongo": { var options = new MongoStoreOptions { PartitionsConnectionString = Mongo, UseLocalSequence = true, PartitionsCollectionName = "partitions", SequenceCollectionName = "seq", DropOnInit = true, Serializer = new MongoCustomSerializer(), CustomizePartitionSettings = settings => { settings.MaxConnectionPoolSize = 5000; } }; var mongo = new MongoPersistence(options); mongo.InitAsync(CancellationToken.None).GetAwaiter().GetResult(); return(mongo); } } throw new Exception($"Invalid store {store}"); }
public void load_mongo_task() { var options = BuildMongoConnectionOptions(); _mongoStore = new MongoPersistence(options); _mongoStore.InitAsync(CancellationToken.None).Wait(); task_worker(_mongoStore); }
public void load_mongo_async() { var options = BuildMongoConnectionOptions(); var store = new MongoPersistence(options); _mongoPersistence.Add(store); store.InitAsync(CancellationToken.None).Wait(); async_worker(store).GetAwaiter().GetResult(); }
static IPersistence MongoConnect() { var options = new MongoPersistenceOptions() { UseLocalSequence = true, PartitionsConnectionString = _mongo }; var mongo = new MongoPersistence(options); mongo.InitAsync(CancellationToken.None).GetAwaiter().GetResult(); return(mongo); }
public void batcher_decorator() { var options = BuildMongoConnectionOptions(); var store = new MongoPersistence(options); _mongoPersistence.Add(store); store.InitAsync(CancellationToken.None).Wait(); var persistenceBatcher = new PersistenceBatchAppendDecorator(store, BatchSize, FlushTimeout); TaskWorker.Run(persistenceBatcher, _iterations).GetAwaiter().GetResult(); persistenceBatcher.Dispose(); }
public async Task <IPersistence> BuildEventStore( string connectionString) { var mongoStoreOptions = new MongoPersistenceOptions { PartitionsConnectionString = connectionString, UseLocalSequence = true, PartitionsCollectionName = PartitionCollectionName, SequenceCollectionName = "event_sequence", DropOnInit = false }; var mongoPersistence = new MongoPersistence(mongoStoreOptions); await mongoPersistence.InitAsync(CancellationToken.None).ConfigureAwait(false); return(mongoPersistence); }
public async Task Configure(CancellationToken cancellationToken = default) { var containerConnectionString = Environment.GetEnvironmentVariable("NServiceBusStorageMongoDB_ConnectionString"); client = string.IsNullOrWhiteSpace(containerConnectionString) ? new MongoClient() : new MongoClient(containerConnectionString); Storage.MongoDB.SagaStorage.InitializeSagaDataTypes(client, databaseName, MongoPersistence.DefaultCollectionNamingConvention, SagaMetadataCollection); SagaStorage = new SagaPersister(SagaPersister.DefaultVersionElementName); SynchronizedStorage = new StorageSessionFactory(client, true, databaseName, MongoPersistence.DefaultCollectionNamingConvention, SessionTimeout ?? MongoPersistence.DefaultTransactionTimeout); var databaseSettings = new MongoDatabaseSettings { ReadConcern = ReadConcern.Majority, ReadPreference = ReadPreference.Primary, WriteConcern = WriteConcern.WMajority }; var database = client.GetDatabase(databaseName, databaseSettings); await database.CreateCollectionAsync(MongoPersistence.DefaultCollectionNamingConvention(typeof(OutboxRecord)), cancellationToken : cancellationToken); OutboxStorage = new OutboxPersister(client, databaseName, MongoPersistence.DefaultCollectionNamingConvention); }
static void Main(string[] args) { IPersistence persistence = new MongoPersistence("localhost", 27017, "tpp-new"); const string id = "asdf123456"; Expression <Func <User, bool> > idExpression = u => u.Id == id; var user = new User( id, "qwertzuiop", "Felkbot", "felkbot", "Félkböt"); // persistence.Save(user); persistence.ReplaceOne(idExpression, user); var loadedUser = persistence.FindOne(idExpression); Console.WriteLine(loadedUser.ProvidedName); }