From ef8e586d9a0fe4c26dfbbb3848985379beebe081 Mon Sep 17 00:00:00 2001 From: djeon Date: Sun, 26 Oct 2025 00:15:44 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9D=98=EC=98=88=EC=95=BD=20?= =?UTF-8?q?=EC=8B=9C=20=EC=95=8C=EB=A6=BC=20=EC=88=98=EC=8B=A0=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80=20(=EC=9D=B4=EB=A9=94=EC=9D=BC?= =?UTF-8?q?=EB=B0=9C=EC=86=A1=20=EC=88=98=EC=A0=95=20=ED=95=84=EC=9A=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.run/notification-service.run.xml | 5 +- notification/build-output.log | 1 + notification/build.gradle | 3 + notification/logs/notification-service.log | 4144 +++++------------ .../notification-service.log.2025-10-24.0.gz | Bin 0 -> 41300 bytes .../notification-service.log.2025-10-25.0.gz | Bin 0 -> 236683 bytes .../config/BlobStorageConfig.java | 6 + .../notification/config/EventHubConfig.java | 6 + .../notification/domain/Notification.java | 2 +- .../domain/NotificationSetting.java | 2 +- .../notification/event/EventHandler.java | 54 +- .../event/event/NotificationRequestEvent.java | 176 + .../processor/EventProcessorService.java | 6 + .../notification/service/EmailNotifier.java | 173 + .../service/NotificationRouter.java | 127 + .../service/NotificationService.java | 257 +- .../src/main/resources/application.yml | 5 +- 17 files changed, 2024 insertions(+), 2943 deletions(-) create mode 100644 notification/build-output.log create mode 100644 notification/logs/notification-service.log.2025-10-24.0.gz create mode 100644 notification/logs/notification-service.log.2025-10-25.0.gz create mode 100644 notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java create mode 100644 notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java create mode 100644 notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java diff --git a/notification/.run/notification-service.run.xml b/notification/.run/notification-service.run.xml index 3644645..5cb97e3 100644 --- a/notification/.run/notification-service.run.xml +++ b/notification/.run/notification-service.run.xml @@ -39,13 +39,14 @@ + - + - + diff --git a/notification/build-output.log b/notification/build-output.log new file mode 100644 index 0000000..7b023e6 --- /dev/null +++ b/notification/build-output.log @@ -0,0 +1 @@ +(eval):1: no such file or directory: ./gradlew diff --git a/notification/build.gradle b/notification/build.gradle index 1855f1d..9d26e2b 100644 --- a/notification/build.gradle +++ b/notification/build.gradle @@ -26,4 +26,7 @@ dependencies { // Azure Event Hubs Checkpoint Store implementation "com.azure:azure-messaging-eventhubs-checkpointstore-blob:${azureEventHubsCheckpointVersion}" + + // H2 Database (for development) + runtimeOnly 'com.h2database:h2' } diff --git a/notification/logs/notification-service.log b/notification/logs/notification-service.log index 2130327..85d822c 100644 --- a/notification/logs/notification-service.log +++ b/notification/logs/notification-service.log @@ -1,2964 +1,1242 @@ -2025-10-24 08:47:08 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 91024 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 08:47:08 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 08:47:08 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 68 ms. Found 3 JPA repository interfaces. -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 08:47: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.notification.repository.NotificationRecipientRepository; 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-24 08:47: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.notification.repository.NotificationRepository; 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-24 08:47: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.notification.repository.NotificationSettingRepository; 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-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 08:47:09 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 08:47:09 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 08:47:09 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 08:47:09 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 08:47:09 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 907 ms -2025-10-24 08:47:09 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 08:47:10 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 08:47:10 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@7157413e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@24d7657b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@6f428e6e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@312819ae -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@4ae2c01b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@1cab19e2 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@6879e983 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@196d684b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@45d38165 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@1f3f434 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@1f3f434 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@26612078 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@26612078 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@54bc3bcf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@54bc3bcf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@d3d5094 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@d3d5094 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@13714753 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@13714753 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3c3cd7a5 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@96be1ae -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@6eb5b9e7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@6eb5b9e7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@77e730bd -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@2d3c501b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7b8cb283 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@38b54694 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@38b54694 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7619fbe7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@39ead1b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@27ec74a3 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@27ec74a3 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@35ff072c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@35ff072c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@c0004b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@c0004b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@c0004b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@63880be9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@63880be9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@63880be9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@27053257 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@6a0e97fc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@662713b6 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@662713b6 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@45539bd8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@45539bd8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@45539bd8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@4bca8eaf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@55e5415d -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@b8142f4 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@b8142f4 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@52d59507 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@52d59507 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@52d59507 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@4d75c604 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@4d75c604 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@3265995e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@3265995e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@33f2eb04 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@33f2eb04 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@4df13dd0 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@4df13dd0 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@2ed7978c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@2ed7978c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@30665461 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@146833a2 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@360a3106 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@360a3106 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@543ac221 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@2270f58d -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@54737322 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@56da8847 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@7323c38c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@2c02a007 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@63a72cc6 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@61bd0845 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@cef885d -2025-10-24 08:47:10 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 08:47:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 08:47:10 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@29431f61 -2025-10-24 08:47:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4ef28dc4) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@59b3f162) -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@7ade62a6) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@53d15034) -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@3d1b43d8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3d1b43d8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@360a3106` -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 08:47:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@64829470] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@1f95158a] -2025-10-24 08:47: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-24 08:47:11 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@64829470] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@593d0173] -2025-10-24 08:47:11 [main] DEBUG org.hibernate.SQL - +2025-10-26 00:00:40 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 19788 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) +2025-10-26 00:00:40 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-26 00:00:40 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 74 ms. Found 3 JPA repository interfaces. +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; 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 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; 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 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; 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 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. +2025-10-26 00:00:41 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) +2025-10-26 00:00:41 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-26 00:00:41 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-26 00:00:41 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-26 00:00:41 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 969 ms +2025-10-26 00:00:41 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-26 00:00:41 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-26 00:00:41 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@b8142f4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@b8142f4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@52d59507 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@3265995e +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@33f2eb04 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@59c862af +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@4bb9f7d4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@4bb9f7d4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@673a9db4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@183ef89a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@183ef89a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@183ef89a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@2792c28 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@6fa7ce4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@351e86b2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@5a8b42a3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@5a8b42a3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@11582db6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@11582db6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@44106e25 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@57a5b03 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@5649f55 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@558127d2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@12270a01 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@4552f905 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@646d58cd +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@646d58cd +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@388e4c25 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@388e4c25 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@12532e37 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@12532e37 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@401b67a9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@401b67a9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@4e3ee457 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@4e3ee457 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@41b66d1 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@fb2c2f3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@148fca83 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@148fca83 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@2d2a8819 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@72585e83 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6b64bf61 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d5bb5c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d5bb5c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7846913f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@48da64f2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@60b553f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@60b553f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@2aa811f9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@2aa811f9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@66abb2fa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@66abb2fa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@66abb2fa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@7d4da729 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@7d4da729 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@7d4da729 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@2133b712 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@4b7e4d14 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@70f91ae3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@70f91ae3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@601d9f3a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@601d9f3a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@601d9f3a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@5c2a3f0c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@6585df70 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@5d93ff21 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@5d93ff21 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@51fb5fe6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@51fb5fe6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@51fb5fe6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@5ca4c88a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@5ca4c88a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@1791e231 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@1791e231 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@55397d15 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@55397d15 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@5e360c3b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@5e360c3b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@24ac6fef +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@24ac6fef +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@3cb49121 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@227b9277 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@51468039 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@51468039 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@4efe014f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@22ff11ef +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@23d978b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@3cf70afa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@66dd04e2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@495e8a3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@6a7aa675 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@6eded11a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@602a3237 +2025-10-26 00:00:41 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-26 00:00:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-26 00:00:41 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@13018f00 +2025-10-26 00:00:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@5300694d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@7320750c) +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@2570851e) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@67d8613) +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@43a8bd35 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@43a8bd35 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@51468039` +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:00:41 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2979c6ef] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@1af6974c] +2025-10-26 00:00: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 00:00:42 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2979c6ef] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@ba90170] +2025-10-26 00:00:42 [main] DEBUG org.hibernate.SQL - alter table if exists notifications alter column message set data type TEXT -2025-10-24 08:47:11 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@593d0173] for TypeConfiguration -2025-10-24 08:47:11 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 08:47:11 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 08:47: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-24 08:47:12 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 08:47:12 [main] ERROR c.a.s.b.BlobContainerClientBuilder - Invalid connection string. -2025-10-24 08:47:12 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorService' defined in file [/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main/com/unicorn/hgzero/notification/event/processor/EventProcessorService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 0: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. -2025-10-24 08:47:12 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 08:47:12 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@593d0173] for TypeConfiguration -2025-10-24 08:47:12 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@8862881] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@593d0173] -2025-10-24 08:47:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 08:47:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 08:47:12 [main] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] -2025-10-24 08:47:12 [main] INFO o.s.b.a.l.ConditionEvaluationReportLogger - +2025-10-26 00:00:42 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@ba90170] for TypeConfiguration +2025-10-26 00:00:42 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:00:42 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-26 00:00:42 [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 00:00:42 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: hgzero-checkpoints +2025-10-26 00:00:42 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.114.Final (expected: 4.1.101.Final) +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: hgzero-eventhub-name, ConsumerGroup: $Default +2025-10-26 00:00:42 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_861fdc_1761404442971"} +2025-10-26 00:00:42 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 +2025-10-26 00:00:42 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... +2025-10-26 00:00:42 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"c3b3a024-6a73-4b1a-b8ab-43d3cf71ac51"} +2025-10-26 00:00:42 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 +2025-10-26 00:00: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 00:00:43 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-10-24 08:47:12 [main] ERROR o.s.boot.SpringApplication - Application run failed -org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorService' defined in file [/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main/com/unicorn/hgzero/notification/event/processor/EventProcessorService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 0: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1357) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) - at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) - at com.unicorn.hgzero.notification.NotificationApplication.main(NotificationApplication.java:20) -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 0: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) - at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1337) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1167) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) - ... 19 common frames omitted -Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648) - at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1337) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1167) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) - ... 33 common frames omitted -Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:177) - at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) - ... 47 common frames omitted -Caused by: java.lang.IllegalArgumentException: Invalid connection string. - at com.azure.storage.common.implementation.connectionstring.StorageConnectionString.create(StorageConnectionString.java:115) - at com.azure.storage.blob.BlobContainerClientBuilder.connectionString(BlobContainerClientBuilder.java:349) - at com.unicorn.hgzero.notification.config.BlobStorageConfig.blobContainerAsyncClient(BlobStorageConfig.java:40) - at com.unicorn.hgzero.notification.config.BlobStorageConfig$$SpringCGLIB$$0.CGLIB$blobContainerAsyncClient$0() - at com.unicorn.hgzero.notification.config.BlobStorageConfig$$SpringCGLIB$$FastClass$$1.invoke() - at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) - at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:339) - at com.unicorn.hgzero.notification.config.BlobStorageConfig$$SpringCGLIB$$0.blobContainerAsyncClient() +Using generated security password: d4235947-1707-449d-9f61-9f6742fa5b41 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-26 00:00:43 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-26 00:00: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 00:00:43 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 +2025-10-26 00:00:43 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 +2025-10-26 00:00:43 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' +2025-10-26 00:00:43 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 3.661 seconds (process running for 3.859) +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"c3b3a024-6a73-4b1a-b8ab-43d3cf71ac51"} +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_861fdc_1761404442971"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_861fdc_1761404442971"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"f25c3c181e594ee6874ce5fa6b38c8e6_G25"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_861fdc_1761404442971","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","linkName":"mgmt"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","subscriberId":"un_57b0cb_1761404444992"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","subscriberId":"un_19eca8_1761404444993"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_861fdc_1761404442971","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 0 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Attempting to claim ownership of partition.","partitionId":"0"} +2025-10-26 00:00:45 [reactor-http-nio-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Successfully claimed ownership.","partitionId":"0"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Initializing partition processor for partition","partitionId":"0"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Starting event processing.","partitionId":"0","eventPosition":"offset[17179876440], sequenceNumber[null], enqueuedTime[null], isInclusive[false]"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting new subscription for receive link processor","subscriberId":"rlp_444f99_1761404445121"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Requesting a new AmqpReceiveLink from upstream.","subscriberId":"rlp_444f99_1761404445121"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Creating receive consumer for partition.","linkName":"0_a24119_1761404445120","partitionId":"0","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"daf94f96845d4a4c8f204bc24deb4033_G28"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_35eb50_1761404445118","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","subscriberId":"rlp_444f99_1761404445121"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_35eb50_1761404445118","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 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_35eb50_1761404445118","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 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new receiver link.","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_a24119_1761404445120"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting next AMQP receive link.","subscriberId":"rlp_444f99_1761404445121","oldLinkName":null,"linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Link is active.","subscriberId":"rlp_444f99_1761404445121","linkName":"0_a24119_1761404445120","credits":0} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_35eb50_1761404445118","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_a24119_1761404445120","remoteSource":"Source{address='hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter={apache.org:selector-filter:string=org.apache.qpid.proton.codec.DecoderImpl$UnknownDescribedType@4562b994}, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 이벤트 수신 - Topic: notification, EventType: NOTIFICATION_REQUEST +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 알림 발송 시작 - Type: MEETING_INVITATION, EventId: null +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - EventId가 없어 생성함 - EventId: c360411a-51b2-4109-8c21-30160b97b54b +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 시작 - EventId: c360411a-51b2-4109-8c21-30160b97b54b, Type: MEETING_INVITATION +2025-10-26 00:00:45 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + n1_0.notification_id + from + notifications n1_0 + where + n1_0.event_id=? + fetch + first ? rows only +2025-10-26 00:00:45 [partition-pump-0-3] WARN c.u.h.n.service.NotificationService - 알 수 없는 채널: null - EMAIL로 기본 설정 +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 단일 수신자 처리 - Email: minjun.kim@example.com +2025-10-26 00:00:45 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:00:45 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 알림 라우팅 시작 - Email: minjun.kim@example.com, Channel: EMAIL +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 사용자 설정 없음 - 요청 채널 사용: EMAIL +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 선택된 채널: EMAIL +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.EmailNotifier - 이메일 발송 시도 #1 - Email: minjun.kim@example.com +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.EmailClient - 이메일 발송 시작 - To: minjun.kim@example.com, Subject: 회의 초대 +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Receiving completed.","linkName":"0_a24119_1761404445120","partitionId":"0","signalType":"onComplete"} +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubPartitionAsyncConsumer - {"az.sdk.message":"Closed consumer.","partitionId":"0"} +2025-10-26 00:01:00 [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:01:00 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_35eb50_1761404445118","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.service.EmailNotifier - 이메일 발송 최종 실패 - Email: minjun.kim@example.com +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.service.EmailNotifier.sendEmail(EmailNotifier.java:40) + at com.unicorn.hgzero.notification.service.NotificationRouter.routeNotification(NotificationRouter.java:59) + at com.unicorn.hgzero.notification.service.NotificationService.processNotification(NotificationService.java:383) 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) - ... 48 common frames omitted -2025-10-24 09:17:35 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 92451 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:17:35 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:17:35 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 73 ms. Found 3 JPA repository interfaces. -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; 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-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; 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-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; 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-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 09:17:36 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:17:36 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:17:36 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:17:36 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:17:36 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 990 ms -2025-10-24 09:17:37 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:17:37 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:17:37 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@fb2c2f3 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@148fca83 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@72585e83 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@6b64bf61 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@1d5bb5c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7846913f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@48da64f2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@60b553f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@2aa811f9 -2025-10-24 09:17:37 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:17:37 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:17:37 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@464d60fb -2025-10-24 09:17:37 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1ba3c03d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@9a37591) -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@749c0669) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4468c0ea) -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@57a5b03` -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:17:38 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@f310675] -2025-10-24 09:17:38 [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-24 09:17:38 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:17:38 [main] DEBUG org.hibernate.SQL - + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + 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) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 38 common frames omitted +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationRouter - 알림 발송 실패 - Email: minjun.kim@example.com, Channel: EMAIL +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationService - 알림 발송 실패 - Email: minjun.kim@example.com +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_35eb50_1761404445118","linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 완료 - 성공: 0, 실패: 1 +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Terminal state reached. Disposing of link processor.","subscriberId":"rlp_444f99_1761404445121","linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Disposing receive link.","subscriberId":"rlp_444f99_1761404445121","linkName":"0_a24119_1761404445120"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:01:00 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.notification.domain.Notification */insert + into + notifications (channel, created_at, event_id, failed_count, message, notification_type, reference_id, reference_type, sent_at, sent_count, status, title, notification_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_35eb50_1761404445118","sessionName":"cbs-session"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_35eb50_1761404445118","linkName":"cbs","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_35eb50_1761404445118","sessionName":"cbs-session"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [partition-pump-0-3] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 23514 +2025-10-26 00:01:00 [partition-pump-0-3] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: new row for relation "notifications" violates check constraint "notifications_notification_type_check" + Detail: Failing row contains (b8bdfb88-014c-4937-84c8-7dcf33c3e2bf, EMAIL, 2025-10-26 00:00:45.27459, c360411a-51b2-4109-8c21-30160b97b54b, 0, 'test 회의' 회의에 초대되었습니다. 일시: 2025-10-2..., MEETING_INVITATION, 33b6b044-d938-4085-a86d-a315a6f819d4, MEETING, null, 0, PROCESSING, 회의 초대). +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 완료 +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:01:00 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@ba90170] for TypeConfiguration +2025-10-26 00:01:00 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@150239e8] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@ba90170] +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-26 00:01:00 [partition-pump-0-3] WARN c.zaxxer.hikari.pool.ProxyConnection - HikariPool-1 - Connection org.postgresql.jdbc.PgConnection@13018f00 marked as broken because of SQLSTATE(08006), ErrorCode(0) +org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:399) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:330) + at org.postgresql.jdbc.PgConnection.executeTransactionCommand(PgConnection.java:981) + at org.postgresql.jdbc.PgConnection.rollback(PgConnection.java:1024) + at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:386) + at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) + at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.rollback(AbstractLogicalConnectionImplementor.java:127) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.rollback(JdbcResourceLocalTransactionCoordinatorImpl.java:289) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:276) + at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101) + at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:562) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:795) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:758) + at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:663) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:413) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + 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) +Caused by: java.net.SocketException: Socket closed + at java.base/sun.nio.ch.NioSocketImpl.endRead(NioSocketImpl.java:243) + at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:323) + at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346) + at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796) + at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1099) + at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:192) + at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:159) + at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:144) + at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:76) + at org.postgresql.core.PGStream.receiveChar(PGStream.java:476) + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2174) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) + ... 40 common frames omitted +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 알림 이벤트 처리 중 오류 발생 - EventType: NOTIFICATION_REQUEST +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + 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) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 이벤트 처리 중 오류 발생 +java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + 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) +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:01:00 [partition-pump-0-3] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Closing partition processor with close reason LOST_PARTITION_OWNERSHIP","partitionId":"0"} +2025-10-26 00:01:00 [partition-pump-0-3] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Closing consumer.","partitionId":"0"} +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:01:00 [partition-pump-0-3] ERROR reactor.core.scheduler.Schedulers - Scheduler worker in group main failed with an uncaught exception +com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:333) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + 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) +Caused by: com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:268) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + ... 11 common frames omitted +Caused by: java.lang.RuntimeException: 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:81) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + ... 12 common frames omitted +Caused by: java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + ... 15 common frames omitted +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:12:08 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 23930 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) +2025-10-26 00:12:08 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-26 00:12:08 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 70 ms. Found 3 JPA repository interfaces. +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-26 00:12: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.notification.repository.NotificationRecipientRepository; 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 00:12: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.notification.repository.NotificationRepository; 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 00:12: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.notification.repository.NotificationSettingRepository; 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 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. +2025-10-26 00:12:09 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) +2025-10-26 00:12:09 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-26 00:12:09 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-26 00:12:09 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-26 00:12:09 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 977 ms +2025-10-26 00:12:09 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-26 00:12:09 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-26 00:12:09 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@2d7aa291 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@2d7aa291 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@2d7aa291 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1ba7db2a +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1ba7db2a +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@762cdf46 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@762cdf46 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@54e94de9 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@54e94de9 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@2cff03cf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@2cff03cf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@2cff03cf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@924f3f1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@924f3f1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@924f3f1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@19e2db7c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@19e2db7c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@77a4bac +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@534fc1f7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@534fc1f7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7d5a0b14 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@72ec16f8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@279e1422 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@279e1422 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@279e1422 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@af3295f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@af3295f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@af3295f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@27dc81be +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@27dc81be +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@27dc81be +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3595086b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3595086b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@3595086b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@627d35ff +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@627d35ff +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@627d35ff +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@7157413e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@7157413e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@3245efdb +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@3245efdb +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@2f0e7fa8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@2f0e7fa8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@2f0e7fa8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@24d7657b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@6f428e6e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@6f428e6e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@72e49f6a +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@2e4b5da1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@2e4b5da1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@2e4b5da1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@312819ae +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@4ae2c01b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@1cab19e2 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@6879e983 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@6879e983 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@196d684b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@196d684b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@45d38165 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@1f3f434 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@26612078 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@54bc3bcf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@d3d5094 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@13714753 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@3c3cd7a5 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@3c3cd7a5 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@96be1ae +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@96be1ae +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@6eb5b9e7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@6eb5b9e7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@77e730bd +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@77e730bd +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@2d3c501b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@2d3c501b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7b8cb283 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@38b54694 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@7619fbe7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@7619fbe7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@39ead1b7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@27ec74a3 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@35ff072c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@c0004b7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@c0004b7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@63880be9 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@b8142f4 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@52d59507 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@52d59507 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@3265995e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@33f2eb04 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@59c862af +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@79777da7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@79777da7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@7323c38c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@2c02a007 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@61bd0845 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@cef885d +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@35d4035f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@6f4fc83f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@66b90ab3 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@16e4db59 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@33fec21 +2025-10-26 00:12:10 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-26 00:12:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-26 00:12:10 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6b6c0b7c +2025-10-26 00:12:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@53da2aec) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@18a38bba) +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@58ca6ba3) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@74797b90) +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@4714f447 +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@4714f447 +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@79777da7` +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:12:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7d75940] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3e5cbcfe] +2025-10-26 00:12:10 [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 00:12:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7d75940] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@359f3401] +2025-10-26 00:12:10 [main] DEBUG org.hibernate.SQL - alter table if exists notifications alter column message set data type TEXT -2025-10-24 09:17:39 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:17:39 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:17:39 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:17:39 [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-24 09:17:39 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:17:39 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:17:39 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorService' defined in file [/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main/com/unicorn/hgzero/notification/event/processor/EventProcessorService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 1: No qualifying bean of type 'java.util.function.Consumer' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} -2025-10-24 09:17:39 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:17:39 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:17:39 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@554b571b] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:17:39 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 09:17:39 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 09:17:39 [main] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] -2025-10-24 09:17:39 [main] INFO o.s.b.a.l.ConditionEvaluationReportLogger - +2025-10-26 00:12:10 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@359f3401] for TypeConfiguration +2025-10-26 00:12:10 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:12:10 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-26 00:12:11 [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 00:12:11 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: hgzero-checkpoints +2025-10-26 00:12:11 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.114.Final (expected: 4.1.101.Final) +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: hgzero-eventhub-name, ConsumerGroup: $Default +2025-10-26 00:12:11 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:11 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 +2025-10-26 00:12:11 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... +2025-10-26 00:12:11 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:12:11 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 +2025-10-26 00:12:11 [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 00:12:11 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-10-24 09:17:39 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - - -*************************** -APPLICATION FAILED TO START -*************************** - -Description: - -Parameter 1 of method eventProcessorClient in com.unicorn.hgzero.notification.config.EventHubConfig required a bean of type 'java.util.function.Consumer' that could not be found. - - -Action: - -Consider defining a bean of type 'java.util.function.Consumer' in your configuration. - -2025-10-24 09:31:47 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 93156 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:31:47 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:31:47 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 65 ms. Found 3 JPA repository interfaces. -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; 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-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; 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-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; 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-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 09:31:48 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:31:48 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:31:48 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:31:48 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:31:48 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 944 ms -2025-10-24 09:31:48 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:31:48 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:31:48 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@fb2c2f3 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@148fca83 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@72585e83 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@6b64bf61 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@1d5bb5c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7846913f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@48da64f2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@60b553f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@2aa811f9 -2025-10-24 09:31:48 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:31:48 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:31:48 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@464d60fb -2025-10-24 09:31:48 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1ba3c03d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@9a37591) -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@749c0669) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4468c0ea) -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@57a5b03` -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:31:49 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@f310675] -2025-10-24 09:31:49 [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-24 09:31:49 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:31:49 [main] DEBUG org.hibernate.SQL - - alter table if exists notifications - alter column message set data type TEXT -2025-10-24 09:31:50 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:31:50 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:31:50 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:31:50 [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-24 09:31:50 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:31:50 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: notification-events, ConsumerGroup: $Default -2025-10-24 09:31:50 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_3077b5_1761265910856"} -2025-10-24 09:31:50 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 -2025-10-24 09:31:50 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... -2025-10-24 09:31:50 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"82b01c9c-28c5-4e59-be88-db56f014ccfb"} -2025-10-24 09:31:50 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 -2025-10-24 09:31:50 [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-24 09:31:50 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 48dec296-acd1-46b9-ab82-a6ec53f21bdf +Using generated security password: cbb5fb0d-9314-4128-b9d9-b5be1e389425 This generated password is for development use only. Your security configuration must be updated before running your application in production. -2025-10-24 09:31:50 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-24 09:31:51 [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-24 09:31:51 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 -2025-10-24 09:31:51 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@55bcd722, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6045d2c, org.springframework.security.web.context.SecurityContextHolderFilter@53e2e561, org.springframework.security.web.header.HeaderWriterFilter@7ce15695, org.springframework.web.filter.CorsFilter@5618b26b, org.springframework.security.web.authentication.logout.LogoutFilter@26d47eba, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2349aa88, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@39783d83, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@21ff56e7, org.springframework.security.web.session.SessionManagementFilter@201a976f, org.springframework.security.web.access.ExceptionTranslationFilter@62c9625e, org.springframework.security.web.access.intercept.AuthorizationFilter@2ea0e29d] -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 -2025-10-24 09:31:51 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' -2025-10-24 09:31:51 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 4.496 seconds (process running for 4.646) -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"82b01c9c-28c5-4e59-be88-db56f014ccfb"} -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_3077b5_1761265910856"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_3077b5_1761265910856"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"4ca36a23cfb749bead98170f9c38c926_G1"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:31:52 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:80361444-f01e-003a-767d-44cc37000000 -Time:2025-10-24T00:31:52.8318364Z" -2025-10-24 09:31:52 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:80361444-f01e-003a-767d-44cc37000000 -Time:2025-10-24T00:31:52.8318364Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_3077b5_1761265910856","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management","subscriberId":"un_a79b06_1761265912675"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3077b5_1761265910856","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3077b5_1761265910856","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... -2025-10-24 09:32:08 [SpringApplicationShutdownHook] ERROR c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중 오류 발생 -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:80366a40-f01e-003a-077d-44cc37000000 -Time:2025-10-24T00:32:08.2688888Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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) - Suppressed: java.lang.Exception: #block terminated with an error - at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:146) - at reactor.core.publisher.Flux.blockLast(Flux.java:2845) - at com.azure.messaging.eventhubs.EventProcessorClient.stopProcessing(EventProcessorClient.java:286) - at com.azure.messaging.eventhubs.EventProcessorClient.stop(EventProcessorClient.java:265) - at com.unicorn.hgzero.notification.event.processor.EventProcessorService.stop(EventProcessorService.java:59) - 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.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:415) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:239) - at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1195) - at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1186) - at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1147) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) - at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1093) - at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) - ... 1 common frames omitted -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:08 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:32:08 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@5674e314] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 09:32:22 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 93172 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:32:22 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:32:22 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 74 ms. Found 3 JPA repository interfaces. -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; 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-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; 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-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; 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-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces. -2025-10-24 09:32:23 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:32:23 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:32:23 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:32:23 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:32:23 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 929 ms -2025-10-24 09:32:23 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:32:23 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:32:23 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@7157413e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@24d7657b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@6f428e6e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@312819ae -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@312819ae -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@4ae2c01b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@4ae2c01b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@1cab19e2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@1cab19e2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@6879e983 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@6879e983 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@196d684b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@196d684b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@45d38165 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@1f3f434 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@7846913f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7846913f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@6585df70 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@5d93ff21 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@5ca4c88a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@1791e231 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@55397d15 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@5e360c3b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@24ac6fef -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@3cb49121 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@227b9277 -2025-10-24 09:32:23 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:32:23 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:32:24 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@53b907d9 -2025-10-24 09:32:24 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1368e2f7) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4d84688f) -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@3ee68eb2) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@7348e75e) -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@7a85dc58 -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7a85dc58 -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@7846913f` -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:25 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6a013bdd] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@5e0bba2f] -2025-10-24 09:32:25 [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-24 09:32:25 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6a013bdd] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@d0456ad] -2025-10-24 09:32:25 [main] DEBUG org.hibernate.SQL - - alter table if exists notifications - alter column message set data type TEXT -2025-10-24 09:32:26 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@d0456ad] for TypeConfiguration -2025-10-24 09:32:26 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:26 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:32:26 [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-24 09:32:26 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:32:26 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: notification-events, ConsumerGroup: $Default -2025-10-24 09:32:27 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_aabc8a_1761265947073"} -2025-10-24 09:32:27 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 -2025-10-24 09:32:27 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... -2025-10-24 09:32:27 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"70d2490d-4990-466e-bd66-4bc997bd44b2"} -2025-10-24 09:32:27 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 -2025-10-24 09:32:27 [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-24 09:32:27 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 52ff1f14-a8b0-44dd-8832-ac8cc0781a4c - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-24 09:32:27 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-24 09:32:27 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library -2025-10-24 09:32:27 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 -2025-10-24 09:32:27 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@680a5de1, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5679e277, org.springframework.security.web.context.SecurityContextHolderFilter@4cbeae45, org.springframework.security.web.header.HeaderWriterFilter@39783d83, org.springframework.web.filter.CorsFilter@23b2ddc4, org.springframework.security.web.authentication.logout.LogoutFilter@55bcd722, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7d332e20, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3cbe4472, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@32a7f41b, org.springframework.security.web.session.SessionManagementFilter@24ae25b8, org.springframework.security.web.access.ExceptionTranslationFilter@14796b9e, org.springframework.security.web.access.intercept.AuthorizationFilter@7279d0f8] -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 -2025-10-24 09:32:27 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' -2025-10-24 09:32:27 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 5.253 seconds (process running for 5.396) -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"70d2490d-4990-466e-bd66-4bc997bd44b2"} -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_aabc8a_1761265947073"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_aabc8a_1761265947073"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"22393503f661413fb000826d7995ae6b_G16"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:32:29 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:a20c2fc1-701e-006f-117d-442740000000 -Time:2025-10-24T00:32:29.5500462Z" -2025-10-24 09:32:29 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:a20c2fc1-701e-006f-117d-442740000000 -Time:2025-10-24T00:32:29.5500462Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_aabc8a_1761265947073","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management","subscriberId":"un_0c0233_1761265949482"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_aabc8a_1761265947073","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:32:50 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... -2025-10-24 09:32:50 [SpringApplicationShutdownHook] ERROR c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중 오류 발생 -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:a20cade0-701e-006f-607d-442740000000 -Time:2025-10-24T00:32:51.1677357Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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) - Suppressed: java.lang.Exception: #block terminated with an error - at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:146) - at reactor.core.publisher.Flux.blockLast(Flux.java:2845) - at com.azure.messaging.eventhubs.EventProcessorClient.stopProcessing(EventProcessorClient.java:286) - at com.azure.messaging.eventhubs.EventProcessorClient.stop(EventProcessorClient.java:265) - at com.unicorn.hgzero.notification.event.processor.EventProcessorService.stop(EventProcessorService.java:59) - 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.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:415) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:239) - at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1195) - at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1186) - at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1147) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) - at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1093) - at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) - ... 1 common frames omitted -2025-10-24 09:32:50 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:50 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@d0456ad] for TypeConfiguration -2025-10-24 09:32:50 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@32226944] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@d0456ad] -2025-10-24 09:32:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 09:32:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 09:32:54 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 93184 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:32:54 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:32:54 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:32:54 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:54 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 62 ms. Found 3 JPA repository interfaces. -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; 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-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; 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-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; 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-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 09:32:55 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:32:55 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:32:55 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:32:55 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:32:55 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 911 ms -2025-10-24 09:32:55 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:32:55 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:32:55 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@7157413e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@646d58cd -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@646d58cd -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@1d5bb5c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@7846913f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@60b553f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@2aa811f9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@66abb2fa -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7d4da729 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@2133b712 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@4b7e4d14 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@70f91ae3 -2025-10-24 09:32:55 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:32:55 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:32:56 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6167c42f -2025-10-24 09:32:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@53d2b827) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4769537a) -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@4504a4ed) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@7ee3a2ed) -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@5b3ee43e -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@5b3ee43e -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@646d58cd` -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:56 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3c7db0e8] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@84becbe] -2025-10-24 09:32:56 [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-24 09:32:56 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3c7db0e8] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@7c9015c6] -2025-10-24 09:32:57 [main] DEBUG org.hibernate.SQL - - alter table if exists notifications - alter column message set data type TEXT -2025-10-24 09:32:57 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@7c9015c6] for TypeConfiguration -2025-10-24 09:32:57 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:57 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:32:57 [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-24 09:32:57 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:32:58 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: notification-events, ConsumerGroup: $Default -2025-10-24 09:32:58 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:32:58 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 -2025-10-24 09:32:58 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... -2025-10-24 09:32:58 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:32:58 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 -2025-10-24 09:32:58 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-10-24 09:32:58 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 5cbb3798-c2d2-4531-ad1a-68eba792f822 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-24 09:32:58 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-24 09:32:58 [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-24 09:32:58 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 -2025-10-24 09:32:58 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@36004275, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@25983534, org.springframework.security.web.context.SecurityContextHolderFilter@67c492fc, org.springframework.security.web.header.HeaderWriterFilter@37994ff, org.springframework.web.filter.CorsFilter@7e8b070e, org.springframework.security.web.authentication.logout.LogoutFilter@79a4f733, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@14796b9e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1676550a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@209db88a, org.springframework.security.web.session.SessionManagementFilter@10de078f, org.springframework.security.web.access.ExceptionTranslationFilter@718d339f, org.springframework.security.web.access.intercept.AuthorizationFilter@6045d2c] -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 -2025-10-24 09:32:58 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' -2025-10-24 09:32:58 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 4.623 seconds (process running for 4.797) -2025-10-24 09:32:59 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:32:59 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:33:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:33:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"207ea9e644274683a2167ef2c733be55_G4"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:33:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c72751e-e01e-0048-567d-44bd09000000 -Time:2025-10-24T00:33:00.6004520Z" -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_4e2428_1761265978193","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:33:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c72751e-e01e-0048-567d-44bd09000000 -Time:2025-10-24T00:33:00.6004520Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","subscriberId":"un_59f0bc_1761265980448"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:33:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:33:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:33:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c730a11-e01e-0048-1a7d-44bd09000000 -Time:2025-10-24T00:33:30.3504772Z" -2025-10-24 09:33:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c730a11-e01e-0048-1a7d-44bd09000000 -Time:2025-10-24T00:33:30.3504772Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:34:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:34:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c7398de-e01e-0048-247d-44bd09000000 -Time:2025-10-24T00:34:00.3768929Z" -2025-10-24 09:34:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c7398de-e01e-0048-247d-44bd09000000 -Time:2025-10-24T00:34:00.3768929Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:34:00 [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 '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 98]","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt"} -2025-10-24 09:34:00 [reactor-executor-1] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 98] -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 98]","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [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_4e2428_1761265978193], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_4e2428_1761265978193], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - 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) +2025-10-26 00:12:11 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-26 00:12:11 [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 00:12:11 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:11 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:11 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"4a8b6c79abe243a3a753b14892c87299_G10"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_985db0_1761405131507","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_985db0_1761405131507","entityPath":"$management","linkName":"mgmt"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_985db0_1761405131507","entityPath":"$management","subscriberId":"un_c963b2_1761405132057"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_985db0_1761405131507","entityPath":"$management","subscriberId":"un_6324ab_1761405132059"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_985db0_1761405131507","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 0 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Attempting to claim ownership of partition.","partitionId":"0"} +2025-10-26 00:12:12 [reactor-http-nio-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Successfully claimed ownership.","partitionId":"0"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Initializing partition processor for partition","partitionId":"0"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Starting event processing.","partitionId":"0","eventPosition":"offset[17179876440], sequenceNumber[null], enqueuedTime[null], isInclusive[false]"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting new subscription for receive link processor","subscriberId":"rlp_fbc5ad_1761405132186"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Requesting a new AmqpReceiveLink from upstream.","subscriberId":"rlp_fbc5ad_1761405132186"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Creating receive consumer for partition.","linkName":"0_ab405b_1761405132184","partitionId":"0","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"489faaafbfef47bfab375bb6b58fa25a_G22"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_a57200_1761405132182","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","subscriberId":"rlp_fbc5ad_1761405132186"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a57200_1761405132182","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 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a57200_1761405132182","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 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:12:12 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new receiver link.","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_ab405b_1761405132184"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting next AMQP receive link.","subscriberId":"rlp_fbc5ad_1761405132186","oldLinkName":null,"linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:12:12 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 3.708 seconds (process running for 3.942) +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Link is active.","subscriberId":"rlp_fbc5ad_1761405132186","linkName":"0_ab405b_1761405132184","credits":0} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a57200_1761405132182","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_ab405b_1761405132184","remoteSource":"Source{address='hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter={apache.org:selector-filter:string=org.apache.qpid.proton.codec.DecoderImpl$UnknownDescribedType@80c2031}, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 이벤트 수신 - Topic: notification, EventType: NOTIFICATION_REQUEST +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 알림 발송 시작 - Type: MEETING_INVITATION, EventId: null +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - EventId가 없어 생성함 - EventId: 5375f682-338c-42cb-9e8e-94756cdee786 +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 시작 - EventId: 5375f682-338c-42cb-9e8e-94756cdee786, Type: MEETING_INVITATION +2025-10-26 00:12:12 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + n1_0.notification_id + from + notifications n1_0 + where + n1_0.event_id=? + fetch + first ? rows only +2025-10-26 00:12:12 [partition-pump-0-3] WARN c.u.h.n.service.NotificationService - 알 수 없는 채널: null - EMAIL로 기본 설정 +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 단일 수신자 처리 - Email: minjun.kim@example.com +2025-10-26 00:12:12 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:12:12 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 알림 라우팅 시작 - Email: du0928@gmail.com, Channel: EMAIL +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 사용자 설정 없음 - 요청 채널 사용: EMAIL +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 선택된 채널: EMAIL +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.EmailNotifier - 이메일 발송 시도 #1 - Email: du0928@gmail.com +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.EmailClient - 이메일 발송 시작 - To: du0928@gmail.com, Subject: 회의 초대 +2025-10-26 00:12:41 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:12:41 [pool-3-thread-1] 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:12:41 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_985db0_1761405131507","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:12:41 [pool-3-thread-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:sender","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:receiver","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: CLOSED +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Complete. +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_985db0_1761405131507","sessionName":"mgmt-session"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:sender","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:receiver","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_985db0_1761405131507","sessionName":"mgmt-session"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_985db0_1761405131507","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_985db0_1761405131507] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_985db0_1761405131507","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:13:11 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:13:12 [HikariPool-1 housekeeper] WARN c.zaxxer.hikari.pool.ProxyLeakTask - Connection leak detection triggered for org.postgresql.jdbc.PgConnection@6b6c0b7c on thread partition-pump-0-3, stack trace follows +java.lang.Exception: Apparent connection leak detected + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:127) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) + at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:46) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:126) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:156) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:286) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:294) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:232) + at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:83) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:176) + at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:420) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:532) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) + at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:604) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:373) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) 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-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_4e2428_1761265978193], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_4e2428_1761265978193","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_4e2428_1761265978193","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:34:02 [parallel-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Not requesting from upstream. Processor is disposed.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","tryCount":0} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_4e2428_1761265978193","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_4e2428_1761265978193] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_4e2428_1761265978193","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:34:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c743d00-e01e-0048-777d-44bd09000000 -Time:2025-10-24T00:34:30.4318492Z" -2025-10-24 09:34:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c743d00-e01e-0048-777d-44bd09000000 -Time:2025-10-24T00:34:30.4318492Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"42ee5c50ad114fafa7f111006219d4d6_G29"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:35:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:35:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_afe1e2_1761266040535","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","subscriberId":"un_0060c0_1761266100298"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","subscriberId":"un_4c8e08_1761266100298"} -2025-10-24 09:35:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c74e6f8-e01e-0048-177e-44bd09000000 -Time:2025-10-24T00:35:00.3968986Z" -2025-10-24 09:35:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c74e6f8-e01e-0048-177e-44bd09000000 -Time:2025-10-24T00:35:00.3968986Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:35:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:35:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c757ead-e01e-0048-7c7e-44bd09000000 -Time:2025-10-24T00:35:30.4050913Z" -2025-10-24 09:35:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c757ead-e01e-0048-7c7e-44bd09000000 -Time:2025-10-24T00:35:30.4050913Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:35:30 [reactor-executor-2] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt"} -2025-10-24 09:35:30 [reactor-executor-2] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99] -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_afe1e2_1761266040535], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_afe1e2_1761266040535], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - 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) +2025-10-26 00:13:41 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Receiving completed.","linkName":"0_ab405b_1761405132184","partitionId":"0","signalType":"onComplete"} +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubPartitionAsyncConsumer - {"az.sdk.message":"Closed consumer.","partitionId":"0"} +2025-10-26 00:14:09 [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:09 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_a57200_1761405132182","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:14:09 [partition-pump-0-3] ERROR c.u.h.n.service.EmailNotifier - 이메일 발송 최종 실패 - Email: du0928@gmail.com +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.service.EmailNotifier.sendEmail(EmailNotifier.java:40) + at com.unicorn.hgzero.notification.service.NotificationRouter.routeNotification(NotificationRouter.java:59) + at com.unicorn.hgzero.notification.service.NotificationService.processNotification(NotificationService.java:384) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) 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-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_afe1e2_1761266040535], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_afe1e2_1761266040535","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_afe1e2_1761266040535","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:35:32 [parallel-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Not requesting from upstream. Processor is disposed.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","tryCount":0} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_afe1e2_1761266040535","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_afe1e2_1761266040535] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_afe1e2_1761266040535","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:36:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c761f51-e01e-0048-4e7e-44bd09000000 -Time:2025-10-24T00:36:00.4288123Z" -2025-10-24 09:36:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c761f51-e01e-0048-4e7e-44bd09000000 -Time:2025-10-24T00:36:00.4288123Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"fd8238e549094ce9854c47f1e70ed6ea_G24"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:36:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:36:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_5b088b_1761266130516","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","subscriberId":"un_658990_1761266190335"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","subscriberId":"un_482cbe_1761266190336"} -2025-10-24 09:36:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c76c047-e01e-0048-6f7e-44bd09000000 -Time:2025-10-24T00:36:30.4407958Z" -2025-10-24 09:36:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c76c047-e01e-0048-6f7e-44bd09000000 -Time:2025-10-24T00:36:30.4407958Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:37:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:37:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c778af4-e01e-0048-457e-44bd09000000 -Time:2025-10-24T00:37:00.4463489Z" -2025-10-24 09:37:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c778af4-e01e-0048-457e-44bd09000000 -Time:2025-10-24T00:37:00.4463489Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:37:00 [reactor-executor-3] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt"} -2025-10-24 09:37:00 [reactor-executor-3] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99] -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_5b088b_1761266130516], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_5b088b_1761266130516], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - 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) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 38 common frames omitted +2025-10-26 00:14:09 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationRouter - 알림 발송 실패 - Email: du0928@gmail.com, Channel: EMAIL +2025-10-26 00:14:09 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationService - 알림 발송 실패 - Email: du0928@gmail.com +2025-10-26 00:14:10 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 완료 - 성공: 0, 실패: 1 +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_a57200_1761405132182","linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Terminal state reached. Disposing of link processor.","subscriberId":"rlp_fbc5ad_1761405132186","linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Disposing receive link.","subscriberId":"rlp_fbc5ad_1761405132186","linkName":"0_ab405b_1761405132184"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_a57200_1761405132182","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_a57200_1761405132182","sessionName":"cbs-session"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_a57200_1761405132182","linkName":"cbs","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.notification.domain.Notification */insert + into + notifications (channel, created_at, event_id, failed_count, message, notification_type, reference_id, reference_type, sent_at, sent_count, status, title, notification_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_a57200_1761405132182","sessionName":"cbs-session"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [partition-pump-0-3] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 23514 +2025-10-26 00:14:10 [partition-pump-0-3] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: new row for relation "notifications" violates check constraint "notifications_notification_type_check" + Detail: Failing row contains (d2f0350a-14bd-4571-8274-7cc45195f79f, EMAIL, 2025-10-26 00:12:12.333186, 5375f682-338c-42cb-9e8e-94756cdee786, 0, 'test 회의' 회의에 초대되었습니다. 일시: 2025-10-2..., MEETING_INVITATION, 33b6b044-d938-4085-a86d-a315a6f819d4, MEETING, null, 0, PROCESSING, 회의 초대). +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 완료 +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:14:10 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@359f3401] for TypeConfiguration +2025-10-26 00:14:10 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@292002fd] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@359f3401] +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 알림 이벤트 처리 중 오류 발생 - EventType: NOTIFICATION_REQUEST +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) 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-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_5b088b_1761266130516], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_5b088b_1761266130516","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_5b088b_1761266130516","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_ce2579_1761266220542"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:37:02 [parallel-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Not requesting from upstream. Processor is disposed.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","tryCount":0} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_5b088b_1761266130516","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_5b088b_1761266130516] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_5b088b_1761266130516","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_ce2579_1761266220542"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_ce2579_1761266220542"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:37:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c782d42-e01e-0048-247e-44bd09000000 -Time:2025-10-24T00:37:30.4663399Z" -2025-10-24 09:37:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c782d42-e01e-0048-247e-44bd09000000 -Time:2025-10-24T00:37:30.4663399Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"59380e37ef814b1a82372fe5b86fd2ec_G26"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:37:32 [http-nio-8085-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-24 09:37:32 [http-nio-8085-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-24 09:37:32 [http-nio-8085-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 3 ms -2025-10-24 09:37:32 [http-nio-8085-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.html -2025-10-24 09:37:32 [http-nio-8085-exec-1] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.html -2025-10-24 09:37:32 [http-nio-8085-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui.css -2025-10-24 09:37:32 [http-nio-8085-exec-2] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui.css -2025-10-24 09:37:32 [http-nio-8085-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-standalone-preset.js -2025-10-24 09:37:32 [http-nio-8085-exec-5] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-standalone-preset.js -2025-10-24 09:37:32 [http-nio-8085-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-initializer.js -2025-10-24 09:37:32 [http-nio-8085-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-bundle.js -2025-10-24 09:37:32 [http-nio-8085-exec-6] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.css -2025-10-24 09:37:32 [http-nio-8085-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-initializer.js -2025-10-24 09:37:32 [http-nio-8085-exec-4] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-bundle.js -2025-10-24 09:37:32 [http-nio-8085-exec-3] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.css -2025-10-24 09:37:32 [http-nio-8085-exec-8] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/favicon-32x32.png -2025-10-24 09:37:32 [http-nio-8085-exec-8] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs/swagger-config -2025-10-24 09:37:32 [http-nio-8085-exec-8] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/favicon-32x32.png -2025-10-24 09:37:32 [http-nio-8085-exec-7] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs/swagger-config -2025-10-24 09:37:33 [http-nio-8085-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs -2025-10-24 09:37:33 [http-nio-8085-exec-9] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:33 [http-nio-8085-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs -2025-10-24 09:37:33 [http-nio-8085-exec-9] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 221 ms -2025-10-24 09:38:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:38:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_ce2579_1761266220542","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","subscriberId":"un_bc62fa_1761266280378"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","subscriberId":"un_c0cd89_1761266280378"} -2025-10-24 09:38:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c78cfb1-e01e-0048-747e-44bd09000000 -Time:2025-10-24T00:38:00.5177911Z" -2025-10-24 09:38:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c78cfb1-e01e-0048-747e-44bd09000000 -Time:2025-10-24T00:38:00.5177911Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:38:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:38:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c797c91-e01e-0048-727e-44bd09000000 -Time:2025-10-24T00:38:30.5182879Z" -2025-10-24 09:38:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c797c91-e01e-0048-727e-44bd09000000 -Time:2025-10-24T00:38:30.5182879Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - 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 com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - 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.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - 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.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - 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.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - 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:918) - 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) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - 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-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:38:30 [reactor-executor-4] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt"} -2025-10-24 09:38:30 [reactor-executor-4] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99] -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_ce2579_1761266220542], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_ce2579_1761266220542], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - 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) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 이벤트 처리 중 오류 발생 +java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) 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-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_ce2579_1761266220542], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_ce2579_1761266220542","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_ce2579_1761266220542","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_a542ff_1761266310622"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_ce2579_1761266220542"} +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-26 00:14:10 [partition-pump-0-3] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Closing partition processor with close reason LOST_PARTITION_OWNERSHIP","partitionId":"0"} +2025-10-26 00:14:10 [partition-pump-0-3] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Closing consumer.","partitionId":"0"} +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:14:10 [partition-pump-0-3] ERROR reactor.core.scheduler.Schedulers - Scheduler worker in group main failed with an uncaught exception +com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:333) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + 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) +Caused by: com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:268) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + ... 11 common frames omitted +Caused by: java.lang.RuntimeException: 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:81) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + ... 12 common frames omitted +Caused by: java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + ... 15 common frames omitted +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted diff --git a/notification/logs/notification-service.log.2025-10-24.0.gz b/notification/logs/notification-service.log.2025-10-24.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..5658eb4cbb430f604fea973494499e3269c9bbf7 GIT binary patch literal 41300 zcmbT-b#U8kqwwi4HO$P64l^~(NyE&{4Kp^(NyE&X)L~}khMAcga(H{5_rSY5XLr6? z{~=qWu|_kpCEu5SH%T-c*gucYi!KG11L^P7zPT@0_2^Sk5BL~^+~^fo8n;#LE2=}4 zWZIj*Q<|J1L;@q3DH9+`$Hr4ni~U(T+9!>tBrP(Vnlu}HG6!UvlWJCpA3w`&?LYg^ ziNProGDgkFGe#w=v?w@bNOx{S!^6WnM#34A3O&p!imZYcF0Cz;&JeC)22pyj6lZdK zu%V;~BmG!0X9^dde8Y?VF^LhwMIWnX(U`xXm-%}#G19Zi-dt)Pguz8I%9?1lKFoLD z9NlZxo59;`Z3bk`@~nEmcf}Uoc=wPXoqX71_9%r77QC`_zj4MEz1NEeY!g2RbzDPH z%2)wEiBPwtR=x&Xl{2iElF`ug?!Ryf_!ToAP2G;|uCr+FOg+;g{<^L1!x_L05RNHS zYgLg@PkH=f$sI-;y=l%_yGCG{D3ZO_O4Ef74o}0q_@I1gg^sunE*H* zU@38O3S7u25i|!{rxj+q4+N6xxB<2G1%CyqQaOTR2BW_e_ZJi&NE@mFvL(Y|&|+2y zLgRe6(jQFh7z;lpciwG5^)K`Fw4$>m{M|E1P zu^?2SdWob_yMDtIx`bEpWulHzF_4GBYy!g7PzDm6p%+-InJspc${4N?4KEb2cKWo# z=3y_Yn)O6C;i!YdhLE-og`aw+iy5CpQ8S9(-)~#=JGp&iWmM6~fisU-Znyp}vVwQg(*-S;Fh1cW7l?&jN9h&EmIiUwXPw zo|A9ZP|C_pe}F59>fI_Rd3u0-z(yd~*%_wxq9`}2GyM1@isV(k)ko!}JduL`=>B9< z^U1ucHA9^XQqadqhwo%=LnbAqgL^m=gf*3z)L}nu^71}`Ea*|y)~-9zbHE682fst# z*d5`9UHV zamj}D3@fu^b6!qh{42!@R#>v3zk=0mNRZiTyJLZ^VCbf+6n zGt$jgjlNojQQ$S(@#irD5Dg;0;p>J5n!h4SLEfBYSFH)8Y}VTP02erV5jZRfU4~Va zc>!nN7GUiMa)&9r4->)UfByWXvYH|&_YS|}4R4i4vBJsIPPJf~srO^Ks{AhL5+%OOV*c53s1{LT`$TOy--W{bjoA98D+U+ z;L&)`&(kfMby|l#LqUF7LwX*>W|Y$oY-aNP2-I7~%`7e8sV&2c^{_=<<-`n=WST08 zWe6ypP1=UpGiKODf@9{m>Fre)M5d2BmZ{vgCo*|Yw57`|^NwXmEuMjhV2Ia@rmwZ< zx^i#C)L>mSY{Vc9`&xS*kztKKMZMm;$R{shncJLV3w~v+rTm@3F76YzHlf-13M_XOUo!5eqPY`>NA16_vEXCCsl_Qh~Q(Gt&uNyV{SXXDGlow^K zqOF=zQ;$+T-tBo}xSU(t`~zM4hmTVbCqU-37qjB5-bEMVfvy#gm~>bEa%_&iNLby6(Ps z;_PwB>gxj!u(k3UNWdD~P_&A5u0Ir^xjCz*TaUBh?lIEs8+Z&dn>}-@scLUGvv)>q z!P&Q+k+aeXa2>6rvn|~MQEJ`PUrLwV`t6tby*&%&hHGzjyQ+8hwFt|OT$0`@e^<74HwcVBcF4FCl zC%ValRo;ASr07lZj$d?RMSB)j9qe$U=&IcJ!vzuKZW?P)r6{&*FgljhC)`^wcFaPa zF4yPxA9o21Jl4i|#MNJ=Q!V(5T9cZGF?Rq z*-!~tVw(DKiYsX9ZR{?AV%!#V%&68Yns8SS**K}ar#Rh45}MhGfeeOgk$^Fc2$>qB z>q?W8)DlO_>uQo+eIX{vjHUSV^4zbN_TwacO+5}&lHx6(!#+~Huv)xW$MEQ)^{O|B+C?07&Z4Ty z;#)tR#CM{4dvNB?udkd8fd{!2Vd84qYjGpvjMK|Z;y7`^5@L6V2CR(jrRY*B_&7`f zfO3Kw75TCGj@VbWh-!m;$z}OPwJc$#REjD*Yum%!7Xt5^lf(!xo)KS54jF?XqQ6@wB4IY{RC_WR>@3|k~9b}7< z{ivl4Z&%I6DaFgILl0Hgdh2N0dL#-60;-G(Kf4Z>CIr`Y_2Szb=P)WTROigA?8jzt z;x~;X4;VzO7m`;N8Vy;c9_>x@XN7%(ErFD`6-ZmU`jzQZ!DNqP6se1fq-t*F z0+c&dOlb0iCfu%`cJa0tK5nadF~q&$^e6irK?$9IWkTTyDw+8&7t6Vdk9GtXRprDpF|p zaTGbsGI(}qAhH?AI;&20WOZf`Yrb6N()mS4+8E5G7`>#5$xFkf+zsNeA6(GNehKmK zlS-!#!FvW;o&vY1)bVH!w6DA3wbjx;kxReJZb4B>Z2JgthAuUEpNs^!d66PEe1oXp zK+!TY#?ds$P2mYN5HP-~0qM&Qz9rMF*x>^mOQnDLH1Nb%^2s|$h3gxA#FGcXv@fK; z!+|)&oPO)x83vM6wkO$D%JI|M9%If$8+L_C3Zn0jz~AH+rrgdwLA`*($dRYa(@}Nq z6jx(F7m3m$f}t3g#k~LcHYl}zIA&klpN~&n{)a#a+o%7X7VOolMZa#336mGqGdup&qF z<=#LHno93M@x3mgK*)!1%2q-O$s!+Sh1@j=u%MJH-2#P)X9Ll%jZ!4%H+?2`-DO~T ztVA7YRKSSm?_1B{q!`Upcb*FvinXLS8L2 zJbq`L#})O|C#83yzgQX*LVBQ#^C(t<*#L!^KFN8|EFP zu+&0W5CXBD5h@M#$ED%N{cU&vy3oh1$BL~=(qpJu0`idU8yqd-V<@)@qSAwd`i?Io z=jS_$@W=l4BDJ65yub)ffKpc%?(AmGlN&s(ln!M zD&&zXeT15~1ozNJXGskLZ65vMzaGHdm_bLqx`PUx-)5D59Uz?lkiim9oO^GkNm)ZF zcY*0u6M#|--opCrPZ(SK%6MytAHNa@GdnZuogH72Nx1iiYlyVlD0m$6g=Kg5)5C)^ z358~>8HXb4i}t&uD8)-+2b@`s#o8B`+u=;UGG6K$KV&}4b<9KE4?i_;X-&%QcoTpt z$dcRy6UUlBGD2yYR};Gh9wg-$l=tju9y1yP+{%S^Pw7dE|q?ud%9{hSk_6yE~?Kb!fc5NJ{UT%IjtN zIZ_vsnPRdAu6Ze)D#-17rBV5Tne#3@hQweaM*LR?*yLbLO;P~u<=jK^WP`ypox^;6 zsgYh#-FjNDF=^>Nj>Z|Q;PXizwP!s%v0X6sDpU{YDMFZczl(3t^td^*$Cktr zTRom!#+L1#>c(7y(Wsq|N$n*xaqKF|5f^bn@An2{I~&W?-4XGmp8s!_MB$vM(F^A1 zlzlC(W}BVSU_p;1OWFx2gxC>Xn`n3xWd*PeqWVlQtpZw2r%Y$q1YU;ba?>lMyovjc zwdMpf7<)8x1w+UST0L=xXRRs)MGYjkhWmSY+PSaej4X+|1}3Y2&}U==QpWP}x;swH zOJQ<__{dvR$yWAj!l_AOE?_BMk1fs8Krh%uzIa6jtU^q+`pcPs?bHzM%^Qb7oYu5m zdyb%!z8il)X8>22N3($LWWx}$C+kuBVMJ(cJk6v#gWN5C+M21Gf*<$zf{w~=jz)L2 z^#o&4JL=vGm|7QCAiYHHVs^YLcb+G5tgPlYa60xLN#<%-y7^Zwa(;eyK|w`Gl5l;)X`%R8f2ffb>DUaC$! zsw}>)2>sX_el}mbd494r&;zxSnN@D$czz2tP?~D)m>731V7INB_DSc`Svt)0@<_u8 zS5*oLG)N}Jss0AL-8b_bchnT+?{5<%r4>EXQ1``_)5pIr&jo&4|DKN>;lAvPO&(4| z1yLgvVfM~d63|y@wt5j_CYlR1I-1hUqnnl+wd7U3wP7ISM9Q#RKyYIQlu_SBQstLwz--p>hD!CnD_gQF-!Vm z=_?Bx(}X)%#kDUS3c07r!3W2B`o7?hH~(TOIL+Nb^QY{ip7!A|G$UJg&c->1k8hxf zXE4H5FRM24Msp6Z*ee1l(nXp^VK8p_|0Gc<@KSa5sRTr9sDPQANEFR(4lt0>`b0LA zBm*}yvd``_DBt27u!$dGUKo9!Z15G)|&avkIwa?75VYn&Il-~W&RB)Y z&R)egGBRSM{GOX;^6e02m?Sl@*dxPmD>-1-qdClxgX7$ghhp2%v8wETHs1%Td%tu9Ht?cp#CN4kCautv$KZRz_B@z&@7(W)n< zvq>7|Vl8fNA@qeZ&bIS(rJrb0cRhd1tt6-CQwotvwwhAn`$e^n3YHT9uGe}Bxz|z| zx4jTv4z;t)bc0=S!tRZVC?IwQVcPFI@Q#!XgAlCMM zs0Zv$K;X&E_@g=e8<>P{(>Ks|Vmc(&_OBS!ciO(~ryeH5Hf6Smlitz`Hieysx24%d zALMxTI@cKdYvqdCYHlBI@9*?TLsLLX)K&zMqc=Z>Z6ul9SIahF5a!Oqp}| z)h!`2@x_|TYbWrIv{y;>O@Qw60$G3Eo$ln_tG-!@X1nd)!!rZ;q1dP+KexEPnmBF< zrB+Q&+(~q+np(C}c899uw;19Gyj<^dsQWOO{1KIYqeh^q-30yGVAI#XhSf@9^bi9M z!`Zk>&>~D_B*Al9UxPX@2iD1V{1;7-hS-R78?s=uyjBGUvTrffkYo5Z2G;p5tOW`+ zFaD(9uedG)I8JGd&Z+YK;*6GePu!K`t-oVQavEhst*cMv1!o0FBsW+QDLTLd1#4Y? zbXAX6uBtyMVW`W*x1bwd#)KGXsx;QN#BTXM*}pn<@!OG5Z-r~N;2u^Nv0y?YiYc^Y z4yS=vwlnJMUn3b^ zDJf=~ zSEkKBnNQ%WWI^~b$wU*tjo|?bD#xl4xPkWSdCr-7wYFR4oKd}RBNe|o!fH6CIR-Tt zZaS#`4XjG7E1GM$iCuOGgfyDxB288F-S9~=AB?OASv%V2JSn#;u<94ohUO8?`C<6N zeB*WCS*k}k^?EfUOC4hW2dpxKkJD4d?uT(`j!6v)N;}9sk38HO=~>k@=bAh20iqN3 z9qkE3v90aR>Vur&i53h|v~UQ;u%Ox5jwko)HSxD%h{``b$hT&X88b zwj8qO1Dug2HtoMXH!S#QuA{C(r8rbMn;Q^S5_wzoX}{Pxs+NVJFLz{Ka9xdIpDYn_ zEfk7ha&@D##=6vyQK;${Hm`Y#n=`9ESK9KaJ#YYX^r;u=7T2L&5w0;|XhUYHT{Xdt+cOuH@Q@2_-F;}<2 zm$7^Mzcd;)KuBL@IG}H)He)awHy@op27Qt0D|GgPsl&yb(I6bMC5#frU5NQTs1ngEBDQg^v!pzDDU_D4c3Ba85a!Nwt8k8Rp;=s=hupz#Q1E-N zoE3|wmJI8WDXUQ_uRzug&P`P^S)pTS|dK9y+sa#mM=LHNqo0MM5XliqnbW*z} zm5xKA3X-+Lm8Q8@D_dn*;Fp2)N{Wgr)r1{m5kjLKKqT{t-}C)+sXFQ?kWs)Mp}CueaBA6G?Tb5fkazuc!Ep~C=w;{Z zVONtzDy?dDDa=NzmQqt2mjJps_pryPb&#-{tRLuYc+p6YcfQQOKj7{z3uJ|$4 z^gHCRfAQ3aj}XN_JT>@VJmvJ4r}X~vlwNKMZXmOOarb}ol+C|*>Kw=ut+Qc>lm1vV znw5Bb4lOi=n(eyuhBKq4ev>rL4!jJ|Uy&S=`Q;{)*yW=e%N zuAPEz;Ph=NGI)-3GFiy<9=at7LuiFr>EjO&BKBudn}9G6pZ3plMsRxI`%F^BFv%~D zq1v6HIU^?jUmM?C9+(FNi3&{QUXx?$Y0@vO-=ac$<9MpB6AnvI73EHY0gUSEDM5JH zznG1oNZ^%#)htRHV$cqixY0dCbDoSJ2%kPlhl5iLrzvbbAjVzNFNsJpYnH2Za5LeM zCiOI(V7ItQJVDdl4vmR@|sv$=cb0Rs8pRK!Qtc~@JEDt~`0 z?&Ozvq5r-5EuzI~l`{6-iD^nV0PWUcyRWfsd|sc|%?ww51c?JCQqK`&pxXWZI4C*2 zEO^bZ8!5~xlm(e-H!0_PNiwodMMqw&D=Jne4}h|%#>;=Rv-_o#$xeMo&g<<6EM7ex0*?O(LS_#@}sUDuyk9n@`Vc?GmImc7;^r@udT+2WH_0tVsQFp&&}PvA`i{Bf;@P9#V`9 z3_z}!zfnY@O4v&Sd*e-5C$eyk&qC^~Su@+QjVD9joEZdEZE zhbd=;#B6wTGrGEWw1O=?M#;iR;{D?aN6`b{f8EE2JNJ^(QeAi|8)%6OBS_fT;EtSCv-%) z*=1*r_N#`_QfmPd-KJi!A4^38WQzx=Y1MQvw}(cJ*v?<~qqDBBY$$Oo|DPN;C!f(a z)I$`s;k7Trz?#9pr=b*8le0y8@Btu|1=MUJB&ZJbhgb;t*KF(x&yT>*S`j&w9nb6 z)46Z7DYqG$CaW`TQnGTxX~@76B5AkOB%rsN#1v=}=MOviUG!p1UQV{7H?WPIPMl4i-AyfQ_<7ZxqQ3)MM`J6jddI-ze70na)(9j^1l#?S zhHg_`&JNz*9=w(?aWKvbQ+<&65Er(kv``C0}1{HXt4 z|NOkZGwO9?Gc%)1v!wYy(HbU?c)iXQasT)uDUoCSLN75xUBD0gc})DW;0uZPb~!3V z@S|FYOkh{2fL*59LG=n05l<}0=frj|<@MskrD9^ZT-iV4?M5FAfhGS`K>yUZ8Y`92 zrlmM$kOchQOmD1`h?WNdmYY9XNa@}t(8Vi=&8WVFWbENGj7oxV@(@gsnK&@KTxYzL zlDmhry!RhsF{ql~0As1$h{9U&@ZVt38A!NY*h8_fOFp8vlHpKQfMe5VD+y2&zN%}LcN&&#-PdHoM&hJI(Xt} z4tGn?oB=HPj1HJrLy4pQle~dP#^QfKf+NW)Beth_zwTDMuT4qOoml)x)XXMw5?bL` zG6`iFR#HRhVnJ#QvURQF6@dTfG5=;3fTeo$7srHiLqnX6V+HB@JN}0xn3)OGR!?1i z*6jVVG?*kJ_F?)%Lk8+nU1+H1j$r6Mg}+Ab{REra{dqZo4g!yAwkf&kp1d# zyf1Bi}07_$WUfy7eqA#>wlj5Yh*RlcVeP6oNsKlCT-eBtnI9yRC9c4DxPaW$gmKB^I(;V0a2(DFFQw zvZz+Wp~v1>X&R%SIIe(V9td3d3@1xh1xK;gg!db3$i>Mg| z<9eWqvBWespBS^)=VaT4m9nO#7OedT1KXtG*=%~(?}KI@G; zE4u1$I;ZXsW;9i2qZyKzfa$8#1FqOAxAdrK0eiY-h>hWTKHBAwzs^-s1Eqd{IKkC_ z7aXzB*0`C(u|8+X^7}*02rK8gGY4$bO6_`DcU{BP`pV>92}X0SV1!A+>UCMO=~!_9 zXug)yf!l=l7^JX@gYtg9=CatVO#VgxEU-#_|43JxH3C*~M?>3lLn9@5W6|x~p-hta z5jq|>#NUiY)(h#cO5`RA{HID}c9aF&O>2y&M%YsNxie0DCqRi$>8wd5M?42AE(;7~ zDw!{2PcDu=6rgq3P9CRPL+RG^UZ?)W9vhNUf%9b#d z&qrzhEGP5~D^vJMEQ{i_Xy;c24~ZM*ZG61e$b$B$=FO6DcpZoJ#UB?|gNv5)2^`U_ zM}XgU5-Mgjx6gljnispp>RS8J@B4|X(CO#>oO)^F&C4JF!*+1H&GC6yjpJBIR!2pX zKJIGU6DP24;(z0b25q9|zJCLXDXJl>OutJg-T={?%2oadbFVY^rBoa}^9|=Yv5uHzX}kDkTcZ>~IG+a!=-+?>C$;6v31%l}i7GS|T}NyO zyNmMj{HgvXXT)NwWM!J|6j=QF{l#$j6s4#7%*rNqr}yeMq7<9ms)InefU%CkfSugU zl5{L>$Nz#8-7ghX6?WsfO*tYwGZNeW5r+MDw2v|?I@Puorwb8PI+FV;*_;@zXa6#Z zN3mIEH+KStTA2tFPULC;l+rqaGsmAze482S(vBaTHzp_Dem>qCLcRm%iu`!t`|uf12_LCD&f?n zw^1s?k!2U|=O60v+=ye=E(s-jN4UB^4dhG~y0;A2l#Pjq8gaIDt**itOC>N&&4`O? z#yX^}b(Zc`E2kjP)|V0rWd@pq)Vc)oyR1qqdYXtQoL>@<`tkU~B%LRhmPT zjoHLBx{~9}Qg!mUkK9hbO1+g{ZXW~8Py?3KEq?eO3Jhlv2XN_u@b@MH&>Ib3b*_VN zlNgw(Vl=?TvCf`}LJHpblBlt|Xs_$IK~5i1MdxXu$EtLlB1%@wFflO$R64%Hi+cM$TgkwxE&ER>gZ?*^;bmB{Dl(3zffm32 zhaZa5M-f$De}k^hmStCyHjDZ4Ff2+C!bGGPrKjhGjXa9@RB*ppez#r+$o@W0->Y2o zsJ)DE1iXIN*vYW4swMN1tAp>f^uakU>(i2i&9o_&9!mruT`CR zo4#67Wt2z3`!`KkLlV6%p|`Vxlkc4CYsyFyKM&}?m=^UeHN0`hTzyAg^5MhYnlgFS zh%hpUqDaFQL=?l2z7O55zNmdGwNBL_9Yf)-4}%E5%-&-6^7xP*%%vam-Y3@<3Y>!x zSdy_KJKij(vhvZ$U+hqcq?!bNo(;XLf)(SXa)d}K z+!xG4`+Ba!sC%oK2HOu{P&dQGc6S~+l!*jC>BqI&Y%Z=+CV*!N&6^(Dbe(u}hp#Z-A z_?#WJ5*ziMgMi8(%qvcI#k|zt(Du~l_Yi73rBS~?>u9kfdv!NGG{z(tGfMRT0KgdK zFWw{0zr%kZR0k=HPyZLxc(O>0lM7v8IKb;7ZAHu@rgAqgk1)e;=(7JD`)~Ep#+G(G zrMFxpAv?_muPGLSy_Nibj{k{Fu)jyewIzt>uhU#VLX|1yJPAN9L2bI?OQ))TfzGrX zM4#_WAML(8806!Pnb9tcK@enLm-4Dy5Kv+1`~qa`B1(;U#1d%jMO9>cTkm;0-ADPP z^nKgEu3s*syo4VkC5l=Gp(*2Dz&jS==ALav4ZSEVygdoOf#L%+v+j8n?iLJ0GT(nb z{kpkz{8UyBYpELz55Zi`pcWL}oPb5xBFEiM09$+9@A;??ABvKy9L&4z%oB?B2`1OL zaOi=gmi)nNB;Sjg9XMo}eCwMKBStgPmA!A_$4WQ1ADQ_-5+IGt$^YLHpmpz3Gb1kJ zoAm-t3ya7uZ|=xH&>x%y4I-SRU#8(sZd8C*TDg$?UoGIzJ8dbE{QE**iaAl3B(5an z?Eon%;Jp?ORYV4H6t}tz>h4c}Sy6&N*f+);R%j@H%xLYc&eOMzTiS!wqe3*_bV`bG z)w4tPFvvr&?*YqM-!0I$JfI#)<*IOo)MW)e zi@D7Y+|$3pQjjTq`!pxqEi`ect`3fgfOHC`PSDz%Y%;O_{CHt~Hjv+VGAV^2c_Pk3 z^i7RWBZW8uL$tCkQS$A4Y6YDy{Mf6@HLOUoUVHiZw=4S_c`~}W?cZ)!BTuuqFct~! zYH*G+YFDBb@_XH!X*%8%ii5aBLK$aHK}cH0%D~{fD&r2Rv?WXegpX5>F7jh)A7;!A z5QyY+cR%2RNLJzS>3IsH;e2^K7MY{j#;$!856vH_meTG|WxQ)sjWt2lnKvA17rvWrp+H&Mx;tt{W7a zDPe<6upzGdTfNIZWYHVt7qCE4w&@15!qcy&2trsqY$s`JRx0_Xq0Nvw97f)OEko|m zt-<^zx-ht1>3DrwKb`)7PvHq8MG4%xk|6`6fv%|=(`{6&)D`+UB=B$7OrE+UnD?d$ zW^cJJ*|X*W_o?Pzx=QmUGf=XXVKW0C30lQkRASCLzTD-R;1TV$ewSjms}j4Y{Y?hr z=K6Q;#rgxWpb55tD9tBfTNH9d^cY_e*~B2?bRO!DJ}t}-1p6+TpQ_!-09-0M7p#nj zFiCQEh&63S^Xu#kI4)ecHvYY{t2rBg<|8kv$tY&MbM*7s%jwSZY&VXr3PwIn#Fba7 z$!`EGh~wAtRi4>uBQiMcqwQzn5b6-?2?LWO4Xa%SKCok-?!TNh?q#YpJ!6>nMF?>S zcjILrFa}(0XI|MGlfYMH3ncRl$;e|ZdDJC_f}}$vhj>rR05{2gUMwV_-V5YWA@3%i zK94@ce1dYahRg~qL&QvWhEUWIYEF{v=|$=L8R0DR2)g)c)D-8r0mqlINQ)pf`Otl- z%JHCGYJb$9&<`XrJ=G?lcKiyPnUKX=O{FAm7J$9J=Vgw@bf_2-PQWT^&3Eln;nOpXJ%>R>@6rA-&$tit6? z7CeU>3x(apz1&#SO)3laELQKGJUsunxeXWge`EQyz74GxU18AZ`w8Vo8nPEs$NfOfKl01=Bb-=2951zH z$97pgSs_W$8-Gg3YsL1Mo$WV9I9qb!CY5$XsTKvJH{4$1psiK#8vLYJ<37L|eV_}v z9>n=O!{)~G>!53SH9@L@0#wg~mgp^QRC1?@*wtE;ah)=2#<$-lsQOYxm>Bj0@iCbu zt(h|RK!_%&g~Y78x9m@We)&aMK-PSAZl!jpYe&`We%t8SY@G!MMb=`niY8M-Rl9zZ z|2j%PEg?#w3Y(zwVY&ItJd#aqXlArCHvjSOFlrG+*`!Ew{4IJ^qDHi#WE5l~AQ9C` z9E>V?6;EoxiL09lV{`nyxSbWIW#pQRQ;M|OuZ^h1gpT`ZrncO4hZ^U7sPCM6oC|nI9c3o?NcmYqa*w7-cf>{E7x2>oteM81=!7o)Zhe}V?yU5GQf!;# z(GD6EVzrN|4^D_u7~AavXw}-wp-yxZ78oJb?J?UU>$9GDG1$@Ul@vHQis-NM;jWz~ z?4&M>{Qx=}aRTQ%-J+TZRbP+$hhqD~DUH66d4LS;9$OlKCpHo-M)=z^18V{sEbNxP z=>cgs5`e4ppylkHTg66+<;Ur?km1iKQBk0J33-@uY--Is>j;-?o4_84?GVo+@lz3{ zAmk<3kC)}`d7d+QlN+OLi<)LB!18MW!6vnpbiXC-YrIdp@%WS7#Te|Y^l3k>%vO7P zTDK(##>qUCkE5yuK?fTLJ37v@FHbEbroWK%MO@cN_(gOqf#;!n9ZU{rpgSJlSyu>P z(2u7RRv7u!WSK3Ff8CW=>KEQB(ttE1LZj%F!;(S&9I54^2&*F7^83jLz*7&DnI!IB zA}qugS21p9=bV6XvvxCA{lh4A$(L%P=hsGUx)dW%a?8UZS>1o4(W~&4`ziD3dy236 zLOiPZFDIX4-*+H@?7N%=SL#F&(jG-R^KTXM{4`oC&!yel&v(Pm*M^?nhjBZvqq`9x ztspk7caq5E-AK{Gxhu)%5Ki8&-oFc?z7|9Ic38yPV;(1=b;}uHpP{yUXl5!Lxgtda zJtvBB_vafV;k}|sEM7MseHl(Og?T=swb?kziegjz()GFCX%&UYcb`z*J#T0f7OKcQ z<%`Pinw*V>0nK?7AiF$B|4zOcFQ|)Jx1jg{5Q*@|9m(fR04T42B;eyc{_|3)e`Ndf zcI5NLXLscD1I0*9EJ(&uv?{b=*^IW5GariT z`q1k>hKz&(x~Hs4j1M95@+bvVsc2vsm^!%pdI_W8zeyHy9k?^P-^IccBB8>BwBj$> zX6dbRHreQe30uSStnOg{(SUE}W{m`}AI4QsaA)ofBzKlfy`_zBzEnhT&Wv&xCkV_@ ztsC}}!h&{azO6v)P?Pw2+*cLW20mUQd}O2Cs8C;~Cq@;`Xll*$_p|w81NALaepH_L zcDID({exqjEsErjiE*ydcS?O}vo#l%^2g(anXqBd@N`M*Jzp}EDep8=4BAk8Ll{oC zoCmYy09h>(Q(3&k-ENoOg8$L1VYuBEWDbnWIP#~8f=8tpHPuAWaw>Y)D@H>*{Gc!m za@sw$uQ!5_^jjE{*?hXfujgA3uiGkTBY%)VeXI!o+XyCX+;^bFFGNR8ou>CXX`U^* z_vzl5-^^Vzfdn2^&vtGhHDH%1pXCk%7c^}Ln>8w{FcCRpj(1<#ynZT$FlZC=C}PLO z6K-y%Fgv_2oaTAcgc$Q}WxP~nzNjV2XQ#=*s~S#bZte?|*PYd`dd$BB@V^(oyaZ*l1n2V^H!bo>3_rxF*mbv z8e#gI4Hi_pgaV5b z+VC;o5*hOK`AompVUpiq_bbR(!;^F=uNCc{LaoKx)((wT&2%_lI&8qjEMBefwyS^4 zE5Rv!ceV5n4WTTmPkxWo{Vhm8eCRHpHc2ti&|uky3<_q7>y9ZbNUz~EoDF0ee@lw< zDBE(O=LmKbAcR(I>F>pa}Z;U1Be)a5nZ%MXsOeyo+V#hH1 zOlt-!f;%N~-CB_147Axy4N&Xng#V$TZ>{E0C)b<@8u}B_F}r|lelZ~$jDikyGDxc3Ks z;wK)U>D1g3u-cAPC!*cO!g?gsk%kP@Lv&J$3frRbj%-dBNX+vdZ3Ja zrKMo4sjnPy~tXJeIdL~1(n?9U6)?H_o@l{au91D21?T;Vu`zTfejS=UfN?^V4 zZi|QuBl^`Z7xj7!=NV?}>1B5db@1`>Z<)#%7plCpLFL7WvE2~)^G+Vju-8Ww9EWo# z`epjYtwKCP!QLmvKKUQSe^^8(`8m0Iy*!L@iF@yAbmd8-nSG_VFy2ZErO(2dTjX?M zAvn1emwuMmC|6u%5spo0_YBB&Y*5Xq%NKb}C)pmKaKgYl`bL9)Kt=wcNo1_){Y}$z zge8zAhp_D={#$zX0FKK2hXKvfXU``N3u&d$M8mhu`7Dg(Dj)Bvy`B;MaG1H`-?d`6 zxC|G3;vdmbb3*|r9mpi^L_!yQzAJ8^`tuv(<=uhWfu-w6pMPHm+Q0wzws8IMzi$$5 zi$(bR6hQob|F11&G=INU0{_|%AY(a?lK9_tTfeFw-ZN@?mY!4yDs6=MuyjY=6D5(o8V7l1CHTuR}bR?d5>LCD}{IOX&2?{S3Tn7#ruo- ze$~A!1we4CKqQz0I2U zVH-J0@0}#$@oG1XeTRp2#rw09P5UZ77C@z%;m@#_cZLuP+vE^O4av+LwekM zPS8|^i8QaJZ7P{FS#TwA^+i(558#zi-4AW<=GFj%lhmA&r3;Njq$%C&N6 z;UWW-yh(NVrwPndY*A85G-VdcW+4?p@c&}$ox&?=`?t-clXRSPY}>Zov2EM7opjQ% zZQD*((6MdX)|Y;scV^!2{~a^O?EE&WYUAEmt5(%Iuj{-I7HHPrb=u6c-+5Z|Jt2co zB1~3Y8^#;f)hqYo3OD9&3Rg+pdBAgDVXtS`_eGdiC3G1fvjZ@VP)SQpk#_D}$>3WU z+MU{3u&9~3ReOe$V0;K7^6;U#2{L+4#DgGWoaG*I(={!N(?o##Zc(u$nA#EN#*J=8 zrp>rhFD1@P6Omr5m&7l!QPbi*i?E7BmDOL9ZuQ$bu|^=ZO$}Mp?l$A$@p=}HUN6PZ zBI%Z53~LUac%71D(D6EZS7(hop84{Lp160}oEO*iI)P!H+wQ&o7!($hTatXGd)3g8 zF|Pf=IR*Yn%CEtD|4qu5SyA>~@D}+=JZOL8B!{Yge4X~Y$mcY0&A;q^x>?*}Jx^XQ z^2TBUzo@4kV%Bf7#nYF);ne$6ABA0{T%y~**4o8r`}DIVo$XM4<@YGG?uBnix+6M^59-oN=>S1W#8A&zOsW4ApzY260WK2feqnzbPHt( zYr7+WW5jY=N){#jsucxHF#V{Q)NN5-5Y#``3Q4whGCAzpCq#G!c69pT(g{-eNUb(? zwR^n(D7d_(c79TM&5(Lx++rOA+mO@+1VKiemkIORd>xCz)fB zR936Rb_9dPG&5e~&=Ip^+BZm>5*tc9vL;D zh8BZaXQ3Ng5JO>KB4+rNsNc`e{+pf%p z=5yg_@y1>VUycbXY{2|TcF>{^y9iIDo`1_ude+s2UKkl%{ouv_z}C?8=mF1GTaWLy zxhvu(n{fid;H=KtdZeV|8PH~x8;&U!PZw_3FZ@TBN-7IfoXM*}NJGegaRurhEy_Um z>NCgTtCI^Rx}uA8X7omJcRK)R@wmT%dO%;!RT0EP2N-&BE*j(|J%K9SW3k5hfDAk-o_i zxf2)neRV%E^=Pj)f)f>G8mLWS8}Ng*giaie;3KNPbG_JgS690$F*!V>tE z5T0nUyNGqBT29t~qTqYke$~l9j~sd0frYC9|Dx_Ai{)DCQ4&62uFnWk(`n9`zpR_R zk|4S503(T#ZKL;GSb1iza=1^w~>GRB6 z{!NP8d>Z#~{)cn7RxvQ6?5HWJW)8Nqgq?Br9i(WlUp3|ZHAS2y6+ZN0{m`=7>h&*A z!&X9(WkNPQ{c#$j^;I88G_#of3%Loa#sr2Mu=7s8Tn`3S-DYI`QK4FkznK!z%gW7^ zN2k)iFYwA0t}9yaYx;R&sEF-bltXhH=s{iTS!VU67+c}e~Mi*Or( zvq(vdpR9yX)2+W>U1Izf0SB~dJEx9HxPlatq4Wo`|k@hXQBv0t)YVK`OQ=b@#fyl$^uXzxm8JUYOl zA|7V!rnB23@u4D#5aO(E`tvJu-e?bEOz0pU9otYk+E&P715MP#nY(Gd?cqAdE9GwH zocY20Pu~0q5oGhO*1>F)D6JGTx_v^QN3CpQ-l+L{DMyjYpj0suv9Ue#90L88$AYAz z26xe@Oma@88I6Lke5lEKJ3T^Z(I{6?S(Yf;Q`_-JwcND!Z+23ah2KsncNt$%^)03R z{UmMaVG~tXSObv=ok{-pE4#S2uuDri-g_Nw!dXv?YH zH;9Qp!zEwvcK+!b@@#HOpqLenu*=31dKUnc#u-&ud!F&Dw8r$k3F{D48@3T{WoUH) zHOm~e37$AmrP>r_kyyC4X}sGd!0X%{Qu-7ge)%uM<>3WGTK(mOiFe@Em%X{0n=(I+ zCuFZBYq_?bHiQ{H^J3>5t&t{)r5cBAGY-7xmQ}#HdhH_dZAB<f{%Qo|9X0n!E9t z=MPxheMq#GJfLxWuyWNr!x9!_mN-osQ|!eOXn$cbv8~Mg*O|5Hd^l{{Ke~t_8CPe* zWrtmY>973#NU-xhlj-aPh07T#V!bmWS?ffCW>@%Ryz)cQPGyUCc!V! zE=^Mc)x09Hrh4hGY-6*nY|Lt?t=qae+3pYJb0+nOgR~GE8<7Rhdl#Yqs6@0P*#P5VYALQ)8x@UPb6Ld=(=+Om<((-+FUQT0~uG=5NzBGoru3 z_ZCi}W-`sIE$y*iq6mZ}Y0099Hk85nn6{HPi`1&MH}OxzwzfDiWg&;TK~w)P@+~Yk z9cJj(V2={;1=%17)?H+dGt(%*BAR%?bdERDs>z z8#RWo$WxTkVh>@mQbj0!qLXOW8qXNDuva$^vbLKcZ;YX0G=HQ3V9E{vg$LOI0tsd4 zyv~1u+ETE)Zu>E?cWe*1X&`gl26_R>lN%%A$OZ?;J9)HCJSylEj{qlOA%F3=lZ z4S`RBw*cWB#RA)W6dFt1 zF^b$xAbdq(j{#Tlqtr$wA8u{2M9OQue#(CTKPCvN|Ck_V|209ddV&~9HLlX{J;NTH z_cmE!d3nmIIK9kO4LtLzx}sTut;21#t`}DdG#Q0jS<=&D@6LNyj*FYZ&9BWYWgTwG zhMP~1_`~MymL!=LceMCg{4xFh+i2cp-IhUDI&0$f$1UQweeO>H3`dfVv%%C?s-DS& zo=CSi&Ke0&E+L#d>2c{TRn+(9N}s5BLyAxFvT=(+*ibbu#P?A?3ZkEqi0HTP(<2Do z-g0wOFaUhF1Lk5{X#P0JzWXz@^K=NiaYnUX_Y+%B#*e1-3}O zl35-gkN@>Nu>R|LNFz+*(zxRB_wlQZgV-;SfTUxmI2Gw7pRJ1=$iZEy4S`1 zCOH|!EDC$v#9?MIp}>;3aD2JZLT2ULLz=p;tmH@_YtnNw6iQ2}0riKA@NVrB)!U`` z5*fdhf_QNP_@L=AxO$Y;&l%p)U=cSL?AQRFZLpt1u>+8I_my~{DbSV)N}-;l|Df^F z_*=glWV+W~U|8~NI8k%v^>+2a8%fR{0%#4c@NZYiMPkZg>;~@jpp)?01ml0|&hehQ zRC_MZ4{hVU_0d8QdNVYusE83t9!A=EdXE(kc_u?y1lTf>uk9= zYGvSd9g|q|B}T{Y2(}%5%ujKlM^FMsN^wTV)JKOMfDh#FG3p@X2O?p> zH>A%(9Gij8{w4SV{Ihm%5c$WGJhh4X-Hw*`RpPn)u;Zi%(G$J6Xad>NC>ad65>W{< zYE3b16bBH><_o<=eJ>Ygoe1%O#sYi{*En~C7FVB%Xe*+&z|d;5pH>jQG<5c@m*4q%Um;ak>kW8qpS zRuORVgVBhJto+fb*(tZxAdbbpLR|DbzDpUgW50`q(4VD$_`omphAk9pY;Y5MvBc}oTA?`QQyw>m|1PS}?$8RBw?&2`UQhE~AY3h-4vm_E{=KdUe-gB9t31=`qKY9DPr)!G6`YTVYe>^8~`3*t(6|qEea5TQHEc9QcPvR z4BeHG9f^Tf91m~%54B1nT-E>?6PAcR1jkO>S7d4LB-iv-`huFXAvKSMkdgE$f6_e@ z7|RhPgyrnuCbuMYVae9nt!)!2xwMH_9rN`k>lC11Q175*pQjJvUqp6$+(#%!(;1#m z?oz&7H?`^R(Slp645daawDVE2GXVtfvQ zV09(E6{vj7zIgAQ0wS0Um0-W5$^XLSqW{64zW`ptz*G@*Q^le~jo9glzW5!6Y;YODJAsWs z;Of29>BO)Lh17pBIl=#p$#wsO$?Z&8jzY}k0nCM zTGM~QyfK&s_1LIve#`v(w{odQRBFnT^ zsFlLYu+clzww@bY5$3INi-9vpXBA0mssXcNe8WuO{Xq}n|Yn&Szsvp zhgMy|v5mXT$*h2v1I~x*aWAm$3Tr6uXtmZTy?%acLUahd1r+&mQAKvCI6*gEziU;D z_rEjV4u(FvLh6Fe6)h2}_bAUX_SdgH3PXDnXBj4^hRRcH0DH(MN`MJhyljW9AwF#^ zd>ekHgsPvpPq~?O!q)T}6fd~mcr{;f4WnXSm4k8GNnCu6D~*#_P>ZfV$bidBuqnKJ z)U(qwj?dxosw6KfJc&EO2&ot;GnI^+Q-)b=pw5)*?|M;SUDzEKghY7XqX{Vm(=^;}5(+_ZuEjD5LdiHEu z&7R!V1K2aLpBssUwh>-t#p~J?^GbLoEVhXukIQ%awZ=e_>Owqn#aU++aGy_6M0)KT zV<)Rsy|rCPY>yk!Mk}6{`}R`*j@@heihZ>^?>=Fu=UNHl_16FSbe;YArVDv~k||0Q5SZbp3|O15k|!_bNG_@Ns! zl`Z8`47GL0qo|zCSSNzFMH;;9jkpg#S&AmddLpZia-FF>?%R8!QmI@fiU4S#6orT* zK;H~T-fGjwj7d?B(hr0gzE}rSe}9pX&Mw14GvkethYermapV<0ULB#07LRV94OaI~ zqh2hJ4bCPF$|(nLl5{ak=_w{tkM_bo8~(!I>d|#&SD23Zk@IZW%l_GSxma1?`S8`l zSI^|R=z^;h?>@jb(MY=wEH!fzJ;v*q6dCjQ<&u_u?o5Mj7IlumsL0_=bx~sO9oDW2 zVY5n3iW@*@86GSbTxH~T^_8;5ONEq(obWmf_(Nz%aRzcVjJ$jqIonPT8Vzd7lK?N{& zXq(SJbQ5m772k1z@JY7c@q*Z_RUXvu!#067D1PL(!PaN*#kn?%8f)UakamwlkL)S) z!d4l%Z?UVh^Ex=WDz>%UD;E2nWWt0TyP2L;TbwA0Fxuo)R;#Wf(>A%&8P4rTBNYeBfdV@8yhf|>HWEIV-dS2kDLR2ho}X}OzlQ1Pglt8 z2)tN0wk7xO4*XQF_;zJoWtc=&E7I>2p~axom@2cMZgA5XsrHb;iM%U<4&6Mx{$<4L z9$zEz#%QF518{+$8B>}~ByT6Mb%+JSC6D0x5M`PeWOMr375#at(gmOfL2gOzNLZ4JtR1Xtd`l^a^ zmH(b7&eNd&vN*feiB0c=>u+|{916w~`@8+#!wb*9VkPZgpNY3pVY{D)Xp!RYa@gDj zh1mtI=ybOzxXJI`BjCWWojRVzhW)MsU2 zFsbMH#$NTPGJFKwBh#7B2yk&xeKHSZHWH5|=*g=L+Ke$UlM`9{oLkUM>@SQFAqGtg zUIHLZ+zSu1hR;65!^{GBQAcmF}IyMT$uT-SKg#R3s&*!VDahXb@27JQ=!UV9h<}1>Fi*; z?0Dk+&ALwh!~9qrV0~t^&fO4&!I3g&%@29VMPg(P_hR|+aoXjO9kfx`HlxCY)q}Wm z?FpAQm@4q&&&`d+ch)MSXCB*66tE#b9>1|K!yeP_vi<1EYT9v<=R1Sz114-Jp(JZD ziGpguN@Z(Gv6N0+$C;2HYz-FZ2(j#IEOi_{Kkm(^kxi^G!QmXZxOjr_$>@#qdT#?s zgtGI=Txpr&;oC_D(lz-@?Y;)1!GQn|9&Z;q*duP#bu$dmSI`JV zq4Ujo8HM?R=GSJe)VLqy)Tln+fK9(_jhgo_1{0j88THRsf35F}EgWq=)eAtFA}ucA z_H|lOQ-~{EsmGS8=NFH2Ow`hCig^GxRu+)aS{;IVm+OG_lAbMEHl1~$fbl=Q5S zyLF#o%TQIU3Re`^YT|-x^0i|j^ZxUSjvjQnW0ad>B@2|SYTAE z*{P&oL4YcOD$$@cPc9V7x#YixXH2+aiBK@7(%%tvy71qppLYD9pq!t$2gP&YP)@G) zA={C^{c~kws_7;%@`>Ev!(XF0lJgDPTydxXSw1xd{w>?d16Q;xsaO#qZPf|#U=ye7 zB@&G6l}!zq#(kD_^4HTg7AE$jw|Ip%J71C-yqou>^mbT0t9m|hgeVya9IF8I&JOc8 z2t@QS)2j#j9j=+Xb{(q76WSq9dIy}N_VQ~8Lk;c&R9mqLE-N$$FL+N<=D0A+X_5HRxz~oLjCHzKH%~2?Tl=D7E4yv&gaL27EsZ!7AY8uf!5u{ z1qjP0#GjiIwaBgD_O9T+JcN+Y=oz~i1V|a305mKZz13Db2qMbi&vz}t6SI~N@by+W zEw9<1RrQ_c>)A*Ra_Z-)x87sb6^+xM&fK;m1&3!x<&qBi@n)ywH2gO^RG29wnS=~r!Pm*%lYRy9iUy%&L1T(jfB z%4V93UB{Dhu4W>tRUeJo_tX%`QRmqP++Y3RTB+JC+SFu8rJEFHMzn$5Q_RuG5VDYB zYFxb6R~q1ri$KjLGOUr`f*xsDlgwDbO4G#;BlBwCt-2`M;web(qCI!2vr*DiA4l`5 zPWRLFy>_fp&Mr(81e2l6_2+XYKR4c9P?)2^59>Lc8eGpNIgT8#gC}Mnck^S=xjX&* zKSg*3wx7F7GhwPXAYo@LGZX4sj4Bdl{frGVZ~uhJa;YJN=}g^dBxVcpHBE?Ds+C~w zJ+Tz|-RQ28R`6$ee!ldc&Mvl~*G?T(Z+hS2V5jK}!AneK#+n1 zKXBCX{BU;g&XP}Lev_a=wntL|^8xbHCL;u$$ZK@34%8^YdFGL&uZk#khq%zNFNtr; zth8Gn(Ul>=GM3GkoUZizNfU4EKy?bs>-(&U1xZyjldxXenf#;)n$XmrwZQAT>u*YE zA?!U-el>XgOjNDX!a61mJEbLyNw3XO#powh#YU z-C-44IOCf2?TKP_-bTC{Inn>~?9kyUC{KxR=)RB+ zKdEtL!7*mwQt@dq;9K$9kQL@y#+JzX*y%o}Nyxp{Yf$k=V@gms_L?|p^UPlDLOSbM z2ZQ&J;Aj+cg^;0X6Ac=t+SjfPydgM~rwoCsbUy>4$y87(zP4@9#au6|!kWK`B%x+p z?OIkvT$jg_abD0i!9C%GD3C9+PVWJ=SjjNyRaA4(TL5dpJ;OThwG+NnO9+Q)nCEoq zQeyoA@r(QynguQ>Nf%*f4EL8>bRgPb8Y8Ef#L#O^%g>8*ww~oR4r0Wvg96`ME1aOU zEfOi|;>(sKx{~jl`Dc6BW@eP@EE>!Xq1(~NS7l$t7SGe)^TT7daR{%$)fXZItmoTE z98X`e@z03ME6yW$i)}YdQ_@08SNCrOCGSN=8xNfse;B)NcUMx8T5;TVU)DlMdWvap z3d@2t!>k$aX6uY%;glo#Y3HuVmgQ}Gb$_kjGb>de zRf*E2Qt8x2yM9fvE^peaJsWgoqhxk8M*$T|rBbE7*#>l3wJi^rXHyZ1YvNt|0H?vo zX|&NmpY0Zyc@+FS+A-U`dj%zNSTJ3~Zso+7!^*jA|5q0lWCAt!rYdD6I1H_4|+Lf^$6O>AsmI+XaT1i#02)Iq7myNfFCau`0jka3(46as`@1*CW#Q6-B7^ zu?nga?feSccRRd48QB0)h1!TB`86wQM(K_n>2Fbw%W4?6l#{5%{-lcKY2$Ri0ow!4jJ&np03N$Fq=B-dI zOH-rOUq|URBBqA=%T4CFv+FN23_?3Nv`(%Ec4j7a#2A?ht%@sMC}gP`RV&8Ct#VVa zt5s(U#&PzzD3K(iP50~ZE#Eau)u~+DWknoS97f&iRZdZxyZo|7so0OBzb7i>Dls*6 z;nlGqD_)tsN)ol(dchep2uOzP7M7|;#dTqw{xICmLc)wo78t)s6D?HRh<3G&3w;$M zCZbuLLX}j`*Ry?Z-~e=W7F_48-kZmIyCj%JrvXlExZ|QiUuBMoy;F7}KR6#e$?Gv{Y!8x<_3e^k2GD4d#XIzQk_>gubLz}hWb+k$bbPCaFgK;6s5 z$!L_I)>jsy^OzE2?{do!g)D8lBgb3$~?Y)uh?l064vv zsiaF^A0aWKp^2KS`4SsfN=?rOg)WVYvjy6=YNcNx7*&u7`dX2N7d9qUk|5^?H}4??h!8;3N{ZpPD@%k+@qp3CtW{Vqb8Sa^zz^eyS!Tt?&OVDcTbfconw91t@ zI#n%8LMLnTwi|O+{jyO>0oo@{5}JIY?C(CJlG24136{a8&%D2lqV?N#naOpI7eJEgv7PS84|A&KaX{uhxu5bSZu}VL?KT0LT>9IPYVNk6Bdgf6E{!-*f_u~#*Z|2LChvKD13MTqXZ;Z@~=Al3R5zY2uqhaN+@_~&{bEPo|N_a3h+dA@0 z0j{1~x_M<-*hLU*d059V_j7*PcH)9|mfW^yK5?PIygJ&ix2nt+~5_(aG+Uf`b@ zIJZ03*guYJAhLQhFJO(KYid1(cGozvxEBVaoFo*exYAbZvArbH4%RW3@SQWt0HqYw z3zL%1qj}1;T<#k0LCY3Kl$UHNi9alomg$Ph3`>=Tf_-EN#*%vz-pZzPRYFOPbIE1# zHt^`E|>3qh&HMW8NO9lO%C&Si1_Ww#HgeGn!a>EHUz@mk#=dD z_d!cZqjm`DETW}il1G6~2dFm;?Xsk!Cm4Ju-ck%v%0nstZV{|3gPHS3iI0r3^QHW8 zs#F#9gUJ)UAZ$OHR3>?)kiqg@VxqJv*=Y%&{&^{ ztd^M`Zj^U8$_RwXO|P^@DhnHY0AFmw-wkFg7e4U)=*}Yr%5slv)l*QRi>KXcbd9^l z!(tJBm-k%0-jfxoV`LlU_)oPt9vKbwYS&^Q$n0JRCjo2{Yors-BB{SyvOnL|qld81 zd*j=@ukESbL=|_4S$RN3??9N~ZLWko5*aO4bZ1oZXN2c<8lm z^<}>UH|jAQa#UWS-9F|M@bq%ak)?E>1<4D2*U^1lxkMNPlmkQ7{Ja}yFq7paJr2$z zO7;mZQ?oIILT2BPLlVCWad_U!I{!VYIO$GAe)LN8=k|02r$3+&Aqm-}wwQH{1K;B5 zsHXxY-j!KThq!1A*N14+P~G4fCkN5FgOkI7n-|~t;SzEZ$(Oji3Q35{ zELbqBc!Y2$4tgil%m4GLe$7b)zQucb`@n(|1E#Zj7j|wD!?_)cVC=@q!nzEXG#aZ? zYLnku3K)>!OIG8`se1%zHL1%+M$9xn3q1B_t@MV`5Qs3YbDL*u?FfC=L1SvKD6JK; z8O^EBb>=@@dk7nkYOh|vo4c1)1BR0TS~4=!p}h&i<3uH4Oag0Mv=AyJ_Y=`F9j8(a zt_KfpY}2yqT^(t3OW-|c*;P$N!2nSTVkw_NH`^taE3B*0%I&>>l`HThM5mKV=?_?^ zR+(~Hu*UTk{BgMB4mOf==$Ztnf{_dfEiTz4@7uf>ObUdt=T8Dj56%w=4fKxGo=K;M zN`?XqKuF)SQ(YH1Fqx+eq0QS<^~c4K?;{&I%gD#N5h`?N&m!W8%t6iAxcRquyjBZ= z?*uq+AF(1B-DH%;3i_y4`AXC&WQ|qE+31OsUMEMv@e=-NF3mHgGlCqW^c8)1h57XE zoIONy)!z@WX0th;di!n7O<(Zw6YQmGArA!~2kd3L*n7x_(7pr7{TyU8CM~0N`nfFy z29Cj<>>`)n6NqpES2FE)0$fZJ0$mf%V~_)^vKdR!yM%1+BjP*==^;Pk#+eK!_fyzL zvg(jKO=wIlJqwTb?ee>f<{|RJP!`=2kE2~5(Q7$Y66al3ALE~i9^S?r=#uVU`=e>B zz8md2&P;{;BBVTpND#n*@2QizT}7oqabSYhaIg0-<{cpK(ev%H za#3+`Dh(_84V&4uB^Rc*^>@mds)0Sb{k5T*1h?Kms;n~Pt__GG2w|_z!UU298jbl3 zFjbGX!B;~2AFawGIafP6I$DU~qyPlir<2;c1x=0CQ-Jq!y`ST}QoVF3-!X43H|>bf zf9g*%>AwYG=D-44HR`o>Pt%hQE%BsIcP#9qIlhUl=nMtLGtM2wc(WIbwC+i4 zgI$VyWWk|Rh>5|*DJU@DS*lTNWjd{Dd?I)$g)SPqCCmp9HBV0zQR8*3>J^Kf+(#?1 zWD%?a>u|Ty5P*;-6EDRd`8Y+zAk@#J#OrpN16h3yBw}b1lJL5^LyC!(ton5${Wu=- z{j^n?KVbZwSqIr=w&eyPO!m8Qb5sDe zrHR&tTqu0;u~lZ>(g}+09SXoGf4Lp>xd+yxkO;zy@yjvCws)QN5va<;C=MJcErF=^X}LUFFUdb z{o1NETlXjP$EN@NZ;nJlBtgc;G3lX+#;WmsgzgHXonahqH=n5x0I-fn%O?+x2U#v8 z?wscI=>$ZR$53OZ7~cI)@{l@TIl4ruU>2^`Hz;TY`o*7wo@{%z)rOthPT>(UC1z~l z%=)McdH!xg*~Cc4t<#Zi#4EtB*XVojQdF9)ur~X9oH?+o{}=;!O$M2$rsAOOEjrv2r&z{yh=sRMuEP2T;8LJq^Soon=v+4oy z0^`L<6)?CmFb~1oEBL-f8U8(iONOt%e3DE*I|YTccy_j(c_-aVwmF&$4!d8UEya5$ zbsYoX7qS_5lg40rekOp;}&h;PM)u>0pu-@dL>=Pvqw2q z{pQmpsH37Jfi3o{n~X8TF}|N)PdYKaFWsLvzHxY;U*4a$>`(uZXWoF2RO7HCBhlwfF7 z*XTT1!Pz^{+eykBXBVm>e9Ge&##H)`OvENP?q^2JNpj>mmfbQN@?H|@vXN)3e6owRa#PPGEJ_Lx%~ucmvcwXX!OC)J|wAl z9??DO*mz<1NER_aGGtOCInk>e<8{%ljVv0=X)Z-Mx8c&of1G(~D8s1!sMuXepJLlf zyO|C&bSY*t*4uONL%R@R( zboE=Z{#my8uH10BbzkVtl63Q2fVnI`VQ?jRj^lOkbBs7H6`8Dy@L|P(G$J@tqRUQP z+B3=NIqnAyg9|~3q>9f%FII&L{+~z%gQjpISE7Z9oksxBSsepUw}PRzX-aEpK$csd zsY9&W^#P1-TOA)6?9!cW{OPC7p!lbG%&e4Rjgu30@=D&-GlZz5m0o|p<4XSHSY^hq zIFUq1!H9hd!GhjYZQ|*TC=e)5L^jYYMKAUYbJA-P8+|5~k_`#f#S~~{;jX$`Z zN^*T&?)u4sTdzFlf0Bb6e!sFagAdh`8K_n#%qZ(I0Y4|cW3cI^kma0@FQ`z6p)5DbyOnDdT`i#myJ-Dj#3>(Q+d! zwdBH;L6q;$eTvX~qn!`A_L1tMpy{7&H|>BW@6E`+n%*PWHo#b;$9c-Ky;FFb7;kA+h6)l zG9Iy16F|x0zw(fBQB_mOoLFNNJSGGr!i*ijCv~r;YsQ$}da0PL^uQh*XQ9K^Pmm^O zhv<3wICuXNcj$!{*8dRqlE1{=?k{mC14sCOCGMmce~G)t6MN4WaZj{Z_ZosaEjfVA zZ-Y$08bs-RmAynYbh%2L2jWt!(|%mWnEKi7}wV+rJ7R zuOceO77^-(!F>$?pg4dYMi|9T!GU=tzf7k)C>!?&O?nL)THwv& zY0{9&@cIW$OrBtS2z{@?1~sw)eQ!W29I4uvB|u@LMCs1SY|))tHFmNSPZI1|DOUEs z#~K-bUVsv*~1)3V)FQy|Qea`;{~oKl`7< zP&ciL!^O4K5_>+t3Qd9+O~4c(P~E8D40B~J+%}0e1;7mW@QntAT9wC*%zg>a+^T*F ze^>HT-Vgb|$1+(<(6<6|{)oRr;%g=UbvgmH{B-T!!RvqIp7xSY;Q9iZ*EKGQ)1^E zd1?GuOtkaU1KaA;g7+6{G2Sfg?(+DQu)Sg9TkG4pWgF&8jYDU|ui}&Yrp4z=mHjfe zt-!O!{VZl*n#c{YlZ8Bg(+^BR?nrA&m-j@(6mO)I`NgF>`D>f+IgSeTcz7>UdlSL@ z=rz{pF!~-Q>{9BNNrFe#`StjyRhKpNK~~|3ebv7up-kW>lLVz^5*Tb#pi?HbZkU6rRfkf=Uir;9B{l{1E1^WwU*Yk z)M72)Ai=YvfhaLZk83Fi%>EQvke9k?lx}%`GPXef41SZEQU<0*wf71iviCU@vZc>? zC=XBTLyGbp*0JE9hP$gj2ctQj4^bR%xWzK&heqKp;vBrNCmuDB+OjzeTP2fAS}Kd6 zZjWXmzc$7grhw899HRDQ!C4LjjIm?me@;FfmWH=s)BfnH1(zPhatDksbjbc^> z`^A>CpJN>#L-8>!Of--Usf~!8X-A@I_KMNpjyR|WxfQ2XzxJ0XC=*50b8Mayn>-D^ zXuWDKZ9+}>okdTiybHOX`(fKjP$4*UOGy{BH9OXbcT;9))3SUriiq97#kOJmM@f*$ zq_OKUnBt}?ngToMR**72zKONbwX8E9RwGGq!v((PcLyCuzbG9g)?k%vIeZpg*tIN8 zq%1M^SWmJ#YnD8??GtQ3Z;+Eha8ajsΠm;(s;n1Ya#G? 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 literal 0 HcmV?d00001 diff --git a/notification/logs/notification-service.log.2025-10-25.0.gz b/notification/logs/notification-service.log.2025-10-25.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..983a9a4f48545f196b9f0ffe8d4ad6032ce897aa GIT binary patch literal 236683 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
  • g(j!++ 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 bvIS9Mu1}gGQ(5f@X_(*}=oV)Yg~KWUKb~ra literal 0 HcmV?d00001 diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java b/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java index 3284d70..c982e9d 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java @@ -4,6 +4,7 @@ import com.azure.storage.blob.BlobContainerAsyncClient; import com.azure.storage.blob.BlobContainerClientBuilder; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -19,6 +20,11 @@ import org.springframework.context.annotation.Configuration; */ @Slf4j @Configuration +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class BlobStorageConfig { @Value("${azure.storage.connection-string}") diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java b/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java index e789ae5..f171247 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java @@ -7,6 +7,7 @@ import com.azure.messaging.eventhubs.models.EventContext; import com.azure.storage.blob.BlobContainerAsyncClient; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -24,6 +25,11 @@ import java.util.function.Consumer; */ @Slf4j @Configuration +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class EventHubConfig { @Value("${azure.eventhub.connection-string}") diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java b/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java index 748ce78..481994a 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java @@ -218,7 +218,7 @@ public class Notification { * 알림 유형 Enum */ public enum NotificationType { - INVITATION, // 회의 초대 + MEETING_INVITATION, // 회의 초대 TODO_ASSIGNED, // Todo 할당 TODO_REMINDER, // Todo 리마인더 MEETING_REMINDER, // 회의 리마인더 diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java b/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java index c3e7e8b..3510937 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java @@ -176,7 +176,7 @@ public class NotificationSetting { */ public boolean isNotificationTypeEnabled(Notification.NotificationType notificationType) { return switch (notificationType) { - case INVITATION -> invitationEnabled; + case MEETING_INVITATION -> invitationEnabled; case TODO_ASSIGNED -> todoAssignedEnabled; case TODO_REMINDER -> todoReminderEnabled; case MEETING_REMINDER -> meetingReminderEnabled; diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java b/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java index 77d902b..24c3ee0 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java @@ -3,10 +3,12 @@ package com.unicorn.hgzero.notification.event; import com.azure.messaging.eventhubs.models.EventContext; import com.fasterxml.jackson.databind.ObjectMapper; import com.unicorn.hgzero.notification.event.event.MeetingCreatedEvent; +import com.unicorn.hgzero.notification.event.event.NotificationRequestEvent; import com.unicorn.hgzero.notification.event.event.TodoAssignedEvent; import com.unicorn.hgzero.notification.service.NotificationService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.retry.support.RetryTemplate; import org.springframework.stereotype.Component; @@ -26,6 +28,11 @@ import java.util.function.Consumer; @Slf4j @Component @RequiredArgsConstructor +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class EventHandler implements Consumer { private final NotificationService notificationService; @@ -46,7 +53,7 @@ public class EventHandler implements Consumer { // 이벤트 속성 추출 Map properties = eventData.getProperties(); String topic = (String) properties.get("topic"); - String eventType = (String) properties.get("eventType"); + String eventType = (String) properties.get("type"); log.info("이벤트 수신 - Topic: {}, EventType: {}", topic, eventType); @@ -58,6 +65,8 @@ public class EventHandler implements Consumer { handleMeetingEvent(eventType, eventBody); } else if ("todo".equals(topic)) { handleTodoEvent(eventType, eventBody); + } else if ("notification".equals(topic)) { + handleNotificationEvent(eventType, eventBody); } else { log.warn("알 수 없는 토픽: {}", topic); } @@ -174,4 +183,47 @@ public class EventHandler implements Consumer { return null; }); } + + /** + * 알림 관련 이벤트 처리 + * + * @param eventType 이벤트 유형 + * @param eventBody 이벤트 본문 (JSON) + */ + private void handleNotificationEvent(String eventType, String eventBody) { + try { + switch (eventType) { + case "NOTIFICATION_REQUEST": + NotificationRequestEvent notificationEvent = objectMapper.readValue( + eventBody, + NotificationRequestEvent.class + ); + processNotificationRequestEvent(notificationEvent); + break; + + default: + log.warn("알 수 없는 알림 이벤트 유형: {}", eventType); + } + } catch (Exception e) { + log.error("알림 이벤트 처리 중 오류 발생 - EventType: {}", eventType, e); + throw new RuntimeException("알림 이벤트 처리 실패", e); + } + } + + /** + * 알림 요청 이벤트 처리 (재시도 지원) + * + * @param event 알림 요청 이벤트 + */ + private void processNotificationRequestEvent(NotificationRequestEvent event) { + retryTemplate.execute(context -> { + log.info("알림 발송 시작 - Type: {}, EventId: {}", + event.getNotificationType(), event.getEventId()); + + notificationService.processNotification(event); + + log.info("알림 발송 완료 - Type: {}", event.getNotificationType()); + return null; + }); + } } diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java b/notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java new file mode 100644 index 0000000..363c15d --- /dev/null +++ b/notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java @@ -0,0 +1,176 @@ +package com.unicorn.hgzero.notification.event.event; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * 알림 발송 요청 이벤트 DTO + * + * 범용 알림 발송 이벤트 + * 다양한 서비스에서 알림 발송 시 사용 + * + * @author 준호 (Backend Developer) + * @version 1.0 + * @since 2025-10-25 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class NotificationRequestEvent { + + /** + * 이벤트 고유 ID (중복 발송 방지용) + */ + private String eventId; + + /** + * 발송 채널 (EMAIL, SMS) + */ + private String channel; + + /** + * 알림 유형 (INVITATION, TODO_ASSIGNED, REMINDER 등) + */ + private String notificationType; + + /** + * 참조 대상 유형 (MEETING, TODO) + */ + private String referenceType; + + /** + * 참조 대상 ID + */ + private String referenceId; + + /** + * 관련 엔티티 유형 (이벤트 메시지의 relatedEntityType 매핑용) + */ + private String relatedEntityType; + + /** + * 관련 엔티티 ID (이벤트 메시지의 relatedEntityId 매핑용) + */ + private String relatedEntityId; + + /** + * 요청자 ID + */ + private String requestedBy; + + /** + * 요청자 이름 + */ + private String requestedByName; + + /** + * 우선순위 + */ + private String priority; + + /** + * 발신자 + */ + private String sender; + + /** + * 제목 (subject) + */ + private String subject; + + /** + * 예약 발송 시간 + */ + private LocalDateTime scheduledTime; + + /** + * 이벤트 발생 시간 (배열 형태로 수신) + */ + private java.util.List eventTime; + + /** + * 알림 제목 + */ + private String title; + + /** + * 알림 메시지 + */ + private String message; + + /** + * 수신자 목록 (다중 수신자용) + */ + private List recipients; + + /** + * 수신자 ID (단일 수신자용) + */ + private String recipientId; + + /** + * 수신자 이름 (단일 수신자용) + */ + private String recipientName; + + /** + * 수신자 이메일 (단일 수신자용) + */ + private String recipientEmail; + + /** + * 참여자 (단일 수신자용, recipients와 함께 사용 가능) + */ + private String participant; + + /** + * 템플릿 ID (이메일 템플릿) + */ + private String templateId; + + /** + * 템플릿 데이터 (템플릿 렌더링에 사용) + */ + private Map templateData; + + /** + * 추가 메타데이터 (회의 정보 등) + */ + private Map metadata; + + /** + * 이벤트 발행 일시 + */ + private LocalDateTime createdAt; + + /** + * 수신자 정보 DTO + */ + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class RecipientInfo { + /** + * 사용자 ID + */ + private String userId; + + /** + * 사용자 이름 + */ + private String name; + + /** + * 사용자 이메일 + */ + private String email; + } +} diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java b/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java index f05e2ae..556bb1a 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java @@ -5,6 +5,7 @@ import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Service; @@ -22,6 +23,11 @@ import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class EventProcessorService { private final EventProcessorClient eventProcessorClient; diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java b/notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java new file mode 100644 index 0000000..40ab82e --- /dev/null +++ b/notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java @@ -0,0 +1,173 @@ +package com.unicorn.hgzero.notification.service; + +import jakarta.mail.MessagingException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.retry.support.RetryTemplate; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 이메일 알림 발송 서비스 + * + * 템플릿 로드, 렌더링, 이메일 발송 통합 처리 + * 재시도 로직 포함 + * + * @author 준호 (Backend Developer) + * @version 1.0 + * @since 2025-10-25 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class EmailNotifier { + + private final EmailTemplateService templateService; + private final EmailClient emailClient; + private final RetryTemplate retryTemplate; + + /** + * 이메일 발송 (재시도 지원) + * + * @param recipientEmail 수신자 이메일 + * @param subject 이메일 제목 + * @param htmlContent 이메일 HTML 본문 + * @return 발송 성공 여부 + */ + public boolean sendEmail(String recipientEmail, String subject, String htmlContent) { + try { + return retryTemplate.execute(context -> { + try { + log.info("이메일 발송 시도 #{} - Email: {}", context.getRetryCount() + 1, recipientEmail); + + emailClient.sendHtmlEmail(recipientEmail, subject, htmlContent); + + log.info("이메일 발송 성공 - Email: {}", recipientEmail); + return true; + + } catch (MessagingException e) { + log.error("이메일 발송 실패 (재시도 #{}) - Email: {}", + context.getRetryCount() + 1, recipientEmail, e); + + if (context.getRetryCount() >= 2) { + log.error("최대 재시도 횟수 초과 - Email: {}", recipientEmail); + return false; + } + + throw new RuntimeException("이메일 발송 실패", e); + } + }); + + } catch (Exception e) { + log.error("이메일 발송 최종 실패 - Email: {}", recipientEmail, e); + return false; + } + } + + /** + * 템플릿 기반 이메일 발송 + * + * 템플릿을 로드하고 데이터를 렌더링하여 이메일 발송 + * + * @param recipientEmail 수신자 이메일 + * @param subject 이메일 제목 + * @param templateId 템플릿 ID + * @param templateData 템플릿 데이터 + * @return 발송 성공 여부 + */ + public boolean sendTemplateEmail( + String recipientEmail, + String subject, + String templateId, + Map templateData + ) { + try { + log.info("템플릿 이메일 발송 시작 - Template: {}, Email: {}", templateId, recipientEmail); + + // 템플릿 로드 및 렌더링 + String htmlContent = loadAndRenderTemplate(templateId, templateData); + + // 이메일 발송 + return sendEmail(recipientEmail, subject, htmlContent); + + } catch (Exception e) { + log.error("템플릿 이메일 발송 실패 - Template: {}, Email: {}", templateId, recipientEmail, e); + return false; + } + } + + /** + * 템플릿 로드 및 렌더링 + * + * @param templateId 템플릿 ID + * @param templateData 템플릿 데이터 + * @return 렌더링된 HTML 본문 + */ + public String loadAndRenderTemplate(String templateId, Map templateData) { + log.info("템플릿 로드 중 - TemplateId: {}", templateId); + + String htmlContent; + + switch (templateId) { + case "meeting-invitation": + htmlContent = templateService.renderMeetingInvitation(templateData); + break; + + case "todo-assigned": + htmlContent = templateService.renderTodoAssigned(templateData); + break; + + case "meeting-reminder": + // 향후 구현 + log.warn("회의 알림 템플릿은 아직 구현되지 않았습니다"); + htmlContent = renderDefaultTemplate(templateData); + break; + + case "todo-reminder": + // 향후 구현 + log.warn("Todo 알림 템플릿은 아직 구현되지 않았습니다"); + htmlContent = renderDefaultTemplate(templateData); + break; + + case "minutes-updated": + // 향후 구현 + log.warn("회의록 수정 템플릿은 아직 구현되지 않았습니다"); + htmlContent = renderDefaultTemplate(templateData); + break; + + default: + log.warn("알 수 없는 템플릿 ID: {} - 기본 템플릿 사용", templateId); + htmlContent = renderDefaultTemplate(templateData); + break; + } + + log.info("템플릿 렌더링 완료 - TemplateId: {}", templateId); + return htmlContent; + } + + /** + * 기본 템플릿 렌더링 + * + * @param templateData 템플릿 데이터 + * @return 렌더링된 HTML 본문 + */ + private String renderDefaultTemplate(Map templateData) { + String title = (String) templateData.getOrDefault("title", "알림"); + String message = (String) templateData.getOrDefault("message", ""); + + return String.format(""" + + + + + %s + + +

    %s

    +

    %s

    + + + """, title, title, message); + } +} diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java new file mode 100644 index 0000000..36582c8 --- /dev/null +++ b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java @@ -0,0 +1,127 @@ +package com.unicorn.hgzero.notification.service; + +import com.unicorn.hgzero.notification.domain.Notification; +import com.unicorn.hgzero.notification.domain.NotificationSetting; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 알림 채널 라우팅 서비스 + * + * 사용자 설정에 따라 적절한 알림 채널을 결정 + * 이메일 우선, SMS 백업 전략 사용 + * + * @author 준호 (Backend Developer) + * @version 1.0 + * @since 2025-10-25 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class NotificationRouter { + + private final EmailNotifier emailNotifier; + + /** + * 알림 라우팅 및 발송 + * + * @param eventId 이벤트 ID + * @param recipientEmail 수신자 이메일 + * @param recipientName 수신자 이름 + * @param subject 이메일 제목 + * @param htmlContent 이메일 HTML 본문 + * @param preferences 사용자 알림 설정 + * @param requestedChannel 요청된 채널 + * @return 발송 성공 여부 + */ + public boolean routeNotification( + String eventId, + String recipientEmail, + String recipientName, + String subject, + String htmlContent, + NotificationSetting preferences, + Notification.NotificationChannel requestedChannel + ) { + log.info("알림 라우팅 시작 - Email: {}, Channel: {}", recipientEmail, requestedChannel); + + // 채널 결정 + Notification.NotificationChannel selectedChannel = determineChannel(preferences, requestedChannel); + + log.info("선택된 채널: {}", selectedChannel); + + // 채널별 발송 + boolean success = false; + + switch (selectedChannel) { + case EMAIL: + success = emailNotifier.sendEmail(recipientEmail, subject, htmlContent); + break; + + case SMS: + // SMS 발송 로직 (향후 구현) + log.warn("SMS 채널은 아직 구현되지 않았습니다. 이메일로 대체 발송 시도"); + success = emailNotifier.sendEmail(recipientEmail, subject, htmlContent); + break; + + case PUSH: + // PUSH 알림 로직 (향후 구현) + log.warn("PUSH 채널은 아직 구현되지 않았습니다. 이메일로 대체 발송 시도"); + success = emailNotifier.sendEmail(recipientEmail, subject, htmlContent); + break; + + default: + log.error("알 수 없는 채널: {}", selectedChannel); + break; + } + + if (success) { + log.info("알림 발송 성공 - Email: {}, Channel: {}", recipientEmail, selectedChannel); + } else { + log.error("알림 발송 실패 - Email: {}, Channel: {}", recipientEmail, selectedChannel); + } + + return success; + } + + /** + * 채널 결정 로직 + * + * 사용자 설정과 요청 채널을 고려하여 최종 채널 결정 + * 이메일 우선, SMS 백업 전략 + * + * @param preferences 사용자 알림 설정 + * @param requestedChannel 요청된 채널 + * @return 선택된 채널 + */ + private Notification.NotificationChannel determineChannel( + NotificationSetting preferences, + Notification.NotificationChannel requestedChannel + ) { + // 사용자 설정이 없으면 요청된 채널 사용 + if (preferences == null) { + log.info("사용자 설정 없음 - 요청 채널 사용: {}", requestedChannel); + return requestedChannel != null ? requestedChannel : Notification.NotificationChannel.EMAIL; + } + + // 이메일 우선 전략 + if (requestedChannel == Notification.NotificationChannel.EMAIL && preferences.isChannelEnabled(Notification.NotificationChannel.EMAIL)) { + return Notification.NotificationChannel.EMAIL; + } + + // SMS 백업 전략 + if (requestedChannel == Notification.NotificationChannel.SMS && preferences.isChannelEnabled(Notification.NotificationChannel.SMS)) { + return Notification.NotificationChannel.SMS; + } + + // PUSH 알림 전략 + if (requestedChannel == Notification.NotificationChannel.PUSH && preferences.isChannelEnabled(Notification.NotificationChannel.PUSH)) { + return Notification.NotificationChannel.PUSH; + } + + // 기본값: 이메일 + log.info("요청된 채널 사용 불가 - 기본 이메일 채널 사용"); + return Notification.NotificationChannel.EMAIL; + } +} diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java index 2f37f37..fc1b11f 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java @@ -4,6 +4,7 @@ import com.unicorn.hgzero.notification.domain.Notification; import com.unicorn.hgzero.notification.domain.NotificationRecipient; import com.unicorn.hgzero.notification.domain.NotificationSetting; import com.unicorn.hgzero.notification.event.event.MeetingCreatedEvent; +import com.unicorn.hgzero.notification.event.event.NotificationRequestEvent; import com.unicorn.hgzero.notification.event.event.TodoAssignedEvent; import com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; import com.unicorn.hgzero.notification.repository.NotificationRepository; @@ -41,6 +42,8 @@ public class NotificationService { private final NotificationSettingRepository settingRepository; private final EmailTemplateService templateService; private final EmailClient emailClient; + private final NotificationRouter notificationRouter; + private final EmailNotifier emailNotifier; private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @@ -64,7 +67,7 @@ public class NotificationService { .eventId(event.getEventId()) .referenceId(event.getMeetingId()) .referenceType(Notification.ReferenceType.MEETING) - .notificationType(Notification.NotificationType.INVITATION) + .notificationType(Notification.NotificationType.MEETING_INVITATION) .title("회의 초대: " + event.getTitle()) .message(event.getDescription()) .status(Notification.NotificationStatus.PROCESSING) @@ -80,7 +83,7 @@ public class NotificationService { for (MeetingCreatedEvent.ParticipantInfo participant : event.getParticipants()) { try { // 3-1. 알림 설정 확인 - if (!canSendNotification(participant.getUserId(), Notification.NotificationType.INVITATION)) { + if (!canSendNotification(participant.getUserId(), Notification.NotificationType.MEETING_INVITATION)) { log.info("알림 설정에 의해 발송 제외 - UserId: {}", participant.getUserId()); continue; } @@ -251,6 +254,254 @@ public class NotificationService { log.info("Todo 할당 알림 처리 완료"); } + /** + * 범용 알림 발송 처리 + * + * NotificationRequest 이벤트를 처리하여 알림 발송 + * 중복 방지, 사용자 설정 확인, 채널 라우팅 포함 + * + * @param event 알림 발송 요청 이벤트 + */ + public void processNotification(NotificationRequestEvent event) { + // eventId가 없으면 UUID 생성 + String eventId = event.getEventId(); + if (eventId == null || eventId.isBlank()) { + eventId = java.util.UUID.randomUUID().toString(); + log.info("EventId가 없어 생성함 - EventId: {}", eventId); + } + + log.info("알림 발송 처리 시작 - EventId: {}, Type: {}", + eventId, event.getNotificationType()); + + // 1. 중복 발송 방지 체크 + if (notificationRepository.existsByEventId(eventId)) { + log.warn("이미 처리된 이벤트 - EventId: {}", eventId); + return; + } + + // 2. 알림 유형 및 참조 유형 변환 + Notification.NotificationType notificationType = parseNotificationType(event.getNotificationType()); + + // referenceType 또는 relatedEntityType 중 하나를 사용 + String referenceTypeStr = event.getReferenceType() != null + ? event.getReferenceType() + : event.getRelatedEntityType(); + Notification.ReferenceType referenceType = parseReferenceType(referenceTypeStr); + + // referenceId 또는 relatedEntityId 중 하나를 사용 + String referenceIdStr = event.getReferenceId() != null + ? event.getReferenceId() + : event.getRelatedEntityId(); + + Notification.NotificationChannel channel = parseChannel(event.getChannel()); + + // 3. 알림 엔티티 생성 + Notification notification = Notification.builder() + .eventId(eventId) + .referenceId(referenceIdStr) + .referenceType(referenceType) + .notificationType(notificationType) + .title(event.getTitle()) + .message(event.getMessage()) + .status(Notification.NotificationStatus.PROCESSING) + .channel(channel) + .build(); + + notificationRepository.save(notification); + + // 4. 수신자 리스트 구성 (단일 수신자 또는 다중 수신자) + java.util.List recipientList = new java.util.ArrayList<>(); + + // 4-1. 단일 수신자 필드가 있으면 추가 + if (event.getRecipientEmail() != null && !event.getRecipientEmail().isBlank()) { + NotificationRequestEvent.RecipientInfo singleRecipient = NotificationRequestEvent.RecipientInfo.builder() + .userId(event.getRecipientId()) + .name(event.getRecipientName()) + .email(event.getRecipientEmail()) + .build(); + recipientList.add(singleRecipient); + log.info("단일 수신자 처리 - Email: {}", event.getRecipientEmail()); + } + + // 4-2. recipients 리스트가 있으면 추가 + if (event.getRecipients() != null && !event.getRecipients().isEmpty()) { + recipientList.addAll(event.getRecipients()); + log.info("다중 수신자 처리 - Count: {}", event.getRecipients().size()); + } + + // 4-3. 수신자가 없으면 경고 후 종료 + if (recipientList.isEmpty()) { + log.warn("수신자가 없습니다 - EventId: {}", event.getEventId()); + notification.updateStatus(Notification.NotificationStatus.FAILED); + notificationRepository.save(notification); + return; + } + + // 5. 각 수신자에게 알림 발송 + int successCount = 0; + int failureCount = 0; + + for (NotificationRequestEvent.RecipientInfo recipient : recipientList) { + try { + // 5-1. 사용자 알림 설정 조회 + String userId = recipient.getUserId(); + Optional preferences = Optional.empty(); + + if (userId != null && !userId.isBlank()) { + preferences = settingRepository.findByUserId(userId); + + // 5-2. 알림 설정 확인 (userId가 있는 경우만) + if (!canSendNotification(userId, notificationType)) { + log.info("알림 설정에 의해 발송 제외 - UserId: {}", userId); + continue; + } + } + + // 5-3. 수신자 엔티티 생성 + NotificationRecipient recipientEntity = NotificationRecipient.builder() + .recipientUserId(userId) + .recipientName(recipient.getName()) + .recipientEmail(recipient.getEmail()) + .status(NotificationRecipient.RecipientStatus.PENDING) + .build(); + + notification.addRecipient(recipientEntity); + + // 5-4. 템플릿 렌더링 (템플릿 ID가 있는 경우) + String htmlContent; + if (event.getTemplateId() != null && event.getTemplateData() != null) { + htmlContent = emailNotifier.loadAndRenderTemplate( + event.getTemplateId(), + event.getTemplateData() + ); + } else { + // 기본 메시지 사용 + htmlContent = createDefaultHtmlContent(event.getTitle(), event.getMessage()); + } + + // 5-5. 채널 라우팅 및 발송 + boolean sent = notificationRouter.routeNotification( + eventId, + recipient.getEmail(), + recipient.getName(), + event.getTitle(), + htmlContent, + preferences.orElse(null), + channel + ); + + // 5-6. 발송 결과 처리 + if (sent) { + recipientEntity.markAsSent(); + notification.incrementSentCount(); + successCount++; + log.info("알림 발송 성공 - Email: {}", recipient.getEmail()); + } else { + recipientEntity.markAsFailed("발송 실패"); + notification.incrementFailedCount(); + failureCount++; + log.error("알림 발송 실패 - Email: {}", recipient.getEmail()); + } + + } catch (Exception e) { + // 5-7. 예외 처리 + NotificationRecipient recipientEntity = notification.getRecipients().stream() + .filter(r -> recipient.getEmail().equals(r.getRecipientEmail())) + .findFirst() + .orElse(null); + + if (recipientEntity != null) { + recipientEntity.markAsFailed(e.getMessage()); + notification.incrementFailedCount(); + } + + failureCount++; + log.error("알림 발송 중 오류 발생 - Email: {}", recipient.getEmail(), e); + } + } + + // 5. 알림 상태 업데이트 + if (successCount > 0 && failureCount == 0) { + notification.updateStatus(Notification.NotificationStatus.SENT); + } else if (successCount > 0 && failureCount > 0) { + notification.updateStatus(Notification.NotificationStatus.PARTIAL); + } else { + notification.updateStatus(Notification.NotificationStatus.FAILED); + } + + notificationRepository.save(notification); + + log.info("알림 발송 처리 완료 - 성공: {}, 실패: {}", successCount, failureCount); + } + + /** + * 알림 유형 문자열을 Enum으로 변환 + * + * @param typeString 알림 유형 문자열 + * @return 알림 유형 Enum + */ + private Notification.NotificationType parseNotificationType(String typeString) { + try { + return Notification.NotificationType.valueOf(typeString); + } catch (Exception e) { + log.warn("알 수 없는 알림 유형: {} - MEETING_INVITATION으로 기본 설정", typeString); + return Notification.NotificationType.MEETING_INVITATION; + } + } + + /** + * 참조 유형 문자열을 Enum으로 변환 + * + * @param typeString 참조 유형 문자열 + * @return 참조 유형 Enum + */ + private Notification.ReferenceType parseReferenceType(String typeString) { + try { + return Notification.ReferenceType.valueOf(typeString); + } catch (Exception e) { + log.warn("알 수 없는 참조 유형: {} - MEETING으로 기본 설정", typeString); + return Notification.ReferenceType.MEETING; + } + } + + /** + * 채널 문자열을 Enum으로 변환 + * + * @param channelString 채널 문자열 + * @return 채널 Enum + */ + private Notification.NotificationChannel parseChannel(String channelString) { + try { + return Notification.NotificationChannel.valueOf(channelString); + } catch (Exception e) { + log.warn("알 수 없는 채널: {} - EMAIL로 기본 설정", channelString); + return Notification.NotificationChannel.EMAIL; + } + } + + /** + * 기본 HTML 콘텐츠 생성 + * + * @param title 제목 + * @param message 메시지 + * @return HTML 본문 + */ + private String createDefaultHtmlContent(String title, String message) { + return String.format(""" + + + + + %s + + +

    %s

    +

    %s

    + + + """, title, title, message); + } + /** * 알림 발송 가능 여부 확인 * @@ -265,7 +516,7 @@ public class NotificationService { // 설정이 없으면 기본값으로 발송 허용 (이메일, 초대/할당 알림만) if (settingOpt.isEmpty()) { - return notificationType == Notification.NotificationType.INVITATION + return notificationType == Notification.NotificationType.MEETING_INVITATION || notificationType == Notification.NotificationType.TODO_ASSIGNED; } diff --git a/notification/src/main/resources/application.yml b/notification/src/main/resources/application.yml index 1ac7ed7..3dd5ec9 100644 --- a/notification/src/main/resources/application.yml +++ b/notification/src/main/resources/application.yml @@ -24,7 +24,7 @@ spring: format_sql: true use_sql_comments: true hibernate: - ddl-auto: ${JPA_DDL_AUTO:update} + ddl-auto: ${JPA_DDL_AUTO:none} # Redis Configuration data: @@ -83,6 +83,7 @@ cors: # Azure Event Hubs Configuration azure: eventhub: + enabled: ${AZURE_EVENTHUB_ENABLED:false} connection-string: ${EVENTHUB_CONNECTION_STRING:} name: ${EVENTHUB_NAME:notification-events} consumer-group: ${AZURE_EVENTHUB_CONSUMER_GROUP:$Default} @@ -90,7 +91,7 @@ azure: # Azure Blob Storage Configuration (for Event Hub Checkpoint) storage: connection-string: ${AZURE_STORAGE_CONNECTION_STRING:} - container-name: ${AZURE_STORAGE_CONTAINER_NAME:eventhub-checkpoints} + container-name: ${AZURE_STORAGE_CONTAINER_NAME:hgzero-checkpoints} # Notification Configuration notification: