diff --git a/.gitignore b/.gitignore index e88a023..e92d269 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ build/*/*/* **/.gradle/ .vscode/ **/.vscode/ +rag/venv/* # Serena serena/ diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index 06ca36a..c046c57 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/meeting/logs/meeting-service.log b/meeting/logs/meeting-service.log new file mode 100644 index 0000000..9425c58 --- /dev/null +++ b/meeting/logs/meeting-service.log @@ -0,0 +1,10541 @@ +2025-10-29 00:00:39 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-29 00:00:39 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_03c1d8_1761662988084","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 00:00:39 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-29 00:00:39 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 00:00:39 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@5522f9b] for TypeConfiguration +2025-10-29 00:00:39 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@e812d0e] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@5522f9b] +2025-10-29 00:00:39 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 00:00:39 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_03c1d8_1761662988084","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-29 00:00:39 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_03c1d8_1761662988084","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-29 00:00:39 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 05:19:25 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 46251 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 05:19:25 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 05:19:25 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 05:19:25 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 05:19:25 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 05:19:25 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 67 ms. Found 8 JPA repository interfaces. +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:19:26 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 21 ms. Found 0 Redis repository interfaces. +2025-10-29 05:19:26 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 05:19:26 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 05:19:26 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 05:19:26 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 05:19:26 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1079 ms +2025-10-29 05:19:26 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 05:19:26 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@48c3a0ef +2025-10-29 05:19:26 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 05:19:26 [main] INFO org.flywaydb.core.FlywayExecutor - Database: jdbc:postgresql://4.230.48.72:5432/meetingdb (PostgreSQL 16.2) +2025-10-29 05:19:26 [main] INFO o.f.core.internal.command.DbValidate - Successfully validated 5 migrations (execution time 00:00.040s) +2025-10-29 05:19:27 [main] INFO o.f.core.internal.command.DbMigrate - Current version of schema "public": 4 +2025-10-29 05:19:27 [main] INFO o.f.core.internal.command.DbMigrate - Schema "public" is up to date. No migration necessary. +2025-10-29 05:19:27 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 05:19:27 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 05:19:27 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@1c36ab22 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@1c36ab22 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@1c36ab22 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@68303c3e +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@68303c3e +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@2ec23ec3 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@2ec23ec3 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@7c2e88b9 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@7c2e88b9 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@556843a5 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@556843a5 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@556843a5 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@3c5044fa +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@3c5044fa +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@3c5044fa +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@3db5195 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@3db5195 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@b386a17 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@1cda75be +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@1cda75be +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@2213854b +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@7b1d2f65 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@33bd9ac3 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@33bd9ac3 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@33bd9ac3 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@7c857e8f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@7c857e8f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@7c857e8f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@42028589 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@42028589 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@42028589 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@50f6ecab +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@50f6ecab +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@50f6ecab +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@fc21ff4 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@fc21ff4 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@fc21ff4 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@58647985 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@58647985 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@e1c91cd +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@e1c91cd +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@69e8b711 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@69e8b711 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@69e8b711 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@764a3867 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@d99df7a +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@d99df7a +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@67e1a5fd +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@4b9dc62f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@4b9dc62f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@4b9dc62f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@6cb3463b +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2f9236d8 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@4536a09a +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@603faaad +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@603faaad +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@16cbba0f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@16cbba0f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@28d16af8 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@58932d08 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@45648e75 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@e344f14 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@2d117280 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@6c2be147 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@dddcd91 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@dddcd91 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@21bd6fd1 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@21bd6fd1 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@79e9c14 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@79e9c14 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@340c7479 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@340c7479 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@575e862c +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@575e862c +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1d57b8f1 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6e5af973 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@39a2e77d +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@39a2e77d +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@1aee6983 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3adeca1f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@3f62d56 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@2d41bb5a +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@2d41bb5a +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@448a6d00 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@848d9bc +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@3a66d97e +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@3a66d97e +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@1add3e03 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@1add3e03 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@d28a235 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@d28a235 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@d28a235 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@43e30f15 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@43e30f15 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@43e30f15 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4fc2933e +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@3c9c91e3 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@746da54f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@746da54f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@2f2d8770 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@2f2d8770 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@2f2d8770 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@742dbac8 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@2ce62e27 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@3538a129 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@3538a129 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@766db6f9 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@766db6f9 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@766db6f9 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@6f8fb906 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@6f8fb906 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@728535c6 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@728535c6 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@244f356 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@244f356 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@19855799 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@19855799 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@bd09a26 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@bd09a26 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@5020b59f +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@75db328e +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@3d99d327 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3d99d327 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@3a359f7c +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@138b9abe +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@23ffc910 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@35277c6c +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@7a364e1c +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@29a50a11 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@74cff17c +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@7a053795 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@328bc067 +2025-10-29 05:19:27 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 05:19:27 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 05:19:27 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@67d55a46) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@72115c48) +2025-10-29 05:19:27 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@1d982fbe) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@3adb4cc8) +2025-10-29 05:19:27 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 05:19:27 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@6464f017 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@6464f017 +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@3d99d327` +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 05:19:27 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 05:19:27 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1adec8d] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@6eb332d1] +2025-10-29 05:19:27 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 05:19:27 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1adec8d] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@70bbc163] +2025-10-29 05:19:27 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@70bbc163] for TypeConfiguration +2025-10-29 05:19:27 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 05:19:28 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 05:19:28 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-29 05:19:28 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_5063e1_1761682768672"} +2025-10-29 05:19:28 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:19:28 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 05:19:28 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 4d45b823-293f-4e1d-a53e-97b69aab3981 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 05:19:28 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 05:19:28 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 05:19:29 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 05:19:29 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 05:19:29 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 05:19:29 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 05:19:29 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 4.379 seconds (process running for 4.549) +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/reserve +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/reserve +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 호출 - 파라미터: [user-005, dohyunjung, dohyun.jung@example.com, com.unicorn.hgzero.meeting.infra.dto.request.CreateMeetingRequest@43513970] +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: test 회의 +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: test 회의 +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + COUNT(m) + FROM + MeetingEntity m + WHERE + m.organizerId = :organizerId + AND m.status IN ('SCHEDULED', 'IN_PROGRESS') + AND ( + ( + m.scheduledAt < :endTime + AND m.endTime > :startTime + ) + ) */ select + count(me1_0.meeting_id) + from + meetings me1_0 + where + me1_0.organizer_id=? + and me1_0.status in ('SCHEDULED', 'IN_PROGRESS') + and ( + ( + me1_0.scheduled_at? + ) + ) +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at, + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meetings me1_0 + left join + meeting_participants p1_0 + on me1_0.meeting_id=p1_0.meeting_id + where + me1_0.meeting_id=? +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */insert + into + meetings (created_at, description, end_time, ended_at, location, organizer_id, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.user_id, + mpe1_0.meeting_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.user_id, + mpe1_0.meeting_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.gateway.ParticipantGateway - Participants saved: meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, count=2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Participants saved: meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, count=2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] WARN c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 (서비스는 정상 동작) - meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, 에러: Error in execution +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_5063e1_1761682768672","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_5063e1_1761682768672"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_5063e1_1761682768672","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_5063e1_1761682768672"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_5063e1_1761682768672","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_5063e1_1761682768672","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_5063e1_1761682768672","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"1f5fb5ec1d874531be80a6955cc37ba9_G27"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_5063e1_1761682768672","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_5063e1_1761682768672"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_5063e1_1761682768672","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_5063e1_1761682768672","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_5063e1_1761682768672","entityPath":"$cbs"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_5063e1_1761682768672","entityPath":"$cbs","subscriberId":"un_86c6b5_1761682787716"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5063e1_1761682768672","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_5063e1_1761682768672","entityPath":"$cbs"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5063e1_1761682768672","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_5063e1_1761682768672","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 05:19:47 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5063e1_1761682768672","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, participants count: 2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, participants=2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 05:19:47 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:19:47 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 700ms +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/752c5d70-6e7d-47a0-9cab-d7d9240dc5a2/start +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/752c5d70-6e7d-47a0-9cab-d7d9240dc5a2/start +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, user-005, dohyunjung, dohyun.jung@example.com] +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, userId: user-005 +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] WARN c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 (서비스는 정상 동작) - meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, 에러: Error in execution +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + se1_0.session_id, + se1_0.created_at, + se1_0.ended_at, + se1_0.meeting_id, + se1_0.minutes_id, + se1_0.started_at, + se1_0.started_by, + se1_0.status, + se1_0.updated_at + from + sessions se1_0 + where + se1_0.session_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=ebccc05a-4be8-40cb-9330-49114ebc7205, meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] WARN c.u.h.m.infra.cache.CacheService - 캐시 삭제 실패 - key: meeting:752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, 에러: Error in execution +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version, + s1_0.minutes_id, + s1_0.section_id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes me1_0 + left join + minutes_sections s1_0 + on me1_0.minutes_id=s1_0.minutes_id + where + me1_0.minutes_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, sessionId=ebccc05a-4be8-40cb-9330-49114ebc7205 +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, sessionId=ebccc05a-4be8-40cb-9330-49114ebc7205, minutesId=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert + into + sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */insert + into + minutes (created_at, created_by, finalized_at, finalized_by, meeting_id, status, title, updated_at, version, minutes_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */update meetings + set + description=?, + end_time=?, + ended_at=?, + location=?, + organizer_id=?, + purpose=?, + scheduled_at=?, + started_at=?, + status=?, + template_id=?, + title=?, + updated_at=? + where + meeting_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */update sessions + set + ended_at=?, + meeting_id=?, + minutes_id=?, + started_at=?, + started_by=?, + status=?, + updated_at=? + where + session_id=? +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2, sessionId: ebccc05a-4be8-40cb-9330-49114ebc7205 +2025-10-29 05:21:12 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 171ms +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.section_id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 2 +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.TodoService - Getting todos by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Error in execution +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:23:44 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:23:44 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 266ms +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@48c3a0ef (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 05:28:32 [http-nio-8082-exec-1] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@5a31abe9 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 05:28:32 [http-nio-8082-exec-1] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@20953907 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 05:28:32 [http-nio-8082-exec-1] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@64b1dad8 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 05:28:32 [http-nio-8082-exec-1] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1736aa37 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.section_id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 3 +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.TodoService - Getting todos by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Error in execution +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:28:32 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:28:32 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 285ms +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:31:59 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 05:31:59 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:31:59 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:31:59 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.section_id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:31:59 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 4 +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.TodoService - Getting todos by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:31:59 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 05:32:00 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:32:00 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:32:00 [http-nio-8082-exec-4] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Error in execution +2025-10-29 05:32:00 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:32:00 [http-nio-8082-exec-4] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 05:32:00 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:32:00 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:32:00 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:32:00 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:32:00 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:32:00 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:32:00 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:32:00 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 261ms +2025-10-29 05:37:46 [parallel-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Refreshing token.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 05:39:11 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:39:11 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_5063e1_1761682768672","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 05:39:11 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:39:11 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 05:39:11 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_5063e1_1761682768672","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-29 05:39:11 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_5063e1_1761682768672","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-29 05:39:11 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@70bbc163] for TypeConfiguration +2025-10-29 05:39:11 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@7039d21b] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@70bbc163] +2025-10-29 05:39:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 05:39:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 05:39:15 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 53458 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 05:39:15 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 05:39:15 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 05:39:15 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'objectMapper' defined in class path resource [com/unicorn/hgzero/meeting/infra/config/JacksonConfig.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=true; factoryBeanName=jacksonConfig; factoryMethodName=objectMapper; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [com/unicorn/hgzero/meeting/infra/config/JacksonConfig.class]] for bean 'objectMapper' since there is already [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=cacheConfig; factoryMethodName=objectMapper; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [com/unicorn/hgzero/meeting/infra/cache/CacheConfig.class]] bound. +2025-10-29 05:39:15 [main] INFO o.s.b.a.l.ConditionEvaluationReportLogger - + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2025-10-29 05:39:15 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +The bean 'objectMapper', defined in class path resource [com/unicorn/hgzero/meeting/infra/config/JacksonConfig.class], could not be registered. A bean with that name has already been defined in class path resource [com/unicorn/hgzero/meeting/infra/cache/CacheConfig.class] and overriding is disabled. + +Action: + +Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true + +2025-10-29 05:41:54 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 54482 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 05:41:54 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 05:41:54 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 66 ms. Found 8 JPA repository interfaces. +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 05:41:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces. +2025-10-29 05:41:55 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 05:41:55 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 05:41:55 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 05:41:55 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 05:41:55 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1053 ms +2025-10-29 05:41:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 05:41:56 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@50ef2906 +2025-10-29 05:41:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 05:41:56 [main] INFO org.flywaydb.core.FlywayExecutor - Database: jdbc:postgresql://4.230.48.72:5432/meetingdb (PostgreSQL 16.2) +2025-10-29 05:41:56 [main] INFO o.f.core.internal.command.DbValidate - Successfully validated 5 migrations (execution time 00:00.041s) +2025-10-29 05:41:56 [main] INFO o.f.core.internal.command.DbMigrate - Current version of schema "public": 4 +2025-10-29 05:41:56 [main] INFO o.f.core.internal.command.DbMigrate - Schema "public" is up to date. No migration necessary. +2025-10-29 05:41:56 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 05:41:56 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 05:41:56 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@2ce62e27 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@2ce62e27 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@2ce62e27 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@3538a129 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@3538a129 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@766db6f9 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@766db6f9 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@6f8fb906 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@6f8fb906 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@728535c6 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@728535c6 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@728535c6 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@244f356 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@244f356 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@244f356 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@19855799 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@19855799 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@bd09a26 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@5020b59f +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@5020b59f +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@75db328e +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@46d18a33 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@495f3965 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@495f3965 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@495f3965 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@1c06f19c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@1c06f19c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@1c06f19c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3065efd0 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3065efd0 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@3065efd0 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7aaf6bfd +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7aaf6bfd +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@7aaf6bfd +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@4a8bf1dc +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@4a8bf1dc +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@4a8bf1dc +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@61aa6300 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@61aa6300 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@7e2e0b8a +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@7e2e0b8a +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@7f5f7731 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@7f5f7731 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@7f5f7731 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@6a4f7c17 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@584fb03d +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@584fb03d +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@563392e5 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@52d181ed +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@52d181ed +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@52d181ed +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@43efe064 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@66046e7c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@2c6a6ce3 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@726a5e6a +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@726a5e6a +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@4e3a6c83 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@4e3a6c83 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@b889cb6 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@74faf450 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@54c37dab +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@49005dc4 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@6a2057e +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@25d9298e +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@6ab826bb +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@6ab826bb +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@219db855 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@219db855 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@3702d0ed +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@3702d0ed +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@5b7b0ada +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@5b7b0ada +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@705d72f0 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@705d72f0 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3c4e23be +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@1d6a0962 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@1ec4fdcf +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@1ec4fdcf +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@515d615 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@488b46da +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@5e777b0 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@3c74d846 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@3c74d846 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@17fa14a3 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@5552d10 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@3b3190fd +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@3b3190fd +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@219dd935 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@219dd935 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@66859ea9 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@66859ea9 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@66859ea9 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@4a9412c4 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@4a9412c4 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@4a9412c4 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@7d15c513 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@320efff5 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@78b44fcb +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@78b44fcb +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@12dc702b +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@12dc702b +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@12dc702b +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@41b2123e +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@486bcaa +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@5e9671e6 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@5e9671e6 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@2f3a0f37 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@2f3a0f37 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@2f3a0f37 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@7ec8db0c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@7ec8db0c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@4f1a5b93 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@4f1a5b93 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@22ee1ad7 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@22ee1ad7 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@5dd2ea0a +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@5dd2ea0a +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@65fa4a07 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@65fa4a07 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@782143e8 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@2a4bd699 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@17063c32 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@17063c32 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@104cf647 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@7488c183 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@37196d53 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@40105b39 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@72a61e61 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@282aea3c +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@54a5799f +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@162e29a1 +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@54b96813 +2025-10-29 05:41:56 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 05:41:56 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 05:41:56 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@6cac0334) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@6329a5b9) +2025-10-29 05:41:56 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@6c92a59d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4505015b) +2025-10-29 05:41:56 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 05:41:56 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@16c1345b +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@16c1345b +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@17063c32` +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 05:41:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 05:41:56 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4f6a5cc9] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@5d24703e] +2025-10-29 05:41:57 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 05:41:57 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4f6a5cc9] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@2e3c5ecc] +2025-10-29 05:41:57 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@2e3c5ecc] for TypeConfiguration +2025-10-29 05:41:57 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 05:41:57 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 05:41:57 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 05:41:57 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 05:41:57 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 05:41:57 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 05:41:57 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 05:41:57 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-29 05:41:57 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-29 05:41:58 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_809e22_1761684118034"} +2025-10-29 05:41:58 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:41:58 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 05:41:58 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: b3d3d63d-3017-4877-88cb-0fe05b62ac33 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 05:41:58 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 05:41:58 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 05:41:58 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 05:41:58 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 05:41:58 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 05:41:58 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 05:41:58 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 4.318 seconds (process running for 4.484) +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.section_id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 5 +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.section_id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.TodoService - Getting todos by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:42:15 [http-nio-8082-exec-2] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Error in execution +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_809e22_1761684118034","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 05:42:15 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_809e22_1761684118034"} +2025-10-29 05:42:15 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_809e22_1761684118034","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 05:42:15 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_809e22_1761684118034"} +2025-10-29 05:42:15 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_809e22_1761684118034","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 05:42:15 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_809e22_1761684118034","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_809e22_1761684118034","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"cf5d7ef5513b497b9b720ac2c9a161bf_G20"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_809e22_1761684118034","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_809e22_1761684118034"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_809e22_1761684118034","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_809e22_1761684118034","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_809e22_1761684118034","entityPath":"$cbs"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_809e22_1761684118034","entityPath":"$cbs","subscriberId":"un_a3b9d6_1761684136085"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_809e22_1761684118034","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_809e22_1761684118034","entityPath":"$cbs"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_809e22_1761684118034","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_809e22_1761684118034","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 05:42:16 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_809e22_1761684118034","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 05:42:16 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:16 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:42:16 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 05:42:16 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:16 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:42:16 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 05:42:16 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 05:42:16 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 804ms +2025-10-29 05:45:13 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:45:13 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_809e22_1761684118034","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 05:45:13 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-29 05:45:13 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 05:45:13 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_809e22_1761684118034","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-29 05:45:13 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@2e3c5ecc] for TypeConfiguration +2025-10-29 05:45:13 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_809e22_1761684118034","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-29 05:45:13 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@35c09038] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@2e3c5ecc] +2025-10-29 05:45:13 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 05:45:13 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 10:08:22 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 40456 (/Users/adela/home/workspace/recent/HGZero/meeting/build/classes/java/main started by adela in /Users/adela/home/workspace/recent/HGZero/meeting) +2025-10-29 10:08:22 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 10:08:22 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 92 ms. Found 9 JPA repository interfaces. +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.AgendaSectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 10:08:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 22 ms. Found 0 Redis repository interfaces. +2025-10-29 10:08:24 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 10:08:24 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 10:08:24 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 10:08:24 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 10:08:24 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1460 ms +2025-10-29 10:08:24 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 10:08:24 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5d94ac8a +2025-10-29 10:08:24 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 10:08:24 [main] INFO org.flywaydb.core.FlywayExecutor - Database: jdbc:postgresql://4.230.48.72:5432/meetingdb (PostgreSQL 16.2) +2025-10-29 10:08:25 [main] INFO o.f.core.internal.command.DbValidate - Successfully validated 5 migrations (execution time 00:00.387s) +2025-10-29 10:08:25 [main] INFO o.f.core.internal.command.DbMigrate - Current version of schema "public": 4 +2025-10-29 10:08:25 [main] INFO o.f.core.internal.command.DbMigrate - Schema "public" is up to date. No migration necessary. +2025-10-29 10:08:25 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 10:08:25 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 10:08:25 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@52d181ed +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@52d181ed +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@52d181ed +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@43efe064 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@43efe064 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@66046e7c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@66046e7c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@2c6a6ce3 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@2c6a6ce3 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@726a5e6a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@726a5e6a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@726a5e6a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4e3a6c83 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4e3a6c83 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4e3a6c83 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@b889cb6 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@b889cb6 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@74faf450 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@54c37dab +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@54c37dab +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@49005dc4 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@6a2057e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@25d9298e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@25d9298e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@25d9298e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@6ab826bb +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@6ab826bb +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@6ab826bb +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@219db855 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@219db855 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@219db855 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3702d0ed +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3702d0ed +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@3702d0ed +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@5b7b0ada +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@5b7b0ada +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@5b7b0ada +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@705d72f0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@705d72f0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@3c4e23be +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@3c4e23be +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1d6a0962 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1d6a0962 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1d6a0962 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@1ec4fdcf +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@515d615 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@515d615 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@488b46da +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@5e777b0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@5e777b0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@5e777b0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@3c74d846 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@17fa14a3 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@5552d10 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@3b3190fd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@3b3190fd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@219dd935 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@219dd935 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@66859ea9 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@4a9412c4 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@7d15c513 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@320efff5 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@78b44fcb +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@12dc702b +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@41b2123e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@41b2123e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@486bcaa +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@486bcaa +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@5e9671e6 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@5e9671e6 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@2f3a0f37 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@2f3a0f37 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@7ec8db0c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@7ec8db0c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@4f1a5b93 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@22ee1ad7 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@5dd2ea0a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@5dd2ea0a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@65fa4a07 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@782143e8 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@2a4bd699 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@6003eb60 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@6003eb60 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@571e2f15 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@2552181d +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@51d9fd30 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@51d9fd30 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@2e7e4480 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@2e7e4480 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@8beb0dd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@8beb0dd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@8beb0dd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@3d99d327 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@3d99d327 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@3d99d327 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@233789d9 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@7f31937b +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@2f4fc18 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@2f4fc18 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@7187078a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@7187078a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@7187078a +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@6e612122 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@1d38cdde +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@3809f65d +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@3809f65d +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@717b0d81 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@717b0d81 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@717b0d81 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@16745abd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@16745abd +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@4d793390 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@4d793390 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@3a359f7c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@3a359f7c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@138b9abe +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@138b9abe +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@279e8bc0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@279e8bc0 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@23ffc910 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@35277c6c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@542beecb +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@542beecb +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@6987b74e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@22e95960 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@206b959c +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@74026b18 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@1cc81ea1 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@5cf1bbd3 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@204a02a4 +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@4777f71e +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@1b96d447 +2025-10-29 10:08:26 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 10:08:26 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [hibernate.temp.use_jdbc_metadata_defaults], use [hibernate.boot.allow_jdbc_metadata_access] instead +2025-10-29 10:08:26 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 10:08:26 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@3e371088) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@8942ece) +2025-10-29 10:08:26 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@3a89226e) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@15254569) +2025-10-29 10:08:26 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 10:08:26 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@1952ad9d +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@1952ad9d +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@542beecb` +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 10:08:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 10:08:26 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@60658389] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3ec98000] +2025-10-29 10:08:26 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 10:08:26 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 10:08:26 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 10:08:26 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@60658389] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@2c9616bb] +2025-10-29 10:08:26 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 10:08:26 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 10:08:26 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@2c9616bb] for TypeConfiguration +2025-10-29 10:08:26 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 10:08:27 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 10:08:27 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 10:08:27 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 10:08:27 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 10:08:27 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 10:08:27 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 10:08:27 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-29 10:08:27 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-29 10:08:27 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_8d75a7_1761700107769"} +2025-10-29 10:08:27 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 10:08:28 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 10:08:28 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 5190f26a-375b-4c63-a5b7-e074f5da1de5 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 10:08:28 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 10:08:28 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 10:08:28 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 10:08:28 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 10:08:28 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 10:08:28 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 10:08:28 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 6.511 seconds (process running for 6.838) +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 11 ms +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/meeting-inprogress-1/start +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: user-001 (user-001) +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/meeting-inprogress-1/start +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [meeting-inprogress-1, user-001, user-001, user-001] +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: meeting-inprogress-1, userId: user-001 +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: meeting-inprogress-1 +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: meeting-inprogress-1 +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 10:08:38 [http-nio-8082-exec-1] WARN c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 (서비스는 정상 동작) - meetingId: meeting-inprogress-1, 에러: Error in execution +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + se1_0.session_id, + se1_0.created_at, + se1_0.ended_at, + se1_0.meeting_id, + se1_0.minutes_id, + se1_0.started_at, + se1_0.started_by, + se1_0.status, + se1_0.updated_at + from + sessions se1_0 + where + se1_0.session_id=? +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=a4da7b91-0262-4559-8415-94723f602aeb, meetingId=meeting-inprogress-1 +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: meeting-inprogress-1 +2025-10-29 10:08:38 [http-nio-8082-exec-1] WARN c.u.h.m.infra.cache.CacheService - 캐시 삭제 실패 - key: meeting:meeting-inprogress-1, 에러: Error in execution +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: meeting-inprogress-1 +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version, + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes me1_0 + left join + minutes_sections s1_0 + on me1_0.minutes_id=s1_0.minutes_id + where + me1_0.minutes_id=? +2025-10-29 10:08:38 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=ff2ec992-b55c-4470-b6dd-8c1355e32b4c, meetingId=meeting-inprogress-1 +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_8d75a7_1761700107769","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 10:08:38 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_8d75a7_1761700107769"} +2025-10-29 10:08:38 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_8d75a7_1761700107769","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 10:08:38 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_8d75a7_1761700107769"} +2025-10-29 10:08:38 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_8d75a7_1761700107769","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 10:08:38 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_8d75a7_1761700107769","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_8d75a7_1761700107769","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"57e8a42d67c54b00a22b5b1df5737fc1_G6"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_8d75a7_1761700107769","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_8d75a7_1761700107769"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_8d75a7_1761700107769","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_8d75a7_1761700107769","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_8d75a7_1761700107769","entityPath":"$cbs"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_8d75a7_1761700107769","entityPath":"$cbs","subscriberId":"un_530acf_1761700119391"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_8d75a7_1761700107769","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_8d75a7_1761700107769","entityPath":"$cbs"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_8d75a7_1761700107769","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_8d75a7_1761700107769","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 10:08:39 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_8d75a7_1761700107769","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 10:08:39 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=meeting-inprogress-1 +2025-10-29 10:08:39 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=meeting-inprogress-1, sessionId=a4da7b91-0262-4559-8415-94723f602aeb +2025-10-29 10:08:39 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=meeting-inprogress-1, sessionId=a4da7b91-0262-4559-8415-94723f602aeb, minutesId=ff2ec992-b55c-4470-b6dd-8c1355e32b4c +2025-10-29 10:08:39 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert + into + sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 10:08:39 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */insert + into + minutes (created_at, created_by, finalized_at, finalized_by, meeting_id, status, title, updated_at, version, minutes_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 10:08:39 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */update meetings + set + description=?, + end_time=?, + ended_at=?, + location=?, + organizer_id=?, + purpose=?, + scheduled_at=?, + started_at=?, + status=?, + template_id=?, + title=?, + updated_at=? + where + meeting_id=? +2025-10-29 10:08:39 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */update sessions + set + ended_at=?, + meeting_id=?, + minutes_id=?, + started_at=?, + started_by=?, + status=?, + updated_at=? + where + session_id=? +2025-10-29 10:08:39 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: meeting-inprogress-1, sessionId: a4da7b91-0262-4559-8415-94723f602aeb +2025-10-29 10:08:39 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 1464ms +2025-10-29 10:08:50 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-29 10:08:50 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_8d75a7_1761700107769","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 10:08:50 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-29 10:08:50 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 10:08:50 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@2c9616bb] for TypeConfiguration +2025-10-29 10:08:50 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@7f0ee032] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@2c9616bb] +2025-10-29 10:08:50 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_8d75a7_1761700107769","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-29 10:08:50 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_8d75a7_1761700107769","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-29 10:08:50 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 10:08:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 12:19:45 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 75463 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 12:19:45 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 12:19:45 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 12:19:45 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 12:19:45 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 12:19:45 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 75 ms. Found 9 JPA repository interfaces. +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.AgendaSectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 12:19:46 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces. +2025-10-29 12:19:46 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 12:19:46 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 12:19:46 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 12:19:46 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 12:19:46 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1044 ms +2025-10-29 12:19:46 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 12:19:46 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 12:19:46 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@104cfb24 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@104cfb24 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@582ea164 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@2fccf49e +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@2fccf49e +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@7abcc0da +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@3ac406d4 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@72646d16 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@6ec2d990 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@1cfa7ee0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@1cfa7ee0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@612290d +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@612290d +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@57cff804 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@2f39b534 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@60fbc34d +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@7736c41e +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@5f911d24 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@3de383f7 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@33ccead +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@33ccead +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@42ebece0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@42ebece0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@15c4b1a4 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@15c4b1a4 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@341964d0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@341964d0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@51b59d58 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@51b59d58 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@4ca4f762 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7c5d36c3 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@31de27c +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@31de27c +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@7ebfe01a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@154b0748 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@35c00c +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@6cd7dc74 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@6cd7dc74 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@6d695ec4 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@20556566 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@e4ef4c0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@e4ef4c0 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@9746157 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@10ad95cd +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@180cc0df +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@64f33dee +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@6e90cec8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@6e90cec8 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@13f182b9 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@13f182b9 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@5ee0cf64 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@5ee0cf64 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@69c227fd +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@69c227fd +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@14c5283 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@14c5283 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@1eb7ec59 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@46748b04 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@64d53f0d +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@64d53f0d +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@69419d59 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@7affee54 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@2337bf27 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@4679554d +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@43719e98 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@49353d43 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@57e57dc5 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@5bba9949 +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@147059f8 +2025-10-29 12:19:46 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 12:19:46 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [hibernate.temp.use_jdbc_metadata_defaults], use [hibernate.boot.allow_jdbc_metadata_access] instead +2025-10-29 12:19:46 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 12:19:46 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@42028589) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@50f6ecab) +2025-10-29 12:19:46 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@fc21ff4) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@58647985) +2025-10-29 12:19:46 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 12:19:46 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@488b46da +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@488b46da +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@64d53f0d` +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 12:19:46 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 12:19:46 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@104cf647] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@7488c183] +2025-10-29 12:19:47 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 12:19:47 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 12:19:47 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 12:19:47 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@104cf647] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@3fae1ec9] +2025-10-29 12:19:47 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 12:19:47 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 12:19:47 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@3fae1ec9] for TypeConfiguration +2025-10-29 12:19:47 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 12:19:47 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 12:19:48 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-29 12:19:48 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_2d1e1b_1761707988244"} +2025-10-29 12:19:48 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 12:19:48 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 12:19:48 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 9e1a0807-54ab-4e1b-900e-b08d390a5da0 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 12:19:48 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 12:19:48 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 12:19:48 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 12:19:48 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 12:19:48 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 12:19:49 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 12:19:49 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.9 seconds (process running for 4.053) +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 3 ms +2025-10-29 12:20:09 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:20:09 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:20:09 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@31b94409 +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:09 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:20:10 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 6 +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:10 [http-nio-8082-exec-1] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:10 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:20:11 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:11 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:20:11 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_2d1e1b_1761707988244","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 12:20:11 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_2d1e1b_1761707988244"} +2025-10-29 12:20:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_2d1e1b_1761707988244","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 12:20:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_2d1e1b_1761707988244"} +2025-10-29 12:20:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_2d1e1b_1761707988244","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 12:20:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_2d1e1b_1761707988244","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_2d1e1b_1761707988244","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"c8b77acbeda743169facbf726495551f_G13"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_2d1e1b_1761707988244","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_2d1e1b_1761707988244"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_2d1e1b_1761707988244","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_2d1e1b_1761707988244","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_2d1e1b_1761707988244","entityPath":"$cbs"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_2d1e1b_1761707988244","entityPath":"$cbs","subscriberId":"un_8fab97_1761708012357"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_2d1e1b_1761707988244","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_2d1e1b_1761707988244","entityPath":"$cbs"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_2d1e1b_1761707988244","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_2d1e1b_1761707988244","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 12:20:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_2d1e1b_1761707988244","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 12:20:12 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:12 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:12 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:20:12 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:12 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:12 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:20:12 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:20:12 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 3199ms +2025-10-29 12:21:27 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:21:27 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:21:27 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:21:27 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:21:27 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:27 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:27 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:21:27 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:21:27 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:21:28 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 7 +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:21:28 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:21:28 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:29 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:29 [http-nio-8082-exec-5] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:29 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:29 [http-nio-8082-exec-5] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:21:29 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:29 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:29 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:21:29 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:29 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:29 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:21:29 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:21:29 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1687ms +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:22:55 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:22:55 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:55 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:55 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:22:55 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 8 +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:55 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:56 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:22:56 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1642ms +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:26:04 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:26:04 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:04 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:04 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:26:04 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 9 +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:04 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:26:05 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:05 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:26:06 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:06 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:06 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:26:06 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:26:06 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1654ms +2025-10-29 12:30:51 [lettuce-nioEventLoop-6-1] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 12:30:51 [lettuce-eventExecutorLoop-1-2] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 12:30:51 [lettuce-nioEventLoop-6-2] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 12:35:09 [lettuce-nioEventLoop-6-2] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 12:35:09 [lettuce-eventExecutorLoop-1-3] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 12:35:09 [lettuce-nioEventLoop-6-3] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 12:35:51 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:35:51 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:35:51 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:35:51 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:35:51 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:51 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@31b94409 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:35:51 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@49bc2c41 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:35:51 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@697bf886 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:35:51 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@f4dddf0 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:35:51 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@40fcc11 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:35:52 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:52 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:35:52 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 10 +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:52 [http-nio-8082-exec-4] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:52 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:53 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:35:53 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1838ms +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:36:22 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:36:22 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:22 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:22 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:36:22 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 11 +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:22 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:23 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:36:23 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1335ms +2025-10-29 12:38:11 [parallel-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Refreshing token.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 12:40:46 [lettuce-nioEventLoop-6-3] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 12:40:46 [lettuce-eventExecutorLoop-1-4] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 12:40:47 [lettuce-nioEventLoop-6-4] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 12:56:10 [parallel-6] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Refreshing token.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 12:58:36 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 12:58:36 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:36 [http-nio-8082-exec-7] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1af05434 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:58:36 [http-nio-8082-exec-7] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@397cc819 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:58:36 [http-nio-8082-exec-7] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@59443f06 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:58:36 [http-nio-8082-exec-7] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@46ba3c (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:58:36 [http-nio-8082-exec-7] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@3699b5b4 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 12:58:36 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:36 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:58:36 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 12 +2025-10-29 12:58:36 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [http-nio-8082-exec-7] WARN c.u.h.m.infra.cache.CacheService - AI 분석 결과 캐시 조회 실패 (새로 생성) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Redis exception +2025-10-29 12:58:37 [http-nio-8082-exec-7] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Redis exception +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:37 [http-nio-8082-exec-7] WARN c.u.h.m.infra.cache.CacheService - 패턴 캐시 삭제 실패 - pattern: minutes:list:*user-005*, 에러: Redis exception +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 12:58:37 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:37 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 12:58:37 [lettuce-eventExecutorLoop-1-5] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 12:58:38 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:38 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:38 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 12:58:38 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 12:58:38 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1685ms +2025-10-29 12:58:38 [lettuce-nioEventLoop-6-5] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 12:59:59 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-29 12:59:59 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_2d1e1b_1761707988244","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 12:59:59 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-29 12:59:59 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 12:59:59 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@3fae1ec9] for TypeConfiguration +2025-10-29 12:59:59 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@5554dd39] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@3fae1ec9] +2025-10-29 12:59:59 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 12:59:59 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 13:04:42 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 92282 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 13:04:42 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 13:04:42 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 69 ms. Found 9 JPA repository interfaces. +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.AgendaSectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:04:42 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 19 ms. Found 0 Redis repository interfaces. +2025-10-29 13:04:43 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 13:04:43 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 13:04:43 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 13:04:43 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 13:04:43 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1066 ms +2025-10-29 13:04:43 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 13:04:43 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 13:04:43 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@53c40ed6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@53c40ed6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@53c40ed6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@3a6b94b6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@3a6b94b6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@22ee7fdc +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@22ee7fdc +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@1a88d194 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@1a88d194 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@6949cead +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@6949cead +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@6949cead +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@fe13916 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@fe13916 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@fe13916 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@5ea0a7a9 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@5ea0a7a9 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@278c998 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@25e353dc +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@25e353dc +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@234ce7ff +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@780a91d0 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@3cfab340 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@3cfab340 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@3cfab340 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@3387ab0 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@3387ab0 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@3387ab0 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@4203529f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@4203529f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@7d82ca56 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@7d82ca56 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@2aaa89c2 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@2aaa89c2 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@2aaa89c2 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@5a58db42 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@217fd3c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@217fd3c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@69ac5752 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@1736273c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@1736273c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@1736273c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@ba86c53 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@36eb8e07 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@3df6494f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@1b5f960a +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@1b5f960a +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@53ddabc6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@53ddabc6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@39ac8c0c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@361f1647 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@51172948 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@6f2a3b37 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@323b0632 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@7cd8831c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@146db8a6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@146db8a6 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@2a20da9f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@2a20da9f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@40c0437f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@40c0437f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@78b8f818 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@78b8f818 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@1e9d721 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@1e9d721 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@2d3111a1 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6f2864c3 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@50ef2906 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@50ef2906 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@1f70bce5 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3ae91ab3 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@16cb6f51 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@3fc5d397 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@3fc5d397 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@25c8c71e +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@57867d96 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@1a7a21d0 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@1a7a21d0 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@bb21063 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@bb21063 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@6821c63c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@6821c63c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@6821c63c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@c2f7c63 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@c2f7c63 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@c2f7c63 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4790b897 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@3205610d +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3205610d +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@1835b783 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@456b140f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@1e6bd367 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@2bd7f686 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@3601549f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@5b2c7186 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@1b9c716f +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@f6bc75c +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@33f2cf82 +2025-10-29 13:04:43 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 13:04:43 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [hibernate.temp.use_jdbc_metadata_defaults], use [hibernate.boot.allow_jdbc_metadata_access] instead +2025-10-29 13:04:43 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 13:04:43 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@33563147) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@33239d72) +2025-10-29 13:04:43 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@19c24321) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@ba27ce6) +2025-10-29 13:04:43 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 13:04:43 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@448a6d00 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@448a6d00 +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@3205610d` +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:04:43 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:04:43 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@23ffc910] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@35277c6c] +2025-10-29 13:04:43 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 13:04:43 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 13:04:44 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 13:04:44 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@23ffc910] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@32ae890] +2025-10-29 13:04:44 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 13:04:44 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 13:04:44 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@32ae890] for TypeConfiguration +2025-10-29 13:04:44 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 13:04:44 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 13:04:44 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 13:04:44 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 13:04:44 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 13:04:44 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 13:04:44 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 13:04:44 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-29 13:04:44 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-29 13:04:44 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_1651b7_1761710684890"} +2025-10-29 13:04:44 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 13:04:45 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 13:04:45 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 15d67fea-ad0a-4f00-b8f9-ef1498a1f619 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 13:04:45 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 13:04:45 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 13:04:45 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 13:04:45 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 13:04:45 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 13:04:45 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 13:04:45 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.807 seconds (process running for 3.975) +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@3654af2b +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:04 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:04 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:05:05 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 13 +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 13:05:05 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:05 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:06 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:06 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:06 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 13:05:06 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_1651b7_1761710684890","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 13:05:06 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_1651b7_1761710684890"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_1651b7_1761710684890","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_1651b7_1761710684890"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_1651b7_1761710684890","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_1651b7_1761710684890","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_1651b7_1761710684890","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"4da57c9778884b9d9360ea1f88afaa3f_G24"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_1651b7_1761710684890","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_1651b7_1761710684890"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_1651b7_1761710684890","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_1651b7_1761710684890","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_1651b7_1761710684890","entityPath":"$cbs"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_1651b7_1761710684890","entityPath":"$cbs","subscriberId":"un_7c5a03_1761710706707"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_1651b7_1761710684890","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_1651b7_1761710684890","entityPath":"$cbs"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_1651b7_1761710684890","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_1651b7_1761710684890","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 13:05:06 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_1651b7_1761710684890","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 13:05:06 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:06 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:06 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:05:07 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:07 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:07 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:05:07 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:05:07 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 2771ms +2025-10-29 13:10:37 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-29 13:10:37 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_1651b7_1761710684890","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 13:10:37 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-29 13:10:37 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 13:10:37 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@32ae890] for TypeConfiguration +2025-10-29 13:10:37 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@793c22c9] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@32ae890] +2025-10-29 13:10:37 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 13:10:37 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 13:35:31 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 6035 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 13:35:31 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 13:35:31 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 13:35:31 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 13:35:31 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 65 ms. Found 9 JPA repository interfaces. +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.AgendaSectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:35:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 19 ms. Found 0 Redis repository interfaces. +2025-10-29 13:35:32 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 13:35:32 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 13:35:32 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 13:35:32 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 13:35:32 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1030 ms +2025-10-29 13:35:32 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 13:35:32 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 13:35:32 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@104cfb24 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@104cfb24 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@582ea164 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@582ea164 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@2fccf49e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@7abcc0da +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@7abcc0da +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@7abcc0da +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@3ac406d4 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@72646d16 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@6ec2d990 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@6ec2d990 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@1cfa7ee0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@1cfa7ee0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@612290d +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@57cff804 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@2f39b534 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@60fbc34d +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@7736c41e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@5f911d24 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@3de383f7 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@3de383f7 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@33ccead +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@33ccead +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@42ebece0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@42ebece0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@15c4b1a4 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@15c4b1a4 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@341964d0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@341964d0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@51b59d58 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@4ca4f762 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@7c5d36c3 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@7c5d36c3 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@31de27c +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7ebfe01a +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@154b0748 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@35c00c +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@35c00c +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@6cd7dc74 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6d695ec4 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@20556566 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@20556566 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@e4ef4c0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@e4ef4c0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@9746157 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@10ad95cd +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@10ad95cd +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@180cc0df +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@64f33dee +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@64f33dee +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@6e90cec8 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@6e90cec8 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@13f182b9 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@13f182b9 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@5ee0cf64 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@5ee0cf64 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@69c227fd +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@69c227fd +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@14c5283 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@1eb7ec59 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@1344f7fe +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@1344f7fe +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@5c0ece6d +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@69419d59 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@96075c0 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@2337bf27 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@4679554d +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@43719e98 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@49353d43 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@57e57dc5 +2025-10-29 13:35:32 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@5bba9949 +2025-10-29 13:35:32 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 13:35:32 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [hibernate.temp.use_jdbc_metadata_defaults], use [hibernate.boot.allow_jdbc_metadata_access] instead +2025-10-29 13:35:33 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 13:35:33 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@7c857e8f) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@42028589) +2025-10-29 13:35:33 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@50f6ecab) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@fc21ff4) +2025-10-29 13:35:33 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 13:35:33 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@515d615 +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@515d615 +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@1344f7fe` +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:35:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:35:33 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@17e8caf2] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@104cf647] +2025-10-29 13:35:33 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 13:35:33 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 13:35:33 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 13:35:33 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@17e8caf2] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@4c2812aa] +2025-10-29 13:35:33 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 13:35:33 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 13:35:33 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@4c2812aa] for TypeConfiguration +2025-10-29 13:35:33 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 13:35:33 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 13:35:34 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-test +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-test +2025-10-29 13:35:34 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_0a8109_1761712534243"} +2025-10-29 13:35:34 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-test"} +2025-10-29 13:35:34 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 13:35:34 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 3e224cf7-6899-406a-b709-8233eb964577 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 13:35:34 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 13:35:34 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 13:35:34 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 13:35:34 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 13:35:34 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 13:35:35 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 13:35:35 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.756 seconds (process running for 3.91) +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms +2025-10-29 13:35:48 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:35:48 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 13:35:48 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@7370bf92 +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:48 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 13:35:48 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 13:35:48 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 13:35:48 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:35:49 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 14 +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 13:35:49 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:50 [http-nio-8082-exec-2] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Error in execution +2025-10-29 13:35:50 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:50 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 13:35:50 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_0a8109_1761712534243","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 13:35:50 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_0a8109_1761712534243"} +2025-10-29 13:35:50 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_0a8109_1761712534243","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 13:35:50 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_0a8109_1761712534243"} +2025-10-29 13:35:50 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_0a8109_1761712534243","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 13:35:50 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_0a8109_1761712534243","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 13:35:50 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_0a8109_1761712534243","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"761f9de1d4ba4d3f9344a591dccc7a01_G31"} +2025-10-29 13:35:50 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-test"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_0a8109_1761712534243","sessionName":"hgzero-eventhub-test","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_0a8109_1761712534243"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_0a8109_1761712534243","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_0a8109_1761712534243","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_0a8109_1761712534243","entityPath":"$cbs"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_0a8109_1761712534243","entityPath":"$cbs","subscriberId":"un_53a354_1761712551078"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_0a8109_1761712534243","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_0a8109_1761712534243","entityPath":"$cbs"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_0a8109_1761712534243","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-test"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_0a8109_1761712534243","linkName":"hgzero-eventhub-test","sessionName":"hgzero-eventhub-test"} +2025-10-29 13:35:51 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_0a8109_1761712534243","linkName":"hgzero-eventhub-test","entityPath":"hgzero-eventhub-test","remoteTarget":"Target{address='hgzero-eventhub-test', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 13:35:51 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:51 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:51 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:35:51 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:51 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:51 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:35:51 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:35:51 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 3209ms +2025-10-29 13:38:22 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-test"} +2025-10-29 13:38:22 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_0a8109_1761712534243","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 13:38:22 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-test"} +2025-10-29 13:38:22 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 13:38:22 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@4c2812aa] for TypeConfiguration +2025-10-29 13:38:22 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@596f35ba] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@4c2812aa] +2025-10-29 13:38:22 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 13:38:22 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 13:39:29 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 7585 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 13:39:29 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 13:39:29 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 68 ms. Found 9 JPA repository interfaces. +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.AgendaSectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 13:39:30 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 19 ms. Found 0 Redis repository interfaces. +2025-10-29 13:39:30 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 13:39:30 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 13:39:30 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 13:39:30 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 13:39:30 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1024 ms +2025-10-29 13:39:31 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 13:39:31 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 13:39:31 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@22ee7fdc +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@22ee7fdc +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@22ee7fdc +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1a88d194 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1a88d194 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@6949cead +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@6949cead +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@fe13916 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@fe13916 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5ea0a7a9 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5ea0a7a9 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@5ea0a7a9 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@278c998 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@278c998 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@278c998 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@25e353dc +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@25e353dc +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@234ce7ff +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@780a91d0 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@780a91d0 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@3cfab340 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@3387ab0 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@4203529f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@4203529f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@4203529f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7d82ca56 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7d82ca56 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@7d82ca56 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@2aaa89c2 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@2aaa89c2 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@5a58db42 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@5a58db42 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@217fd3c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@217fd3c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@217fd3c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@69ac5752 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@1736273c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@1736273c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@ba86c53 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@36eb8e07 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@36eb8e07 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@36eb8e07 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@3df6494f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@1b5f960a +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@53ddabc6 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@39ac8c0c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@39ac8c0c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@361f1647 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@361f1647 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@51172948 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@6f2a3b37 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@323b0632 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@7cd8831c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@146db8a6 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@2a20da9f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@40c0437f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@40c0437f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@78b8f818 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@78b8f818 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@1e9d721 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@1e9d721 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@2d3111a1 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@2d3111a1 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@6f2864c3 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@6f2864c3 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@50ef2906 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@1f70bce5 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@3ae91ab3 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@3ae91ab3 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@16cb6f51 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3fc5d397 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@25c8c71e +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@57867d96 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@57867d96 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1a7a21d0 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@bb21063 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@6821c63c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@6821c63c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@c2f7c63 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@c2f7c63 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@4790b897 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@4790b897 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@4790b897 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@5cba890e +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@4e789704 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@4e789704 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@2459333a +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@1e6bd367 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@3601549f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@5b2c7186 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@1b9c716f +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@f6bc75c +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@33f2cf82 +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@bea283b +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@73852720 +2025-10-29 13:39:31 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 13:39:31 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [hibernate.temp.use_jdbc_metadata_defaults], use [hibernate.boot.allow_jdbc_metadata_access] instead +2025-10-29 13:39:31 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 13:39:31 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@19c24321) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@ba27ce6) +2025-10-29 13:39:31 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@97cb8dc) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@261b6c8c) +2025-10-29 13:39:31 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 13:39:31 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@3a66d97e +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3a66d97e +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@4e789704` +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:39:31 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 13:39:31 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7a364e1c] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@29a50a11] +2025-10-29 13:39:31 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 13:39:31 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 13:39:31 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 13:39:31 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7a364e1c] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@45bb502f] +2025-10-29 13:39:31 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 13:39:31 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 13:39:31 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@45bb502f] for TypeConfiguration +2025-10-29 13:39:31 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 13:39:31 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 13:39:32 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-test2 +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-test2 +2025-10-29 13:39:32 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_77e0ee_1761712772494"} +2025-10-29 13:39:32 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 13:39:32 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 13:39:32 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 2cefc772-de4f-4529-831a-fa50d1cb52e0 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 13:39:32 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 13:39:32 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 13:39:32 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 13:39:33 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 13:39:33 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 13:39:33 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 13:39:33 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.864 seconds (process running for 4.012) +2025-10-29 13:39:40 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 13:39:40 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 13:39:40 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-29 13:39:40 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:39:40 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 13:39:40 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:39:40 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 13:39:40 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:40 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 13:39:41 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@39c5d367 +2025-10-29 13:39:41 [http-nio-8082-exec-1] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 13:39:41 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:41 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:39:41 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 15 +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:41 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:42 [http-nio-8082-exec-1] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 13:39:42 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:42 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:43 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_77e0ee_1761712772494","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_77e0ee_1761712772494"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_77e0ee_1761712772494","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_77e0ee_1761712772494"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_77e0ee_1761712772494","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_77e0ee_1761712772494","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_77e0ee_1761712772494","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"b8bde50c1e4841fbaaa1042f563b96d9_G7"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_77e0ee_1761712772494","sessionName":"hgzero-eventhub-test2","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_77e0ee_1761712772494"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_77e0ee_1761712772494","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","subscriberId":"un_aab1b9_1761712783477"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_77e0ee_1761712772494","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-test2"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_77e0ee_1761712772494","linkName":"hgzero-eventhub-test2","sessionName":"hgzero-eventhub-test2"} +2025-10-29 13:39:43 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_77e0ee_1761712772494","linkName":"hgzero-eventhub-test2","entityPath":"hgzero-eventhub-test2","remoteTarget":"Target{address='hgzero-eventhub-test2', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:43 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:43 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:39:43 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 3135ms +2025-10-29 13:44:00 [lettuce-nioEventLoop-6-1] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 13:44:00 [lettuce-eventExecutorLoop-1-2] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 13:44:01 [lettuce-nioEventLoop-6-2] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 13:46:56 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 13:46:56 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:56 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@39c5d367 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 13:46:56 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@15b16075 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 13:46:56 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@602a6563 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 13:46:56 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@2f20b2d0 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 13:46:56 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@2087b342 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 13:46:56 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@3e2bcdef (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 13:46:56 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:56 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:46:56 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 16 +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:56 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG c.u.h.m.b.s.MinutesSectionService - Getting sections by minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:57 [http-nio-8082-exec-4] WARN c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 (서비스는 정상 동작) - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, 에러: Error in execution +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:57 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 13:46:57 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1669ms +2025-10-29 13:57:42 [parallel-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Refreshing token.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-test2"} +2025-10-29 13:57:42 [reactor-executor-1] ERROR c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Error occurred while refreshing token that is not retriable. Not scheduling refresh task. Use ActiveClientTokenManager.authorize() to schedule task again.","exception":"The messaging entity 'Invalid audience: Namespace cannot be resolved 'amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-test2'' could not be found. To know more visit https://aka.ms/sbResourceMgrExceptions. , errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:receiver, LINK_CREDIT: 0]","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-test2","audience":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-test2"} +2025-10-29 13:57:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":null,"errorDescription":null,"linkName":"hgzero-eventhub-test2","entityPath":"hgzero-eventhub-test2"} +2025-10-29 13:57:42 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Complete. Removing and disposing send link.","connectionId":"MF_77e0ee_1761712772494","linkName":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","sessionName":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","sessionName":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_77e0ee_1761712772494], entityName[hgzero-eventhub-test2] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-test2] +Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_77e0ee_1761712772494], entityName[hgzero-eventhub-test2] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-test2] + at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) + at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:136) + at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) + at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) + at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_77e0ee_1761712772494], entityName[hgzero-eventhub-test2] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-test2]","connectionId":"MF_77e0ee_1761712772494","sessionName":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_77e0ee_1761712772494","linkName":"cbs:sender","entityPath":"$cbs","state":"ACTIVE"} +2025-10-29 14:02:42 [reactor-executor-1] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 98]","connectionId":"MF_77e0ee_1761712772494","linkName":"cbs"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 98]","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","tryCount":0,"interval_ms":4511} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","sessionName":"cbs-session"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","sessionName":"cbs-session"} +2025-10-29 14:02:42 [reactor-executor-1] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_77e0ee_1761712772494], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session] +Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_77e0ee_1761712772494], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session] + at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) + at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:136) + at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) + at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) + at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_77e0ee_1761712772494], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session]","connectionId":"MF_77e0ee_1761712772494","sessionName":"cbs-session"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_77e0ee_1761712772494","errorCondition":"n/a","errorDescription":"n/a","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.TransportHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_77e0ee_1761712772494","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_77e0ee_1761712772494","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_77e0ee_1761712772494","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_77e0ee_1761712772494","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_df9f22_1761714162840"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_77e0ee_1761712772494","linkName":"hgzero-eventhub-test2","entityPath":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","sessionName":"hgzero-eventhub-test2"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_77e0ee_1761712772494","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_77e0ee_1761712772494","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_77e0ee_1761712772494","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'b8bde50c1e4841fbaaa1042f563b96d9_G7' because it did not have any active links in the past 300000 milliseconds. TrackingId:b8bde50c1e4841fbaaa1042f563b96d9_G7, SystemTracker:gateway5, Timestamp:2025-10-29T05:02:42","sessionName":"cbs-session"} +2025-10-29 14:02:42 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_77e0ee_1761712772494","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:02:47 [parallel-6] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Requesting from upstream.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","tryCount":0} +2025-10-29 14:02:47 [parallel-6] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs"} +2025-10-29 14:02:47 [parallel-6] WARN c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Retry attempts exhausted or exception was not retriable.","exception":"Cannot invoke \"java.util.List.add(Object)\" because \"this._sessions\" is null","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","tryCount":1} +2025-10-29 14:02:47 [parallel-6] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this._sessions" is null +Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this._sessions" is null + at org.apache.qpid.proton.engine.impl.ConnectionImpl.session(ConnectionImpl.java:91) + at org.apache.qpid.proton.engine.impl.ConnectionImpl.session(ConnectionImpl.java:39) + at com.azure.core.amqp.implementation.ReactorConnection.lambda$createSession$13(ReactorConnection.java:282) + at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) + at com.azure.core.amqp.implementation.ReactorConnection.lambda$createSession$14(ReactorConnection.java:279) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.request(MonoIgnoreThen.java:164) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.request(MonoPeekTerminal.java:139) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331) + at com.azure.core.amqp.implementation.AmqpChannelProcessor.requestUpstream(AmqpChannelProcessor.java:317) + at com.azure.core.amqp.implementation.AmqpChannelProcessor.lambda$onError$4(AmqpChannelProcessor.java:213) + at reactor.core.publisher.LambdaMonoSubscriber.onNext(LambdaMonoSubscriber.java:171) + at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270) + at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:02:47 [parallel-6] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Error in AMQP channel processor.","connectionId":"MF_77e0ee_1761712772494","entityPath":"$cbs","subscriberId":"un_f842c8_1761714162839"} +2025-10-29 14:07:10 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 14:07:10 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_df9f22_1761714162840","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-29 14:07:10 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-test2"} +2025-10-29 14:07:10 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 14:07:10 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@45bb502f] for TypeConfiguration +2025-10-29 14:07:10 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@31d80bc8] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@45bb502f] +2025-10-29 14:07:10 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-29 14:07:10 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-29 14:12:18 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 19994 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-29 14:12:18 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-29 14:12:18 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-29 14:12:18 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 14:12:18 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-29 14:12:18 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 66 ms. Found 9 JPA repository interfaces. +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.AgendaSectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-29 14:12:19 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 19 ms. Found 0 Redis repository interfaces. +2025-10-29 14:12:19 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-29 14:12:19 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-29 14:12:19 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-29 14:12:19 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-29 14:12:19 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1024 ms +2025-10-29 14:12:19 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-29 14:12:19 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-29 14:12:19 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@3a4cb483 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@4d770bcd +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@fe156f4 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@79b4cff +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@58ac0823 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@2d705998 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@28a3fc34 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@7582a16b +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4dd752e8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@62c46e53 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@55317c63 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@35d81657 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@42ef5216 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@3180aee +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@5d94ac8a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@288b73c1 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@104cfb24 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@104cfb24 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@5340ccb9 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@2bc8caa7 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@582ea164 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@2fccf49e +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@2fccf49e +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@7abcc0da +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@174cb0d8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@3ac406d4 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@72646d16 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@6ec2d990 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@1cfa7ee0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@1cfa7ee0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@612290d +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@612290d +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@57cff804 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@2f39b534 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@60fbc34d +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@7736c41e +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@5f911d24 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@3de383f7 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@33ccead +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@33ccead +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@42ebece0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@42ebece0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@15c4b1a4 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@15c4b1a4 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@341964d0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@341964d0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@51b59d58 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@51b59d58 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@4ca4f762 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7c5d36c3 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@31de27c +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@31de27c +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@7ebfe01a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@154b0748 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@35c00c +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@6cd7dc74 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@6cd7dc74 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@6d695ec4 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@20556566 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@e4ef4c0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@e4ef4c0 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@5ca8bd01 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@7b10472e +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@70e5737f +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@9746157 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@10ad95cd +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@69fd99c1 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@32d8710a +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@180cc0df +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@64f33dee +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@61c58320 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@10e4ee33 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@6e90cec8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@6e90cec8 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@13f182b9 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@13f182b9 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@5ee0cf64 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@5ee0cf64 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@69c227fd +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@69c227fd +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@14c5283 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@14c5283 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@1eb7ec59 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@46748b04 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@64d53f0d +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@64d53f0d +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@69419d59 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@7affee54 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@2337bf27 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@4679554d +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@43719e98 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@49353d43 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@57e57dc5 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@5bba9949 +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@147059f8 +2025-10-29 14:12:19 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-29 14:12:19 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [hibernate.temp.use_jdbc_metadata_defaults], use [hibernate.boot.allow_jdbc_metadata_access] instead +2025-10-29 14:12:19 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-29 14:12:19 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@42028589) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@50f6ecab) +2025-10-29 14:12:19 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@fc21ff4) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@58647985) +2025-10-29 14:12:19 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-29 14:12:19 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@488b46da +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@488b46da +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@64d53f0d` +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 14:12:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-29 14:12:19 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@104cf647] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@7488c183] +2025-10-29 14:12:19 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 14:12:19 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 14:12:20 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-29 14:12:20 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@104cf647] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@5d04adc1] +2025-10-29 14:12:20 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.database.action], use [jakarta.persistence.schema-generation.database.action] instead +2025-10-29 14:12:20 [main] WARN org.hibernate.orm.deprecation - HHH90000021: Encountered deprecated setting [javax.persistence.schema-generation.scripts.action], use [jakarta.persistence.schema-generation.scripts.action] instead +2025-10-29 14:12:20 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@5d04adc1] for TypeConfiguration +2025-10-29 14:12:20 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-29 14:12:20 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-29 14:12:20 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-29 14:12:20 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-29 14:12:20 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-29 14:12:20 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-29 14:12:20 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-29 14:12:20 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-29 14:12:20 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-29 14:12:21 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_1553a4_1761714741022"} +2025-10-29 14:12:21 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:12:21 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-29 14:12:21 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 9247447d-8af3-4f0f-bf32-fdfb7bf210a0 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-29 14:12:21 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-29 14:12:21 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-29 14:12:21 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-29 14:12:21 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-29 14:12:21 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-29 14:12:21 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-29 14:12:21 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.722 seconds (process running for 3.872) +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/fe337d6e-df7b-4030-9bbd-5c72c83d9c8a/finalize +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, fe337d6e-df7b-4030-9bbd-5c72c83d9c8a] +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6d5073d4 +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a by user: user-005 +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 14:12:58 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, version: 17 +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:58 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 14:12:59 [http-nio-8082-exec-2] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 42703 +2025-10-29 14:12:59 [http-nio-8082-exec-2] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: column ase1_0.decisions does not exist + Position: 118 +2025-10-29 14:12:59 [http-nio-8082-exec-2] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId 실패 - 실행시간: 164ms, 에러: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] +2025-10-29 14:12:59 [http-nio-8082-exec-2] ERROR c.u.h.m.i.c.MinutesController - 안건 정보 조회 실패 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:277) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:136) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) + at jdk.proxy2/jdk.proxy2.$Proxy174.findByMinutesIdOrderByAgendaNumber(Unknown Source) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId(AgendaSectionService.java:33) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService$$SpringCGLIB$$0.getAgendaSectionsByMinutesId() + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.buildAgendaInfoList(MinutesController.java:755) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.convertToMinutesDetailResponse(MinutesController.java:620) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes(MinutesController.java:240) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController$$SpringCGLIB$$0.finalizeMinutes() + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) + at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) + at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) + at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) + at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) + at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a] + at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91) + at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:264) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:265) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:145) + at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19) + at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:67) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:204) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:211) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:83) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:76) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:65) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:139) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:382) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:302) + at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:526) + at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:423) + at org.hibernate.query.Query.getResultList(Query.java:120) + at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:129) + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:152) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:140) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:169) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:148) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:70) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) + ... 187 common frames omitted +Caused by: org.postgresql.util.PSQLException: ERROR: column ase1_0.decisions does not exist + Position: 118 + at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733) + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) + at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517) + at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434) + at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194) + at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:137) + at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) + at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246) + ... 219 common frames omitted +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, totalCount: 0 +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 14:12:59 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:13:00 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:13:00 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:13:00 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 14:13:00 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_1553a4_1761714741022","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 14:13:00 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_1553a4_1761714741022"} +2025-10-29 14:13:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_1553a4_1761714741022","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:13:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_1553a4_1761714741022"} +2025-10-29 14:13:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_1553a4_1761714741022","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:13:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_1553a4_1761714741022","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_1553a4_1761714741022","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_1553a4_1761714741022","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_1553a4_1761714741022"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_1553a4_1761714741022","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","subscriberId":"un_947bbe_1761714781126"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_1553a4_1761714741022","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_1553a4_1761714741022","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 14:13:01 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_1553a4_1761714741022","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 14:13:01 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:13:01 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:13:01 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:13:01 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:13:01 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:13:01 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a, meetingId: 752c5d70-6e7d-47a0-9cab-d7d9240dc5a2 +2025-10-29 14:13:01 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: fe337d6e-df7b-4030-9bbd-5c72c83d9c8a +2025-10-29 14:13:01 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 3496ms +2025-10-29 14:17:18 [lettuce-nioEventLoop-6-1] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:17:18 [lettuce-eventExecutorLoop-1-2] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 14:17:18 [lettuce-nioEventLoop-6-2] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 14:21:40 [lettuce-nioEventLoop-6-2] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:21:40 [lettuce-eventExecutorLoop-1-3] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 14:21:40 [lettuce-nioEventLoop-6-3] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 14:26:00 [lettuce-nioEventLoop-6-3] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:26:00 [lettuce-eventExecutorLoop-1-4] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-29 14:26:01 [lettuce-nioEventLoop-6-4] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-29 14:31:00 [parallel-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Refreshing token.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 14:43:01 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:link:detach-forced","errorDescription":"Idle link tracker, link hgzero-eventhub-name has been idle for 1800000ms TrackingId:d4937cb3-cbee-4b91-9d4c-047577777f8a_G0, SystemTracker:hgzero-eventhub-ns:EventHub:hgzero-eventhub-name, Timestamp:2025-10-29T05:43:01","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:43:01 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_1553a4_1761714741022","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","state":"ACTIVE"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","sessionName":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","sessionName":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_1553a4_1761714741022], entityName[hgzero-eventhub-name] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-name] +Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_1553a4_1761714741022], entityName[hgzero-eventhub-name] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-name] + at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) + at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:136) + at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) + at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) + at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_1553a4_1761714741022], entityName[hgzero-eventhub-name] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-name]","connectionId":"MF_1553a4_1761714741022","sessionName":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_1553a4_1761714741022","linkName":"cbs:sender","entityPath":"$cbs","state":"ACTIVE"} +2025-10-29 14:48:02 [reactor-executor-1] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 98]","connectionId":"MF_1553a4_1761714741022","linkName":"cbs"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 98]","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","tryCount":0,"interval_ms":4511} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_1553a4_1761714741022","linkName":"cbs:receiver","entityPath":"$cbs","state":"ACTIVE"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","sessionName":"cbs-session"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","sessionName":"cbs-session"} +2025-10-29 14:48:02 [reactor-executor-1] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_1553a4_1761714741022], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session] +Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_1553a4_1761714741022], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session] + at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) + at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:136) + at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) + at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) + at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_1553a4_1761714741022], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session]","connectionId":"MF_1553a4_1761714741022","sessionName":"cbs-session"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_1553a4_1761714741022","errorCondition":"n/a","errorDescription":"n/a","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.TransportHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_1553a4_1761714741022","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_1553a4_1761714741022","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_1553a4_1761714741022","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_1553a4_1761714741022","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_1553a4_1761714741022","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","sessionName":"hgzero-eventhub-name"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_1553a4_1761714741022","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_1553a4_1761714741022","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_1553a4_1761714741022","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0' because it did not have any active links in the past 300000 milliseconds. TrackingId:7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0, SystemTracker:gateway5, Timestamp:2025-10-29T05:48:01","sessionName":"cbs-session"} +2025-10-29 14:48:02 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_1553a4_1761714741022","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:48:06 [parallel-8] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Requesting from upstream.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","tryCount":0} +2025-10-29 14:48:06 [parallel-8] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs"} +2025-10-29 14:48:06 [parallel-8] WARN c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Retry attempts exhausted or exception was not retriable.","exception":"Cannot invoke \"java.util.List.add(Object)\" because \"this._sessions\" is null","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","tryCount":1} +2025-10-29 14:48:06 [parallel-8] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this._sessions" is null +Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this._sessions" is null + at org.apache.qpid.proton.engine.impl.ConnectionImpl.session(ConnectionImpl.java:91) + at org.apache.qpid.proton.engine.impl.ConnectionImpl.session(ConnectionImpl.java:39) + at com.azure.core.amqp.implementation.ReactorConnection.lambda$createSession$13(ReactorConnection.java:282) + at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) + at com.azure.core.amqp.implementation.ReactorConnection.lambda$createSession$14(ReactorConnection.java:279) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.request(MonoIgnoreThen.java:164) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.request(MonoPeekTerminal.java:139) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331) + at com.azure.core.amqp.implementation.AmqpChannelProcessor.requestUpstream(AmqpChannelProcessor.java:317) + at com.azure.core.amqp.implementation.AmqpChannelProcessor.lambda$onError$4(AmqpChannelProcessor.java:213) + at reactor.core.publisher.LambdaMonoSubscriber.onNext(LambdaMonoSubscriber.java:171) + at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270) + at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 14:48:06 [parallel-8] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Error in AMQP channel processor.","connectionId":"MF_1553a4_1761714741022","entityPath":"$cbs","subscriberId":"un_256947_1761716882039"} +2025-10-29 14:59:02 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/reserve +2025-10-29 14:59:02 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 14:59:02 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/reserve +2025-10-29 14:59:03 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 호출 - 파라미터: [user-005, dohyunjung, dohyun.jung@example.com, com.unicorn.hgzero.meeting.infra.dto.request.CreateMeetingRequest@272cbd2e] +2025-10-29 14:59:03 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: 감리미 시스템 ITO 회의 +2025-10-29 14:59:03 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@15cb6a14 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 14:59:03 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1f78ed67 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 14:59:03 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@4156cf0f (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 14:59:03 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@f8386fb (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 14:59:03 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@43715b45 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 14:59:03 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: 감리미 시스템 ITO 회의 +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* SELECT + COUNT(m) + FROM + MeetingEntity m + WHERE + m.organizerId = :organizerId + AND m.status IN ('SCHEDULED', 'IN_PROGRESS') + AND ( + ( + m.scheduledAt < :endTime + AND m.endTime > :startTime + ) + ) */ select + count(me1_0.meeting_id) + from + meetings me1_0 + where + me1_0.organizer_id=? + and me1_0.status in ('SCHEDULED', 'IN_PROGRESS') + and ( + ( + me1_0.scheduled_at? + ) + ) +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at, + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meetings me1_0 + left join + meeting_participants p1_0 + on me1_0.meeting_id=p1_0.meeting_id + where + me1_0.meeting_id=? +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */insert + into + meetings (created_at, description, end_time, ended_at, location, organizer_id, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.gateway.ParticipantGateway - Participants saved: meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8, count=2 +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Participants saved: meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8, count=2 +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:03 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:03 [http-nio-8082-exec-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_b6a1c6_1761716882041","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 14:59:03 [http-nio-8082-exec-4] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 14:59:03 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_b6a1c6_1761716882041","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:59:03 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 14:59:03 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_b6a1c6_1761716882041","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 14:59:03 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_b6a1c6_1761716882041","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_b6a1c6_1761716882041","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"092e49bbdacc44a08ad91c848c7cb2b2_G10"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_b6a1c6_1761716882041","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_b6a1c6_1761716882041","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs","subscriberId":"un_3cf70b_1761717544071"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_b6a1c6_1761716882041","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_b6a1c6_1761716882041","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 14:59:04 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_b6a1c6_1761716882041","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 14:59:04 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com +2025-10-29 14:59:04 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com +2025-10-29 14:59:04 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8, participants count: 2 +2025-10-29 14:59:04 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8, participants=2 +2025-10-29 14:59:04 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:04 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 14:59:04 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 14:59:04 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:04 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 1489ms +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/baf42658-0794-4e1f-9fea-375fd61a19a8/start +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/baf42658-0794-4e1f-9fea-375fd61a19a8/start +2025-10-29 14:59:31 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [baf42658-0794-4e1f-9fea-375fd61a19a8, user-005, dohyunjung, dohyun.jung@example.com] +2025-10-29 14:59:31 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8, userId: user-005 +2025-10-29 14:59:31 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 조회 성공 - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] WARN c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 조회 실패 (DB에서 조회) - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8, 에러: Unrecognized field "inProgress" (class com.unicorn.hgzero.meeting.biz.domain.Meeting), not marked as ignorable (13 known properties: "scheduledAt", "endTime", "organizerId", "endedAt", "status", "startedAt", "location", "meetingId", "title", "description", "purpose", "participants", "templateId"]) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 419] (through reference chain: com.unicorn.hgzero.meeting.biz.domain.Meeting["inProgress"]) +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + se1_0.session_id, + se1_0.created_at, + se1_0.ended_at, + se1_0.meeting_id, + se1_0.minutes_id, + se1_0.started_at, + se1_0.started_by, + se1_0.status, + se1_0.updated_at + from + sessions se1_0 + where + se1_0.session_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=de4dbe83-6658-4476-a1f1-c4c4785f02f0, meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 캐시 삭제 - key: meeting:baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version, + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes me1_0 + left join + minutes_sections s1_0 + on me1_0.minutes_id=s1_0.minutes_id + where + me1_0.minutes_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=b47687ff-39e5-41dc-8a1c-e12cf3a7af33, meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8, sessionId=de4dbe83-6658-4476-a1f1-c4c4785f02f0 +2025-10-29 14:59:31 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=baf42658-0794-4e1f-9fea-375fd61a19a8, sessionId=de4dbe83-6658-4476-a1f1-c4c4785f02f0, minutesId=b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert + into + sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */insert + into + minutes (created_at, created_by, finalized_at, finalized_by, meeting_id, status, title, updated_at, version, minutes_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */update meetings + set + description=?, + end_time=?, + ended_at=?, + location=?, + organizer_id=?, + purpose=?, + scheduled_at=?, + started_at=?, + status=?, + template_id=?, + title=?, + updated_at=? + where + meeting_id=? +2025-10-29 14:59:31 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */update sessions + set + ended_at=?, + meeting_id=?, + minutes_id=?, + started_at=?, + started_by=?, + status=?, + updated_at=? + where + session_id=? +2025-10-29 14:59:32 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8, sessionId: de4dbe83-6658-4476-a1f1-c4c4785f02f0 +2025-10-29 14:59:32 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 880ms +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/b47687ff-39e5-41dc-8a1c-e12cf3a7af33/finalize +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/b47687ff-39e5-41dc-8a1c-e12cf3a7af33/finalize +2025-10-29 15:02:19 [http-nio-8082-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, b47687ff-39e5-41dc-8a1c-e12cf3a7af33] +2025-10-29 15:02:19 [http-nio-8082-exec-9] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:19 [http-nio-8082-exec-9] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:19 [http-nio-8082-exec-9] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 by user: user-005 +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 15:02:19 [http-nio-8082-exec-9] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: b47687ff-39e5-41dc-8a1c-e12cf3a7af33, version: 2 +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:19 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 15:02:20 [http-nio-8082-exec-9] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 42703 +2025-10-29 15:02:20 [http-nio-8082-exec-9] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: column ase1_0.decisions does not exist + Position: 118 +2025-10-29 15:02:20 [http-nio-8082-exec-9] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId 실패 - 실행시간: 56ms, 에러: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] +2025-10-29 15:02:20 [http-nio-8082-exec-9] ERROR c.u.h.m.i.c.MinutesController - 안건 정보 조회 실패 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:277) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:136) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) + at jdk.proxy2/jdk.proxy2.$Proxy174.findByMinutesIdOrderByAgendaNumber(Unknown Source) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId(AgendaSectionService.java:33) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService$$SpringCGLIB$$0.getAgendaSectionsByMinutesId() + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.buildAgendaInfoList(MinutesController.java:755) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.convertToMinutesDetailResponse(MinutesController.java:620) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes(MinutesController.java:240) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController$$SpringCGLIB$$0.finalizeMinutes() + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) + at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) + at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) + at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) + at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) + at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a] + at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91) + at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:264) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:265) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:145) + at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19) + at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:67) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:204) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:211) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:83) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:76) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:65) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:139) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:382) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:302) + at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:526) + at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:423) + at org.hibernate.query.Query.getResultList(Query.java:120) + at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:129) + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:152) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:140) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:169) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:148) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:70) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) + ... 187 common frames omitted +Caused by: org.postgresql.util.PSQLException: ERROR: column ase1_0.decisions does not exist + Position: 118 + at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733) + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) + at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517) + at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434) + at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194) + at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:137) + at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) + at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246) + ... 219 common frames omitted +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33, totalCount: 0 +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:02:20 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:21 [http-nio-8082-exec-9] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:21 [http-nio-8082-exec-9] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:21 [http-nio-8082-exec-9] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 15:02:21 [http-nio-8082-exec-9] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:21 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:21 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:02:21 [http-nio-8082-exec-9] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:21 [http-nio-8082-exec-9] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33, meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:21 [http-nio-8082-exec-9] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33, meetingId: baf42658-0794-4e1f-9fea-375fd61a19a8 +2025-10-29 15:02:21 [http-nio-8082-exec-9] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: b47687ff-39e5-41dc-8a1c-e12cf3a7af33 +2025-10-29 15:02:21 [http-nio-8082-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1977ms +2025-10-29 15:06:21 [reactor-executor-2] WARN c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportError","connectionId":"MF_b6a1c6_1761716882041","errorCondition":"proton:io","errorDescription":"Connection reset","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_b6a1c6_1761716882041","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_b6a1c6_1761716882041","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"ACTIVE","remoteState":"ACTIVE"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_b6a1c6_1761716882041","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_b6a1c6_1761716882041","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_b6a1c6_1761716882041","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_b6a1c6_1761716882041","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_b6a1c6_1761716882041","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_b6a1c6_1761716882041","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_b6a1c6_1761716882041","linkName":"cbs","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_b6a1c6_1761716882041","entityPath":"$cbs"} +2025-10-29 15:06:21 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_b6a1c6_1761716882041","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:06:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 15:06:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_b6a1c6_1761716882041"} +2025-10-29 15:06:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_b6a1c6_1761716882041","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_b6a1c6_1761716882041] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:06:25 [reactor-executor-2] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] +Caused by: com.azure.core.amqp.exception.AmqpException: Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] + at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) + at com.azure.core.amqp.implementation.handler.ConnectionHandler.notifyErrorContext(ConnectionHandler.java:351) + at com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:253) + at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191) + at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) + at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 15:06:25 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]","entityPath":"hgzero-eventhub-name","tryCount":0,"interval_ms":4511} +2025-10-29 15:06:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_b6a1c6_1761716882041","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:06:29 [parallel-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Requesting from upstream.","entityPath":"hgzero-eventhub-name","tryCount":0} +2025-10-29 15:06:29 [parallel-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:06:29 [parallel-2] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:06:29 [parallel-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:18:13 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/reserve +2025-10-29 15:18:13 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:18:13 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/reserve +2025-10-29 15:18:13 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 호출 - 파라미터: [user-005, dohyunjung, dohyun.jung@example.com, com.unicorn.hgzero.meeting.infra.dto.request.CreateMeetingRequest@15b81e72] +2025-10-29 15:18:13 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: 인터넷 일 상한 속도제어 관련 이슈사항 검토 회의 +2025-10-29 15:18:13 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@6c630f46 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 15:18:13 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1b8a068a (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 15:18:13 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@65951cbf (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 15:18:13 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@308bd5f1 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 15:18:13 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1ba4f9f4 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-29 15:18:14 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: 인터넷 일 상한 속도제어 관련 이슈사항 검토 회의 +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* SELECT + COUNT(m) + FROM + MeetingEntity m + WHERE + m.organizerId = :organizerId + AND m.status IN ('SCHEDULED', 'IN_PROGRESS') + AND ( + ( + m.scheduledAt < :endTime + AND m.endTime > :startTime + ) + ) */ select + count(me1_0.meeting_id) + from + meetings me1_0 + where + me1_0.organizer_id=? + and me1_0.status in ('SCHEDULED', 'IN_PROGRESS') + and ( + ( + me1_0.scheduled_at? + ) + ) +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at, + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meetings me1_0 + left join + meeting_participants p1_0 + on me1_0.meeting_id=p1_0.meeting_id + where + me1_0.meeting_id=? +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */insert + into + meetings (created_at, description, end_time, ended_at, location, organizer_id, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.gateway.ParticipantGateway - Participants saved: meetingId=603438ef-68d9-4498-9c54-bc3fe258b941, count=2 +2025-10-29 15:18:14 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Participants saved: meetingId=603438ef-68d9-4498-9c54-bc3fe258b941, count=2 +2025-10-29 15:18:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_71f49f_1761717989872","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_71f49f_1761717989872","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_71f49f_1761717989872","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_71f49f_1761717989872","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_71f49f_1761717989872","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"7e3b9b68da8b4cc78a9d8fa8a5ca955e_G0"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_71f49f_1761717989872","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_71f49f_1761717989872","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs","subscriberId":"un_419ef8_1761718695304"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_71f49f_1761717989872","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_71f49f_1761717989872","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 15:18:15 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_71f49f_1761717989872","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941, participants count: 2 +2025-10-29 15:18:15 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=603438ef-68d9-4498-9c54-bc3fe258b941, participants=2 +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 15:18:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:15 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 2353ms +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/603438ef-68d9-4498-9c54-bc3fe258b941/start +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/603438ef-68d9-4498-9c54-bc3fe258b941/start +2025-10-29 15:18:30 [http-nio-8082-exec-3] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [603438ef-68d9-4498-9c54-bc3fe258b941, user-005, dohyunjung, dohyun.jung@example.com] +2025-10-29 15:18:30 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941, userId: user-005 +2025-10-29 15:18:30 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 조회 성공 - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:30 [http-nio-8082-exec-3] WARN c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 조회 실패 (DB에서 조회) - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941, 에러: Unrecognized field "inProgress" (class com.unicorn.hgzero.meeting.biz.domain.Meeting), not marked as ignorable (13 known properties: "scheduledAt", "endTime", "organizerId", "endedAt", "status", "startedAt", "location", "meetingId", "title", "description", "purpose", "participants", "templateId"]) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 435] (through reference chain: com.unicorn.hgzero.meeting.biz.domain.Meeting["inProgress"]) +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:18:30 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + se1_0.session_id, + se1_0.created_at, + se1_0.ended_at, + se1_0.meeting_id, + se1_0.minutes_id, + se1_0.started_at, + se1_0.started_by, + se1_0.status, + se1_0.updated_at + from + sessions se1_0 + where + se1_0.session_id=? +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=dddba642-b9e6-432e-a580-8da2aedf46ad, meetingId=603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.infra.cache.CacheService - 캐시 삭제 - key: meeting:603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version, + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes me1_0 + left join + minutes_sections s1_0 + on me1_0.minutes_id=s1_0.minutes_id + where + me1_0.minutes_id=? +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=5c037d21-599d-4fa9-b712-3cdf676451c3, meetingId=603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=603438ef-68d9-4498-9c54-bc3fe258b941, sessionId=dddba642-b9e6-432e-a580-8da2aedf46ad +2025-10-29 15:18:31 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=603438ef-68d9-4498-9c54-bc3fe258b941, sessionId=dddba642-b9e6-432e-a580-8da2aedf46ad, minutesId=5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert + into + sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */insert + into + minutes (created_at, created_by, finalized_at, finalized_by, meeting_id, status, title, updated_at, version, minutes_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */update meetings + set + description=?, + end_time=?, + ended_at=?, + location=?, + organizer_id=?, + purpose=?, + scheduled_at=?, + started_at=?, + status=?, + template_id=?, + title=?, + updated_at=? + where + meeting_id=? +2025-10-29 15:18:31 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */update sessions + set + ended_at=?, + meeting_id=?, + minutes_id=?, + started_at=?, + started_by=?, + status=?, + updated_at=? + where + session_id=? +2025-10-29 15:18:31 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941, sessionId: dddba642-b9e6-432e-a580-8da2aedf46ad +2025-10-29 15:18:31 [http-nio-8082-exec-3] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 649ms +2025-10-29 15:20:57 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/5c037d21-599d-4fa9-b712-3cdf676451c3/finalize +2025-10-29 15:20:57 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:20:57 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/5c037d21-599d-4fa9-b712-3cdf676451c3/finalize +2025-10-29 15:20:57 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 5c037d21-599d-4fa9-b712-3cdf676451c3] +2025-10-29 15:20:57 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:58 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:58 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 5c037d21-599d-4fa9-b712-3cdf676451c3 by user: user-005 +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 15:20:58 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: 5c037d21-599d-4fa9-b712-3cdf676451c3, version: 2 +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:58 [http-nio-8082-exec-6] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 15:20:58 [http-nio-8082-exec-6] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 42703 +2025-10-29 15:20:58 [http-nio-8082-exec-6] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: column ase1_0.decisions does not exist + Position: 118 +2025-10-29 15:20:58 [http-nio-8082-exec-6] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId 실패 - 실행시간: 36ms, 에러: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] +2025-10-29 15:20:59 [http-nio-8082-exec-6] ERROR c.u.h.m.i.c.MinutesController - 안건 정보 조회 실패 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3 +org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:277) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:136) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) + at jdk.proxy2/jdk.proxy2.$Proxy174.findByMinutesIdOrderByAgendaNumber(Unknown Source) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId(AgendaSectionService.java:33) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService$$SpringCGLIB$$0.getAgendaSectionsByMinutesId() + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.buildAgendaInfoList(MinutesController.java:755) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.convertToMinutesDetailResponse(MinutesController.java:620) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes(MinutesController.java:240) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController$$SpringCGLIB$$0.finalizeMinutes() + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) + at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) + at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) + at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) + at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) + at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a] + at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91) + at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:264) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:265) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:145) + at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19) + at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:67) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:204) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:211) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:83) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:76) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:65) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:139) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:382) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:302) + at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:526) + at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:423) + at org.hibernate.query.Query.getResultList(Query.java:120) + at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:129) + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:152) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:140) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:169) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:148) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:70) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) + ... 187 common frames omitted +Caused by: org.postgresql.util.PSQLException: ERROR: column ase1_0.decisions does not exist + Position: 118 + at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733) + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) + at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517) + at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434) + at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194) + at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:137) + at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) + at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246) + ... 219 common frames omitted +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3, totalCount: 0 +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:59 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3, meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3, meetingId: 603438ef-68d9-4498-9c54-bc3fe258b941 +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: 5c037d21-599d-4fa9-b712-3cdf676451c3 +2025-10-29 15:20:59 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1832ms +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/reserve +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/reserve +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 호출 - 파라미터: [user-005, dohyunjung, dohyun.jung@example.com, com.unicorn.hgzero.meeting.infra.dto.request.CreateMeetingRequest@75bd2750] +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: 인터넷 일 상한 속도제어 개발협의 회의 +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: 인터넷 일 상한 속도제어 개발협의 회의 +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* SELECT + COUNT(m) + FROM + MeetingEntity m + WHERE + m.organizerId = :organizerId + AND m.status IN ('SCHEDULED', 'IN_PROGRESS') + AND ( + ( + m.scheduledAt < :endTime + AND m.endTime > :startTime + ) + ) */ select + count(me1_0.meeting_id) + from + meetings me1_0 + where + me1_0.organizer_id=? + and me1_0.status in ('SCHEDULED', 'IN_PROGRESS') + and ( + ( + me1_0.scheduled_at? + ) + ) +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at, + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meetings me1_0 + left join + meeting_participants p1_0 + on me1_0.meeting_id=p1_0.meeting_id + where + me1_0.meeting_id=? +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */insert + into + meetings (created_at, description, end_time, ended_at, location, organizer_id, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG c.u.h.m.i.gateway.ParticipantGateway - Participants saved: meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac, count=2 +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Participants saved: meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac, count=2 +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac, participants count: 2 +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac, participants=2 +2025-10-29 15:23:30 [http-nio-8082-exec-9] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:30 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 15:23:31 [http-nio-8082-exec-9] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-29 15:23:31 [http-nio-8082-exec-9] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:31 [http-nio-8082-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 681ms +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/62071c5c-0f01-4f65-a735-5bcbf27dc7ac/start +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/62071c5c-0f01-4f65-a735-5bcbf27dc7ac/start +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [62071c5c-0f01-4f65-a735-5bcbf27dc7ac, user-005, dohyunjung, dohyun.jung@example.com] +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac, userId: user-005 +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 조회 성공 - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] WARN c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 조회 실패 (DB에서 조회) - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac, 에러: Unrecognized field "inProgress" (class com.unicorn.hgzero.meeting.biz.domain.Meeting), not marked as ignorable (13 known properties: "scheduledAt", "endTime", "organizerId", "endedAt", "status", "startedAt", "location", "meetingId", "title", "description", "purpose", "participants", "templateId"]) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 428] (through reference chain: com.unicorn.hgzero.meeting.biz.domain.Meeting["inProgress"]) +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + select + se1_0.session_id, + se1_0.created_at, + se1_0.ended_at, + se1_0.meeting_id, + se1_0.minutes_id, + se1_0.started_at, + se1_0.started_by, + se1_0.status, + se1_0.updated_at + from + sessions se1_0 + where + se1_0.session_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=5998a048-2a46-46a4-ba10-bee51f64dd62, meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.infra.cache.CacheService - 캐시 삭제 - key: meeting:62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version, + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes me1_0 + left join + minutes_sections s1_0 + on me1_0.minutes_id=s1_0.minutes_id + where + me1_0.minutes_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=30065ce5-2249-45bd-8be4-7c0df3372ad9, meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac, sessionId=5998a048-2a46-46a4-ba10-bee51f64dd62 +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=62071c5c-0f01-4f65-a735-5bcbf27dc7ac, sessionId=5998a048-2a46-46a4-ba10-bee51f64dd62, minutesId=30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert + into + sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */insert + into + minutes (created_at, created_by, finalized_at, finalized_by, meeting_id, status, title, updated_at, version, minutes_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */update meetings + set + description=?, + end_time=?, + ended_at=?, + location=?, + organizer_id=?, + purpose=?, + scheduled_at=?, + started_at=?, + status=?, + template_id=?, + title=?, + updated_at=? + where + meeting_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */update sessions + set + ended_at=?, + meeting_id=?, + minutes_id=?, + started_at=?, + started_by=?, + status=?, + updated_at=? + where + session_id=? +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac, sessionId: 5998a048-2a46-46a4-ba10-bee51f64dd62 +2025-10-29 15:23:44 [http-nio-8082-exec-10] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 772ms +2025-10-29 15:24:44 [reactor-executor-3] WARN c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportError","connectionId":"MF_71f49f_1761717989872","errorCondition":"amqp:connection:framing-error","errorDescription":"connection aborted","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_71f49f_1761717989872","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connection aborted, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_71f49f_1761717989872","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"ACTIVE"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_71f49f_1761717989872","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_71f49f_1761717989872","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_71f49f_1761717989872","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_71f49f_1761717989872","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_71f49f_1761717989872","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_71f49f_1761717989872","errorCondition":"amqp:resource-limit-exceeded","errorDescription":"local-idle-timeout expired","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_71f49f_1761717989872","linkName":"cbs","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_71f49f_1761717989872","entityPath":"$cbs"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_71f49f_1761717989872","errorCondition":"amqp:connection:framing-error","errorDescription":"connection aborted","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:44 [reactor-executor-3] WARN c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Unhandled exception while processing events in reactor, report this error.","exception":"java.lang.IllegalStateException","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:24:44 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionError, Starting new reactor","exception":"java.lang.IllegalStateException, TrackingId: 21bd802c-c2b2-4b3c-890e-216dff85a739, at: 2025-10-29T15:24:44.661249+09:00[Asia/Seoul], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]","connectionId":"MF_71f49f_1761717989872","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:48 [reactor-executor-3] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:24:48 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_71f49f_1761717989872","errorCondition":"amqp:connection:framing-error","errorDescription":"connection aborted","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:48 [reactor-executor-3] WARN c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"scheduleCompletePendingTasks - exception occurred while processing events.\njava.lang.IllegalStateException\norg.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112)\norg.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324)\norg.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:292)\ncom.azure.core.amqp.implementation.ReactorExecutor.lambda$scheduleCompletePendingTasks$1(ReactorExecutor.java:158)\nreactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)\nreactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)\njava.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)\njava.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)\njava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\njava.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\njava.base/java.lang.Thread.run(Thread.java:1583)Cause: null\norg.apache.qpid.proton.engine.impl.EndpointImpl.decref(EndpointImpl.java:54)\norg.apache.qpid.proton.engine.impl.TransportImpl.unbind(TransportImpl.java:315)\norg.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:387)\norg.apache.qpid.proton.engine.BaseHandler.onTransportClosed(BaseHandler.java:84)\norg.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:200)\norg.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108)\norg.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324)\norg.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:292)\ncom.azure.core.amqp.implementation.ReactorExecutor.lambda$scheduleCompletePendingTasks$1(ReactorExecutor.java:158)\nreactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)\nreactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)\njava.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)\njava.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)\njava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)\njava.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\njava.base/java.lang.Thread.run(Thread.java:1583)","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:24:48 [reactor-executor-3] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_71f49f_1761717989872"} +2025-10-29 15:24:48 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_71f49f_1761717989872","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_71f49f_1761717989872] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:48 [reactor-executor-3] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: connection aborted, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] +Caused by: com.azure.core.amqp.exception.AmqpException: connection aborted, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] + at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) + at com.azure.core.amqp.implementation.handler.ConnectionHandler.notifyErrorContext(ConnectionHandler.java:351) + at com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:253) + at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191) + at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) + at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) + at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) + at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-29 15:24:48 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"connection aborted, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]","entityPath":"hgzero-eventhub-name","tryCount":0,"interval_ms":4511} +2025-10-29 15:24:48 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_71f49f_1761717989872","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:24:53 [parallel-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Requesting from upstream.","entityPath":"hgzero-eventhub-name","tryCount":0} +2025-10-29 15:24:53 [parallel-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:24:53 [parallel-2] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_3cbcb8_1761719093187"} +2025-10-29 15:24:53 [parallel-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:25:13 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/minutes/30065ce5-2249-45bd-8be4-7c0df3372ad9/finalize +2025-10-29 15:25:13 [http-nio-8082-exec-3] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-29 15:25:13 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/minutes/30065ce5-2249-45bd-8be4-7c0df3372ad9/finalize +2025-10-29 15:25:13 [http-nio-8082-exec-3] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 30065ce5-2249-45bd-8be4-7c0df3372ad9] +2025-10-29 15:25:13 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:13 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:13 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 30065ce5-2249-45bd-8be4-7c0df3372ad9 by user: user-005 +2025-10-29 15:25:13 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + me1_0.minutes_id, + me1_0.created_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, + me1_0.status, + me1_0.title, + me1_0.updated_at, + me1_0.version + from + minutes me1_0 + where + me1_0.minutes_id=? +2025-10-29 15:25:13 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + s1_0.minutes_id, + s1_0.id, + s1_0.content, + s1_0.created_at, + s1_0.locked, + s1_0.locked_by, + s1_0."order", + s1_0.title, + s1_0.type, + s1_0.updated_at, + s1_0.verified + from + minutes_sections s1_0 + where + s1_0.minutes_id=? +2025-10-29 15:25:13 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* SELECT + m + FROM + MinutesSectionEntity m + WHERE + m.minutesId = :minutesId + ORDER BY + m.order ASC */ select + mse1_0.id, + mse1_0.content, + mse1_0.created_at, + mse1_0.locked, + mse1_0.locked_by, + mse1_0.minutes_id, + mse1_0."order", + mse1_0.title, + mse1_0.type, + mse1_0.updated_at, + mse1_0.verified + from + minutes_sections mse1_0 + where + mse1_0.minutes_id=? + order by + mse1_0."order" +2025-10-29 15:25:14 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: 30065ce5-2249-45bd-8be4-7c0df3372ad9, version: 2 +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + count(*) + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes + set + created_by=?, + finalized_at=?, + finalized_by=?, + meeting_id=?, + status=?, + title=?, + updated_at=?, + version=? + where + minutes_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* update + for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections + set + content=?, + locked=?, + locked_by=?, + minutes_id=?, + "order"=?, + title=?, + type=?, + updated_at=?, + verified=? + where + id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] INFO c.u.h.m.b.s.AgendaSectionService - 안건 섹션 목록 조회 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + ase1_0.id, + ase1_0.agenda_number, + ase1_0.agenda_title, + ase1_0.ai_summary_short, + ase1_0.created_at, + ase1_0.decisions, + ase1_0.discussions, + ase1_0.meeting_id, + ase1_0.minutes_id, + ase1_0.opinions, + ase1_0.pending_items, + ase1_0.todos, + ase1_0.updated_at + from + agenda_sections ase1_0 + where + ase1_0.minutes_id=? + order by + ase1_0.agenda_number +2025-10-29 15:25:14 [http-nio-8082-exec-3] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 42703 +2025-10-29 15:25:14 [http-nio-8082-exec-3] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: column ase1_0.decisions does not exist + Position: 118 +2025-10-29 15:25:14 [http-nio-8082-exec-3] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId 실패 - 실행시간: 30ms, 에러: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] +2025-10-29 15:25:14 [http-nio-8082-exec-3] ERROR c.u.h.m.i.c.MinutesController - 안건 정보 조회 실패 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a]; SQL [n/a] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:277) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:136) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) + at jdk.proxy2/jdk.proxy2.$Proxy174.findByMinutesIdOrderByAgendaNumber(Unknown Source) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService.getAgendaSectionsByMinutesId(AgendaSectionService.java:33) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.biz.service.AgendaSectionService$$SpringCGLIB$$0.getAgendaSectionsByMinutesId() + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.buildAgendaInfoList(MinutesController.java:755) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.convertToMinutesDetailResponse(MinutesController.java:620) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes(MinutesController.java:240) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.infra.controller.MinutesController$$SpringCGLIB$$0.finalizeMinutes() + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) + at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) + at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) + at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) + at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) + at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [/* */ select ase1_0.id,ase1_0.agenda_number,ase1_0.agenda_title,ase1_0.ai_summary_short,ase1_0.created_at,ase1_0.decisions,ase1_0.discussions,ase1_0.meeting_id,ase1_0.minutes_id,ase1_0.opinions,ase1_0.pending_items,ase1_0.todos,ase1_0.updated_at from agenda_sections ase1_0 where ase1_0.minutes_id=? order by ase1_0.agenda_number] [ERROR: column ase1_0.decisions does not exist + Position: 118] [n/a] + at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91) + at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:264) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:265) + at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:145) + at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19) + at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:67) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:204) + at org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:211) + at org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:83) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:76) + at org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:65) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:139) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:382) + at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:302) + at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:526) + at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:423) + at org.hibernate.query.Query.getResultList(Query.java:120) + at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:129) + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:152) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:140) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:169) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:148) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:70) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) + ... 187 common frames omitted +Caused by: org.postgresql.util.PSQLException: ERROR: column ase1_0.decisions does not exist + Position: 118 + at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733) + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) + at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517) + at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434) + at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194) + at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:137) + at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) + at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) + at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246) + ... 219 common frames omitted +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + te1_0.todo_id, + te1_0.assignee_id, + te1_0.completed_at, + te1_0.created_at, + te1_0.description, + te1_0.due_date, + te1_0.meeting_id, + te1_0.minutes_id, + te1_0.priority, + te1_0.status, + te1_0.title, + te1_0.updated_at + from + todos te1_0 + where + te1_0.minutes_id=? +2025-10-29 15:25:14 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MinutesController - Todo 조회 성공 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9, totalCount: 0 +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:14 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_3cbcb8_1761719093187","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_3cbcb8_1761719093187"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_3cbcb8_1761719093187","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_3cbcb8_1761719093187"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_3cbcb8_1761719093187","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_3cbcb8_1761719093187","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_3cbcb8_1761719093187","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"981ecbc9cad64c2380fd6bc6774fe004_G8"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_3cbcb8_1761719093187","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_3cbcb8_1761719093187"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_3cbcb8_1761719093187","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_3cbcb8_1761719093187","entityPath":"$cbs","linkName":"cbs"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_3cbcb8_1761719093187","entityPath":"$cbs"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_3cbcb8_1761719093187","entityPath":"$cbs","subscriberId":"un_118f6c_1761719115522"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3cbcb8_1761719093187","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_3cbcb8_1761719093187","entityPath":"$cbs"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3cbcb8_1761719093187","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_3cbcb8_1761719093187","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-29 15:25:15 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3cbcb8_1761719093187","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG c.u.h.m.biz.service.MeetingService - Getting meeting: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:15 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.u.h.m.i.e.p.EventHubPublisher - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9, meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MinutesController - RAG용 회의록 확정 이벤트 발행 완료 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9, meetingId: 62071c5c-0f01-4f65-a735-5bcbf27dc7ac +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: 30065ce5-2249-45bd-8be4-7c0df3372ad9 +2025-10-29 15:25:15 [http-nio-8082-exec-3] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 2062ms diff --git a/rag/check_active_consumers.py b/rag/check_active_consumers.py new file mode 100644 index 0000000..e38ba26 --- /dev/null +++ b/rag/check_active_consumers.py @@ -0,0 +1,191 @@ +""" +Event Hub의 활성 Consumer(host) 조회 스크립트 + +Blob Storage의 ownership 정보를 통해 현재 어떤 Consumer가 +어떤 파티션을 읽고 있는지 확인합니다. +""" +import asyncio +import json +from datetime import datetime, timezone +from pathlib import Path +from azure.storage.blob import BlobServiceClient +from src.utils.config import load_config + + +async def check_active_consumers(): + """활성 Consumer 조회""" + + # 설정 로드 + config_path = Path(__file__).parent / "config.yaml" + config = load_config(str(config_path)) + + eventhub_config = config['eventhub'] + storage_conn_str = eventhub_config['storage']['connection_string'] + container_name = eventhub_config['storage']['container_name'] + consumer_group = eventhub_config['consumer_group'] + + print("=" * 80) + print("📊 Event Hub Active Consumers") + print("=" * 80) + print(f"Consumer Group: {consumer_group}") + print(f"Container: {container_name}") + print() + + # Blob Service Client 생성 + blob_service = BlobServiceClient.from_connection_string(storage_conn_str) + container_client = blob_service.get_container_client(container_name) + + # Ownership blob 조회 (파티션 소유권 정보) + ownership_prefix = f"{consumer_group}/ownership/" + checkpoint_prefix = f"{consumer_group}/checkpoint/" + + print("-" * 80) + print("🔍 Ownership 정보 (현재 파티션을 읽고 있는 Consumer)") + print("-" * 80) + + ownership_blobs = container_client.list_blobs(name_starts_with=ownership_prefix) + active_consumers = {} + partition_owners = {} + + for blob in ownership_blobs: + # Blob 내용 읽기 + blob_client = container_client.get_blob_client(blob.name) + content = blob_client.download_blob().readall() + + try: + ownership_data = json.loads(content) + + partition_id = blob.name.split('/')[-1] + owner_id = ownership_data.get('ownerIdentifier', 'unknown') + last_modified = blob.last_modified + + # 현재 시간과 비교하여 활성 상태 확인 (30초 이내 갱신되었으면 활성) + now = datetime.now(timezone.utc) + time_diff = (now - last_modified).total_seconds() + is_active = time_diff < 60 # 60초 이내면 활성으로 간주 + + partition_owners[partition_id] = { + 'owner_id': owner_id, + 'last_modified': last_modified, + 'is_active': is_active, + 'time_diff': time_diff + } + + # Consumer별 집계 + if owner_id not in active_consumers: + active_consumers[owner_id] = { + 'partitions': [], + 'last_seen': last_modified, + 'is_active': is_active + } + + active_consumers[owner_id]['partitions'].append(partition_id) + + # 가장 최근 시간으로 업데이트 + if last_modified > active_consumers[owner_id]['last_seen']: + active_consumers[owner_id]['last_seen'] = last_modified + active_consumers[owner_id]['is_active'] = is_active + + except json.JSONDecodeError: + print(f"⚠️ 파티션 {partition_id}: 파싱 실패") + continue + + # 파티션별 출력 + if partition_owners: + print() + for partition_id, info in sorted(partition_owners.items()): + status = "🟢 ACTIVE" if info['is_active'] else "🔴 INACTIVE" + print(f"파티션 {partition_id}:") + print(f" 상태: {status}") + print(f" Owner ID: {info['owner_id'][:40]}...") + print(f" 마지막 갱신: {info['last_modified'].strftime('%Y-%m-%d %H:%M:%S')} UTC") + print(f" 경과 시간: {int(info['time_diff'])}초 전") + print() + else: + print("⚠️ 소유권 정보가 없습니다. Consumer가 실행되지 않았을 수 있습니다.") + print() + + # Consumer별 요약 + print("-" * 80) + print("📋 Consumer 요약") + print("-" * 80) + + if active_consumers: + for idx, (owner_id, info) in enumerate(active_consumers.items(), 1): + status = "🟢 ACTIVE" if info['is_active'] else "🔴 INACTIVE" + print(f"\nConsumer #{idx} {status}") + print(f" Owner ID: {owner_id}") + print(f" 소유 파티션: {', '.join(info['partitions'])}") + print(f" 파티션 개수: {len(info['partitions'])}") + print(f" 마지막 활동: {info['last_seen'].strftime('%Y-%m-%d %H:%M:%S')} UTC") + else: + print("\n활성 Consumer가 없습니다.") + + # Checkpoint 정보 조회 + print() + print("-" * 80) + print("📍 Checkpoint 정보 (마지막 읽은 위치)") + print("-" * 80) + + checkpoint_blobs = container_client.list_blobs(name_starts_with=checkpoint_prefix) + + for blob in checkpoint_blobs: + blob_client = container_client.get_blob_client(blob.name) + content = blob_client.download_blob().readall() + + try: + checkpoint_data = json.loads(content) + + partition_id = blob.name.split('/')[-1] + offset = checkpoint_data.get('offset', 'N/A') + sequence_number = checkpoint_data.get('sequenceNumber', 'N/A') + + print(f"\n파티션 {partition_id}:") + print(f" Offset: {offset}") + print(f" Sequence Number: {sequence_number}") + + except json.JSONDecodeError: + continue + + print() + print("=" * 80) + + # 모든 Consumer Group 조회 + print() + print("-" * 80) + print("📂 모든 Consumer Groups") + print("-" * 80) + + all_blobs = container_client.list_blobs() + consumer_groups = set() + + for blob in all_blobs: + # Consumer Group 이름은 첫 번째 경로 세그먼트 + parts = blob.name.split('/') + if len(parts) > 0: + consumer_groups.add(parts[0]) + + if consumer_groups: + print() + for cg in sorted(consumer_groups): + current = " ⬅️ 현재" if cg == consumer_group else "" + print(f" - {cg}{current}") + else: + print("\nConsumer Group 정보가 없습니다.") + + print() + print("=" * 80) + + +def main(): + """메인 함수""" + try: + asyncio.run(check_active_consumers()) + except Exception as e: + print(f"❌ 에러 발생: {str(e)}") + import traceback + traceback.print_exc() + + +if __name__ == "__main__": + main() diff --git a/rag/config.yaml b/rag/config.yaml index bf8ffe7..449119f 100644 --- a/rag/config.yaml +++ b/rag/config.yaml @@ -51,7 +51,7 @@ eventhub: # Application Settings app: - name: "Vector DB Service" + name: "RAG Service" version: "1.0.0" debug: true log_level: INFO @@ -84,6 +84,19 @@ related_documents: ttl: 3600 # 1시간 prefix: "doc:" +# RAG 회의록 설정 +rag_minutes: + # 검색 설정 + search: + top_k: 5 + similarity_threshold: 0.7 + + # 캐싱 설정 (full_content 조회 결과 캐싱) + cache: + ttl: 1800 # 30분 (회의록은 변경이 적으므로 짧게 설정) + prefix: "minutes:" + related_ttl: 3600 # 연관 회의록 검색 결과는 1시간 + # 데이터 로딩 data: terms_dir: design/aidata diff --git a/rag/docs/api-related-minutes.md b/rag/docs/api-related-minutes.md new file mode 100644 index 0000000..3f97195 --- /dev/null +++ b/rag/docs/api-related-minutes.md @@ -0,0 +1,291 @@ +# 연관 회의록 조회 API 구현 문서 + +## 📋 개요 + +**준호** (Backend Developer) + +회의록 ID를 기준으로 유사한 연관 회의록을 조회하는 API를 구현했습니다. + +## 🎯 구현 방식: Option A (DB 조회 후 벡터 검색) + +### 선택 이유 +- ✅ **정확도 우선**: full_content 기반 검색으로 높은 정확도 보장 +- ✅ **확장성**: 향후 full_content 기반 추가 기능 확장 용이 +- ✅ **성능 최적화**: Redis 캐싱으로 DB 조회 오버헤드 최소화 + +### 처리 흐름 + +``` +1. 요청 수신 + ↓ +2. Redis 캐시 조회 (연관 회의록 결과) + ├─ HIT → 즉시 반환 + └─ MISS → 3단계로 진행 + ↓ +3. Redis 캐시 조회 (회의록 full_content) + ├─ HIT → 5단계로 진행 + └─ MISS → 4단계로 진행 + ↓ +4. DB 조회 (rag_minutes 테이블) + ├─ full_content 획득 + └─ Redis에 캐싱 (TTL: 30분) + ↓ +5. 벡터 임베딩 생성 (Azure OpenAI) + ↓ +6. 벡터 유사도 검색 (자기 자신 제외) + ↓ +7. 결과 Redis 캐싱 (TTL: 1시간) + ↓ +8. 응답 반환 +``` + +## 🔧 구현 상세 + +### 1. 데이터 모델 추가 + +**파일**: `rag/src/models/minutes.py` + +```python +class RelatedMinutesRequest(BaseModel): + """연관 회의록 조회 요청""" + minute_id: str # 기준 회의록 ID + meeting_title: str # 회의 제목 (현재 미사용) + summary: str # 회의록 요약 (현재 미사용) + top_k: int = 5 # 반환할 최대 결과 수 + similarity_threshold: float = 0.7 # 최소 유사도 임계값 + +class RelatedMinutesResponse(BaseModel): + """연관 회의록 조회 응답""" + minutes: RagMinutes # 회의록 정보 + similarity_score: float # 유사도 점수 (0.0 ~ 1.0) +``` + +### 2. DB 쿼리 함수 개선 + +**파일**: `rag/src/db/rag_minutes_db.py` + +**수정 내용**: `search_by_vector()` 함수에 `exclude_minutes_id` 파라미터 추가 + +```python +def search_by_vector( + self, + query_embedding: List[float], + top_k: int = 5, + similarity_threshold: float = 0.7, + exclude_minutes_id: Optional[str] = None # 자기 자신 제외 +) -> List[Dict[str, Any]]: + """벡터 유사도 검색""" + # WHERE 절에 minutes_id != %s 조건 추가 + # 자기 자신을 결과에서 제외 +``` + +### 3. Redis 캐싱 유틸리티 구현 + +**파일**: `rag/src/utils/redis_cache.py` + +**주요 기능**: +- `get(key)`: 캐시 조회 +- `set(key, value, ttl)`: 캐시 저장 +- `delete(key)`: 캐시 삭제 +- `delete_pattern(pattern)`: 패턴 매칭 일괄 삭제 + +**특징**: +- Redis 연결 실패 시 자동으로 캐싱 비활성화 (서비스 장애 방지) +- JSON 직렬화/역직렬화 자동 처리 + +### 4. 설정 추가 + +**파일**: `rag/config.yaml` + +```yaml +rag_minutes: + search: + top_k: 5 + similarity_threshold: 0.7 + cache: + ttl: 1800 # 회의록 조회 결과: 30분 + prefix: "minutes:" + related_ttl: 3600 # 연관 회의록 검색 결과: 1시간 +``` + +### 5. API 엔드포인트 구현 + +**파일**: `rag/src/api/main.py` + +**엔드포인트**: `POST /api/minutes/related` + +**Request Body**: +```json +{ + "minute_id": "MIN-2025-001", + "meeting_title": "2025 Q1 마케팅 전략 회의", + "summary": "2025년 1분기 마케팅 전략 수립을 위한 회의", + "top_k": 5, + "similarity_threshold": 0.7 +} +``` + +**Response**: +```json +[ + { + "minutes": { + "meeting_id": "MTG-2024-050", + "title": "2024 Q4 마케팅 성과 분석", + "minutes_id": "MIN-2024-050", + "full_content": "...", + ... + }, + "similarity_score": 0.85 + }, + ... +] +``` + +## ⚡ 성능 최적화 + +### 2단계 캐싱 전략 + +1. **회의록 조회 결과 캐싱** (TTL: 30분) + - 키: `minutes:{minute_id}` + - DB 조회 횟수 감소 + +2. **연관 회의록 검색 결과 캐싱** (TTL: 1시간) + - 키: `minutes:related:{minute_id}:{top_k}:{threshold}` + - 벡터 검색 및 임베딩 생성 비용 절감 + +### 예상 성능 개선 + +| 케이스 | 처리 시간 | 비고 | +|--------|----------|------| +| 캐시 MISS (최초 요청) | ~2-3초 | DB 조회 + 임베딩 생성 + 벡터 검색 | +| 회의록 캐시 HIT | ~1-2초 | 임베딩 생성 + 벡터 검색 | +| 연관 회의록 캐시 HIT | ~50ms | 캐시에서 즉시 반환 | + +## 🔍 사용 예시 + +### Python (requests) + +```python +import requests + +url = "http://localhost:8000/api/minutes/related" +data = { + "minute_id": "MIN-2025-001", + "meeting_title": "2025 Q1 마케팅 전략 회의", + "summary": "2025년 1분기 마케팅 전략 수립", + "top_k": 5, + "similarity_threshold": 0.7 +} + +response = requests.post(url, json=data) +related_minutes = response.json() + +for item in related_minutes: + print(f"제목: {item['minutes']['title']}") + print(f"유사도: {item['similarity_score']:.2f}") + print("---") +``` + +### curl + +```bash +curl -X POST "http://localhost:8000/api/minutes/related" \ + -H "Content-Type: application/json" \ + -d '{ + "minute_id": "MIN-2025-001", + "meeting_title": "2025 Q1 마케팅 전략 회의", + "summary": "2025년 1분기 마케팅 전략 수립", + "top_k": 5, + "similarity_threshold": 0.7 + }' +``` + +## 🧪 테스트 시나리오 + +### 1. 정상 케이스 +- ✅ 존재하는 minute_id로 요청 +- ✅ 유사한 회의록 5개 반환 +- ✅ 자기 자신은 결과에서 제외 + +### 2. 캐싱 동작 확인 +- ✅ 최초 요청: 캐시 MISS → DB 조회 +- ✅ 2번째 요청: 캐시 HIT → 즉시 반환 +- ✅ TTL 경과 후: 캐시 MISS → 재조회 + +### 3. 에러 케이스 +- ❌ 존재하지 않는 minute_id → 404 오류 +- ❌ 잘못된 요청 형식 → 422 오류 + +## 📊 데이터베이스 영향 + +### 쿼리 패턴 + +```sql +-- 1. 회의록 조회 (캐시 MISS 시) +SELECT * FROM rag_minutes WHERE minutes_id = 'MIN-2025-001'; + +-- 2. 벡터 유사도 검색 (캐시 MISS 시) +SELECT *, + 1 - (embedding <=> '{vector}'::vector) as similarity_score +FROM rag_minutes +WHERE embedding IS NOT NULL + AND 1 - (embedding <=> '{vector}'::vector) >= 0.7 + AND minutes_id != 'MIN-2025-001' -- 자기 자신 제외 +ORDER BY embedding <=> '{vector}'::vector +LIMIT 5; +``` + +### 인덱스 활용 + +- `minutes_id`: Primary Key 인덱스 활용 +- `embedding`: pgvector 인덱스 활용 (IVFFlat 또는 HNSW) + +## 🔐 보안 고려사항 + +1. **SQL Injection 방지**: psycopg2 파라미터 바인딩 사용 +2. **Rate Limiting**: 향후 추가 권장 (분당 요청 수 제한) +3. **인증/인가**: 향후 JWT 토큰 기반 인증 추가 권장 + +## 🚀 향후 개선 사항 + +### 1. Hybrid 검색 지원 (Option B 통합) +- summary를 활용한 빠른 1차 검색 +- full_content로 정밀한 2차 검색 +- 적응형 임계값 조정 + +### 2. 성능 모니터링 +- 캐시 히트율 추적 +- API 응답 시간 측정 +- 벡터 검색 성능 분석 + +### 3. 검색 품질 개선 +- 시간 가중치 적용 (최근 회의록 우선) +- 부서/팀별 필터링 옵션 +- 주제별 카테고리 분류 + +## 📝 파일 변경 목록 + +| 파일 | 변경 유형 | 설명 | +|------|----------|------| +| `rag/src/models/minutes.py` | 수정 | Request/Response 모델 추가 | +| `rag/src/db/rag_minutes_db.py` | 수정 | exclude_minutes_id 파라미터 추가 | +| `rag/src/utils/redis_cache.py` | 신규 | Redis 캐싱 유틸리티 | +| `rag/src/api/main.py` | 수정 | API 엔드포인트 추가 | +| `rag/config.yaml` | 수정 | rag_minutes 설정 추가 | + +## ✅ 구현 완료 체크리스트 + +- [x] Request/Response 모델 정의 +- [x] DB 쿼리 함수 개선 (자기 자신 제외) +- [x] Redis 캐싱 유틸리티 구현 +- [x] API 엔드포인트 구현 +- [x] 2단계 캐싱 전략 적용 +- [x] 설정 파일 업데이트 +- [x] 문서 작성 + +--- + +**작성자**: 준호 (Backend Developer) +**작성일**: 2025-10-29 +**버전**: 1.0.0 diff --git a/rag/docs/basic_tier_workaround.md b/rag/docs/basic_tier_workaround.md new file mode 100644 index 0000000..2f2c6a6 --- /dev/null +++ b/rag/docs/basic_tier_workaround.md @@ -0,0 +1,356 @@ +# Event Hub Basic Tier 제약사항 및 해결 방법 + +## 현재 상황 + +``` +Event Hub Namespace: hgzero-eventhub-ns +Resource Group: rg-digitalgarage-02 +Location: koreacentral +Tier: Basic ⚠️ +Status: Active +``` + +## Basic Tier 제약사항 + +| 기능 | Basic | Standard | Premium | +|------|-------|----------|---------| +| **Consumer Groups** | **1개만** ($Default) | **최대 20개** | 최대 100개 | +| 파티션 | 최대 32개 | 최대 32개 | 최대 100개 | +| 메시지 보존 | 1일 | 7일 | 90일 | +| Capture | ❌ | ✅ | ✅ | +| 가격 | 낮음 | 중간 | 높음 | + +**Basic Tier에서는 `$Default` Consumer Group만 사용할 수 있습니다.** + +--- + +## 해결 방법 + +### 방법 1: Tier 업그레이드 (권장) ⭐️ + +Event Hub를 Basic → Standard로 업그레이드하면 최대 20개의 Consumer Group 사용 가능 + +#### 업그레이드 방법 + +**Azure Portal:** +1. Event Hub Namespace (hgzero-eventhub-ns) 페이지로 이동 +2. 왼쪽 메뉴에서 "Pricing tier" 클릭 +3. "Standard" 선택 +4. "Apply" 버튼 클릭 +5. 약 1-2분 후 적용 완료 + +**Azure CLI:** +```bash +az eventhubs namespace update \ + --resource-group rg-digitalgarage-02 \ + --name hgzero-eventhub-ns \ + --sku Standard \ + --capacity 1 +``` + +**비용:** +- Basic: ~$0.015/시간 (~$11/월) +- Standard: ~$0.03/시간 (~$22/월) +- 차이: 약 $11/월 추가 + +**장점:** +- ✅ 여러 Consumer Group 사용 가능 +- ✅ 메시지 보존 기간 7일로 증가 +- ✅ Capture 기능 사용 가능 +- ✅ 영구적 해결책 + +**단점:** +- ❌ 비용 증가 (약 2배) +- ❌ 관리자 승인 필요할 수 있음 + +--- + +### 방법 2: $Default Consumer Group 공유 사용 (임시) + +개발/테스트 시 기존 프로덕션 Consumer를 잠시 중지하고 테스트 + +#### 실행 순서 + +**Step 1: 프로덕션 Consumer 중지** +```bash +# 기존 Consumer 프로세스 확인 +ps aux | grep "start_consumer.py" | grep -v grep + +# PID 확인 후 종료 +kill + +# 예시 +kill 51257 +``` + +**Step 2: 테스트 Consumer 실행** +```bash +cd /Users/daewoong/home/workspace/HGZero/rag +python start_consumer.py +``` + +**Step 3: 테스트 완료 후 프로덕션 재시작** +```bash +# Ctrl+C로 테스트 Consumer 종료 + +# 프로덕션 Consumer 재시작 +python start_consumer.py & +``` + +**장점:** +- ✅ 추가 비용 없음 +- ✅ 즉시 테스트 가능 +- ✅ 권한 불필요 + +**단점:** +- ❌ 프로덕션 서비스 중단 +- ❌ 동시 실행 불가 +- ❌ 임시 방법 + +**주의사항:** +- ⚠️ 프로덕션 환경에서만 사용 중이라면 비추천 +- ⚠️ 업무 시간 외에만 테스트 +- ⚠️ 테스트 후 반드시 프로덕션 재시작 확인 + +--- + +### 방법 3: Checkpoint 위치 변경으로 독립 실행 + +동일한 Consumer Group을 사용하되, checkpoint 저장 위치를 다르게 하여 독립적으로 실행 + +#### 구현 방법 + +**Step 1: 별도 Storage Container 생성** + +Azure Portal: +1. Storage Account (hgzerostorage) 접속 +2. "Containers" 클릭 +3. "+ Container" 클릭 +4. 이름: `hgzero-checkpoints-dev` +5. Create + +**Step 2: config_dev.yaml 생성** + +```yaml +# config_dev.yaml +eventhub: + connection_string: ${EVENTHUB_CONNECTION_STRING} + name: ${EVENTHUB_NAME} + consumer_group: "$Default" # 동일 + storage: + connection_string: ${AZURE_STORAGE_CONNECTION_STRING} + container_name: "hgzero-checkpoints-dev" # 다른 컨테이너! + +# 나머지는 config.yaml과 동일 +``` + +**Step 3: 개발용 Consumer 실행 스크립트** + +```python +# start_dev_consumer.py +import asyncio +from pathlib import Path + +from src.utils.config import load_config +from src.db.rag_minutes_db import RagMinutesDB +from src.db.postgres_vector import PostgresVectorDB +from src.utils.embedding import EmbeddingGenerator +from src.services.eventhub_consumer import start_consumer + +async def main(): + # 개발용 설정 파일 로드 + config_path = Path(__file__).parent / "config_dev.yaml" + config = load_config(str(config_path)) + + # ... 나머지는 start_consumer.py와 동일 + +if __name__ == "__main__": + asyncio.run(main()) +``` + +**Step 4: 실행** + +```bash +# Terminal 1: 프로덕션 Consumer +python start_consumer.py + +# Terminal 2: 개발 Consumer (다른 checkpoint) +python start_dev_consumer.py +``` + +**장점:** +- ✅ 동시 실행 가능 +- ✅ 독립적인 checkpoint +- ✅ 추가 비용 거의 없음 (Storage만) +- ✅ Tier 업그레이드 불필요 + +**단점:** +- ❌ 동일 파티션을 두 Consumer가 읽으려 하면 ownership 경쟁 +- ❌ 한쪽만 이벤트 수신 (ownership을 가진 쪽) +- ❌ 완전한 독립 실행은 아님 + +**결론:** +- 이 방법은 **checkpoint만 독립**이고, **여전히 ownership 경쟁** 발생 +- **동시 실행은 불가능** +- 권장하지 않음 ❌ + +--- + +### 방법 4: 로컬 개발 환경에서만 테스트 + +Event Hub 대신 로컬 메시지 큐 사용 + +#### 옵션 A: Azure Event Hub Emulator (권장) + +현재는 공식 Emulator가 없으므로, Kafka나 RabbitMQ로 대체 + +#### 옵션 B: 메모리 큐로 테스트 + +```python +# test_consumer_local.py +import asyncio +import json +from queue import Queue + +# 로컬 메모리 큐 +local_queue = Queue() + +async def test_event_processing(): + """로컬에서 이벤트 처리 로직만 테스트""" + + # 테스트 이벤트 생성 + test_event = { + 'eventType': 'MINUTES_FINALIZED', + 'data': { + 'meetingId': 'test-001', + 'title': '테스트 회의', + 'minutesId': 'minutes-001', + 'sections': [] + } + } + + # Consumer의 _process_minutes_event 로직만 테스트 + from src.services.eventhub_consumer import EventHubConsumer + + # 실제 처리 로직 테스트 + # ... + +asyncio.run(test_event_processing()) +``` + +**장점:** +- ✅ 완전 독립 실행 +- ✅ 무료 +- ✅ 빠른 테스트 + +**단점:** +- ❌ 실제 Event Hub와 다른 환경 +- ❌ 통합 테스트 불가 + +--- + +## 권장 솔루션 + +### 개발 단계별 권장 방법 + +| 단계 | 권장 방법 | 이유 | +|------|----------|------| +| **로컬 개발** | 방법 4 (메모리 큐) | 빠르고 비용 없음 | +| **통합 테스트** | 방법 2 ($Default 공유) | 실제 환경, 단기간 | +| **지속적 개발** | 방법 1 (Tier 업그레이드) | 영구 해결, 동시 실행 | +| **프로덕션** | 방법 1 (Standard Tier) | 고가용성, 확장성 | + +### 최종 권장: Tier 업그레이드 + +**이유:** +1. ✅ 여러 Consumer Group으로 개발/테스트 분리 +2. ✅ 메시지 보존 기간 증가 (1일 → 7일) +3. ✅ 향후 확장 가능 (Capture 등) +4. ✅ 프로덕션 안정성 향상 + +**비용 대비 효과:** +- 월 $11 추가로 개발 생산성 향상 +- 프로덕션 중단 없이 테스트 가능 +- 장기적으로 더 경제적 + +--- + +## 실행 가이드 + +### 즉시 테스트가 필요한 경우 (방법 2) + +```bash +# 1. 프로덕션 Consumer 중지 +ps aux | grep "start_consumer.py" | grep -v grep +kill + +# 2. 테스트 실행 +cd /Users/daewoong/home/workspace/HGZero/rag +python start_consumer.py + +# 3. 테스트 완료 후 +# Ctrl+C로 종료 + +# 4. 프로덕션 재시작 +python start_consumer.py & +``` + +### Tier 업그레이드 후 (방법 1) + +```bash +# 1. Tier 업그레이드 (Azure Portal 또는 CLI) +az eventhubs namespace update \ + --resource-group rg-digitalgarage-02 \ + --name hgzero-eventhub-ns \ + --sku Standard + +# 2. Consumer Group 생성 +az eventhubs eventhub consumer-group create \ + --resource-group rg-digitalgarage-02 \ + --namespace-name hgzero-eventhub-ns \ + --eventhub-name hgzero-eventhub-name \ + --name development + +# 3. config.yaml 수정 +# consumer_group: "development" + +# 4. 프로덕션은 계속 실행, 개발 Consumer 별도 실행 +python start_consumer.py +``` + +--- + +## 요약 + +### 현재 상황 +- ❌ Event Hub Tier: **Basic** +- ❌ Consumer Group: **$Default만 사용 가능** +- ❌ 추가 Consumer Group 생성 불가 + +### 해결책 +1. **단기**: 프로덕션 Consumer 잠시 중지하고 테스트 (방법 2) +2. **장기**: Standard Tier로 업그레이드 (방법 1) ⭐️ + +### 다음 액션 +관리자에게 **Tier 업그레이드** 요청하거나, +긴급하다면 **프로덕션 중지 후 테스트** 진행 + +--- + +## 참고: Tier 비교 + +``` +Basic Tier (현재) +├─ Consumer Groups: 1개 ($Default만) +├─ 보존 기간: 1일 +├─ 비용: ~$11/월 +└─ ❌ 개발/테스트 분리 불가 + +Standard Tier (권장) +├─ Consumer Groups: 최대 20개 ✅ +├─ 보존 기간: 7일 +├─ 비용: ~$22/월 (+$11) +└─ ✅ 개발/테스트 완전 분리 +``` + +Standard Tier로 업그레이드하는 것을 강력히 권장합니다! 🎯 diff --git a/rag/docs/check_consumers_guide.md b/rag/docs/check_consumers_guide.md new file mode 100644 index 0000000..58def93 --- /dev/null +++ b/rag/docs/check_consumers_guide.md @@ -0,0 +1,367 @@ +# Event Hub Active Consumers 조회 가이드 + +## 개요 + +Event Hub를 현재 읽고 있는 Consumer(host)를 확인하는 방법을 설명합니다. + +## 방법 1: 제공된 스크립트 사용 (가장 쉬움) ⭐️ + +### 실행 + +```bash +cd /Users/daewoong/home/workspace/HGZero/rag +python check_active_consumers.py +``` + +### 출력 정보 + +``` +📊 Event Hub Active Consumers +================================================================================ +Consumer Group: $Default +Container: hgzero-checkpoints + +🔍 Ownership 정보 (현재 파티션을 읽고 있는 Consumer) +-------------------------------------------------------------------------------- +파티션 0: + 상태: 🟢 ACTIVE + Owner ID: 73fda457-b555-4af5-873a-54a2baa5fd95... + 마지막 갱신: 2025-10-29 12:35:42 UTC + 경과 시간: 15초 전 + +📋 Consumer 요약 +-------------------------------------------------------------------------------- +Consumer #1 🟢 ACTIVE + Owner ID: 73fda457-b555-4af5-873a-54a2baa5fd95 + 소유 파티션: 0 + 파티션 개수: 1 + 마지막 활동: 2025-10-29 12:35:42 UTC + +📍 Checkpoint 정보 (마지막 읽은 위치) +-------------------------------------------------------------------------------- +파티션 0: + Offset: 120259090624 + Sequence Number: 232 +``` + +--- + +## 방법 2: Python 코드로 직접 조회 + +### 스크립트 예시 + +```python +import asyncio +import json +from datetime import datetime, timezone +from pathlib import Path +from azure.storage.blob import BlobServiceClient +from src.utils.config import load_config + + +async def check_consumers(): + """활성 Consumer 조회""" + + # 설정 로드 + config_path = Path('config.yaml') + config = load_config(str(config_path)) + + eventhub_config = config['eventhub'] + storage_conn_str = eventhub_config['storage']['connection_string'] + container_name = eventhub_config['storage']['container_name'] + consumer_group = eventhub_config['consumer_group'] + + # Blob Service Client + blob_service = BlobServiceClient.from_connection_string(storage_conn_str) + container = blob_service.get_container_client(container_name) + + # Ownership 정보 조회 + ownership_prefix = f"{consumer_group}/ownership/" + + print(f"Consumer Group: {consumer_group}\n") + + for blob in container.list_blobs(name_starts_with=ownership_prefix): + blob_client = container.get_blob_client(blob.name) + content = blob_client.download_blob().readall() + + ownership_data = json.loads(content) + partition_id = blob.name.split('/')[-1] + owner_id = ownership_data.get('ownerIdentifier', 'unknown') + + # 활성 상태 확인 (60초 이내 갱신) + now = datetime.now(timezone.utc) + time_diff = (now - blob.last_modified).total_seconds() + is_active = time_diff < 60 + + status = "🟢 ACTIVE" if is_active else "🔴 INACTIVE" + + print(f"파티션 {partition_id}: {status}") + print(f" Owner: {owner_id}") + print(f" 갱신: {int(time_diff)}초 전\n") + + +asyncio.run(check_consumers()) +``` + +--- + +## 방법 3: Azure Portal에서 확인 + +### 단계 + +1. **Azure Portal** 접속 (https://portal.azure.com) +2. **Storage Account** 이동 + - "hgzerostorage" 검색 +3. **Containers** 클릭 + - "hgzero-checkpoints" 선택 +4. **폴더 구조 확인** + ``` + $Default/ + ├── ownership/ + │ └── 0 ← 파티션 0의 소유권 정보 + └── checkpoint/ + └── 0 ← 파티션 0의 checkpoint + ``` +5. **ownership/0 파일 다운로드** 또는 **View** 클릭 +6. **JSON 내용 확인** + ```json + { + "ownerIdentifier": "73fda457-b555-4af5-873a-54a2baa5fd95", + "lastModifiedTime": "2025-10-29T12:35:42Z", + ... + } + ``` + +### 정보 해석 + +- **ownerIdentifier**: 현재 Consumer의 고유 ID +- **lastModifiedTime**: 마지막 lease 갱신 시간 + - 60초 이내: 🟢 활성 상태 + - 60초 이상: 🔴 비활성 (Consumer 종료됨) + +--- + +## 방법 4: Azure CLI로 조회 + +### Blob 목록 확인 + +```bash +# Storage Account 키 조회 +az storage account keys list \ + --resource-group rg-digitalgarage-02 \ + --account-name hgzerostorage \ + --query "[0].value" -o tsv + +# Blob 목록 조회 +az storage blob list \ + --account-name hgzerostorage \ + --container-name hgzero-checkpoints \ + --prefix "\$Default/ownership/" \ + --output table +``` + +### Blob 내용 다운로드 + +```bash +# ownership 정보 다운로드 +az storage blob download \ + --account-name hgzerostorage \ + --container-name hgzero-checkpoints \ + --name "\$Default/ownership/0" \ + --file /tmp/ownership.json + +# 내용 확인 +cat /tmp/ownership.json | python3 -m json.tool +``` + +--- + +## 방법 5: 프로세스 레벨에서 확인 + +### 로컬 머신에서 실행 중인 Consumer + +```bash +# Consumer 프로세스 확인 +ps aux | grep "start_consumer.py" | grep -v grep + +# 출력: +# daewoong 81447 0.0 0.2 python start_consumer.py +``` + +### 네트워크 연결 확인 + +```bash +# Event Hub와의 연결 확인 +lsof -i -n | grep 81447 | grep ESTABLISHED + +# 출력: +# python3.1 81447 daewoong 9u IPv6 TCP ... -> ...servicebus.windows.net:https (ESTABLISHED) +``` + +**의미:** +- Consumer 프로세스가 실행 중 +- Event Hub와 HTTPS 연결 유지 중 +- 이벤트 수신 대기 중 + +--- + +## 주요 개념 + +### Ownership (소유권) + +``` +파티션 0 + ↓ +Ownership Blob (Blob Storage) + ↓ +{ + "ownerIdentifier": "consumer-uuid", + "lastModifiedTime": "2025-10-29T12:35:42Z", + "eTag": "...", + ... +} + ↓ +Lease 메커니즘 (30초마다 갱신) + ↓ +갱신 실패 시 → 다른 Consumer가 인수 가능 +``` + +### Checkpoint (읽은 위치) + +``` +파티션 0 + ↓ +Checkpoint Blob + ↓ +{ + "offset": "120259090624", + "sequenceNumber": 232, + ... +} + ↓ +Consumer 재시작 시 → 이 위치부터 재개 +``` + +### Consumer 상태 판단 + +| 조건 | 상태 | 의미 | +|------|------|------| +| lastModifiedTime < 60초 | 🟢 ACTIVE | 정상 동작 중 | +| 60초 < lastModifiedTime < 180초 | 🟡 WARNING | Lease 갱신 지연 | +| lastModifiedTime > 180초 | 🔴 INACTIVE | Consumer 종료 | + +--- + +## 트러블슈팅 + +### 문제 1: Ownership 정보가 없음 + +**증상:** +``` +⚠️ 소유권 정보가 없습니다. Consumer가 실행되지 않았을 수 있습니다. +``` + +**원인:** +- Consumer가 한 번도 실행되지 않음 +- Consumer가 ownership claim에 실패함 + +**해결:** +1. Consumer 프로세스 확인: `ps aux | grep start_consumer` +2. Consumer 로그 확인 +3. 권한 확인 (Storage Account 접근 권한) + +### 문제 2: 여러 Owner ID가 나타남 + +**증상:** +``` +Consumer #1: owner-id-1 (파티션 0, 2, 4) +Consumer #2: owner-id-2 (파티션 1, 3, 5) +``` + +**원인:** +- 정상: 여러 Consumer가 파티션을 나눠서 처리 +- 파티션이 여러 개이고 Consumer도 여러 개 + +**확인:** +- 각 파티션이 하나의 Consumer만 소유하면 정상 +- 동일 파티션을 여러 Consumer가 소유하면 문제 + +### 문제 3: lastModified가 오래됨 + +**증상:** +``` +파티션 0: + 상태: 🔴 INACTIVE + 마지막 갱신: 2025-10-29 10:00:00 UTC + 경과 시간: 7200초 전 (2시간) +``` + +**원인:** +- Consumer가 종료됨 +- Consumer가 응답 없음 (hang) +- 네트워크 문제 + +**해결:** +1. Consumer 프로세스 확인 +2. Consumer 재시작 +3. 로그 확인하여 에러 파악 + +--- + +## 실시간 모니터링 + +### 스크립트: 주기적 확인 + +```bash +#!/bin/bash +# monitor_consumers.sh + +while true; do + clear + echo "=== $(date) ===" + python check_active_consumers.py + sleep 30 # 30초마다 갱신 +done +``` + +### 실행 + +```bash +chmod +x monitor_consumers.sh +./monitor_consumers.sh +``` + +--- + +## 요약 + +### 빠른 확인 방법 + +```bash +# 1. 스크립트 실행 (가장 쉬움) +python check_active_consumers.py + +# 2. 프로세스 확인 +ps aux | grep start_consumer + +# 3. Azure Portal에서 Blob 확인 +# Storage Account > Containers > hgzero-checkpoints > $Default/ownership +``` + +### 확인 항목 체크리스트 + +- [ ] Consumer 프로세스 실행 중인가? +- [ ] Ownership 정보가 있는가? +- [ ] lastModified가 60초 이내인가? +- [ ] 각 파티션이 하나의 Consumer만 소유하는가? +- [ ] Checkpoint가 갱신되고 있는가? + +모든 항목이 체크되면 Consumer가 정상 동작 중입니다! ✅ + +--- + +## 참고 파일 + +- 스크립트: `/Users/daewoong/home/workspace/HGZero/rag/check_active_consumers.py` +- 설정: `/Users/daewoong/home/workspace/HGZero/rag/config.yaml` +- Blob Storage: `hgzerostorage/hgzero-checkpoints` diff --git a/rag/docs/consumer_group_setup.md b/rag/docs/consumer_group_setup.md new file mode 100644 index 0000000..03d2bf0 --- /dev/null +++ b/rag/docs/consumer_group_setup.md @@ -0,0 +1,494 @@ +# Consumer Group 생성 및 할당 가이드 + +## 목차 +1. [Consumer Group이란?](#consumer-group이란) +2. [생성 방법](#생성-방법) +3. [코드에서 사용하기](#코드에서-사용하기) +4. [검증 방법](#검증-방법) +5. [트러블슈팅](#트러블슈팅) + +--- + +## Consumer Group이란? + +Consumer Group은 Event Hub의 이벤트를 **독립적으로 읽는 논리적 그룹**입니다. + +### 주요 특징 +- 각 Consumer Group은 독립적인 checkpoint를 유지 +- 동일한 이벤트를 여러 Consumer Group이 각각 읽을 수 있음 +- 기본 Consumer Group: `$Default` (자동 생성됨) + +### 사용 사례 +| Consumer Group | 용도 | 설명 | +|---------------|------|------| +| `$Default` | 프로덕션 | 실제 운영 환경에서 사용 | +| `development` | 개발 | 개발자가 로컬에서 테스트 | +| `test` | 테스트 | QA 테스트 환경 | +| `analytics` | 분석 | 데이터 분석 및 모니터링 | +| `backup` | 백업 | 이벤트 백업 및 아카이빙 | + +--- + +## 생성 방법 + +### 방법 1: Azure Portal (가장 쉬움) ⭐️ + +#### 단계별 가이드 + +**Step 1: Azure Portal 접속** +``` +https://portal.azure.com +``` + +**Step 2: Event Hub Namespace 찾기** +1. 상단 검색창에 "hgzero-eventhub-ns" 입력 +2. "Event Hubs Namespaces" 아래의 결과 클릭 + +**Step 3: Event Hub 선택** +1. 왼쪽 메뉴에서 "Event Hubs" 클릭 +2. "hgzero-eventhub-name" 선택 + +**Step 4: Consumer Groups 관리** +1. 왼쪽 메뉴에서 "Consumer groups" 클릭 +2. 현재 목록에 `$Default`만 있을 것임 + +**Step 5: 새 Consumer Group 생성** +1. 상단의 "+ Consumer group" 버튼 클릭 +2. Name 입력: + - 개발용: `development` + - 테스트용: `test` + - 분석용: `analytics` +3. "Create" 버튼 클릭 + +**Step 6: 생성 확인** +- 목록에 새로운 Consumer Group이 추가되었는지 확인 +- 예: `$Default`, `development`, `test` + +--- + +### 방법 2: Azure CLI + +#### 사전 요구사항 +```bash +# Azure CLI 설치 확인 +az --version + +# 로그인 +az login +``` + +#### Consumer Group 생성 +```bash +# 리소스 그룹 확인 (필요 시) +az eventhubs namespace show \ + --name hgzero-eventhub-ns \ + --query resourceGroup -o tsv + +# Consumer Group 생성 +az eventhubs eventhub consumer-group create \ + --resource-group \ + --namespace-name hgzero-eventhub-ns \ + --eventhub-name hgzero-eventhub-name \ + --name development + +# 생성 확인 +az eventhubs eventhub consumer-group list \ + --resource-group \ + --namespace-name hgzero-eventhub-ns \ + --eventhub-name hgzero-eventhub-name \ + --output table +``` + +#### 출력 예시 +``` +Name ResourceGroup +----------- --------------- +$Default hgzero-rg +development hgzero-rg +test hgzero-rg +``` + +--- + +### 방법 3: Python Management SDK + +#### 설치 +```bash +pip install azure-mgmt-eventhub azure-identity +``` + +#### 코드 +```python +from azure.mgmt.eventhub import EventHubManagementClient +from azure.identity import DefaultAzureCredential + +# 인증 +credential = DefaultAzureCredential() +subscription_id = "" + +# 관리 클라이언트 생성 +mgmt_client = EventHubManagementClient(credential, subscription_id) + +# Consumer Group 생성 +mgmt_client.consumer_groups.create_or_update( + resource_group_name='', + namespace_name='hgzero-eventhub-ns', + event_hub_name='hgzero-eventhub-name', + consumer_group_name='development', + parameters={} # 추가 설정 가능 +) + +print("✅ Consumer Group 'development' 생성 완료") + +# Consumer Group 목록 조회 +consumer_groups = mgmt_client.consumer_groups.list_by_event_hub( + resource_group_name='', + namespace_name='hgzero-eventhub-ns', + event_hub_name='hgzero-eventhub-name' +) + +print("\n현재 Consumer Groups:") +for cg in consumer_groups: + print(f" - {cg.name}") +``` + +--- + +## 코드에서 사용하기 + +### 1. config.yaml 수정 + +#### 기존 설정 +```yaml +eventhub: + connection_string: ${EVENTHUB_CONNECTION_STRING} + name: ${EVENTHUB_NAME} + consumer_group: ${AZURE_EVENTHUB_CONSUMER_GROUP} # "$Default" + storage: + connection_string: ${AZURE_STORAGE_CONNECTION_STRING} + container_name: ${AZURE_STORAGE_CONTAINER_NAME} +``` + +#### 개발 환경용 설정 +```yaml +eventhub: + connection_string: ${EVENTHUB_CONNECTION_STRING} + name: ${EVENTHUB_NAME} + consumer_group: "development" # 직접 지정 + storage: + connection_string: ${AZURE_STORAGE_CONNECTION_STRING} + container_name: ${AZURE_STORAGE_CONTAINER_NAME} +``` + +### 2. .env 파일 수정 (선택사항) + +#### 환경 변수로 관리하는 경우 +```bash +# .env +EVENTHUB_CONNECTION_STRING="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..." +EVENTHUB_NAME=hgzero-eventhub-name +AZURE_EVENTHUB_CONSUMER_GROUP=development # 변경 +AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=hgzerostorage;..." +AZURE_STORAGE_CONTAINER_NAME=hgzero-checkpoints +``` + +### 3. Consumer 실행 + +#### 개발 환경 +```bash +# config.yaml의 consumer_group을 "development"로 설정 +cd /Users/daewoong/home/workspace/HGZero/rag +python start_consumer.py +``` + +#### 프로덕션 환경 +```bash +# config.yaml의 consumer_group을 "$Default"로 설정 +python start_consumer.py +``` + +#### 여러 환경 동시 실행 +```bash +# Terminal 1: 프로덕션 Consumer +AZURE_EVENTHUB_CONSUMER_GROUP=$Default python start_consumer.py + +# Terminal 2: 개발 Consumer +AZURE_EVENTHUB_CONSUMER_GROUP=development python start_consumer.py + +# Terminal 3: 테스트 Consumer +AZURE_EVENTHUB_CONSUMER_GROUP=test python start_consumer.py +``` + +--- + +## 검증 방법 + +### 1. Consumer Group 목록 확인 + +#### Python으로 확인 +```python +import asyncio +from pathlib import Path +from azure.eventhub.aio import EventHubConsumerClient +from src.utils.config import load_config + +async def list_consumer_groups(): + """사용 가능한 Consumer Group 확인""" + config_path = Path('config.yaml') + config = load_config(str(config_path)) + + eventhub_config = config['eventhub'] + + # 여기서는 실제로 Management API를 사용해야 하지만 + # Consumer Client로는 자신이 속한 그룹만 확인 가능 + + print(f"현재 설정된 Consumer Group: {eventhub_config['consumer_group']}") + +asyncio.run(list_consumer_groups()) +``` + +### 2. 다른 Consumer Group으로 테스트 + +```python +import asyncio +import json +from pathlib import Path +from azure.eventhub.aio import EventHubConsumerClient +from azure.eventhub.extensions.checkpointstoreblobaio import BlobCheckpointStore +from src.utils.config import load_config + +async def test_consumer_group(consumer_group_name): + """특정 Consumer Group으로 이벤트 수신 테스트""" + config_path = Path('config.yaml') + config = load_config(str(config_path)) + + eventhub_config = config['eventhub'] + + # Checkpoint Store + checkpoint_store = BlobCheckpointStore.from_connection_string( + eventhub_config['storage']['connection_string'], + eventhub_config['storage']['container_name'] + ) + + # Consumer Client (Consumer Group 지정) + client = EventHubConsumerClient.from_connection_string( + eventhub_config['connection_string'], + consumer_group=consumer_group_name, # 여기서 지정! + eventhub_name=eventhub_config['name'], + checkpoint_store=checkpoint_store + ) + + print(f"✅ Consumer Group '{consumer_group_name}'로 연결 시도...") + + event_count = 0 + + async def on_event(partition_context, event): + nonlocal event_count + event_count += 1 + print(f"이벤트 수신: #{event_count}") + await partition_context.update_checkpoint(event) + + async def on_error(partition_context, error): + print(f"에러: {error}") + + try: + async with client: + receive_task = asyncio.create_task( + client.receive( + on_event=on_event, + on_error=on_error, + starting_position="@earliest" + ) + ) + + await asyncio.sleep(10) # 10초 대기 + receive_task.cancel() + + try: + await receive_task + except asyncio.CancelledError: + pass + + print(f"\n✅ 테스트 완료: {event_count}개 이벤트 수신") + + except Exception as e: + print(f"❌ 에러 발생: {str(e)}") + +# 테스트 실행 +asyncio.run(test_consumer_group("development")) +``` + +### 3. Checkpoint 저장 위치 확인 + +각 Consumer Group은 독립적인 checkpoint를 Blob Storage에 저장합니다: + +``` +hgzero-checkpoints (Container) +├─ $Default/ +│ ├─ ownership/ +│ │ └─ 0 (파티션 0의 소유권 정보) +│ └─ checkpoint/ +│ └─ 0 (파티션 0의 checkpoint) +├─ development/ +│ ├─ ownership/ +│ │ └─ 0 +│ └─ checkpoint/ +│ └─ 0 +└─ test/ + ├─ ownership/ + │ └─ 0 + └─ checkpoint/ + └─ 0 +``` + +--- + +## 트러블슈팅 + +### 문제 1: Consumer Group을 찾을 수 없음 + +**증상** +``` +azure.eventhub.exceptions.EventHubError: The messaging entity 'sb://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name/ConsumerGroups/development' could not be found. +``` + +**원인**: Consumer Group이 실제로 생성되지 않음 + +**해결**: +1. Azure Portal에서 Consumer Group 목록 확인 +2. 없으면 생성 +3. 이름 오타 확인 (대소문자 구분) + +### 문제 2: Ownership claim 실패 + +**증상** +``` +EventProcessor 'xxx' hasn't claimed an ownership. It keeps claiming. +``` + +**원인**: +- 동일 Consumer Group에 이미 다른 Consumer가 실행 중 +- 파티션보다 Consumer가 많음 + +**해결**: +1. 기존 Consumer 종료 +2. 다른 Consumer Group 사용 +3. 파티션 수 증가 + +### 문제 3: 이벤트를 읽지 못함 + +**증상**: Consumer는 실행되지만 이벤트가 수신되지 않음 + +**원인**: +- Starting position이 최신으로 설정됨 +- 새 이벤트가 없음 + +**해결**: +```python +# config.yaml 또는 코드에서 +await client.receive( + on_event=on_event, + on_error=on_error, + starting_position="@earliest" # 처음부터 읽기 +) +``` + +### 문제 4: Checkpoint가 초기화되지 않음 + +**증상**: 새 Consumer Group인데 이미 읽은 것처럼 동작 + +**원인**: Blob Storage에 이전 checkpoint가 남아있음 + +**해결**: +```bash +# Azure Portal에서 +# Storage Account > Containers > hgzero-checkpoints +# 해당 Consumer Group 폴더 삭제 +``` + +또는 코드로: +```python +from azure.storage.blob import BlobServiceClient + +blob_service = BlobServiceClient.from_connection_string( + AZURE_STORAGE_CONNECTION_STRING +) +container = blob_service.get_container_client("hgzero-checkpoints") + +# 특정 Consumer Group의 checkpoint 삭제 +prefix = "development/" +blobs = container.list_blobs(name_starts_with=prefix) +for blob in blobs: + container.delete_blob(blob.name) + print(f"삭제: {blob.name}") +``` + +--- + +## 권장 설정 + +### 환경별 Consumer Group 전략 + +```yaml +# 프로덕션 +production: + consumer_group: "$Default" + starting_position: "-1" # 최신 이벤트부터 + checkpoint_interval: 30 # 30초마다 checkpoint + +# 개발 +development: + consumer_group: "development" + starting_position: "@earliest" # 처음부터 + checkpoint_interval: 10 # 자주 checkpoint (테스트용) + +# 테스트 +test: + consumer_group: "test" + starting_position: "@earliest" + checkpoint_interval: 5 # 매우 자주 (빠른 테스트) + +# 분석 +analytics: + consumer_group: "analytics" + starting_position: "@earliest" # 모든 데이터 분석 + checkpoint_interval: 60 # 덜 자주 (성능) +``` + +### 실행 스크립트 예시 + +```bash +#!/bin/bash +# start_dev_consumer.sh + +export AZURE_EVENTHUB_CONSUMER_GROUP=development +cd /Users/daewoong/home/workspace/HGZero/rag +python start_consumer.py +``` + +--- + +## 요약 + +### 빠른 시작 체크리스트 + +- [ ] Azure Portal에서 Consumer Group 생성 + - [ ] 이름: `development` + - [ ] Event Hub: `hgzero-eventhub-name` +- [ ] `config.yaml` 수정 + - [ ] `consumer_group: "development"` 설정 +- [ ] Consumer 실행 + - [ ] `python start_consumer.py` +- [ ] 검증 + - [ ] 이벤트 수신 확인 + - [ ] Blob Storage에 checkpoint 생성 확인 + +### Consumer Group 활용 팁 + +1. **프로덕션과 개발 분리**: 항상 다른 Consumer Group 사용 +2. **테스트는 독립적으로**: `test` Consumer Group으로 자유롭게 실험 +3. **Checkpoint 관리**: 필요시 삭제하여 처음부터 재처리 +4. **모니터링**: 각 Consumer Group별 lag 모니터링 +5. **비용 최적화**: 불필요한 Consumer Group은 삭제 + +이제 원하는 Consumer Group을 만들고 독립적으로 Event Hub를 사용할 수 있습니다! 🎯 diff --git a/rag/eventhub_guide.md b/rag/eventhub_guide.md new file mode 100644 index 0000000..7e911e9 --- /dev/null +++ b/rag/eventhub_guide.md @@ -0,0 +1,378 @@ +# Event Hub Consumer Guide + +## 핵심 개념: Partition Ownership (파티션 소유권) + +Event Hub에서는 **같은 Consumer Group 내에서 하나의 파티션은 동시에 오직 하나의 Consumer만 읽을 수 있습니다**. 이를 "Exclusive Consumer" 패턴이라고 합니다. + +## 왜 이런 제약이 있나요? + +### 1. 순서 보장 (Ordering) + +``` +파티션 0: [이벤트1] → [이벤트2] → [이벤트3] + +❌ 잘못된 경우 (여러 Consumer가 동시 읽기): +Consumer A: 이벤트1 처리 중... (느림) +Consumer B: 이벤트2 처리 완료 ✓ +Consumer C: 이벤트3 처리 완료 ✓ +→ 처리 순서: 2 → 3 → 1 (순서 뒤바뀜!) + +✅ 올바른 경우 (하나의 Consumer만): +Consumer A: 이벤트1 ✓ → 이벤트2 ✓ → 이벤트3 ✓ +→ 처리 순서: 1 → 2 → 3 (순서 보장!) +``` + +### 2. Checkpoint 일관성 + +``` +❌ 여러 Consumer가 각자 checkpoint: +Consumer A: offset 100까지 읽음 → checkpoint 저장 +Consumer B: offset 150까지 읽음 → checkpoint 덮어씀 +Consumer A 재시작 → offset 150부터 읽음 → offset 100~149 누락! + +✅ 하나의 Consumer만: +Consumer A: offset 100 → 110 → 120 → ... (순차적) +재시작 시 → 마지막 checkpoint부터 정확히 재개 +``` + +### 3. 중복 처리 방지 + +``` +❌ 여러 Consumer가 동일 이벤트 읽기: +Consumer A: 주문 이벤트 처리 → 결제 완료 +Consumer B: 동일 주문 이벤트 처리 → 중복 결제! + +✅ 하나의 Consumer만: +Consumer A: 주문 이벤트 처리 → 1번만 결제 ✓ +``` + +## Ownership Claim 메커니즘 + +### 동작 과정 + +``` +Consumer A (PID 51257) - 먼저 시작 + ↓ +Blob Storage에 파티션 0 소유권 요청 + ↓ +✅ 승인 (Owner: A, Lease: 30초) + ↓ +30초마다 Lease 갱신 + ↓ +계속 소유권 유지 + + +Consumer B (테스트) - 나중에 시작 + ↓ +Blob Storage에 파티션 0 소유권 요청 + ↓ +❌ 거부 (이미 A가 소유 중) + ↓ +"hasn't claimed an ownership" 로그 + ↓ +계속 재시도 (대기 상태) +``` + +### Blob Storage에 저장되는 정보 + +```json +{ + "partitionId": "0", + "ownerIdentifier": "73fda457-b555-4af5-873a-54a2baa5fd95", + "lastModifiedTime": "2025-10-29T02:17:49Z", + "eTag": "\"0x8DCF7E8F9B3C1A0\"", + "offset": "120259090624", + "sequenceNumber": 232 +} +``` + +## 현재 상황 분석 + +``` +Event Hub: hgzero-eventhub-name +├─ 파티션 수: 1개 (파티션 0) +└─ Consumer Group: $Default + +실행 중: +├─ Consumer A (PID 51257): 파티션 0 소유 ✅ +│ ├─ 이벤트 정상 수신 중 +│ ├─ Lease 주기적 갱신 중 +│ └─ Checkpoint 저장 중 +│ +└─ 테스트 Consumer들: 소유권 없음 ❌ + ├─ 파티션 0 claim 시도 + ├─ 계속 거부당함 + ├─ "hasn't claimed an ownership" 로그 + └─ 이벤트 수신 불가 +``` + +## 해결 방법 + +### Option 1: 기존 Consumer 종료 후 재시작 + +```bash +# 기존 Consumer 종료 +kill 51257 + +# 새로 시작 +cd /Users/daewoong/home/workspace/HGZero/rag +python start_consumer.py +``` + +**장점**: 간단 +**단점**: 다운타임 발생 (Lease 만료까지 최대 30초) + +### Option 2: 다른 Consumer Group 사용 (권장) + +```yaml +# config.yaml +eventhub: + consumer_group: "test-group" # $Default 대신 사용 +``` + +**장점**: +- 기존 Consumer에 영향 없음 +- 독립적으로 모든 이벤트 읽기 가능 +- 개발/테스트에 이상적 + +**단점**: 리소스 추가 사용 + +### Option 3: 파티션 수평 확장 + +``` +Event Hub 파티션 증가: 1개 → 3개 +Consumer 실행: 3개 + +분산: +├─ Consumer A: 파티션 0 +├─ Consumer B: 파티션 1 +└─ Consumer C: 파티션 2 + +→ 병렬 처리로 3배 성능 향상! +``` + +**장점**: 높은 처리량 +**단점**: 비용 증가, 전체 순서는 보장 안 됨 (파티션 내 순서만 보장) + +## Consumer Group 비교 + +``` +┌─────────────────────────────────────────┐ +│ Event Hub: hgzero-eventhub │ +│ 파티션 0: [이벤트들...] │ +└─────────────────────────────────────────┘ + │ + ├─────────────────┬─────────────────┐ + │ │ │ + Consumer Group Consumer Group Consumer Group + "$Default" "analytics" "backup" + │ │ │ + Consumer A Consumer B Consumer C + (RAG 처리) (분석 처리) (백업 처리) + │ │ │ + 각자 독립적으로 동일한 파티션 0의 모든 이벤트 읽음 + 각자 독립적인 Checkpoint 유지 +``` + +## 파티션과 Consumer 수 관계 + +### Case 1: Consumer 1개 +``` +Event Hub: 파티션 3개 (P0, P1, P2) +Consumer Group: $Default + +├─ Consumer A: P0, P1, P2 모두 소유 +└─ 모든 파티션 처리 (순차적) +``` + +### Case 2: Consumer 3개 (이상적) +``` +Event Hub: 파티션 3개 (P0, P1, P2) +Consumer Group: $Default + +├─ Consumer A: P0 소유 +├─ Consumer B: P1 소유 +└─ Consumer C: P2 소유 + +→ 병렬 처리로 최대 성능! +``` + +### Case 3: Consumer 5개 (과잉) +``` +Event Hub: 파티션 3개 (P0, P1, P2) +Consumer Group: $Default + +├─ Consumer A: P0 소유 +├─ Consumer B: P1 소유 +├─ Consumer C: P2 소유 +├─ Consumer D: 소유한 파티션 없음 (대기) +└─ Consumer E: 소유한 파티션 없음 (대기) + +→ D, E는 이벤트를 읽지 못하고 대기만 함 +``` + +## 베스트 프랙티스 + +| 환경 | Consumer 수 | Consumer Group | 파티션 수 | +|------|-------------|----------------|-----------| +| **프로덕션** | = 파티션 수 | production | 처리량에 맞게 | +| **개발** | 1개 | development | 1~2개 | +| **테스트** | 1개 | test | 1개 | +| **분석** | 1개 | analytics | (공유) | + +### 권장 사항 + +1. **프로덕션 환경** + - Consumer 수 = 파티션 수 (1:1 매핑) + - 고가용성을 위해 각 Consumer를 다른 서버에 배치 + - Consumer 수 > 파티션 수로 설정하면 일부는 대기 상태 (Standby) + +2. **개발/테스트 환경** + - 별도 Consumer Group 사용 + - 파티션 1개로 충분 + - 필요시 checkpoint를 초기화하여 처음부터 재처리 + +3. **모니터링** + - Ownership claim 실패 로그 모니터링 + - Lease 갱신 실패 알림 설정 + - Checkpoint lag 모니터링 + +4. **장애 복구** + - Lease timeout 고려 (기본 30초) + - Consumer 장애 시 자동 재분배 (30초 이내) + - Checkpoint로부터 정확한 위치에서 재개 + +## Consumer 프로세스 관리 명령어 + +### 프로세스 확인 + +```bash +# Consumer 프로세스 확인 +ps aux | grep "start_consumer.py" | grep -v grep + +# 상세 정보 (실행시간, CPU, 메모리) +ps -p -o pid,etime,%cpu,%mem,cmd + +# 네트워크 연결 확인 +lsof -i -n | grep + +# 모든 Python 프로세스 확인 +ps aux | grep python | grep -v grep +``` + +### 프로세스 종료 + +```bash +# 정상 종료 (SIGTERM) +kill + +# 강제 종료 (SIGKILL) +kill -9 + +# 이름으로 종료 +pkill -f start_consumer.py +``` + +## 테스트 이벤트 전송 + +```python +from azure.eventhub import EventHubProducerClient, EventData +import json +import os +from dotenv import load_dotenv + +load_dotenv('rag/.env') + +conn_str = os.getenv('EVENTHUB_CONNECTION_STRING') +eventhub_name = os.getenv('EVENTHUB_NAME') + +test_event = { + 'eventType': 'MINUTES_FINALIZED', + 'data': { + 'meetingId': 'test-meeting-001', + 'title': '테스트 회의', + 'minutesId': 'test-minutes-001', + 'sections': [ + { + 'sectionId': 'section-001', + 'type': 'DISCUSSION', + 'title': '논의 사항', + 'content': '테스트 논의 내용입니다.', + 'order': 1, + 'verified': True + } + ] + } +} + +producer = EventHubProducerClient.from_connection_string( + conn_str=conn_str, + eventhub_name=eventhub_name +) + +event_data_batch = producer.create_batch() +event_data_batch.add(EventData(json.dumps(test_event))) + +producer.send_batch(event_data_batch) +print('✅ 테스트 이벤트 전송 완료') + +producer.close() +``` + +## Event Hub 파티션 정보 조회 + +```python +import asyncio +from azure.eventhub.aio import EventHubConsumerClient + +async def check_partitions(): + client = EventHubConsumerClient.from_connection_string( + conn_str=EVENTHUB_CONNECTION_STRING, + consumer_group="$Default", + eventhub_name=EVENTHUB_NAME + ) + + async with client: + partition_ids = await client.get_partition_ids() + print(f"파티션 개수: {len(partition_ids)}") + print(f"파티션 IDs: {partition_ids}") + + for partition_id in partition_ids: + props = await client.get_partition_properties(partition_id) + print(f"\n파티션 {partition_id}:") + print(f" 시퀀스 번호: {props['last_enqueued_sequence_number']}") + print(f" 오프셋: {props['last_enqueued_offset']}") + print(f" 마지막 이벤트 시간: {props['last_enqueued_time_utc']}") + +asyncio.run(check_partitions()) +``` + +## 정리 + +### "에러"가 아니라 "설계된 동작"입니다 + +1. ✅ **정상**: Consumer A가 파티션 소유 → 이벤트 처리 +2. ✅ **정상**: Consumer B가 claim 실패 → 대기 +3. ✅ **정상**: Consumer A 종료 시 → Consumer B가 자동 인수 + +### 이 메커니즘의 장점 + +- 📌 **순서 보장**: 파티션 내 이벤트 순서 유지 +- 📌 **정확히 한 번 처리**: 중복 처리 방지 +- 📌 **자동 장애 복구**: Consumer 장애 시 자동 재분배 +- 📌 **수평 확장**: 파티션 추가로 처리량 증가 + +### 현재 상황 해결 + +**권장**: 다른 Consumer Group을 사용하여 테스트하시는 것이 가장 안전하고 효율적입니다! + +```yaml +# 개발/테스트용 Consumer Group 설정 +eventhub: + consumer_group: "development" # 또는 "test" +``` + +이렇게 하면: +- 기존 프로덕션 Consumer에 영향 없음 +- 독립적으로 모든 이벤트를 처음부터 읽을 수 있음 +- 여러 번 테스트 가능 diff --git a/rag/src/api/__pycache__/main.cpython-311.pyc b/rag/src/api/__pycache__/main.cpython-311.pyc index cd6d2fb..4a523ac 100644 Binary files a/rag/src/api/__pycache__/main.cpython-311.pyc and b/rag/src/api/__pycache__/main.cpython-311.pyc differ diff --git a/rag/src/api/main.py b/rag/src/api/main.py index d6e59da..b1e989b 100644 --- a/rag/src/api/main.py +++ b/rag/src/api/main.py @@ -22,7 +22,9 @@ from ..models.document import ( ) from ..models.minutes import ( MinutesSearchRequest, - MinutesSearchResult + MinutesSearchResult, + RelatedMinutesRequest, + RelatedMinutesResponse ) from ..db.postgres_vector import PostgresVectorDB from ..db.azure_search import AzureAISearchDB @@ -31,6 +33,7 @@ from ..services.claude_service import ClaudeService from ..utils.config import load_config, get_database_url from ..utils.embedding import EmbeddingGenerator from ..utils.text_processor import extract_nouns_as_query +from ..utils.redis_cache import RedisCache # 로깅 설정 logging.basicConfig( @@ -62,6 +65,7 @@ _doc_db = None _rag_minutes_db = None _embedding_gen = None _claude_service = None +_redis_cache = None def get_config(): @@ -139,6 +143,22 @@ def get_claude_service(): return _claude_service +def get_redis_cache(): + """Redis 캐시""" + global _redis_cache + if _redis_cache is None: + config = get_config() + redis_config = config["redis"] + _redis_cache = RedisCache( + host=redis_config["host"], + port=redis_config["port"], + db=redis_config["db"], + password=redis_config.get("password"), + decode_responses=redis_config.get("decode_responses", True) + ) + return _redis_cache + + # ============================================================================ # 용어집 API # ============================================================================ @@ -156,7 +176,7 @@ async def root(): } -@app.post("/api/terms/search", response_model=List[TermSearchResult]) +@app.post("/api/rag/terms/search", response_model=List[TermSearchResult]) async def search_terms( request: TermSearchRequest, term_db: PostgresVectorDB = Depends(get_term_db), @@ -253,7 +273,7 @@ async def search_terms( raise HTTPException(status_code=500, detail=str(e)) -@app.get("/api/terms/{term_id}", response_model=Term) +@app.get("/api/rag/terms/{term_id}", response_model=Term) async def get_term( term_id: str, term_db: PostgresVectorDB = Depends(get_term_db) @@ -281,7 +301,7 @@ async def get_term( raise HTTPException(status_code=500, detail=str(e)) -@app.post("/api/terms/{term_id}/explain", response_model=TermExplanation) +@app.post("/api/rag/terms/{term_id}/explain", response_model=TermExplanation) async def explain_term( term_id: str, request: TermExplainRequest, @@ -327,7 +347,7 @@ async def explain_term( raise HTTPException(status_code=500, detail=str(e)) -@app.get("/api/terms/stats", response_model=TermStats) +@app.get("/api/rag/terms/stats", response_model=TermStats) async def get_term_stats(term_db: PostgresVectorDB = Depends(get_term_db)): """용어 통계 조회""" try: @@ -349,7 +369,7 @@ async def get_term_stats(term_db: PostgresVectorDB = Depends(get_term_db)): # 관련자료 API # ============================================================================ -@app.post("/api/documents/search", response_model=List[DocumentSearchResult]) +@app.post("/api/rag/documents/search", response_model=List[DocumentSearchResult]) async def search_documents( request: DocumentSearchRequest, doc_db: AzureAISearchDB = Depends(get_doc_db), @@ -395,7 +415,7 @@ async def search_documents( raise HTTPException(status_code=500, detail=str(e)) -@app.get("/api/documents/stats", response_model=DocumentStats) +@app.get("/api/rag/documents/stats", response_model=DocumentStats) async def get_document_stats(doc_db: AzureAISearchDB = Depends(get_doc_db)): """문서 통계 조회""" try: @@ -417,7 +437,7 @@ async def get_document_stats(doc_db: AzureAISearchDB = Depends(get_doc_db)): # RAG 회의록 API # ============================================================================ -@app.post("/api/minutes/search", response_model=List[MinutesSearchResult]) +@app.post("/api/rag/minutes/search", response_model=List[MinutesSearchResult]) async def search_related_minutes( request: MinutesSearchRequest, rag_minutes_db: RagMinutesDB = Depends(get_rag_minutes_db), @@ -461,7 +481,7 @@ async def search_related_minutes( raise HTTPException(status_code=500, detail=str(e)) -@app.get("/api/minutes/{minutes_id}") +@app.get("/api/rag/minutes/{minutes_id}") async def get_minutes( minutes_id: str, rag_minutes_db: RagMinutesDB = Depends(get_rag_minutes_db) @@ -489,7 +509,7 @@ async def get_minutes( raise HTTPException(status_code=500, detail=str(e)) -@app.get("/api/minutes/stats") +@app.get("/api/rag/minutes/stats") async def get_minutes_stats(rag_minutes_db: RagMinutesDB = Depends(get_rag_minutes_db)): """회의록 통계 조회""" try: @@ -501,6 +521,123 @@ async def get_minutes_stats(rag_minutes_db: RagMinutesDB = Depends(get_rag_minut raise HTTPException(status_code=500, detail=str(e)) +@app.post("/api/rag/minutes/related", response_model=List[RelatedMinutesResponse]) +async def get_related_minutes( + request: RelatedMinutesRequest, + rag_minutes_db: RagMinutesDB = Depends(get_rag_minutes_db), + embedding_gen: EmbeddingGenerator = Depends(get_embedding_gen), + redis_cache: RedisCache = Depends(get_redis_cache) +): + """ + 연관 회의록 조회 (Option A: DB 조회 후 벡터 검색 + Redis 캐싱) + + Args: + request: 연관 회의록 조회 요청 + - minute_id: 기준 회의록 ID + - meeting_title: 회의 제목 (미사용) + - summary: 회의록 요약 (미사용) + - top_k: 반환할 최대 결과 수 + - similarity_threshold: 최소 유사도 임계값 + + Returns: + 연관 회의록 리스트 + + Process: + 1. Redis 캐시에서 연관 회의록 결과 조회 + 2. 캐시 MISS 시: + a. minute_id로 rag_minutes 테이블에서 회의록 조회 (캐싱) + b. full_content를 벡터 임베딩으로 변환 + c. 벡터 DB에서 유사도 검색 (자기 자신 제외) + d. 결과를 Redis에 캐싱 + 3. 연관 회의록 목록 반환 + """ + try: + config = get_config() + cache_config = config.get("rag_minutes", {}).get("cache", {}) + cache_prefix = cache_config.get("prefix", "minutes:") + minutes_ttl = cache_config.get("ttl", 1800) + related_ttl = cache_config.get("related_ttl", 3600) + + logger.info(f"연관 회의록 조회 시작: minute_id={request.minute_id}") + + # 1. 캐시 키 생성 + related_cache_key = ( + f"{cache_prefix}related:{request.minute_id}:" + f"{request.top_k}:{request.similarity_threshold}" + ) + + # 2. 캐시 조회 + cached_results = redis_cache.get(related_cache_key) + if cached_results: + logger.info(f"연관 회의록 캐시 HIT: {related_cache_key}") + return [ + RelatedMinutesResponse(**result) + for result in cached_results + ] + + # 3. 캐시 MISS - DB 조회 + logger.info(f"연관 회의록 캐시 MISS: {related_cache_key}") + + # 3-1. 회의록 조회 (캐싱) + minutes_cache_key = f"{cache_prefix}{request.minute_id}" + base_minutes = redis_cache.get(minutes_cache_key) + + if base_minutes: + logger.info(f"회의록 캐시 HIT: {minutes_cache_key}") + # RagMinutes 객체로 변환 + from ..models.minutes import RagMinutes + base_minutes = RagMinutes(**base_minutes) + else: + logger.info(f"회의록 캐시 MISS: {minutes_cache_key}") + base_minutes = rag_minutes_db.get_minutes_by_id(request.minute_id) + if not base_minutes: + raise HTTPException( + status_code=404, + detail=f"회의록을 찾을 수 없습니다: {request.minute_id}" + ) + # 캐시 저장 + redis_cache.set(minutes_cache_key, base_minutes.dict(), minutes_ttl) + + logger.info(f"기준 회의록 조회 완료: {base_minutes.title}") + + # 3-2. full_content를 벡터 임베딩으로 변환 + query_embedding = embedding_gen.generate_embedding(base_minutes.full_content) + logger.info(f"임베딩 생성 완료: {len(query_embedding)}차원") + + # 3-3. 벡터 유사도 검색 (자기 자신 제외) + results = rag_minutes_db.search_by_vector( + query_embedding=query_embedding, + top_k=request.top_k, + similarity_threshold=request.similarity_threshold, + exclude_minutes_id=request.minute_id + ) + + # 4. 응답 형식으로 변환 + related_minutes = [ + RelatedMinutesResponse( + minutes=result["minutes"], + similarity_score=result["similarity_score"] + ) + for result in results + ] + + # 5. 결과 캐싱 + redis_cache.set( + related_cache_key, + [r.dict() for r in related_minutes], + related_ttl + ) + + logger.info(f"연관 회의록 조회 완료: {len(related_minutes)}개 결과") + return related_minutes + + except HTTPException: + raise + except Exception as e: + logger.error(f"연관 회의록 조회 실패: {str(e)}") + raise HTTPException(status_code=500, detail=str(e)) + + if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000) diff --git a/rag/src/db/__pycache__/rag_minutes_db.cpython-311.pyc b/rag/src/db/__pycache__/rag_minutes_db.cpython-311.pyc index 2c7cbfe..7cbf029 100644 Binary files a/rag/src/db/__pycache__/rag_minutes_db.cpython-311.pyc and b/rag/src/db/__pycache__/rag_minutes_db.cpython-311.pyc differ diff --git a/rag/src/db/rag_minutes_db.py b/rag/src/db/rag_minutes_db.py index abc27cb..cd00f18 100644 --- a/rag/src/db/rag_minutes_db.py +++ b/rag/src/db/rag_minutes_db.py @@ -92,6 +92,8 @@ class RagMinutesDB: if field in minutes_dict and minutes_dict[field]: if isinstance(minutes_dict[field], datetime): minutes_dict[field] = minutes_dict[field].isoformat() + + minutes_dict.pop("embedding") return RagMinutes(**minutes_dict) @@ -189,7 +191,8 @@ class RagMinutesDB: self, query_embedding: List[float], top_k: int = 5, - similarity_threshold: float = 0.7 + similarity_threshold: float = 0.7, + exclude_minutes_id: Optional[str] = None ) -> List[Dict[str, Any]]: """ 벡터 유사도 검색 @@ -198,27 +201,34 @@ class RagMinutesDB: query_embedding: 쿼리 임베딩 벡터 top_k: 반환할 최대 결과 수 similarity_threshold: 최소 유사도 임계값 + exclude_minutes_id: 제외할 회의록 ID (연관 회의록 검색 시 자기 자신 제외) Returns: 검색 결과 리스트 """ with self.get_connection() as conn: with conn.cursor(cursor_factory=RealDictCursor) as cur: - cur.execute(""" + # 제외 조건 추가 + exclude_condition = "" + params = [query_embedding, query_embedding, similarity_threshold, query_embedding, top_k] + + if exclude_minutes_id: + exclude_condition = "AND minutes_id != %s" + # 파라미터 순서: 처음 4개는 embedding 검색용, 5번째는 exclude용, 6번째는 limit용 + params = [query_embedding, query_embedding, similarity_threshold, exclude_minutes_id, query_embedding, top_k] + + query = f""" SELECT *, 1 - (embedding <=> %s::vector) as similarity_score FROM rag_minutes WHERE embedding IS NOT NULL AND 1 - (embedding <=> %s::vector) >= %s + {exclude_condition} ORDER BY embedding <=> %s::vector LIMIT %s - """, ( - query_embedding, - query_embedding, - similarity_threshold, - query_embedding, - top_k - )) + """ + + cur.execute(query, params) results = [] for row in cur.fetchall(): @@ -229,7 +239,7 @@ class RagMinutesDB: "similarity_score": float(similarity_score) }) - logger.info(f"벡터 검색 완료: {len(results)}개 결과") + logger.info(f"벡터 검색 완료: {len(results)}개 결과 (exclude: {exclude_minutes_id})") return results def search_by_keyword( diff --git a/rag/src/models/__pycache__/minutes.cpython-311.pyc b/rag/src/models/__pycache__/minutes.cpython-311.pyc index ed05bce..ead0c5d 100644 Binary files a/rag/src/models/__pycache__/minutes.cpython-311.pyc and b/rag/src/models/__pycache__/minutes.cpython-311.pyc differ diff --git a/rag/src/models/minutes.py b/rag/src/models/minutes.py index d3b2ff3..abcd3f9 100644 --- a/rag/src/models/minutes.py +++ b/rag/src/models/minutes.py @@ -106,3 +106,41 @@ class MinutesSearchResult(BaseModel): "similarity_score": 0.92 } } + + +class RelatedMinutesRequest(BaseModel): + """연관 회의록 조회 요청""" + minute_id: str = Field(..., description="기준 회의록 ID") + meeting_title: str = Field(..., description="회의 제목") + summary: str = Field(..., description="회의록 요약") + top_k: int = Field(5, ge=1, le=20, description="반환할 최대 결과 수") + similarity_threshold: float = Field(0.7, ge=0.0, le=1.0, description="최소 유사도 임계값") + + class Config: + json_schema_extra = { + "example": { + "minute_id": "MIN-2025-001", + "meeting_title": "2025 Q1 마케팅 전략 회의", + "summary": "2025년 1분기 마케팅 전략 수립을 위한 회의", + "top_k": 5, + "similarity_threshold": 0.7 + } + } + + +class RelatedMinutesResponse(BaseModel): + """연관 회의록 조회 응답""" + minutes: RagMinutes + similarity_score: float = Field(..., ge=0.0, le=1.0, description="유사도 점수") + + class Config: + json_schema_extra = { + "example": { + "minutes": { + "meeting_id": "MTG-2025-002", + "title": "2024 Q4 마케팅 성과 분석", + "minutes_id": "MIN-2024-050" + }, + "similarity_score": 0.85 + } + } diff --git a/rag/src/services/__pycache__/eventhub_consumer.cpython-311.pyc b/rag/src/services/__pycache__/eventhub_consumer.cpython-311.pyc index 8ffff59..9555a26 100644 Binary files a/rag/src/services/__pycache__/eventhub_consumer.cpython-311.pyc and b/rag/src/services/__pycache__/eventhub_consumer.cpython-311.pyc differ diff --git a/rag/src/services/eventhub_consumer.py b/rag/src/services/eventhub_consumer.py index 6a6c6ef..e844e25 100644 --- a/rag/src/services/eventhub_consumer.py +++ b/rag/src/services/eventhub_consumer.py @@ -1,6 +1,6 @@ """ Azure Event Hub Consumer 서비스 -회의록 확정 이벤트를 consume하여 RAG 저장소에 저장 +회의록 확정 이벤트 및 세그먼트 생성 이벤트를 consume """ import asyncio import json @@ -13,7 +13,9 @@ from azure.eventhub.extensions.checkpointstoreblobaio import BlobCheckpointStore from ..models.minutes import RagMinutes, MinutesSection from ..db.rag_minutes_db import RagMinutesDB +from ..db.postgres_vector import PostgresVectorDB from ..utils.embedding import EmbeddingGenerator +from ..utils.text_processor import extract_nouns_as_query logger = logging.getLogger(__name__) @@ -29,7 +31,9 @@ class EventHubConsumer: storage_connection_string: str, storage_container_name: str, rag_minutes_db: RagMinutesDB, - embedding_gen: EmbeddingGenerator + embedding_gen: EmbeddingGenerator, + term_db: Optional[PostgresVectorDB] = None, + config: Optional[Dict[str, Any]] = None ): """ 초기화 @@ -42,6 +46,8 @@ class EventHubConsumer: storage_container_name: Checkpoint 저장 컨테이너 이름 rag_minutes_db: RAG Minutes 데이터베이스 embedding_gen: Embedding 생성기 + term_db: 용어집 데이터베이스 (선택) + config: 설정 딕셔너리 (선택) """ self.connection_string = connection_string self.eventhub_name = eventhub_name @@ -50,6 +56,8 @@ class EventHubConsumer: self.storage_container_name = storage_container_name self.rag_minutes_db = rag_minutes_db self.embedding_gen = embedding_gen + self.term_db = term_db + self.config = config or {} self.client: Optional[EventHubConsumerClient] = None self.is_running = False @@ -106,13 +114,18 @@ class EventHubConsumer: event_body = event.body_as_str() event_data = json.loads(event_body) - logger.info(f"이벤트 수신: {event_data.get('eventType', 'unknown')}") - logger.info(f"이벤트 수신: {event_data.get('data', 'unknown')}") + event_type = event_data.get('eventType', 'unknown') + logger.info(f"이벤트 수신: {event_type}") - # 회의록 확정 이벤트 처리 - if event_data.get("eventType") == "MINUTES_FINALIZED": + # 이벤트 타입별 처리 + if event_type == "MINUTES_FINALIZED": + # 회의록 확정 이벤트 await self._process_minutes_event(event_data) + elif event_type == "SegmentCreated": + # 세그먼트 생성 이벤트 - 용어검색 실행 + await self._process_segment_event(event_data) + # Checkpoint 업데이트 await partition_context.update_checkpoint(event) @@ -131,6 +144,110 @@ class EventHubConsumer: """ logger.error(f"Event Hub 에러 (Partition {partition_context.partition_id}): {str(error)}") + async def _process_segment_event(self, event_data: Dict[str, Any]): + """ + 세그먼트 생성 이벤트 처리 - 용어검색 실행 + + Args: + event_data: 이벤트 데이터 + """ + try: + # 용어집 DB가 없으면 스킵 + if not self.term_db: + logger.debug("용어집 DB가 설정되지 않아 용어검색을 스킵합니다") + return + + # 세그먼트 데이터 추출 + segment_id = event_data.get("segmentId") + text = event_data.get("text", "") + meeting_id = event_data.get("meetingId") + + if not text: + logger.warning(f"세그먼트 {segment_id}에 텍스트가 없습니다") + return + + logger.info(f"세그먼트 용어검색 시작: {segment_id} (회의: {meeting_id})") + logger.info(f"텍스트: {text[:100]}...") + + # 1. 명사 추출하여 검색 쿼리 생성 + search_query = extract_nouns_as_query(text) + logger.info(f"검색 쿼리 변환: '{text[:30]}...' → '{search_query}'") + + # 2. 용어검색 설정 + config = self.config.get("term_glossary", {}) + search_config = config.get("search", {}) + + top_k = search_config.get("top_k", 5) + confidence_threshold = search_config.get("confidence_threshold", 0.7) + keyword_weight = search_config.get("keyword_weight", 0.4) + vector_weight = search_config.get("vector_weight", 0.6) + + # 3. 키워드 검색 + keyword_results = self.term_db.search_by_keyword( + query=search_query, + top_k=top_k, + confidence_threshold=confidence_threshold + ) + + # 4. 벡터 검색 + query_embedding = self.embedding_gen.generate_embedding(search_query) + vector_results = self.term_db.search_by_vector( + query_embedding=query_embedding, + top_k=top_k, + confidence_threshold=confidence_threshold + ) + + # 5. 하이브리드 검색 결과 통합 (RRF) + results = [] + seen_ids = set() + + # 키워드 결과 가중치 적용 + for result in keyword_results: + term_id = result["term"].term_id + if term_id not in seen_ids: + result["relevance_score"] *= keyword_weight + result["match_type"] = "hybrid" + results.append(result) + seen_ids.add(term_id) + + # 벡터 결과 가중치 적용 + for result in vector_results: + term_id = result["term"].term_id + if term_id not in seen_ids: + result["relevance_score"] *= vector_weight + result["match_type"] = "hybrid" + results.append(result) + seen_ids.add(term_id) + else: + # 이미 있는 경우 점수 합산 + for r in results: + if r["term"].term_id == term_id: + r["relevance_score"] += result["relevance_score"] * vector_weight + break + + # 점수 기준 재정렬 + results.sort(key=lambda x: x["relevance_score"], reverse=True) + results = results[:top_k] + + # 6. 검색 결과 로깅 + if results: + logger.info(f"세그먼트 {segment_id} 용어검색 완료: {len(results)}개 발견") + for idx, result in enumerate(results, 1): + term = result["term"] + score = result["relevance_score"] + logger.info( + f" [{idx}] {term.term_name} " + f"(카테고리: {term.category}, 점수: {score:.3f})" + ) + else: + logger.info(f"세그먼트 {segment_id}에서 매칭되는 용어를 찾지 못했습니다") + + # 7. 선택적: 검색 결과를 별도 테이블에 저장하거나 Event Hub로 발행 + # TODO: 필요시 검색 결과를 저장하거나 downstream 서비스로 전달 + + except Exception as e: + logger.error(f"세그먼트 이벤트 처리 실패: {str(e)}", exc_info=True) + def _convert_datetime_array_to_string(self, value: Union[str, List, None]) -> Optional[str]: """ Java LocalDateTime 배열을 ISO 8601 문자열로 변환 @@ -302,7 +419,8 @@ class EventHubConsumer: async def start_consumer( config: Dict[str, Any], rag_minutes_db: RagMinutesDB, - embedding_gen: EmbeddingGenerator + embedding_gen: EmbeddingGenerator, + term_db: Optional[PostgresVectorDB] = None ): """ Event Hub Consumer 시작 (비동기) @@ -311,6 +429,7 @@ async def start_consumer( config: 설정 딕셔너리 rag_minutes_db: RAG Minutes 데이터베이스 embedding_gen: Embedding 생성기 + term_db: 용어집 데이터베이스 (선택) """ eventhub_config = config["eventhub"] @@ -321,7 +440,9 @@ async def start_consumer( storage_connection_string=eventhub_config["storage"]["connection_string"], storage_container_name=eventhub_config["storage"]["container_name"], rag_minutes_db=rag_minutes_db, - embedding_gen=embedding_gen + embedding_gen=embedding_gen, + term_db=term_db, + config=config ) try: diff --git a/rag/src/utils/__pycache__/redis_cache.cpython-311.pyc b/rag/src/utils/__pycache__/redis_cache.cpython-311.pyc new file mode 100644 index 0000000..128904e Binary files /dev/null and b/rag/src/utils/__pycache__/redis_cache.cpython-311.pyc differ diff --git a/rag/src/utils/redis_cache.py b/rag/src/utils/redis_cache.py new file mode 100644 index 0000000..ff0ffc8 --- /dev/null +++ b/rag/src/utils/redis_cache.py @@ -0,0 +1,206 @@ +""" +Redis 캐싱 유틸리티 +""" +import redis +import json +import logging +from typing import Optional, Any +from functools import wraps + +logger = logging.getLogger(__name__) + + +class RedisCache: + """Redis 캐싱 클래스""" + + def __init__( + self, + host: str = "localhost", + port: int = 6379, + db: int = 0, + password: Optional[str] = None, + decode_responses: bool = True + ): + """ + 초기화 + + Args: + host: Redis 호스트 + port: Redis 포트 + db: Redis DB 번호 + password: Redis 비밀번호 + decode_responses: 응답 디코딩 여부 + """ + try: + self.client = redis.Redis( + host=host, + port=port, + db=db, + password=password, + decode_responses=decode_responses + ) + # 연결 테스트 + self.client.ping() + logger.info(f"Redis 연결 성공: {host}:{port}") + except Exception as e: + logger.warning(f"Redis 연결 실패: {str(e)} - 캐싱 비활성화") + self.client = None + + def get(self, key: str) -> Optional[Any]: + """ + 캐시에서 값 조회 + + Args: + key: 캐시 키 + + Returns: + 캐시된 값 또는 None + """ + if not self.client: + return None + + try: + value = self.client.get(key) + if value: + logger.debug(f"캐시 HIT: {key}") + return json.loads(value) + logger.debug(f"캐시 MISS: {key}") + return None + except Exception as e: + logger.error(f"캐시 조회 실패 ({key}): {str(e)}") + return None + + def set(self, key: str, value: Any, ttl: int = 3600) -> bool: + """ + 캐시에 값 저장 + + Args: + key: 캐시 키 + value: 저장할 값 + ttl: 만료 시간 (초) + + Returns: + 성공 여부 + """ + if not self.client: + return False + + try: + serialized = json.dumps(value, ensure_ascii=False) + self.client.setex(key, ttl, serialized) + logger.debug(f"캐시 저장: {key} (TTL: {ttl}s)") + return True + except Exception as e: + logger.error(f"캐시 저장 실패 ({key}): {str(e)}") + return False + + def delete(self, key: str) -> bool: + """ + 캐시 삭제 + + Args: + key: 캐시 키 + + Returns: + 성공 여부 + """ + if not self.client: + return False + + try: + self.client.delete(key) + logger.debug(f"캐시 삭제: {key}") + return True + except Exception as e: + logger.error(f"캐시 삭제 실패 ({key}): {str(e)}") + return False + + def delete_pattern(self, pattern: str) -> int: + """ + 패턴 매칭으로 여러 캐시 삭제 + + Args: + pattern: 캐시 키 패턴 (예: "minutes:*") + + Returns: + 삭제된 키 개수 + """ + if not self.client: + return 0 + + try: + keys = self.client.keys(pattern) + if keys: + count = self.client.delete(*keys) + logger.info(f"캐시 일괄 삭제: {count}개 키 ({pattern})") + return count + return 0 + except Exception as e: + logger.error(f"캐시 패턴 삭제 실패 ({pattern}): {str(e)}") + return 0 + + def exists(self, key: str) -> bool: + """ + 캐시 존재 여부 확인 + + Args: + key: 캐시 키 + + Returns: + 존재 여부 + """ + if not self.client: + return False + + try: + return self.client.exists(key) > 0 + except Exception as e: + logger.error(f"캐시 존재 확인 실패 ({key}): {str(e)}") + return False + + +def cached(prefix: str, ttl: int = 3600, key_builder=None): + """ + 함수 결과 캐싱 데코레이터 + + Args: + prefix: 캐시 키 prefix + ttl: 만료 시간 (초) + key_builder: 캐시 키 생성 함수 (선택사항) + + Example: + @cached(prefix="minutes:", ttl=1800) + def get_minutes_by_id(minutes_id: str): + ... + """ + def decorator(func): + @wraps(func) + def wrapper(self, *args, **kwargs): + # Redis 캐시 인스턴스 확인 + cache = getattr(self, '_cache', None) + if not cache or not cache.client: + return func(self, *args, **kwargs) + + # 캐시 키 생성 + if key_builder: + cache_key = key_builder(*args, **kwargs) + else: + # 기본: 첫 번째 인자를 키로 사용 + cache_key = f"{prefix}{args[0] if args else ''}" + + # 캐시 조회 + cached_value = cache.get(cache_key) + if cached_value is not None: + return cached_value + + # 함수 실행 + result = func(self, *args, **kwargs) + + # 결과 캐싱 + if result is not None: + cache.set(cache_key, result, ttl) + + return result + + return wrapper + return decorator diff --git a/rag/start_all.sh b/rag/start_all.sh new file mode 100644 index 0000000..d4c9d11 --- /dev/null +++ b/rag/start_all.sh @@ -0,0 +1,47 @@ +#!/bin/bash +# RAG 서비스 - API 서버와 Event Hub Consumer 동시 실행 스크립트 + +set -e # 에러 발생 시 스크립트 종료 + +echo "==========================================" +echo "RAG 서비스 시작" +echo "==========================================" + +# 로그 디렉토리 생성 +mkdir -p logs + +# Event Hub Consumer를 백그라운드로 실행 +echo "[1/2] Event Hub Consumer 시작..." +python start_consumer.py > logs/consumer.log 2>&1 & +CONSUMER_PID=$! +echo "Consumer PID: $CONSUMER_PID" + +# API 서버 시작 (포그라운드) +echo "[2/2] REST API 서버 시작..." +python -m uvicorn src.api.main:app --host 0.0.0.0 --port 8000 & +API_PID=$! +echo "API Server PID: $API_PID" + +# PID 파일 저장 +echo $CONSUMER_PID > logs/consumer.pid +echo $API_PID > logs/api.pid + +echo "==========================================" +echo "RAG 서비스 시작 완료" +echo " - API Server: http://0.0.0.0:8000" +echo " - Consumer PID: $CONSUMER_PID" +echo " - API PID: $API_PID" +echo "==========================================" + +# 종료 시그널 처리 (graceful shutdown) +trap "echo 'Shutting down...'; kill $CONSUMER_PID $API_PID; exit 0" SIGTERM SIGINT + +# 두 프로세스 모두 실행 중인지 모니터링 +while kill -0 $CONSUMER_PID 2>/dev/null && kill -0 $API_PID 2>/dev/null; do + sleep 5 +done + +# 하나라도 종료되면 모두 종료 +echo "One of the processes stopped. Shutting down all..." +kill $CONSUMER_PID $API_PID 2>/dev/null || true +wait diff --git a/rag/start_all_services.py b/rag/start_all_services.py new file mode 100644 index 0000000..56e0887 --- /dev/null +++ b/rag/start_all_services.py @@ -0,0 +1,180 @@ +""" +RAG 서비스 통합 실행 스크립트 +API 서버와 Event Hub Consumer를 동시에 실행 +""" +import asyncio +import logging +import multiprocessing +import signal +import sys +import time +from pathlib import Path + +import uvicorn + +from src.utils.config import load_config, get_database_url +from src.db.rag_minutes_db import RagMinutesDB +from src.db.postgres_vector import PostgresVectorDB +from src.utils.embedding import EmbeddingGenerator +from src.services.eventhub_consumer import start_consumer + +# 로깅 설정 +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + + +def run_api_server(): + """ + REST API 서버 실행 (별도 프로세스) + """ + try: + logger.info("=" * 50) + logger.info("REST API 서버 시작") + logger.info("=" * 50) + + uvicorn.run( + "src.api.main:app", + host="0.0.0.0", + port=8000, + log_level="info", + access_log=True + ) + except Exception as e: + logger.error(f"API 서버 실행 실패: {str(e)}") + sys.exit(1) + + +def run_event_consumer(): + """ + Event Hub Consumer 실행 (별도 프로세스) + """ + try: + logger.info("=" * 50) + logger.info("Event Hub Consumer 시작") + logger.info("=" * 50) + + # 설정 로드 + config_path = Path(__file__).parent / "config.yaml" + config = load_config(str(config_path)) + + # 데이터베이스 연결 + db_url = get_database_url(config) + rag_minutes_db = RagMinutesDB(db_url) + logger.info("RAG Minutes DB 연결 완료") + + # 용어집 데이터베이스 연결 + term_db = PostgresVectorDB(db_url) + logger.info("용어집 DB 연결 완료") + + # Embedding 생성기 초기화 + azure_openai = config["azure_openai"] + embedding_gen = EmbeddingGenerator( + api_key=azure_openai["api_key"], + endpoint=azure_openai["endpoint"], + model=azure_openai["embedding_model"], + dimension=azure_openai["embedding_dimension"], + api_version=azure_openai["api_version"] + ) + logger.info("Embedding 생성기 초기화 완료") + + # Event Hub Consumer 시작 + asyncio.run(start_consumer(config, rag_minutes_db, embedding_gen, term_db)) + + except KeyboardInterrupt: + logger.info("Consumer 종료 신호 수신") + except Exception as e: + logger.error(f"Consumer 실행 실패: {str(e)}") + sys.exit(1) + + +def main(): + """ + 메인 함수: 두 프로세스를 생성하고 관리 + """ + logger.info("=" * 60) + logger.info("RAG 서비스 통합 시작") + logger.info(" - REST API 서버: http://0.0.0.0:8000") + logger.info(" - Event Hub Consumer: Background") + logger.info("=" * 60) + + # 프로세스 생성 + api_process = multiprocessing.Process( + target=run_api_server, + name="API-Server" + ) + consumer_process = multiprocessing.Process( + target=run_event_consumer, + name="Event-Consumer" + ) + + # 종료 시그널 핸들러 + def signal_handler(signum, frame): + logger.info("\n종료 신호 수신. 프로세스 종료 중...") + + if api_process.is_alive(): + logger.info("API 서버 종료 중...") + api_process.terminate() + api_process.join(timeout=5) + if api_process.is_alive(): + api_process.kill() + + if consumer_process.is_alive(): + logger.info("Consumer 종료 중...") + consumer_process.terminate() + consumer_process.join(timeout=5) + if consumer_process.is_alive(): + consumer_process.kill() + + logger.info("모든 프로세스 종료 완료") + sys.exit(0) + + # 시그널 핸들러 등록 + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + + try: + # 프로세스 시작 + api_process.start() + time.sleep(2) # API 서버 시작 대기 + + consumer_process.start() + time.sleep(2) # Consumer 시작 대기 + + logger.info("=" * 60) + logger.info("모든 서비스 시작 완료") + logger.info(f" - API Server PID: {api_process.pid}") + logger.info(f" - Consumer PID: {consumer_process.pid}") + logger.info("=" * 60) + + # 프로세스 모니터링 + while True: + if not api_process.is_alive(): + logger.error("API 서버 프로세스 종료됨") + consumer_process.terminate() + break + + if not consumer_process.is_alive(): + logger.error("Consumer 프로세스 종료됨") + api_process.terminate() + break + + time.sleep(5) + + # 대기 + api_process.join() + consumer_process.join() + + except Exception as e: + logger.error(f"서비스 실행 중 에러: {str(e)}") + api_process.terminate() + consumer_process.terminate() + sys.exit(1) + + +if __name__ == "__main__": + # multiprocessing을 위한 설정 + multiprocessing.set_start_method('spawn', force=True) + main() diff --git a/rag/start_consumer.py b/rag/start_consumer.py index 7d47e83..7d35fbd 100644 --- a/rag/start_consumer.py +++ b/rag/start_consumer.py @@ -4,6 +4,7 @@ from pathlib import Path from src.utils.config import load_config, get_database_url from src.db.rag_minutes_db import RagMinutesDB +from src.db.postgres_vector import PostgresVectorDB from src.utils.embedding import EmbeddingGenerator from src.services.eventhub_consumer import start_consumer @@ -28,8 +29,11 @@ async def main(): # 데이터베이스 연결 db_url = get_database_url(config) rag_minutes_db = RagMinutesDB(db_url) + logger.info("RAG Minutes DB 연결 완료") - logger.info("데이터베이스 연결 완료") + # 용어집 데이터베이스 연결 + term_db = PostgresVectorDB(db_url) + logger.info("용어집 DB 연결 완료") # Embedding 생성기 초기화 azure_openai = config["azure_openai"] @@ -45,7 +49,7 @@ async def main(): # Event Hub Consumer 시작 logger.info("Event Hub Consumer 시작...") - await start_consumer(config, rag_minutes_db, embedding_gen) + await start_consumer(config, rag_minutes_db, embedding_gen, term_db) except KeyboardInterrupt: logger.info("프로그램 종료")