【问题标题】:spring session with jdbc simultaneously update session tablesspring session 与 jdbc 同时更新会话表
【发布时间】:2016-06-23 09:50:01
【问题描述】:

connection(id :358250360) 在 14:11:55,420 获得并在 14:11:55,471 发布,涵盖 51 毫秒,在这 51 毫秒的春季会议期间进行了 7 次更新操作。这仅由访问 URL 引起。如果大量用户同时在线,则池中的连接可能会供不应求。我想知道这是与 jdbc 的春季会话的事实还是我错过了一些配置。

14:11:55,420 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,420 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [358250360, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,420 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [358250360, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,420 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,420 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION SET LAST_ACCESS_TIME = ?, MAX_INACTIVE_INTERVAL = ?, PRINCIPAL_NAME = ? WHERE SESSION_ID = ?]
14:11:55,417 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [592735956, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,421 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,417 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,422 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,422 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [384136626, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,422 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [384136626, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,422 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL query
14:11:55,422 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement
14:11:55,423 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [744825705, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,425 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [744825705, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,425 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,425 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [744825705, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,425 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [744825705, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,425 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,427 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,428 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,428 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [832455532, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,428 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,428 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [832455532, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,428 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL query
14:11:55,428 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement
14:11:55,428 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [1153338657, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,431 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [1153338657, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,431 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Returning BLOB as bytes
14:11:55,431 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Returning BLOB as bytes
14:11:55,431 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,431 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,431 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION_ATTRIBUTES SET ATTRIBUTE_BYTES = ? WHERE SESSION_ID = ? AND ATTRIBUTE_NAME = ?]
14:11:55,431 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,433 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,433 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [832455532, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,433 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,433 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [384136626, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,433 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Set bytes for BLOB with length 979
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [1724464517, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [1724464517, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [1724464517, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [1724464517, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,434 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,435 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [832455532, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,435 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [1825775842, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [1825775842, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,437 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL query
14:11:55,437 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement
14:11:55,437 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [384136626, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,437 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [1843345656, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,438 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,438 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [970762077, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,438 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [970762077, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,441 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,441 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION SET LAST_ACCESS_TIME = ?, MAX_INACTIVE_INTERVAL = ?, PRINCIPAL_NAME = ? WHERE SESSION_ID = ?]
14:11:55,441 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Returning BLOB as bytes
14:11:55,442 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [1843345656, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,442 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,443 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,443 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [1825775842, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,443 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,443 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [933084215, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,444 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [933084215, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,444 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,444 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [933084215, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,444 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [933084215, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,444 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,442 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,445 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,445 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION_ATTRIBUTES SET ATTRIBUTE_BYTES = ? WHERE SESSION_ID = ? AND ATTRIBUTE_NAME = ?]
14:11:55,446 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Set bytes for BLOB with length 979
14:11:55,447 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [1825775842, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,447 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,448 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,448 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,448 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [1674506398, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,449 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,449 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [1283280084, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,450 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,449 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,450 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [194367212, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,450 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [1283280084, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,450 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [194367212, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,450 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,450 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [1367061108, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,450 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION SET LAST_ACCESS_TIME = ?, MAX_INACTIVE_INTERVAL = ?, PRINCIPAL_NAME = ? WHERE SESSION_ID = ?]
14:11:55,450 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL query
14:11:55,450 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement
14:11:55,450 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [1367061108, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,451 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,451 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION SET LAST_ACCESS_TIME = ?, MAX_INACTIVE_INTERVAL = ?, PRINCIPAL_NAME = ? WHERE SESSION_ID = ?]
14:11:55,453 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [1674506398, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,453 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,454 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,454 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL update
14:11:55,454 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement [UPDATE SPRING_SESSION_ATTRIBUTES SET ATTRIBUTE_BYTES = ? WHERE SESSION_ID = ? AND ATTRIBUTE_NAME = ?]
14:11:55,454 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Returning BLOB as bytes
14:11:55,455 DEBUG: org.springframework.jdbc.support.lob.DefaultLobHandler - Set bytes for BLOB with length 979
14:11:55,455 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,456 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [1356824368, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,456 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [1356824368, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,456 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,460 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [1356824368, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,461 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [1356824368, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,461 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
14:11:55,455 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,465 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [194367212, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,465 DEBUG: org.springframework.jdbc.core.JdbcTemplate - SQL update affected 1 rows
14:11:55,465 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
14:11:55,465 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [358250360, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver]
14:11:55,468 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Creating new transaction with name [null]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT
14:11:55,468 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Acquired Connection [738764354, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] for JDBC transaction
14:11:55,468 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Switching JDBC Connection [738764354, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] to manual commit
14:11:55,468 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL query
14:11:55,468 DEBUG: org.springframework.jdbc.core.JdbcTemplate - Executing prepared SQL statement
14:11:55,471 DEBUG: org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [358250360, URL=jdbc:postgresql://10.24.11.231:5432/a, UserName=postgres, PostgreSQL Native Driver] after transaction
14:11:55,471 DEBUG: org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource

【问题讨论】:

    标签: spring-jdbc spring-session


    【解决方案1】:

    这是一个完全正常的场景。

    在 Spring Session JDBC 支持的实现过程中,已经做出了很多努力来使与底层数据库的交互尽可能高效,但是如果您的应用程序将以高度并发的方式与许多用户一起使用,我建议您考虑使用性能更高的技术(例如 Redis 或 Hazelcast)来支持您的 SessionRepository

    【讨论】:

    • JdbcOperationsSessionRepository 似乎只识别明确的setAttribute(K, V),所以save updatedCount 是有效的。我使用地图作为从getAttribute(K) 返回的V,并在没有setAttribute 的情况下对其进行了更改。但是,该存储库类不会持久保存它。这与普通 HttpSession 的行为相冲突(我可以在下次退出会话时更新它)。
    • Spring Session SessionRepository 实现将会话保存到外部数据存储,因此从存储库返回的会话实例自然实际上是修改时必须保存的副本。 Servlet 容器的默认会话管理器通常在内存中,例如 Tomcat,这意味着您一直在处理同一个会话对象,因此您可以摆脱所描述的方法。这与HttpSession 没有冲突,因为这种行为,AFAIK,在 API 的任何地方都没有记录。使用 Tomcat 的持久会话管理器也会遇到同样的情况。
    • updatedCount in JdbcOperationSessionRepository 实际上应该将“更新”值视为更新值,现在它显然是在先决条件下执行的。
    猜你喜欢
    • 2017-08-14
    • 1970-01-01
    • 2016-03-03
    • 2015-06-13
    • 2016-03-21
    • 2018-03-14
    • 2015-04-11
    • 2015-12-23
    • 2011-02-17
    相关资源
    最近更新 更多