1

Berkeley DB for .NET 3.5 (正確にはバージョン 5.0.21) に問題があります。

primaryKeyDuplicatesPolicy = DuplicatesPolicy.NONEプライマリDBで使用したときにうまく機能したセットアップは次のとおりです。

var btcfg = new BTreeDatabaseConfig
                {
                        Duplicates = primaryKeyDuplicatesPolicy,
                        Creation = CreatePolicy.IF_NEEDED,
                        FreeThreaded = false,
                        ErrorPrefix = "bdbIndex",
                        ReadUncommitted = false,
                        UseMVCC = false,
                        CacheSize = new CacheInfo(cacheSize, 0, 1),
                };
var primaryDb = BTreeDatabase.Open(additionalPath + "primary.db", btcfg);
var secondaryDb = SecondaryBTreeDatabase.Open(additionalPath + "secondary.db",
                  new SecondaryBTreeDatabaseConfig(PrimaryDb, GetSecondaryDbKey)
                      {
                          AutoCommit = btcfg.AutoCommit,
                          Creation = CreatePolicy.IF_NEEDED,
                          FreeThreaded = btcfg.FreeThreaded,
                          ErrorPrefix = btcfg.ErrorPrefix,
                          ReadUncommitted = btcfg.ReadUncommitted,
                          UseMVCC = btcfg.UseMVCC,
                          Env = env,
                          Duplicates = DuplicatesPolicy.NONE
                      });

今、primaryKeyDuplicatesPolicy他の値に変更するとすぐに、すべてSecondaryBTreeDatabase.Open()が例外で中断しますBerkeleyDB.DatabaseException : Invalid argument

では、プライマリ DB に重複するセカンダリ DB を持つことは可能ですか? (マニュアルによると、私が理解している限り、可能です)。

第二に、私は何を間違っていますか? このことを機能させるにはどうすればよいですか?

PS: 環境の初期化を試みましたが、解決しません。また、ロジックを 2 つのプライマリ DB に分割することは、現時点では困難です。

4

0 に答える 0