From 06f1a13a47d8faf0554b25636ea30717633ef85c Mon Sep 17 00:00:00 2001 From: djeon Date: Mon, 27 Oct 2025 11:07:35 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20meeting=20=EC=B0=B8=EC=84=9D=EC=9E=90=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=A0=95=EA=B7=9C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- meeting/logs/meeting-service.log | 2017 ++++++----------- .../logs/meeting-service.log.2025-10-26.0.gz | Bin 0 -> 50814 bytes .../meeting/biz/service/MeetingService.java | 19 +- .../biz/usecase/out/ParticipantReader.java | 24 + .../biz/usecase/out/ParticipantWriter.java | 29 + .../meeting/infra/gateway/MeetingGateway.java | 37 +- .../infra/gateway/ParticipantGateway.java | 101 + .../infra/gateway/entity/MeetingEntity.java | 33 +- .../entity/MeetingParticipantEntity.java | 78 + .../gateway/entity/MeetingParticipantId.java | 31 + .../MeetingParticipantJpaRepository.java | 45 + .../V2__create_meeting_participants_table.sql | 41 + 12 files changed, 1102 insertions(+), 1353 deletions(-) create mode 100644 meeting/logs/meeting-service.log.2025-10-26.0.gz create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantReader.java create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantWriter.java create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/ParticipantGateway.java create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantEntity.java create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantId.java create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/repository/MeetingParticipantJpaRepository.java create mode 100644 meeting/src/main/resources/db/migration/V2__create_meeting_participants_table.sql diff --git a/meeting/logs/meeting-service.log b/meeting/logs/meeting-service.log index 537878c..cbe34a1 100644 --- a/meeting/logs/meeting-service.log +++ b/meeting/logs/meeting-service.log @@ -1,305 +1,243 @@ -2025-10-26 00:01:27 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Retrograde clock change detected (housekeeper delta=29s829ms), soft-evicting connections from pool. -2025-10-26 00:03:37 [lettuce-nioEventLoop-6-4] 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-26 00:03:37 [lettuce-eventExecutorLoop-1-6] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 -2025-10-26 00:03:37 [lettuce-nioEventLoop-6-5] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 -2025-10-26 00:07:54 [lettuce-nioEventLoop-6-5] 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-26 00:07:54 [lettuce-eventExecutorLoop-1-7] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 -2025-10-26 00:07:54 [lettuce-nioEventLoop-6-6] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 -2025-10-26 00:12:06 [lettuce-nioEventLoop-6-6] 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-26 00:12:06 [lettuce-eventExecutorLoop-1-1] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 -2025-10-26 00:12:06 [lettuce-nioEventLoop-6-7] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 -2025-10-26 00:13:01 [parallel-4] 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-26 00:14: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-26 00:14:11 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_815c03_1761403649483","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} -2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} -2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-26 00:14:11 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@64ee9290] for TypeConfiguration -2025-10-26 00:14:11 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@203a266] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@64ee9290] -2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-26 00:14:11 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_815c03_1761403649483","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} -2025-10-26 00:14:11 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_815c03_1761403649483","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} -2025-10-26 00:14:12 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-26 09:23:56 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 58894 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) -2025-10-26 09:23:56 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 -2025-10-26 09:23:56 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" -2025-10-26 09:23:56 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-26 09:23:56 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-26 09:23:56 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 61 ms. Found 6 JPA repository interfaces. -2025-10-26 09:23:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-26 09:23:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-26 09:23:57 [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-26 09:23:57 [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-26 09:23:57 [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-26 09:23:57 [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-26 09:23:57 [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-26 09:23:57 [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-26 09:23:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces. -2025-10-26 09:23:57 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) -2025-10-26 09:23:57 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-26 09:23:57 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] -2025-10-26 09:23:57 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-26 09:23:57 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1017 ms -2025-10-26 09:23:57 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-26 09:23:57 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final -2025-10-26 09:23:57 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@796fe2b5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@796fe2b5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@796fe2b5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@5a6af2c4 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@5a6af2c4 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@123c48d0 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@123c48d0 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@14fff5e7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@14fff5e7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@5454be -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@2dd08ff1 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@19213a74 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@19213a74 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@19213a74 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@30a791a6 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@30a791a6 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@30a791a6 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@5981f2c6 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@5981f2c6 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@49639118 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@49639118 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@45451333 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@45451333 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@45451333 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@6942ee48 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@3f033664 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@3f033664 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@6abd8bcd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@70cd122 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@70cd122 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@70cd122 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@79424f25 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@5fd4e67f -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@59b1edab -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@3855b27e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@3855b27e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@5305f936 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@5305f936 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@2b1a1a37 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@7d90764a -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@6843fdc4 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@147375b3 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@6f430ea8 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@119f072c -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@66456506 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@66456506 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@69944a90 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@69944a90 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@1ed52f44 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@1ed52f44 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@771afdd5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@771afdd5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@3abadb65 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@3abadb65 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7131d668 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@46a97805 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@667dd150 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@667dd150 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@af04f09 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@758d4aa9 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@7096d451 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@7096d451 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7816454d -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@67d180e4 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@1293f8d7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@1293f8d7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@58e5fbe5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@58e5fbe5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@58e5fbe5 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@335896bd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@335896bd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@335896bd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@6b33892a -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@666b91db -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@11a67420 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@11a67420 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@11b14ae3 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@2b6ee447 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@9cb927e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@9cb927e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@8585cdd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@8585cdd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@8585cdd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@1325f967 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@1325f967 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@4f356b98 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@4f356b98 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@1ab85862 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@1ab85862 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@504c415c -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@504c415c -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@6c9e74f3 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@6c9e74f3 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@813ab53 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@5030997b -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@644e6a8e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@644e6a8e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@113c4ad6 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@7be859de -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@7fa85a55 -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@cb1c58c -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@352e4b6d -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@10a064bd -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@2de7fe0e -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@2ff8d39b -2025-10-26 09:23:57 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@684a802a -2025-10-26 09:23:57 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-26 09:23:57 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-26 09:23:57 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5e5a2b74 -2025-10-26 09:23:57 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-26 09:23:57 [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-26 09:23:58 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@cbc3bf3) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@31f9f9b3) -2025-10-26 09:23:58 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@7730da00) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@52d01430) -2025-10-26 09:23:58 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-26 09:23:58 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@7a78d2aa -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7a78d2aa -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@644e6a8e` -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:23:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:23:58 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5570dc21] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@1477d4e6] -2025-10-26 09:23:58 [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-26 09:23:58 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5570dc21] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@642693c2] -2025-10-26 09:23:58 [main] DEBUG org.hibernate.SQL - +2025-10-27 09:07:31 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 78756 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) +2025-10-27 09:07:31 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-27 09:07:31 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-27 09:07:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-27 09:07:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-27 09:07:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 64 ms. Found 7 JPA repository interfaces. +2025-10-27 09:07:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-27 09:07:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-27 09:07: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-27 09:07: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-27 09:07: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-27 09:07: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-27 09:07: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-27 09:07: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-27 09:07: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-27 09:07:32 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces. +2025-10-27 09:07:32 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-27 09:07:32 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-27 09:07:32 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-27 09:07:32 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-27 09:07:32 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1019 ms +2025-10-27 09:07:32 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-27 09:07:33 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-27 09:07:33 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@44a13699 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@44a13699 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@44a13699 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1253b822 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1253b822 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@127d2aee +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@127d2aee +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@3cc2e3e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@3cc2e3e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4e14d520 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4e14d520 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@4e14d520 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4189e668 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4189e668 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4189e668 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@3a589eed +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@3a589eed +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@5807ea46 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@305289b3 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@305289b3 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@3ee68377 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@4037cdb0 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@27055a2a +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@27055a2a +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@27055a2a +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@33e4068 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@33e4068 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@33e4068 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@9499643 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@9499643 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@9499643 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@776d8097 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@776d8097 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@776d8097 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7a34505a +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7a34505a +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@7a34505a +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@b787274 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@b787274 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@4ec616d6 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@4ec616d6 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@55b45ea1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@55b45ea1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@55b45ea1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@d5a72cd +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@45f95ac0 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@45f95ac0 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@3b77940f +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@4c418496 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@4c418496 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@4c418496 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@12d35bc9 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@1df32c09 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@1aa31454 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@5a8656a2 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@5a8656a2 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@52035328 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@52035328 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@5614ae05 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@54970127 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@3c4c7e51 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@749ee0e3 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@7891cf3 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@6bfbab1c +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@349aeec4 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@349aeec4 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@3700994c +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@3700994c +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@78a165db +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@78a165db +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@4eb48298 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@4eb48298 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@2d3bb944 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@2d3bb944 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1e429f56 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6dbeaef8 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@7744195 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@7744195 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@77f529a6 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7d47b021 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6516181f +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@40cb95c1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@40cb95c1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1ead3c67 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@5e2b512b +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@ba87c11 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@ba87c11 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@17d19538 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@17d19538 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@6068cda1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@6068cda1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@6068cda1 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@644e6a8e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@644e6a8e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@644e6a8e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@2ccecae2 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@37ade216 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@118e2487 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@118e2487 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@6032622 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@6032622 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@6032622 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@5cc075da +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@4258106 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@64ef2719 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@64ef2719 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@7b423f90 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@7b423f90 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@7b423f90 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@24f3fb87 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@24f3fb87 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@c7673ae +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@c7673ae +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@113c4ad6 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@113c4ad6 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@7be859de +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@7be859de +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@40fcaae7 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@40fcaae7 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@7fa85a55 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@cb1c58c +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@48f4264e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@48f4264e +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@25e353dc +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@234ce7ff +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@3cfab340 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@3387ab0 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@470f0637 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@6b278b17 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@2ae5580 +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@4203529f +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@7d82ca56 +2025-10-27 09:07:33 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-27 09:07:33 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-27 09:07:33 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@790d629a +2025-10-27 09:07:33 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-27 09:07: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-27 09:07:33 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@180fb796) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@79ae3fb1) +2025-10-27 09:07:33 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@7fa8fff) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4423692a) +2025-10-27 09:07:33 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-27 09:07:33 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@7f584d0c +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7f584d0c +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@48f4264e` +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-27 09:07:33 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-27 09:07:33 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@25e24908] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@2941631f] +2025-10-27 09:07:34 [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-27 09:07:34 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@25e24908] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@1bfc6e50] +2025-10-27 09:07:34 [main] DEBUG org.hibernate.SQL - alter table if exists meetings alter column description set data type TEXT -2025-10-26 09:23:58 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column participants set data type TEXT -2025-10-26 09:23:58 [main] DEBUG org.hibernate.SQL - +2025-10-27 09:07:34 [main] DEBUG org.hibernate.SQL - alter table if exists minutes_sections alter column content set data type TEXT -2025-10-26 09:23:58 [main] DEBUG org.hibernate.SQL - +2025-10-27 09:07:34 [main] DEBUG org.hibernate.SQL - alter table if exists templates alter column description set data type TEXT -2025-10-26 09:23:58 [main] DEBUG org.hibernate.SQL - +2025-10-27 09:07:34 [main] DEBUG org.hibernate.SQL - alter table if exists templates alter column sections set data type TEXT -2025-10-26 09:23:58 [main] DEBUG org.hibernate.SQL - +2025-10-27 09:07:34 [main] DEBUG org.hibernate.SQL - alter table if exists todos alter column description set data type TEXT -2025-10-26 09:23:58 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@642693c2] for TypeConfiguration -2025-10-26 09:23:58 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-26 09:23:58 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-26 09:23:59 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - ReadFrom: MASTER (모든 작업 Master에서 수행) -2025-10-26 09:23:59 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 -2025-10-26 09:23:59 [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-26 09:23:59 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 -2025-10-26 09:23:59 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 -2025-10-26 09:23:59 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name -2025-10-26 09:23:59 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name -2025-10-26 09:23:59 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_f335bd_1761438239325"} -2025-10-26 09:23:59 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:23:59 [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-26 09:23:59 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - +2025-10-27 09:07:35 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@1bfc6e50] for TypeConfiguration +2025-10-27 09:07:35 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-27 09:07:35 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-27 09:07:35 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-27 09:07:35 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-27 09:07:35 [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-27 09:07:35 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-27 09:07:35 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-27 09:07:35 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-27 09:07:35 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-27 09:07:35 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_c2537e_1761523655847"} +2025-10-27 09:07:35 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-27 09:07:36 [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-27 09:07:36 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - -Using generated security password: c9aeb4d7-8a1f-4c11-a3b4-2d0797a99320 +Using generated security password: 88421a21-f149-4310-af11-e1a4194099f5 This generated password is for development use only. Your security configuration must be updated before running your application in production. -2025-10-26 09:23:59 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-26 09:23:59 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} -2025-10-26 09:23:59 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-26 09:23:59 [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-26 09:23:59 [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-26 09:24:00 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' -2025-10-26 09:24:00 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.944 seconds (process running for 4.092) -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms -2025-10-26 09:24:21 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings -2025-10-26 09:24:21 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-26 09:24:21 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings -2025-10-26 09:24:21 [http-nio-8082-exec-1] 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@2d15139f] -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: test 회의 -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: test 회의 -2025-10-26 09:24:21 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - +2025-10-27 09:07:36 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-27 09:07:36 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-27 09:07:36 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-27 09:07:36 [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-27 09:07:36 [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-27 09:07:36 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-27 09:07:36 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 5.174 seconds (process running for 5.337) +2025-10-27 09:14:06 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-27 09:14:06 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-27 09:14:06 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 9 ms +2025-10-27 09:14:06 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings +2025-10-27 09:14:06 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-27 09:14:06 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings +2025-10-27 09:14:06 [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@633e13d4] +2025-10-27 09:14:06 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: test 회의 +2025-10-27 09:14:06 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@790d629a (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 09:14:06 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@204e0056 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 09:14:06 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@7dfac03e (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 09:14:07 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@d43ed10 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 09:14:07 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@6cee018f (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 09:14:07 [http-nio-8082-exec-2] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@3c72f0f4 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 09:14:07 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: test 회의 +2025-10-27 09:14:07 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - /* SELECT COUNT(m) FROM @@ -325,7 +263,7 @@ This generated password is for development use only. Your security configuration and me1_0.end_time>? ) ) -2025-10-26 09:24:21 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - +2025-10-27 09:14:07 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - select me1_0.meeting_id, me1_0.created_at, @@ -334,32 +272,102 @@ This generated password is for development use only. Your security configuration me1_0.ended_at, me1_0.location, me1_0.organizer_id, - me1_0.participants, 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 + 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-26 09:24:21 [http-nio-8082-exec-1] ERROR c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 - meetingId: 39a38a62-f1f7-4a32-9347-c4f19c2b3f2e -org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1849) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1780) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1582) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.lambda$getConnection$0(LettuceConnectionFactory.java:1562) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.doInLock(LettuceConnectionFactory.java:1523) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1559) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedConnection(LettuceConnectionFactory.java:1245) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getConnection(LettuceConnectionFactory.java:1051) - at org.springframework.data.redis.core.RedisConnectionUtils.fetchConnection(RedisConnectionUtils.java:195) - at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:144) - at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:105) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:398) +2025-10-27 09:14:07 [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-27 09:14:07 [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-27 09:14:07 [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-27 09:14:07 [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-27 09:14:07 [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-27 09:14:07 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.gateway.ParticipantGateway - Participants saved: meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e, count=2 +2025-10-27 09:14:07 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Participants saved: meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e, count=2 +2025-10-27 09:14:08 [http-nio-8082-exec-2] ERROR c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 - meetingId: 5f9144ed-43db-479a-99bb-17b20a71fb1e +org.springframework.data.redis.RedisSystemException: Error in execution + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52) + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:50) + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) + at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) + at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) + at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:673) + at org.springframework.data.redis.connection.lettuce.LettuceInvoker$DefaultSingleInvocationSpec.get(LettuceInvoker.java:589) + at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.setEx(LettuceStringCommands.java:134) + at org.springframework.data.redis.connection.DefaultedRedisConnection.setEx(DefaultedRedisConnection.java:340) + at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:265) + at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:258) + at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:253) @@ -385,7 +393,7 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.cache.CacheService$$SpringCGLIB$$0.cacheMeeting() - at com.unicorn.hgzero.meeting.biz.service.MeetingService.createMeeting(MeetingService.java:101) + at com.unicorn.hgzero.meeting.biz.service.MeetingService.createMeeting(MeetingService.java:109) 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) @@ -563,85 +571,23 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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: io.lettuce.core.RedisConnectionException: Unable to connect to redis://***********@20.249.177.114/1?timeout=10s - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) - at io.lettuce.core.masterreplica.MasterReplica.getConnection(MasterReplica.java:261) - at io.lettuce.core.masterreplica.MasterReplica.connect(MasterReplica.java:113) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.masterReplicaConnection(StandaloneConnectionProvider.java:153) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$0(StandaloneConnectionProvider.java:111) - at java.base/java.util.Optional.map(Optional.java:260) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:111) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1778) - ... 213 common frames omitted -Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to redis-node-0.redis-headless.hgzero.svc.cluster.local/:6379 - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) - at io.lettuce.core.RedisClient.lambda$transformAsyncConnectionException$22(RedisClient.java:778) - at io.lettuce.core.DefaultConnectionFuture.lambda$thenCompose$1(DefaultConnectionFuture.java:253) - at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) - at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) - at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) - at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194) - at io.lettuce.core.AbstractRedisClient.lambda$initializeChannelAsync0$6(AbstractRedisClient.java:454) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110) - at io.netty.channel.DefaultChannelPromise.setFailure(DefaultChannelPromise.java:89) - at io.netty.bootstrap.Bootstrap$2.operationComplete(Bootstrap.java:242) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110) - at io.netty.resolver.InetSocketAddressResolver$1.operationComplete(InetSocketAddressResolver.java:62) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) - at io.netty.resolver.dns.DnsNameResolver.tryFailure(DnsNameResolver.java:1075) - at io.netty.resolver.dns.DnsNameResolver.access$500(DnsNameResolver.java:96) - at io.netty.resolver.dns.DnsNameResolver$6.operationComplete(DnsNameResolver.java:1097) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) - at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1158) - at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097) - at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455) - at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:686) - at io.netty.resolver.dns.DnsResolveContext.access$500(DnsResolveContext.java:70) - at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:513) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625) - at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105) - at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:308) - at io.netty.resolver.dns.DnsQueryContext.finishSuccess(DnsQueryContext.java:299) - at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1491) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) +Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica. + at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:144) + at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) + at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) + at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) + at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) + at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745) + at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680) + at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:97) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) 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) @@ -650,323 +596,56 @@ Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to redis- at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ... 1 common frames omitted -Caused by: java.util.concurrent.CompletionException: java.net.UnknownHostException: Failed to resolve 'redis-node-0.redis-headless.hgzero.svc.cluster.local' [A(1)] after 2 queries - at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) - at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:347) - at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:636) - ... 70 common frames omitted -Caused by: java.net.UnknownHostException: Failed to resolve 'redis-node-0.redis-headless.hgzero.svc.cluster.local' [A(1)] after 2 queries - at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150) - ... 35 common frames omitted -Caused by: io.netty.resolver.dns.DnsErrorCauseException: Query failed with NXDOMAIN - at io.netty.resolver.dns.DnsResolveContext.onResponse(..)(Unknown Source) -2025-10-26 09:24:21 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=39a38a62-f1f7-4a32-9347-c4f19c2b3f2e -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_f335bd_1761438239325","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-26 09:24:21 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_f335bd_1761438239325"} -2025-10-26 09:24:21 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_f335bd_1761438239325","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-26 09:24:21 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_f335bd_1761438239325"} -2025-10-26 09:24:21 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_f335bd_1761438239325","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-26 09:24:21 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_f335bd_1761438239325","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_f335bd_1761438239325","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"624053b3bd824af08471fef35f92ee6c_G6"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_f335bd_1761438239325","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_f335bd_1761438239325"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_f335bd_1761438239325","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_f335bd_1761438239325","entityPath":"$cbs","linkName":"cbs"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_f335bd_1761438239325","entityPath":"$cbs"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_f335bd_1761438239325","entityPath":"$cbs","subscriberId":"un_1e8c11_1761438262054"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_f335bd_1761438239325","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_f335bd_1761438239325","entityPath":"$cbs"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_f335bd_1761438239325","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-26 09:24:22 [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-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_f335bd_1761438239325","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} -2025-10-26 09:24:22 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_f335bd_1761438239325","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-26 09:24:22 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com -2025-10-26 09:24:22 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com -2025-10-26 09:24:22 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 39a38a62-f1f7-4a32-9347-c4f19c2b3f2e, participants count: 2 -2025-10-26 09:24:22 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=39a38a62-f1f7-4a32-9347-c4f19c2b3f2e, participants=2 -2025-10-26 09:24:22 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 39a38a62-f1f7-4a32-9347-c4f19c2b3f2e -2025-10-26 09:24:22 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - +2025-10-27 09:14:08 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:14:08 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_c2537e_1761523655847","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-27 09:14:08 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_c2537e_1761523655847"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_c2537e_1761523655847","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_c2537e_1761523655847"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_c2537e_1761523655847","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_c2537e_1761523655847","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_c2537e_1761523655847","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"daf94f96845d4a4c8f204bc24deb4033_G28"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_c2537e_1761523655847","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_c2537e_1761523655847"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_c2537e_1761523655847","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs","linkName":"cbs"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs","subscriberId":"un_ce0ad6_1761524048533"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_c2537e_1761523655847","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_c2537e_1761523655847","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-27 09:14:08 [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-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_c2537e_1761523655847","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-27 09:14:08 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_c2537e_1761523655847","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-27 09:14:08 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928 +2025-10-27 09:14:08 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du09282 +2025-10-27 09:14:08 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 5f9144ed-43db-479a-99bb-17b20a71fb1e, participants count: 2 +2025-10-27 09:14:08 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e, participants=2 +2025-10-27 09:14:08 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:14:08 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - /* insert for - com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */insert + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert into - meetings (created_at, description, end_time, ended_at, location, organizer_id, participants, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) values - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -2025-10-26 09:24:22 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 39a38a62-f1f7-4a32-9347-c4f19c2b3f2e -2025-10-26 09:24:22 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 617ms -2025-10-26 09:36:48 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:36:48 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_f335bd_1761438239325","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} -2025-10-26 09:36:48 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:36:48 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-26 09:36:48 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@642693c2] for TypeConfiguration -2025-10-26 09:36:48 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@1e28d920] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@642693c2] -2025-10-26 09:36:48 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-26 09:36:48 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_f335bd_1761438239325","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} -2025-10-26 09:36:48 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_f335bd_1761438239325","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} -2025-10-26 09:36:48 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-26 09:44:09 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 66796 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) -2025-10-26 09:44:09 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 -2025-10-26 09:44:09 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" -2025-10-26 09:44:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-26 09:44:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-26 09:44:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 57 ms. Found 6 JPA repository interfaces. -2025-10-26 09:44:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-26 09:44:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-26 09:44:09 [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-26 09:44:09 [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-26 09:44:09 [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-26 09:44:09 [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-26 09:44:09 [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-26 09:44:09 [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-26 09:44:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces. -2025-10-26 09:44:10 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) -2025-10-26 09:44:10 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-26 09:44:10 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] -2025-10-26 09:44:10 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-26 09:44:10 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1044 ms -2025-10-26 09:44:10 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-26 09:44:10 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final -2025-10-26 09:44:10 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@1324e70a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@1324e70a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@1324e70a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@3cc6f036 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@3cc6f036 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@72d16d6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@72d16d6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@7b0525a8 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@7b0525a8 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4f2d8175 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4f2d8175 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@4f2d8175 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@44618fe6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@44618fe6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@44618fe6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@2b15ba1a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@2b15ba1a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@796fe2b5 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@5a6af2c4 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@5a6af2c4 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@123c48d0 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@14fff5e7 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@5454be -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@5454be -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@2dd08ff1 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@2dd08ff1 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@19213a74 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@19213a74 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@30a791a6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@5981f2c6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@49639118 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@45451333 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@6942ee48 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@6942ee48 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@3f033664 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@3f033664 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@6abd8bcd -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@70cd122 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@79424f25 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@5fd4e67f -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@59b1edab -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@3855b27e -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@5305f936 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@5305f936 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@2b1a1a37 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@2b1a1a37 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@7d90764a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@7d90764a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@6843fdc4 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@6843fdc4 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@147375b3 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@147375b3 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@6f430ea8 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@119f072c -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@66456506 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@66456506 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@69944a90 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1ed52f44 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@771afdd5 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@3abadb65 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@3abadb65 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7131d668 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@46a97805 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@667dd150 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@667dd150 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@af04f09 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@af04f09 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@758d4aa9 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@758d4aa9 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@758d4aa9 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@7096d451 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@7816454d -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@67d180e4 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@67d180e4 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@1293f8d7 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@58e5fbe5 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@335896bd -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@335896bd -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@6b33892a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@6b33892a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@6b33892a -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@666b91db -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@666b91db -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@11a67420 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@11a67420 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@11b14ae3 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@11b14ae3 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@2b6ee447 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@2b6ee447 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@9cb927e -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@8585cdd -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@6516181f -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@6516181f -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@6032622 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@5cc075da -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@64ef2719 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@7b423f90 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@24f3fb87 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@c7673ae -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@113c4ad6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@7be859de -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@40fcaae7 -2025-10-26 09:44:10 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-26 09:44:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-26 09:44:10 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@70273633 -2025-10-26 09:44:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-26 09:44:10 [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-26 09:44:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4abfa2ff) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@38c1b1a7) -2025-10-26 09:44:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@73230721) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@10bcbbce) -2025-10-26 09:44:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-26 09:44:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@25fcdcc6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@25fcdcc6 -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@6516181f` -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:44:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:44:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4e481512] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@1ba98508] -2025-10-26 09:44:11 [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-26 09:44:11 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4e481512] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@64ee9290] -2025-10-26 09:44:11 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column description set data type TEXT -2025-10-26 09:44:11 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column participants set data type TEXT -2025-10-26 09:44:11 [main] DEBUG org.hibernate.SQL - - alter table if exists minutes_sections - alter column content set data type TEXT -2025-10-26 09:44:11 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column description set data type TEXT -2025-10-26 09:44:11 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column sections set data type TEXT -2025-10-26 09:44:11 [main] DEBUG org.hibernate.SQL - - alter table if exists todos - alter column description set data type TEXT -2025-10-26 09:44:11 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@64ee9290] for TypeConfiguration -2025-10-26 09:44:11 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-26 09:44:11 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-26 09:44:12 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - ReadFrom: MASTER (모든 작업 Master에서 수행) -2025-10-26 09:44:12 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 -2025-10-26 09:44:12 [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-26 09:44:12 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 -2025-10-26 09:44:12 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 -2025-10-26 09:44:12 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name -2025-10-26 09:44:12 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name -2025-10-26 09:44:12 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_977d2d_1761439452260"} -2025-10-26 09:44:12 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:44:12 [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-26 09:44:12 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 959a9191-0b6a-4b7f-9759-e9f25c3f8034 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-26 09:44:12 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-26 09:44:12 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} -2025-10-26 09:44:12 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-26 09:44:12 [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-26 09:44:12 [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-26 09:44:13 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' -2025-10-26 09:44:13 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.978 seconds (process running for 4.13) -2025-10-26 09:44:22 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-26 09:44:22 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-26 09:44:22 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms -2025-10-26 09:44:22 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings -2025-10-26 09:44:22 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-26 09:44:22 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings -2025-10-26 09:44:22 [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@62d2ab8] -2025-10-26 09:44:22 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: test 회의 -2025-10-26 09:44:22 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: test 회의 -2025-10-26 09:44:22 [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-26 09:44:22 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - + (?, ?, ?, ?, ?, ?) +2025-10-27 09:14:08 [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-27 09:14:08 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:14:08 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 2109ms +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/5f9144ed-43db-479a-99bb-17b20a71fb1e/start +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/5f9144ed-43db-479a-99bb-17b20a71fb1e/start +2025-10-27 09:17:17 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [5f9144ed-43db-479a-99bb-17b20a71fb1e, user-005, dohyunjung, dohyun.jung@example.com] +2025-10-27 09:17:17 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: 5f9144ed-43db-479a-99bb-17b20a71fb1e, userId: user-005 +2025-10-27 09:17:17 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: 5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: 5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - select me1_0.meeting_id, me1_0.created_at, @@ -975,7 +654,6 @@ This generated password is for development use only. Your security configuration me1_0.ended_at, me1_0.location, me1_0.organizer_id, - me1_0.participants, me1_0.purpose, me1_0.scheduled_at, me1_0.started_at, @@ -987,20 +665,47 @@ This generated password is for development use only. Your security configuration meetings me1_0 where me1_0.meeting_id=? -2025-10-26 09:44:22 [http-nio-8082-exec-2] ERROR c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 - meetingId: 182fd2ef-b2df-46c1-99ff-5a8ee1cb6c6e -org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1849) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1780) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1582) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.lambda$getConnection$0(LettuceConnectionFactory.java:1562) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.doInLock(LettuceConnectionFactory.java:1523) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1559) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedConnection(LettuceConnectionFactory.java:1245) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getConnection(LettuceConnectionFactory.java:1051) - at org.springframework.data.redis.core.RedisConnectionUtils.fetchConnection(RedisConnectionUtils.java:195) - at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:144) - at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:105) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:398) +2025-10-27 09:17:17 [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-27 09:17:17 [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-27 09:17:17 [http-nio-8082-exec-4] ERROR c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 - meetingId: 5f9144ed-43db-479a-99bb-17b20a71fb1e +org.springframework.data.redis.RedisSystemException: Error in execution + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52) + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:50) + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) + at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) + at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) + at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:673) + at org.springframework.data.redis.connection.lettuce.LettuceInvoker$DefaultSingleInvocationSpec.get(LettuceInvoker.java:589) + at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.setEx(LettuceStringCommands.java:134) + at org.springframework.data.redis.connection.DefaultedRedisConnection.setEx(DefaultedRedisConnection.java:340) + at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:265) + at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:258) + at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:253) @@ -1026,7 +731,7 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.cache.CacheService$$SpringCGLIB$$0.cacheMeeting() - at com.unicorn.hgzero.meeting.biz.service.MeetingService.createMeeting(MeetingService.java:101) + at com.unicorn.hgzero.meeting.biz.service.MeetingService.startMeeting(MeetingService.java:160) 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) @@ -1050,8 +755,8 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.MeetingService$$SpringCGLIB$$0.createMeeting() - at com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting(MeetingController.java:66) + at com.unicorn.hgzero.meeting.biz.service.MeetingService$$SpringCGLIB$$0.startMeeting() + at com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting(MeetingController.java:152) 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) @@ -1071,7 +776,7 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.MeetingController$$SpringCGLIB$$0.createMeeting() + at com.unicorn.hgzero.meeting.infra.controller.MeetingController$$SpringCGLIB$$0.startMeeting() 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) @@ -1204,85 +909,23 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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: io.lettuce.core.RedisConnectionException: Unable to connect to redis://***********@20.249.177.114/1?timeout=10s - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) - at io.lettuce.core.masterreplica.MasterReplica.getConnection(MasterReplica.java:261) - at io.lettuce.core.masterreplica.MasterReplica.connect(MasterReplica.java:113) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.masterReplicaConnection(StandaloneConnectionProvider.java:153) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$0(StandaloneConnectionProvider.java:111) - at java.base/java.util.Optional.map(Optional.java:260) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:111) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1778) - ... 213 common frames omitted -Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to redis-node-0.redis-headless.hgzero.svc.cluster.local/:6379 - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) - at io.lettuce.core.RedisClient.lambda$transformAsyncConnectionException$22(RedisClient.java:778) - at io.lettuce.core.DefaultConnectionFuture.lambda$thenCompose$1(DefaultConnectionFuture.java:253) - at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) - at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) - at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) - at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194) - at io.lettuce.core.AbstractRedisClient.lambda$initializeChannelAsync0$6(AbstractRedisClient.java:454) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110) - at io.netty.channel.DefaultChannelPromise.setFailure(DefaultChannelPromise.java:89) - at io.netty.bootstrap.Bootstrap$2.operationComplete(Bootstrap.java:242) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110) - at io.netty.resolver.InetSocketAddressResolver$1.operationComplete(InetSocketAddressResolver.java:62) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) - at io.netty.resolver.dns.DnsNameResolver.tryFailure(DnsNameResolver.java:1075) - at io.netty.resolver.dns.DnsNameResolver.access$500(DnsNameResolver.java:96) - at io.netty.resolver.dns.DnsNameResolver$6.operationComplete(DnsNameResolver.java:1097) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) - at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1158) - at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097) - at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455) - at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:686) - at io.netty.resolver.dns.DnsResolveContext.access$500(DnsResolveContext.java:70) - at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:513) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625) - at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105) - at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:308) - at io.netty.resolver.dns.DnsQueryContext.finishSuccess(DnsQueryContext.java:299) - at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1491) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) +Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica. + at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:144) + at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) + at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) + at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) + at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) + at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745) + at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680) + at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:97) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) 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) @@ -1291,123 +934,43 @@ Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to redis- at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ... 1 common frames omitted -Caused by: java.util.concurrent.CompletionException: java.net.UnknownHostException: Failed to resolve 'redis-node-0.redis-headless.hgzero.svc.cluster.local' [A(1)] after 2 queries - at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) - at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:347) - at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:636) - ... 70 common frames omitted -Caused by: java.net.UnknownHostException: Failed to resolve 'redis-node-0.redis-headless.hgzero.svc.cluster.local' [A(1)] after 2 queries - at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150) - ... 35 common frames omitted -Caused by: io.netty.resolver.dns.DnsErrorCauseException: Query failed with NXDOMAIN - at io.netty.resolver.dns.DnsResolveContext.onResponse(..)(Unknown Source) -2025-10-26 09:44:23 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=182fd2ef-b2df-46c1-99ff-5a8ee1cb6c6e -2025-10-26 09:44:23 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_977d2d_1761439452260","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-26 09:44:23 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_977d2d_1761439452260"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_977d2d_1761439452260","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_977d2d_1761439452260"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_977d2d_1761439452260","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_977d2d_1761439452260","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_977d2d_1761439452260","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"5e125cadc6744ba5a28faf87bf977e94_G24"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_977d2d_1761439452260","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_977d2d_1761439452260"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_977d2d_1761439452260","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_977d2d_1761439452260","entityPath":"$cbs","linkName":"cbs"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_977d2d_1761439452260","entityPath":"$cbs"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_977d2d_1761439452260","entityPath":"$cbs","subscriberId":"un_d276fb_1761439463212"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_977d2d_1761439452260","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_977d2d_1761439452260","entityPath":"$cbs"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_977d2d_1761439452260","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-26 09:44:23 [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-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_977d2d_1761439452260","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} -2025-10-26 09:44:23 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_977d2d_1761439452260","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-26 09:44:23 [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-26 09:44:23 [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-26 09:44:23 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 182fd2ef-b2df-46c1-99ff-5a8ee1cb6c6e, participants count: 2 -2025-10-26 09:44:23 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=182fd2ef-b2df-46c1-99ff-5a8ee1cb6c6e, participants=2 -2025-10-26 09:44:23 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 182fd2ef-b2df-46c1-99ff-5a8ee1cb6c6e -2025-10-26 09:44:23 [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, participants, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -2025-10-26 09:44:23 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 182fd2ef-b2df-46c1-99ff-5a8ee1cb6c6e -2025-10-26 09:44:23 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 613ms -2025-10-26 09:45:40 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings -2025-10-26 09:45:40 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-26 09:45:40 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings -2025-10-26 09:45:40 [http-nio-8082-exec-5] 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@1e330a13] -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: test 회의 -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: test 회의 -2025-10-26 09:45:40 [http-nio-8082-exec-5] 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-26 09:45:40 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - +2025-10-27 09:17:17 [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.participants, - 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 + 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 - meetings me1_0 + sessions se1_0 where - me1_0.meeting_id=? -2025-10-26 09:45:40 [http-nio-8082-exec-5] ERROR c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 - meetingId: 787c3dab-f375-4a99-bf86-c0de7997248c -org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1849) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1780) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1582) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.lambda$getConnection$0(LettuceConnectionFactory.java:1562) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.doInLock(LettuceConnectionFactory.java:1523) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1559) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedConnection(LettuceConnectionFactory.java:1245) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getConnection(LettuceConnectionFactory.java:1051) - at org.springframework.data.redis.core.RedisConnectionUtils.fetchConnection(RedisConnectionUtils.java:195) - at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:144) - at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:105) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:398) + se1_0.session_id=? +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=3bee2b78-9a53-4a10-b652-78bc4cafad88, meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: 5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] ERROR c.u.h.m.infra.cache.CacheService - 캐시 삭제 실패 - key: meeting:5f9144ed-43db-479a-99bb-17b20a71fb1e +org.springframework.data.redis.RedisSystemException: Error in execution + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52) + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:50) + at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) + at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) + at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) + at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) + at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:665) + at org.springframework.data.redis.connection.lettuce.LettuceInvoker.just(LettuceInvoker.java:94) + at org.springframework.data.redis.connection.lettuce.LettuceKeyCommands.del(LettuceKeyCommands.java:91) + at org.springframework.data.redis.core.RedisTemplate.lambda$delete$5(RedisTemplate.java:593) + at org.springframework.data.redis.core.RedisTemplate.lambda$doWithKeys$22(RedisTemplate.java:790) + at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) - at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) - at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:253) - at org.springframework.data.redis.core.ValueOperations.set(ValueOperations.java:75) - at com.unicorn.hgzero.meeting.infra.cache.CacheService.cacheMeeting(CacheService.java:49) + at org.springframework.data.redis.core.RedisTemplate.doWithKeys(RedisTemplate.java:790) + at org.springframework.data.redis.core.RedisTemplate.delete(RedisTemplate.java:593) + at com.unicorn.hgzero.meeting.infra.cache.CacheService.evictCache(CacheService.java:203) 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) @@ -1427,8 +990,8 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.cache.CacheService$$SpringCGLIB$$0.cacheMeeting() - at com.unicorn.hgzero.meeting.biz.service.MeetingService.createMeeting(MeetingService.java:101) + at com.unicorn.hgzero.meeting.infra.cache.CacheService$$SpringCGLIB$$0.evictCache() + at com.unicorn.hgzero.meeting.biz.service.MeetingService.startMeeting(MeetingService.java:206) 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) @@ -1452,8 +1015,8 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.MeetingService$$SpringCGLIB$$0.createMeeting() - at com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting(MeetingController.java:66) + at com.unicorn.hgzero.meeting.biz.service.MeetingService$$SpringCGLIB$$0.startMeeting() + at com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting(MeetingController.java:152) 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) @@ -1473,7 +1036,7 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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.MeetingController$$SpringCGLIB$$0.createMeeting() + at com.unicorn.hgzero.meeting.infra.controller.MeetingController$$SpringCGLIB$$0.startMeeting() 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) @@ -1606,85 +1169,23 @@ org.springframework.data.redis.RedisConnectionFailureException: Unable to connec 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: io.lettuce.core.RedisConnectionException: Unable to connect to redis://***********@20.249.177.114/1?timeout=10s - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) - at io.lettuce.core.masterreplica.MasterReplica.getConnection(MasterReplica.java:261) - at io.lettuce.core.masterreplica.MasterReplica.connect(MasterReplica.java:113) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.masterReplicaConnection(StandaloneConnectionProvider.java:153) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$0(StandaloneConnectionProvider.java:111) - at java.base/java.util.Optional.map(Optional.java:260) - at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:111) - at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1778) - ... 213 common frames omitted -Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to redis-node-0.redis-headless.hgzero.svc.cluster.local/:6379 - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) - at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) - at io.lettuce.core.RedisClient.lambda$transformAsyncConnectionException$22(RedisClient.java:778) - at io.lettuce.core.DefaultConnectionFuture.lambda$thenCompose$1(DefaultConnectionFuture.java:253) - at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) - at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) - at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) - at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194) - at io.lettuce.core.AbstractRedisClient.lambda$initializeChannelAsync0$6(AbstractRedisClient.java:454) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110) - at io.netty.channel.DefaultChannelPromise.setFailure(DefaultChannelPromise.java:89) - at io.netty.bootstrap.Bootstrap$2.operationComplete(Bootstrap.java:242) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110) - at io.netty.resolver.InetSocketAddressResolver$1.operationComplete(InetSocketAddressResolver.java:62) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) - at io.netty.resolver.dns.DnsNameResolver.tryFailure(DnsNameResolver.java:1075) - at io.netty.resolver.dns.DnsNameResolver.access$500(DnsNameResolver.java:96) - at io.netty.resolver.dns.DnsNameResolver$6.operationComplete(DnsNameResolver.java:1097) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629) - at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118) - at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1158) - at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097) - at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455) - at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:686) - at io.netty.resolver.dns.DnsResolveContext.access$500(DnsResolveContext.java:70) - at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:513) - at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) - at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583) - at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559) - at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) - at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) - at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625) - at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105) - at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:308) - at io.netty.resolver.dns.DnsQueryContext.finishSuccess(DnsQueryContext.java:299) - at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1491) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) +Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica. + at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:144) + at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) + at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) + at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) + at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) + at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745) + at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680) + at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:97) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) 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) @@ -1693,356 +1194,232 @@ Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to redis- at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ... 1 common frames omitted -Caused by: java.util.concurrent.CompletionException: java.net.UnknownHostException: Failed to resolve 'redis-node-0.redis-headless.hgzero.svc.cluster.local' [A(1)] after 2 queries - at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) - at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:347) - at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:636) - ... 70 common frames omitted -Caused by: java.net.UnknownHostException: Failed to resolve 'redis-node-0.redis-headless.hgzero.svc.cluster.local' [A(1)] after 2 queries - at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150) - ... 35 common frames omitted -Caused by: io.netty.resolver.dns.DnsErrorCauseException: Query failed with NXDOMAIN - at io.netty.resolver.dns.DnsResolveContext.onResponse(..)(Unknown Source) -2025-10-26 09:45:40 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=787c3dab-f375-4a99-bf86-c0de7997248c -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 787c3dab-f375-4a99-bf86-c0de7997248c, participants count: 2 -2025-10-26 09:45:40 [http-nio-8082-exec-5] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=787c3dab-f375-4a99-bf86-c0de7997248c, participants=2 -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 787c3dab-f375-4a99-bf86-c0de7997248c -2025-10-26 09:45:40 [http-nio-8082-exec-5] 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, participants, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 787c3dab-f375-4a99-bf86-c0de7997248c -2025-10-26 09:45:40 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 134ms -2025-10-26 09:53:34 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:53:34 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_977d2d_1761439452260","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} -2025-10-26 09:53:34 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:53:34 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_977d2d_1761439452260","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} -2025-10-26 09:53:34 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_977d2d_1761439452260","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} -2025-10-26 09:53:34 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-26 09:53:34 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@64ee9290] for TypeConfiguration -2025-10-26 09:53:34 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@4d83fccb] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@64ee9290] -2025-10-26 09:53:34 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-26 09:53:34 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-26 09:53:40 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 70324 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) -2025-10-26 09:53:40 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 -2025-10-26 09:53:40 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" -2025-10-26 09:53:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-26 09:53:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-26 09:53:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 57 ms. Found 6 JPA repository interfaces. -2025-10-26 09:53:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-26 09:53:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-26 09:53:41 [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-26 09:53:41 [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-26 09:53:41 [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-26 09:53:41 [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-26 09:53:41 [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-26 09:53:41 [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-26 09:53:41 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 0 Redis repository interfaces. -2025-10-26 09:53:41 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) -2025-10-26 09:53:41 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-26 09:53:41 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] -2025-10-26 09:53:41 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-26 09:53:41 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 984 ms -2025-10-26 09:53:41 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-26 09:53:41 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final -2025-10-26 09:53:41 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@3cc6f036 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@3cc6f036 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@3cc6f036 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@72d16d6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@72d16d6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@7b0525a8 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@7b0525a8 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@4f2d8175 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@4f2d8175 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@44618fe6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@44618fe6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@44618fe6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@2b15ba1a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@2b15ba1a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@2b15ba1a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@796fe2b5 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@796fe2b5 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@5a6af2c4 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@123c48d0 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@123c48d0 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@14fff5e7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@1203d787 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1f72fbd1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@6f785a27 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@443dae2 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@8f09a02 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@5454be -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@5454be -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@5454be -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@2dd08ff1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@2dd08ff1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@37dec463 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@3bf26810 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@19213a74 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@30a791a6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@30a791a6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@719bb60d -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@5981f2c6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@5981f2c6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@5981f2c6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@49639118 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@45451333 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@6942ee48 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@3f033664 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@3f033664 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@6abd8bcd -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@6abd8bcd -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@70cd122 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@79424f25 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@5fd4e67f -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@59b1edab -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@3855b27e -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@5305f936 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@2b1a1a37 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@2b1a1a37 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@7d90764a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@7d90764a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@6843fdc4 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@6843fdc4 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@147375b3 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@147375b3 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@6f430ea8 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@6f430ea8 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@119f072c -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@66456506 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@69944a90 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@69944a90 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@1ed52f44 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@771afdd5 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@3abadb65 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@7131d668 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@7131d668 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@46a97805 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@667dd150 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@af04f09 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@af04f09 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@758d4aa9 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@758d4aa9 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@78e97d4d -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@7096d451 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@7096d451 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@7096d451 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@7816454d -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@67d180e4 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@54e18a46 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@1293f8d7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@1293f8d7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@1293f8d7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@58e5fbe5 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@335896bd -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@6b33892a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@6b33892a -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@666b91db -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@666b91db -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@666b91db -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@11a67420 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@11a67420 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@663cf5d7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@11b14ae3 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@11b14ae3 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@2b6ee447 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@2b6ee447 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@9cb927e -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@9cb927e -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@8585cdd -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@1325f967 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@40cb95c1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@40cb95c1 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@5cc075da -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@4258106 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@7b423f90 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@24f3fb87 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@c7673ae -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@113c4ad6 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@7be859de -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@40fcaae7 -2025-10-26 09:53:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@7fa85a55 -2025-10-26 09:53:41 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-26 09:53:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-26 09:53:42 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@1f641fb7 -2025-10-26 09:53:42 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-26 09:53:42 [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-26 09:53:42 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@38c1b1a7) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@73230721) -2025-10-26 09:53:42 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@10bcbbce) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@27234b7c) -2025-10-26 09:53:42 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-26 09:53:42 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@180fb796 -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@180fb796 -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@40cb95c1` -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:53:42 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-26 09:53:42 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1ba98508] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@4b552b13] -2025-10-26 09:53:42 [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-26 09:53:42 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1ba98508] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@17e7cc67] -2025-10-26 09:53:42 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column description set data type TEXT -2025-10-26 09:53:42 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column participants set data type TEXT -2025-10-26 09:53:42 [main] DEBUG org.hibernate.SQL - - alter table if exists minutes_sections - alter column content set data type TEXT -2025-10-26 09:53:42 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column description set data type TEXT -2025-10-26 09:53:42 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column sections set data type TEXT -2025-10-26 09:53:42 [main] DEBUG org.hibernate.SQL - - alter table if exists todos - alter column description set data type TEXT -2025-10-26 09:53:42 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@17e7cc67] for TypeConfiguration -2025-10-26 09:53:42 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-26 09:53:42 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-26 09:53:43 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) -2025-10-26 09:53:43 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 -2025-10-26 09:53:43 [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-26 09:53:43 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 -2025-10-26 09:53:43 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 -2025-10-26 09:53:43 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name -2025-10-26 09:53:43 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name -2025-10-26 09:53:43 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_d16b84_1761440023504"} -2025-10-26 09:53:43 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:53:43 [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-26 09:53:43 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 3788735f-3bb7-4ee1-97a7-c83b3762790b - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-26 09:53:43 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-26 09:53:43 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} -2025-10-26 09:53:43 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-26 09:53:43 [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-26 09:53:44 [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-26 09:53:44 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' -2025-10-26 09:53:44 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 3.96 seconds (process running for 4.115) -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings -2025-10-26 09:53:56 [http-nio-8082-exec-1] 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@2a71050c] -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MeetingController - 회의 예약 요청 - userId: user-005, title: test 회의 -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MeetingService - Creating meeting: test 회의 -2025-10-26 09:53:56 [http-nio-8082-exec-1] 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-26 09:53:56 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: 5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - select - me1_0.meeting_id, + me1_0.minutes_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.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, + me1_0.created_by, + me1_0.finalized_at, + me1_0.finalized_by, + me1_0.meeting_id, me1_0.status, - me1_0.template_id, me1_0.title, - me1_0.updated_at + me1_0.updated_at, + me1_0.version from - meetings me1_0 + minutes me1_0 where - me1_0.meeting_id=? -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 - meetingId: 9e471863-3f0c-46d8-bbd6-820cc362bdc2 -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cached: meetingId=9e471863-3f0c-46d8-bbd6-820cc362bdc2 -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_d16b84_1761440023504","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_d16b84_1761440023504"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_d16b84_1761440023504","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_d16b84_1761440023504"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_d16b84_1761440023504","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_d16b84_1761440023504","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_d16b84_1761440023504","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"075ba35328594c068746f9d96f6f4a63_G20"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_d16b84_1761440023504","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_d16b84_1761440023504"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_d16b84_1761440023504","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_d16b84_1761440023504","entityPath":"$cbs","linkName":"cbs"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_d16b84_1761440023504","entityPath":"$cbs"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_d16b84_1761440023504","entityPath":"$cbs","subscriberId":"un_1f23d3_1761440036658"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_d16b84_1761440023504","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_d16b84_1761440023504","entityPath":"$cbs"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_d16b84_1761440023504","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-26 09:53:56 [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-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_d16b84_1761440023504","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} -2025-10-26 09:53:56 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_d16b84_1761440023504","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-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=daewoong.jeon@kt.com -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=du0928@gmail.com -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.i.e.p.EventHubPublisher - 회의 생성 알림 발행 완료 - meetingId: 9e471863-3f0c-46d8-bbd6-820cc362bdc2, participants count: 2 -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG c.u.h.m.biz.service.MeetingService - Meeting invitation events published: meetingId=9e471863-3f0c-46d8-bbd6-820cc362bdc2, participants=2 -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.biz.service.MeetingService - Meeting created successfully: 9e471863-3f0c-46d8-bbd6-820cc362bdc2 -2025-10-26 09:53:56 [http-nio-8082-exec-1] DEBUG org.hibernate.SQL - + me1_0.minutes_id=? +2025-10-27 09:17:17 [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, + 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-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=a5c8b779-e23f-499d-be5b-01274cc69d59, meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=5f9144ed-43db-479a-99bb-17b20a71fb1e +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e, sessionId=3bee2b78-9a53-4a10-b652-78bc4cafad88 +2025-10-27 09:17:17 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=5f9144ed-43db-479a-99bb-17b20a71fb1e, sessionId=3bee2b78-9a53-4a10-b652-78bc4cafad88, minutesId=a5c8b779-e23f-499d-be5b-01274cc69d59 +2025-10-27 09:17:17 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - /* insert for - com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */insert + com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert into - meetings (created_at, description, end_time, ended_at, location, organizer_id, participants, purpose, scheduled_at, started_at, status, template_id, title, updated_at, meeting_id) + sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) values - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.h.m.i.c.MeetingController - 회의 예약 완료 - userId: user-005, meetingId: 9e471863-3f0c-46d8-bbd6-820cc362bdc2 -2025-10-26 09:53:56 [http-nio-8082-exec-1] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.createMeeting 완료 - 실행시간: 593ms + (?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-27 09:17:17 [http-nio-8082-exec-4] 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-27 09:17:18 [http-nio-8082-exec-4] 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-27 09:17:18 [http-nio-8082-exec-4] 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-27 09:17:18 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* delete for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */delete + from + meeting_participants + where + meeting_id=? + and user_id=? +2025-10-27 09:17:18 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + /* delete for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */delete + from + meeting_participants + where + meeting_id=? + and user_id=? +2025-10-27 09:17:18 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: 5f9144ed-43db-479a-99bb-17b20a71fb1e, sessionId: 3bee2b78-9a53-4a10-b652-78bc4cafad88 +2025-10-27 09:17:18 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 1151ms +2025-10-27 09:21:54 [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-27 09:21:54 [lettuce-eventExecutorLoop-1-2] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-27 09:21:54 [lettuce-nioEventLoop-6-2] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-27 09:32:07 [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-27 09:47:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:link:detach-forced","errorDescription":"Idle link tracker, link hgzero-eventhub-name has been idle for 1800000ms TrackingId:fb21957a-303a-488b-810b-d55917d07872_G28, SystemTracker:hgzero-eventhub-ns:EventHub:hgzero-eventhub-name, Timestamp:2025-10-27T00:47:17","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} +2025-10-27 09:47:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_c2537e_1761523655847","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","state":"ACTIVE"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","sessionName":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","sessionName":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [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_c2537e_1761523655847], entityName[hgzero-eventhub-name] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18', 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_c2537e_1761523655847], entityName[hgzero-eventhub-name] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18', 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-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_c2537e_1761523655847], entityName[hgzero-eventhub-name] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: hgzero-eventhub-name]","connectionId":"MF_c2537e_1761523655847","sessionName":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_c2537e_1761523655847","linkName":"cbs:sender","entityPath":"$cbs","state":"ACTIVE"} +2025-10-27 09:52:18 [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 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 98]","connectionId":"MF_c2537e_1761523655847","linkName":"cbs"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: cbs:sender, LINK_CREDIT: 98]","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs","tryCount":0,"interval_ms":4511} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_c2537e_1761523655847","linkName":"cbs:receiver","entityPath":"$cbs","state":"ACTIVE"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","sessionName":"cbs-session"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","sessionName":"cbs-session"} +2025-10-27 09:52:18 [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_c2537e_1761523655847], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18', 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_c2537e_1761523655847], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18', 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-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_c2537e_1761523655847], entityName[cbs-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: cbs-session]","connectionId":"MF_c2537e_1761523655847","sessionName":"cbs-session"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_c2537e_1761523655847","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_c2537e_1761523655847","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_c2537e_1761523655847","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [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-27 09:52:18 [reactor-executor-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_86ed40_1761526338133"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_c2537e_1761523655847","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","sessionName":"hgzero-eventhub-name"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_c2537e_1761523655847","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_c2537e_1761523655847","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_c2537e_1761523655847","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'daf94f96845d4a4c8f204bc24deb4033_G28' because it did not have any active links in the past 300000 milliseconds. TrackingId:daf94f96845d4a4c8f204bc24deb4033_G28, SystemTracker:gateway5, Timestamp:2025-10-27T00:52:18","sessionName":"cbs-session"} +2025-10-27 09:52:18 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_c2537e_1761523655847","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 09:52:22 [parallel-7] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Requesting from upstream.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs","tryCount":0} +2025-10-27 09:52:22 [parallel-7] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs"} +2025-10-27 09:52:22 [parallel-7] 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_c2537e_1761523655847","entityPath":"$cbs","tryCount":1} +2025-10-27 09:52:22 [parallel-7] 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-27 09:52:22 [parallel-7] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Error in AMQP channel processor.","connectionId":"MF_c2537e_1761523655847","entityPath":"$cbs","subscriberId":"un_e23365_1761526338131"} diff --git a/meeting/logs/meeting-service.log.2025-10-26.0.gz b/meeting/logs/meeting-service.log.2025-10-26.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..82d23057f898d23c88679d334ecacfa886d9b110 GIT binary patch literal 50814 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

