Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-2224

Subscribe on CommandFailedEvent crush GridFSBucket, GridFSBucket<T> initialization

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • 2.5
    • Configuration, GridFS
    • None
    • Net core, ubuntu 16.04, mongodb 3.6.2 version

    Description

                  builder.Register(ctx => new MongoClient(_mongoClientSettings))
                      .As<IMongoClient>()
                      .SingleInstance();
                  
                  builder.Register(ctx =>
                  {
                      var client = ctx.Resolve<IMongoClient>();
                      
                      return client.GetDatabase(_databaseName);
                  }).As<IMongoDatabase>().SingleInstance();
       
                  builder.Register(
                      ctx => new GridFSBucket<Guid>(
                          ctx.Resolve<IMongoDatabase>(),
                          new GridFSBucketOptions
                          {
                              BucketName = "Avatars"
                          }))
                      .As<IGridFSBucket<Guid>>()
                      .SingleInstance();
      

                  clientSettings.ClusterConfigurator = clusterBuilder =>
                  {
                      clusterBuilder.Subscribe<ClusterSelectingServerFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogCritical("Cluster selecting server failed! {@Event}", evnt);
                          })
      //                    .Subscribe<CommandFailedEvent>(evnt =>
      //                    {
      //                        var logger = loggerFactory.CreateLogger<MongoModule>();
      //                        logger.LogWarning("Command failed! {@Event}", evnt);
      //                    })
                          .Subscribe<ConnectionFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogCritical("Connection failed! {@Event}", evnt);
                          })
                          .Subscribe<ConnectionOpeningFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogCritical("Connection opening failed! {@Event}", evnt);
                          })
                          .Subscribe<ConnectionPoolCheckingOutConnectionFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogCritical("Connection pool checking out connection failed! {@Event}", evnt);
                          })
                          .Subscribe<ConnectionReceivingMessageFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogWarning("Connection receiving message failed! {@Event}", evnt);
                          })
                          .Subscribe<ConnectionSendingMessagesFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogWarning("Connection sending messages failed! {@Event}", evnt);
                          })
                          .Subscribe<ServerHeartbeatFailedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogCritical("Server heart beat failed! {@Event}", evnt);
                          })
                          .Subscribe<ServerClosedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogCritical("Server closed! {@Event}", evnt);
                          })
                          .Subscribe<ServerOpenedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogInformation("Server opened! {@Event}", evnt);
                          })
                          .Subscribe<ConnectionOpenedEvent>(evnt =>
                          {
                              var logger = loggerFactory.CreateLogger<MongoModule>();
                              logger.LogInformation("Connection opened! {@Event}", evnt);
                          });
                  };
      

      If subscription wil be uncomment, any upload operation will be raise CommandFailedEvent with messages:

      `Collection Avatars.files does not exist`
      `Collection Avatars.chunks does not exist`

      After explicitly collections creation all work as expected.

      Attachments

        Activity

          People

            Unassigned Unassigned
            t.myagkikh Timofey Myagkikh
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: