Наша база данных — PostgreSQL 14.10, а для установления SSL-соединений мы используем сертификат rds-ca-2019. Поскольку срок действия сертификата rds-ca-2019 истекает во второй половине 2024 года, мы начали обновлять наши приложения для использования нового сертификата rds-ca-rsa2048-g1. Для некоторых приложений, которым не требуется XA (поэтому нет Atomikos), все работало без проблем, но для тех, которым требуется XA, мы заметили, что наши приложения никогда не восстанавливаются и продолжают перезапускаться AWS.
Ищем в журналах мы заметили некоторые записи, похожие на приведенные ниже:
Код: Выделить всё
2024-04-09T10:00:52.838+10:00 2024-04-09 10:00:52.838 INFO 53 --- [main] [CID:] c.atomikos.jdbc.AtomikosDataSourceBean : AtomikosDataSoureBean 'my-app-xa': initializing with [ xaDataSourceClassName=org.postgresql.xa.PGXADataSource, uniqueResourceName=my-app-xa, maxPoolSize=800, minPoolSize=400, borrowConnectionTimeout=30, maxIdleTime=30, reapTimeout=0, maintenanceInterval=60, testQuery=select 1, xaProperties=[password=my-app-perf-aurora-db-cluster.cluster-chlz60vpmgzr.some-zone.rds.amazonaws.com:5432/?Action=connect&DBUser=my_app_perf&X-Amz-Security-Token=xy...z-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240409T000047Z&X-Amz-SignedHeaders=host&X-Amz-Expires=899&X-Amz-Credential=XYZ&X-Amz-Signature=xyz,user=my_app_perf,url=jdbc:postgresql://my-app-perf-aurora-db-cluster.cluster-chlz60vpmgzr.rds.amazonaws.com:5432/swiftfrontdoor?sslmode=verify-full&sslrootcert=/opt/app/conf/rds-ca-rsa2048-g1.pem], loginTimeout=0, maxLifetime=2000000]
2024-04-09T10:00:53.785+10:00 2024-04-09 10:00:53.784 INFO 53 --- [main] [CID:] c.a.d.xa.XATransactionalResource : my-app-xa: refreshed XAResource
2024-04-09T10:00:53.785+10:00 2024-04-09 10:02:26,306 ~AD Thread Pool-Global0 ERROR Recursive call to appender Buffer
В нашей библиотеке подключения RDS есть флаг, позволяющий ей работать в режиме XA или не в режиме A на основе Spring .jta.enabled и в качестве эксперимента переключил его на false, чтобы избежать использования Atomikos Transaction Manager, и приложение запустилось без проблем.
На этом этапе я запускаю идеи, и я надеюсь, что кто-то еще до нас использует Atomikos Transaction Manager в приложении Spring Boot, работающем в AWS, с доступом к базе данных PostgresSQL.
Заранее благодарим вас за ваш вклад.
Подробнее здесь: https://stackoverflow.com/questions/783 ... e-to-rds-c
Мобильная версия