Блокировка базы данных WSO2 Postgres на длительное время

#postgresql #wso2is

Вопрос:

Мы сталкиваемся с проблемами сервера идентификации WSO2, такими как администратор(консоль Carbon), Обычный пользователь(поставщик услуг) не может войти в систему, в основном не может выполнять какие-либо операции.

Изучив журналы, мы обнаружили, что это связано с тем, что база данных postgres блокируется в одном конкретном сценарии, который мы смогли выяснить, как указано ниже:

Всякий раз, когда делается запрос на исправление ГРУППЫ SCIM2 для добавления члена группы, который уже присутствует в той же группе, и когда количество участников группы больше, блокируется база данных.

Это недопустимый сценарий, который мы позже обработали в конце нашего приложения, чтобы не добавлять одного и того же участника группы(кроме того, выбрали массовый API SCIM2, поскольку он не вернет всех участников обратно для повышения производительности). Но теперь мы не уверены, не столкнемся ли мы с такими проблемами снова. Иногда нам приходится перезапускать сервер.

Поэтому я хотел узнать, существуют ли известные решения для таких проблем. Есть ли какой-либо способ, которым мы можем сократить время блокировки БД.

ЯВЛЯЕТСЯ v5.10.0

Комментарии:

1. Ответ API ИСПРАВЛЕНИЯ ГРУППЫ SCIM2 в таких случаях: { «схемы»: [ «urn:ietf:параметры:scim:api:сообщения:2.0:Ошибка» ], «подробности»: «Произошла ошибка при получении типа базы данных из подключения к БД», «статус»: «500» }

2. [2021-07-05 22:24:19,059] [2af9d2de-bad0-4a2a-8b3b-a41ca919fd62] ОШИБКА {org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager} — Ошибка при извлечении ролей из внутреннего хранилища ролей JDBC. org.postgresql.util. PSQLException: ОШИБКА: текущая транзакция прервана, команды игнорируются до конца блока транзакций в org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2533) в org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2268)

3. какую версию postgre вы используете? Похоже, ошибка возникла из postgre.