Таким образом, мы используем DB Berkeley, и наш API использует API BDB C++. Недавно мы добавили некоторые новые индексы в нашу базу данных. После добавления новых индексов нам нужно было перенести все старые данные, чтобы добавить новые индексы в старые записи, и с тех пор, когда мы запускаем процесс, который записывается в базу данных, мы получаем следующие предупреждения:
BDB2058 Предупреждение: игнорирование DB_SET_LOCK_TIMEOUT при подключении к среде. BDB2059 Предупреждение: игнорирование DB_SET_TXN_TIMEOUT при подключении к среде.
Если я правильно их понимаю, мы теперь рискуем затормозить, так как он "игнорирует" тайм-ауты, которые мы установили. Я также вижу, что процесс зависает, когда он пытается случайно создать базу данных. Единственный способ обойти это - это перезапустить процесс прямо сейчас. Мой вопрос: если кто-нибудь знает, что вызовет эти предупреждения, или как я могу начать отладку экземпляра среды, чтобы узнать? Любая помощь или предложения будут оценены.
Тайм-аут, вероятно, является постоянным глобальным атрибутом среды dbenv, а не атрибутом каждого экземпляра использования dbenv.
Вы можете попробовать запустить db_recover в базе данных, чтобы удалить файлы __db.NNN.
В противном случае у вас может быть несколько процессов, совместно использующих dbenv, и предупреждение указывает, что последующие процессы пытаются изменить уже установленные атрибуты.