F#^{ejg zyVcF5)I7d96TgnE#9(32s?PiLi zqPbf+Z)Z~$v+b2>*2Xq8j2aWCG~6l7F?71y@h>!3EwDWry+S$uUPRHBCJ%6y& zpdAvhzrSzyTN=MW zE*WndcU46?@}9Ru*KC}jH%$$_K74MU2A868&Fy_%T|5Uwh>1oTVvbpVD@CV#)1gW> zTlOgKP$f6KK)yV*qZf$l5w`(luItj=?tP+ne9@up_*SV-eE%A)@6Cf~>OX^^&W(EL ziDq41(BbZv6--C>F1?~-2hzG0Ny`YY@T`?Wn3^Io{%9|SM?#ku)o@v-Cq_aN zQnBldX@lU3xV4se9v$&d4nGDFx*kX;OcA7pWUy?O&x0dyAGHw(f*tPm1PeSeEuk$| zik}phuy7(u4-5q>@v~y_M-#9u$EixP0!4}rSLRsvsd8TBDLomWnH-~&ofTB#UM#X1 zE)GFZSmCzk2NT6CwR{>UDmzJil`ql_O9MMBJ3LI89NS^tkJzrMLG+=-De34uqK32* zCD67G3<<&63a-YOToACrgc@2VOwi;RrS!mWmbu#(w#G6<>51k8sb;3hBs@!GPn37h z>^&NQP$J)@8IBNw8+{vqPyF-pno^GoT33~gT-9t`nZR2V4O$X26bH`EhsMXk6uU>Y zM?Pzwn6LxWnzWjz7$HpRFnUNoZAV-m43#%h#aZ)!PeBXn26fX7$jce`J!k_=JgSLv zssm+cT`(c?43Ul99mvmot^>N}%!T92Qu?u*v+dGjFFDkP+SvXbabpTR@|JScG6e9- r0^B)W9;;cusmlcNy^aNrv8@Wbce7JqaB67x1+=ohV=5g32Jrs?=m}a| literal 0 HcmV?d00001 diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java index 9d295a8..0513df2 100644 --- a/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java @@ -45,6 +45,8 @@ public class MeetingService implements private final MinutesWriter minutesWriter; private final CacheService cacheService; private final EventPublisher eventPublisher; + private final com.unicorn.hgzero.meeting.biz.usecase.out.ParticipantWriter participantWriter; + private final com.unicorn.hgzero.meeting.biz.usecase.out.ParticipantReader participantReader; /** * 회의 생성 @@ -96,6 +98,12 @@ public class MeetingService implements // 5. 회의 저장 Meeting savedMeeting = meetingWriter.save(meeting); + // 5-1. 참석자 목록 저장 + if (command.participants() != null && !command.participants().isEmpty()) { + participantWriter.saveParticipants(meetingId, command.participants()); + log.debug("Participants saved: meetingId={}, count={}", meetingId, command.participants().size()); + } + // 6. 캐시 저장 (TTL: 10분) try { cacheService.cacheMeeting(meetingId, savedMeeting, 600); @@ -382,22 +390,19 @@ public class MeetingService implements } // 이미 참석자로 등록되었는지 확인 - if (meeting.getParticipants() != null && meeting.getParticipants().contains(command.email())) { + if (participantReader.existsParticipant(command.meetingId(), command.email())) { log.warn("Email {} is already a participant of meeting {}", command.email(), command.meetingId()); throw new BusinessException(ErrorCode.DUPLICATE_RESOURCE); } - // 참석자 목록에 추가 - meeting.addParticipant(command.email()); - - // 저장 - meetingWriter.save(meeting); + // 참석자 저장 + participantWriter.saveParticipant(command.meetingId(), command.email()); // TODO: 실제 이메일 발송 구현 필요 // 이메일 발송 서비스 호출 // emailService.sendInvitation(command.email(), meeting, command.frontendUrl()); // 현재는 로그만 남기고 성공으로 처리 - log.info("Invitation email would be sent to {} for meeting {} (Frontend URL: {})", + log.info("Invitation email would be sent to {} for meeting {} (Frontend URL: {})", command.email(), meeting.getTitle(), command.frontendUrl()); log.info("Participant invited successfully: {} to meeting {}", command.email(), command.meetingId()); diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantReader.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantReader.java new file mode 100644 index 0000000..30634c0 --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantReader.java @@ -0,0 +1,24 @@ +package com.unicorn.hgzero.meeting.biz.usecase.out; + +import java.util.List; + +/** + * 참석자 조회 인터페이스 + */ +public interface ParticipantReader { + + /** + * 회의 ID로 참석자 목록 조회 + */ + List findParticipantsByMeetingId(String meetingId); + + /** + * 사용자 ID로 참여 회의 목록 조회 + */ + List findMeetingsByParticipant(String userId); + + /** + * 특정 회의에 특정 사용자가 참석자로 등록되어 있는지 확인 + */ + boolean existsParticipant(String meetingId, String userId); +} diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantWriter.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantWriter.java new file mode 100644 index 0000000..8943045 --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/usecase/out/ParticipantWriter.java @@ -0,0 +1,29 @@ +package com.unicorn.hgzero.meeting.biz.usecase.out; + +import java.util.List; + +/** + * 참석자 저장 인터페이스 + */ +public interface ParticipantWriter { + + /** + * 회의에 참석자 추가 + */ + void saveParticipant(String meetingId, String userId); + + /** + * 회의에 참석자 목록 일괄 저장 + */ + void saveParticipants(String meetingId, List userIds); + + /** + * 회의에서 참석자 삭제 + */ + void deleteParticipant(String meetingId, String userId); + + /** + * 회의의 모든 참석자 삭제 + */ + void deleteAllParticipants(String meetingId); +} diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/MeetingGateway.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/MeetingGateway.java index 4982cf1..a5037af 100644 --- a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/MeetingGateway.java +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/MeetingGateway.java @@ -3,6 +3,7 @@ package com.unicorn.hgzero.meeting.infra.gateway; import com.unicorn.hgzero.meeting.biz.domain.Meeting; import com.unicorn.hgzero.meeting.biz.usecase.out.MeetingReader; import com.unicorn.hgzero.meeting.biz.usecase.out.MeetingWriter; +import com.unicorn.hgzero.meeting.biz.usecase.out.ParticipantReader; import com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity; import com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; import lombok.RequiredArgsConstructor; @@ -24,48 +25,72 @@ import java.util.stream.Collectors; public class MeetingGateway implements MeetingReader, MeetingWriter { private final MeetingJpaRepository meetingJpaRepository; + private final ParticipantReader participantReader; @Override public Optional findById(String meetingId) { return meetingJpaRepository.findById(meetingId) - .map(MeetingEntity::toDomain); + .map(this::enrichWithParticipants); } @Override public List findByOrganizerId(String organizerId) { return meetingJpaRepository.findByOrganizerId(organizerId).stream() - .map(MeetingEntity::toDomain) + .map(this::enrichWithParticipants) .collect(Collectors.toList()); } @Override public List findByStatus(String status) { return meetingJpaRepository.findByStatus(status).stream() - .map(MeetingEntity::toDomain) + .map(this::enrichWithParticipants) .collect(Collectors.toList()); } @Override public List findByOrganizerIdAndStatus(String organizerId, String status) { return meetingJpaRepository.findByOrganizerIdAndStatus(organizerId, status).stream() - .map(MeetingEntity::toDomain) + .map(this::enrichWithParticipants) .collect(Collectors.toList()); } @Override public List findByScheduledTimeBetween(LocalDateTime startTime, LocalDateTime endTime) { return meetingJpaRepository.findByScheduledAtBetween(startTime, endTime).stream() - .map(MeetingEntity::toDomain) + .map(this::enrichWithParticipants) .collect(Collectors.toList()); } @Override public List findByTemplateId(String templateId) { return meetingJpaRepository.findByTemplateId(templateId).stream() - .map(MeetingEntity::toDomain) + .map(this::enrichWithParticipants) .collect(Collectors.toList()); } + /** + * Meeting 엔티티를 도메인으로 변환하면서 participants 정보 추가 + */ + private Meeting enrichWithParticipants(MeetingEntity entity) { + Meeting meeting = entity.toDomain(); + List participants = participantReader.findParticipantsByMeetingId(entity.getMeetingId()); + return Meeting.builder() + .meetingId(meeting.getMeetingId()) + .title(meeting.getTitle()) + .purpose(meeting.getPurpose()) + .description(meeting.getDescription()) + .scheduledAt(meeting.getScheduledAt()) + .endTime(meeting.getEndTime()) + .location(meeting.getLocation()) + .startedAt(meeting.getStartedAt()) + .endedAt(meeting.getEndedAt()) + .status(meeting.getStatus()) + .organizerId(meeting.getOrganizerId()) + .participants(participants) + .templateId(meeting.getTemplateId()) + .build(); + } + @Override public Meeting save(Meeting meeting) { MeetingEntity entity = MeetingEntity.fromDomain(meeting); diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/ParticipantGateway.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/ParticipantGateway.java new file mode 100644 index 0000000..2fcb88d --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/ParticipantGateway.java @@ -0,0 +1,101 @@ +package com.unicorn.hgzero.meeting.infra.gateway; + +import com.unicorn.hgzero.meeting.biz.usecase.out.ParticipantReader; +import com.unicorn.hgzero.meeting.biz.usecase.out.ParticipantWriter; +import com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity; +import com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 참석자 Gateway 구현체 + * ParticipantReader, ParticipantWriter 인터페이스 구현 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class ParticipantGateway implements ParticipantReader, ParticipantWriter { + + private final MeetingParticipantJpaRepository participantRepository; + + @Override + @Transactional(readOnly = true) + public List findParticipantsByMeetingId(String meetingId) { + return participantRepository.findByMeetingId(meetingId).stream() + .map(MeetingParticipantEntity::getUserId) + .collect(Collectors.toList()); + } + + @Override + @Transactional(readOnly = true) + public List findMeetingsByParticipant(String userId) { + return participantRepository.findByUserId(userId).stream() + .map(MeetingParticipantEntity::getMeetingId) + .collect(Collectors.toList()); + } + + @Override + @Transactional(readOnly = true) + public boolean existsParticipant(String meetingId, String userId) { + return participantRepository.existsByMeetingIdAndUserId(meetingId, userId); + } + + @Override + @Transactional + public void saveParticipant(String meetingId, String userId) { + if (!participantRepository.existsByMeetingIdAndUserId(meetingId, userId)) { + MeetingParticipantEntity participant = MeetingParticipantEntity.builder() + .meetingId(meetingId) + .userId(userId) + .invitationStatus("PENDING") + .attended(false) + .build(); + participantRepository.save(participant); + log.debug("Participant saved: meetingId={}, userId={}", meetingId, userId); + } else { + log.debug("Participant already exists: meetingId={}, userId={}", meetingId, userId); + } + } + + @Override + @Transactional + public void saveParticipants(String meetingId, List userIds) { + if (userIds == null || userIds.isEmpty()) { + return; + } + + List participants = userIds.stream() + .filter(userId -> !participantRepository.existsByMeetingIdAndUserId(meetingId, userId)) + .map(userId -> MeetingParticipantEntity.builder() + .meetingId(meetingId) + .userId(userId) + .invitationStatus("PENDING") + .attended(false) + .build()) + .collect(Collectors.toList()); + + if (!participants.isEmpty()) { + participantRepository.saveAll(participants); + log.debug("Participants saved: meetingId={}, count={}", meetingId, participants.size()); + } + } + + @Override + @Transactional + public void deleteParticipant(String meetingId, String userId) { + participantRepository.deleteById(new com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantId(meetingId, userId)); + log.debug("Participant deleted: meetingId={}, userId={}", meetingId, userId); + } + + @Override + @Transactional + public void deleteAllParticipants(String meetingId) { + participantRepository.deleteByMeetingId(meetingId); + log.debug("All participants deleted: meetingId={}", meetingId); + } +} diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingEntity.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingEntity.java index 04e3596..28d7173 100644 --- a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingEntity.java +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingEntity.java @@ -9,7 +9,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import java.time.LocalDateTime; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -59,12 +59,16 @@ public class MeetingEntity extends BaseTimeEntity { @Column(name = "organizer_id", length = 50, nullable = false) private String organizerId; - @Column(name = "participants", columnDefinition = "TEXT") - private String participants; - @Column(name = "template_id", length = 50) private String templateId; + /** + * 회의 참석자 목록 (일대다 관계) + */ + @OneToMany(mappedBy = "meeting", cascade = CascadeType.ALL, orphanRemoval = true) + @Builder.Default + private List participants = new ArrayList<>(); + public Meeting toDomain() { return Meeting.builder() .meetingId(this.meetingId) @@ -78,7 +82,11 @@ public class MeetingEntity extends BaseTimeEntity { .endedAt(this.endedAt) .status(this.status) .organizerId(this.organizerId) - .participants(parseParticipants(this.participants)) + .participants(this.participants != null + ? this.participants.stream() + .map(MeetingParticipantEntity::getUserId) + .collect(Collectors.toList()) + : List.of()) .templateId(this.templateId) .build(); } @@ -96,7 +104,6 @@ public class MeetingEntity extends BaseTimeEntity { .endedAt(meeting.getEndedAt()) .status(meeting.getStatus()) .organizerId(meeting.getOrganizerId()) - .participants(formatParticipants(meeting.getParticipants())) .templateId(meeting.getTemplateId()) .build(); } @@ -110,18 +117,4 @@ public class MeetingEntity extends BaseTimeEntity { this.status = "COMPLETED"; this.endedAt = LocalDateTime.now(); } - - private static List parseParticipants(String participants) { - if (participants == null || participants.isEmpty()) { - return List.of(); - } - return Arrays.asList(participants.split(",")); - } - - private static String formatParticipants(List participants) { - if (participants == null || participants.isEmpty()) { - return ""; - } - return String.join(",", participants); - } } diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantEntity.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantEntity.java new file mode 100644 index 0000000..d82fd5b --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantEntity.java @@ -0,0 +1,78 @@ +package com.unicorn.hgzero.meeting.infra.gateway.entity; + +import com.unicorn.hgzero.common.entity.BaseTimeEntity; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +/** + * 회의 참석자 Entity + * meeting_id와 user_id를 복합키로 사용하여 다대다 관계 표현 + */ +@Entity +@Table(name = "meeting_participants") +@IdClass(MeetingParticipantId.class) +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MeetingParticipantEntity extends BaseTimeEntity { + + /** + * 회의 ID (복합키) + */ + @Id + @Column(name = "meeting_id", length = 50) + private String meetingId; + + /** + * 사용자 ID (이메일) (복합키) + */ + @Id + @Column(name = "user_id", length = 100) + private String userId; + + /** + * 초대 상태 (PENDING, ACCEPTED, DECLINED) + */ + @Column(name = "invitation_status", length = 20) + @Builder.Default + private String invitationStatus = "PENDING"; + + /** + * 참석 여부 + */ + @Column(name = "attended") + @Builder.Default + private Boolean attended = false; + + /** + * 회의 엔티티와의 관계 + */ + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "meeting_id", insertable = false, updatable = false) + private MeetingEntity meeting; + + /** + * 초대 수락 + */ + public void accept() { + this.invitationStatus = "ACCEPTED"; + } + + /** + * 초대 거절 + */ + public void decline() { + this.invitationStatus = "DECLINED"; + } + + /** + * 참석 처리 + */ + public void markAsAttended() { + this.attended = true; + } +} diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantId.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantId.java new file mode 100644 index 0000000..0e3c4a1 --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MeetingParticipantId.java @@ -0,0 +1,31 @@ +package com.unicorn.hgzero.meeting.infra.gateway.entity; + +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 회의 참석자 복합키 + * meeting_id와 user_id를 복합키로 사용 + */ +@Getter +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +public class MeetingParticipantId implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 회의 ID + */ + private String meetingId; + + /** + * 사용자 ID (이메일) + */ + private String userId; +} diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/repository/MeetingParticipantJpaRepository.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/repository/MeetingParticipantJpaRepository.java new file mode 100644 index 0000000..072fa63 --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/repository/MeetingParticipantJpaRepository.java @@ -0,0 +1,45 @@ +package com.unicorn.hgzero.meeting.infra.gateway.repository; + +import com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity; +import com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantId; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * 회의 참석자 JPA Repository + */ +@Repository +public interface MeetingParticipantJpaRepository extends JpaRepository { + + /** + * 회의 ID로 참석자 목록 조회 + */ + List findByMeetingId(String meetingId); + + /** + * 사용자 ID로 참여 회의 목록 조회 + */ + List findByUserId(String userId); + + /** + * 회의 ID와 초대 상태로 참석자 목록 조회 + */ + List findByMeetingIdAndInvitationStatus(String meetingId, String invitationStatus); + + /** + * 회의 ID로 참석자 전체 삭제 + */ + @Modifying + @Query("DELETE FROM MeetingParticipantEntity p WHERE p.meetingId = :meetingId") + void deleteByMeetingId(@Param("meetingId") String meetingId); + + /** + * 회의 ID와 사용자 ID로 참석자 존재 여부 확인 + */ + boolean existsByMeetingIdAndUserId(String meetingId, String userId); +} diff --git a/meeting/src/main/resources/db/migration/V2__create_meeting_participants_table.sql b/meeting/src/main/resources/db/migration/V2__create_meeting_participants_table.sql new file mode 100644 index 0000000..95e3cde --- /dev/null +++ b/meeting/src/main/resources/db/migration/V2__create_meeting_participants_table.sql @@ -0,0 +1,41 @@ +-- 회의 참석자 테이블 생성 +CREATE TABLE IF NOT EXISTS meeting_participants ( + meeting_id VARCHAR(50) NOT NULL, + user_id VARCHAR(100) NOT NULL, + invitation_status VARCHAR(20) DEFAULT 'PENDING', + attended BOOLEAN DEFAULT FALSE, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (meeting_id, user_id), + CONSTRAINT fk_meeting_participants_meeting + FOREIGN KEY (meeting_id) REFERENCES meetings(meeting_id) + ON DELETE CASCADE +); + +-- 기존 meetings 테이블의 participants 데이터를 meeting_participants 테이블로 마이그레이션 +INSERT INTO meeting_participants (meeting_id, user_id, invitation_status, attended, created_at, updated_at) +SELECT + m.meeting_id, + TRIM(participant) as user_id, + 'PENDING' as invitation_status, + FALSE as attended, + m.created_at, + m.updated_at +FROM meetings m +CROSS JOIN LATERAL unnest(string_to_array(m.participants, ',')) AS participant +WHERE m.participants IS NOT NULL AND m.participants != ''; + +-- meetings 테이블에서 participants 컬럼 삭제 +ALTER TABLE meetings DROP COLUMN IF EXISTS participants; + +-- 인덱스 생성 +CREATE INDEX idx_meeting_participants_user_id ON meeting_participants(user_id); +CREATE INDEX idx_meeting_participants_invitation_status ON meeting_participants(invitation_status); +CREATE INDEX idx_meeting_participants_meeting_id_status ON meeting_participants(meeting_id, invitation_status); + +-- 코멘트 추가 +COMMENT ON TABLE meeting_participants IS '회의 참석자 정보'; +COMMENT ON COLUMN meeting_participants.meeting_id IS '회의 ID'; +COMMENT ON COLUMN meeting_participants.user_id IS '사용자 ID (이메일)'; +COMMENT ON COLUMN meeting_participants.invitation_status IS '초대 상태 (PENDING, ACCEPTED, DECLINED)'; +COMMENT ON COLUMN meeting_participants.attended IS '참석 여부';