rxue / full-stack-kata

Full stask code kata
Apache License 2.0
0 stars 0 forks source link

backend/Java/EE/Jakarta/10/helloworld/: LEARNING: add a new servlet and single CDI bean to prove @Transactional make operations interleaved among different transactions #22

Open rxue opened 5 months ago

rxue commented 5 months ago

LEARNING summary

With this code change after the application restarted, send 100 request in parellal with command seq 100 | xargs -n1 -P100 curl http://localhost:8080/helloworld/countwithentitymanager

jakartaee-helloworld    | 12:35:08,117 INFO  [stdout] (default task-88) Thread 265 before execute transaction
jakartaee-helloworld    | 12:35:08,118 INFO  [stdout] (default task-83) Thread 260 before execute transaction
jakartaee-helloworld    | 12:35:08,119 INFO  [stdout] (default task-76) Thread 252 before execute transaction
jakartaee-helloworld    | 12:35:08,119 INFO  [stdout] (default task-80) Thread 257 before execute transaction
jakartaee-helloworld    | 12:35:08,121 INFO  [stdout] (default task-77) Thread 254 before execute transaction
jakartaee-helloworld    | 12:35:08,122 INFO  [stdout] (default task-91) Thread 268 before execute transaction
jakartaee-helloworld    | 12:35:08,123 INFO  [stdout] (default task-89) Thread 266 before execute transaction
jakartaee-helloworld    | 12:35:08,126 INFO  [stdout] (default task-81) Thread 258 before execute transaction
jakartaee-helloworld    | 12:35:08,127 INFO  [stdout] (default task-92) Thread 269 before execute transaction
jakartaee-helloworld    | 12:35:08,130 INFO  [stdout] (default task-93) Thread 270 before execute transaction
jakartaee-helloworld    | 12:35:08,131 INFO  [stdout] (default task-94) Thread 271 before execute transaction
jakartaee-helloworld    | 12:35:08,131 INFO  [stdout] (default task-95) Thread 272 before execute transaction
jakartaee-helloworld    | 12:35:08,142 INFO  [stdout] (default task-97) Thread 274 before execute transaction
jakartaee-helloworld    | 12:35:08,142 INFO  [stdout] (default task-99) Thread 276 before execute transaction
jakartaee-helloworld    | 12:35:08,144 INFO  [stdout] (default task-98) Thread 275 before execute transaction
jakartaee-helloworld    | 12:35:08,147 INFO  [stdout] (default task-96) Thread 273 before execute transaction
jakartaee-helloworld    | 12:35:08,148 INFO  [stdout] (default task-100) Thread 277 before execute transaction
jakartaee-helloworld    | 12:35:08,941 INFO  [stdout] (default task-87) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,942 INFO  [stdout] (default task-57) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,942 INFO  [stdout] (default task-90) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,942 INFO  [stdout] (default task-49) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,942 INFO  [stdout] (default task-1) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,943 INFO  [stdout] (default task-94) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,943 INFO  [stdout] (default task-35) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,943 INFO  [stdout] (default task-44) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,944 INFO  [stdout] (default task-74) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,944 INFO  [stdout] (default task-68) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,944 INFO  [stdout] (default task-36) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,945 INFO  [stdout] (default task-65) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,945 INFO  [stdout] (default task-3) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,945 INFO  [stdout] (default task-20) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,945 INFO  [stdout] (default task-70) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,946 INFO  [stdout] (default task-89) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,946 INFO  [stdout] (default task-17) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,946 INFO  [stdout] (default task-10) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,947 INFO  [stdout] (default task-76) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,948 INFO  [stdout] (default task-48) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,948 INFO  [stdout] (default task-96) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,950 INFO  [stdout] (default task-34) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,950 INFO  [stdout] (default task-39) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,951 INFO  [stdout] (default task-6) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,953 INFO  [stdout] (default task-95) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,954 INFO  [stdout] (default task-23) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,954 INFO  [stdout] (default task-7) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,955 INFO  [stdout] (default task-75) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,955 INFO  [stdout] (default task-14) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,956 INFO  [stdout] (default task-71) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,956 INFO  [stdout] (default task-92) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,957 INFO  [stdout] (default task-42) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,957 INFO  [stdout] (default task-67) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,957 INFO  [stdout] (default task-11) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,958 INFO  [stdout] (default task-59) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,958 INFO  [stdout] (default task-100) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,959 INFO  [stdout] (default task-82) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,959 INFO  [stdout] (default task-45) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,960 INFO  [stdout] (default task-84) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,960 INFO  [stdout] (default task-30) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,961 INFO  [stdout] (default task-37) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,961 INFO  [stdout] (default task-15) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,961 INFO  [stdout] (default task-21) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,964 INFO  [stdout] (default task-78) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,964 INFO  [stdout] (default task-24) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,965 INFO  [stdout] (default task-12) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,965 INFO  [stdout] (default task-86) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,965 INFO  [stdout] (default task-32) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,966 INFO  [stdout] (default task-25) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,968 INFO  [stdout] (default task-91) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,968 INFO  [stdout] (default task-43) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,973 INFO  [stdout] (default task-4) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,973 INFO  [stdout] (default task-29) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,974 INFO  [stdout] (default task-81) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,974 INFO  [stdout] (default task-73) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,975 INFO  [stdout] (default task-77) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,976 INFO  [stdout] (default task-38) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,976 INFO  [stdout] (default task-58) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,977 INFO  [stdout] (default task-66) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,977 INFO  [stdout] (default task-31) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,978 INFO  [stdout] (default task-72) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,978 INFO  [stdout] (default task-8) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,979 INFO  [stdout] (default task-22) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,979 INFO  [stdout] (default task-99) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,979 INFO  [stdout] (default task-41) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,980 INFO  [stdout] (default task-69) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,980 INFO  [stdout] (default task-56) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,980 INFO  [stdout] (default task-88) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,981 INFO  [stdout] (default task-61) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,981 INFO  [stdout] (default task-13) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,981 INFO  [stdout] (default task-98) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,982 INFO  [stdout] (default task-52) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,982 INFO  [stdout] (default task-64) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,982 INFO  [stdout] (default task-60) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,983 INFO  [stdout] (default task-53) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,984 INFO  [stdout] (default task-26) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,984 INFO  [stdout] (default task-28) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,985 INFO  [stdout] (default task-85) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,985 INFO  [stdout] (default task-19) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,986 INFO  [stdout] (default task-16) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,986 INFO  [stdout] (default task-79) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,987 INFO  [stdout] (default task-63) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,987 INFO  [stdout] (default task-9) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,988 INFO  [stdout] (default task-83) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,988 INFO  [stdout] (default task-2) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,989 INFO  [stdout] (default task-62) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,989 INFO  [stdout] (default task-33) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,990 INFO  [stdout] (default task-51) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,990 INFO  [stdout] (default task-18) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,991 INFO  [stdout] (default task-5) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,991 INFO  [stdout] (default task-80) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,991 INFO  [stdout] (default task-46) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,992 INFO  [stdout] (default task-50) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,992 INFO  [stdout] (default task-55) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,992 INFO  [stdout] (default task-93) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,992 INFO  [stdout] (default task-40) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,993 INFO  [stdout] (default task-54) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,994 INFO  [stdout] (default task-97) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,995 INFO  [stdout] (default task-27) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,996 INFO  [stdout] (default task-47) Hibernate: update Counter set count=(count+cast(? as bigint))
jakartaee-helloworld    | 12:35:08,999 INFO  [stdout] (default task-68) Thread 245 after execute transaction
jakartaee-helloworld    | 12:35:09,009 INFO  [stdout] (default task-44) Thread 222 after execute transaction
jakartaee-helloworld    | 12:35:09,012 INFO  [stdout] (default task-17) Thread 194 after execute transaction
jakartaee-helloworld    | 12:35:09,014 INFO  [stdout] (default task-57) Thread 234 after execute transaction
jakartaee-helloworld    | 12:35:09,017 INFO  [stdout] (default task-3) Thread 180 after execute transaction
jakartaee-helloworld    | 12:35:09,018 INFO  [stdout] (default task-39) Thread 216 after execute transaction

=> operations inside a transaction annotated with @Transactional are operated in interleaved manner among all the transactions

However, after all the responses are retrieved, when check the counter retrieved from database by means of EntityManager with command curl http://localhost:8080/helloworld/checkcountwithentitymanager the counter result is 100, i.e. the counter incremented correctly