Skip to content

HTTP_SESSIONS HTTP Session 持久化存储表 ​

记录 HTTP Session 的会话 ID、登录用户、创建时间、最近访问时间、过期时间、IP 地址、集群节点、客户端信息等信息。该表用于会话管理、在线用户统计、登录审计和异常访问排查。

系统支持两种会话存储模式,通过 JVM 参数 -Dsucc.sessionStore 配置:

  • 默认模式(default):Session 持久化到本表,集群节点共享读写,不需要额外中间件。
  • Redis 模式(redis):Session 存储在 Redis,需要提前部署 Redis。

选择建议:生产集群有 Redis 优先用 Redis 模式,没有 Redis 用默认模式。未配置或配置未知值时使用默认模式。

会话数据、IP 地址和客户端信息属于安全审计数据,不应公开给无关人员。

位置 ​

模型路径:/sysdata/data/tables/sec/HTTP_SESSIONS.tbl

物理表名:SZSYS_5_HTTP_SESSIONS

表结构 ​

字段名字段类型字段描述
SESSION_IDVARCHAR(128)会话标识,主键。用于关联事件日志 LOG_SYS.SESSION_ID 和技术日志 session_id
USER_IDVARCHAR(64)当前登录用户 ID
IP_ADDRESSNUMBER(16)登录或最近访问时记录的 IPv4 地址
CLUSTER_NODEVARCHAR(128)会话创建时所在集群节点,关联 CLUSTERNODES
USER_AGENT_IDNUMBER(8)登录设备的 User-Agent 标识,关联 USER_AGENTS
CREATE_TIMETIMESTAMP会话创建时间
LAST_ACCESS_TIMETIMESTAMP最近访问时间
EXPIRY_TIMETIMESTAMP会话过期时间
SESSION_DATABLOB系统管理的会话数据,不用于业务查询

SESSION_ID 的含义 ​

SESSION_ID 唯一标识一条会话记录,可用于关联该会话的用户、访问时间和日志。它不能作为登录凭据使用,也不应直接用浏览器中的 Cookie 值查询本字段。

日志中的会话标识 ​

事件日志中的 LOG_SYS.SESSION_ID、技术日志中的 session_id 与本表的 SESSION_ID 对应。排查问题时,可从日志中取得会话标识,在本表查询关联用户、最近访问时间和过期时间,也可使用同一标识检索相关日志。

登录后会话标识可能变化;定位同一次调用中的日志,可使用事件日志的 TRACE_ID 和技术日志的 trace_id。

没有关联会话的日志(例如独立系统任务产生的日志)中,会话标识为空。尚未登录的会话也可能有会话标识,此时用户信息可能为空。会话记录清理后,仍可使用保留在日志中的标识检索历史日志。

表索引 ​

类型名称字段列表是否唯一说明
主键PRIMARYSESSION_ID是唯一标识一条 HTTP Session 记录
索引---该表未定义其他索引

使用注意 ​

  1. 无论哪种存储模式,系统都会向本表写入一条记录用于在线用户统计和登录审计。区别在于:默认模式会写入 SESSION_DATA 字段保存完整会话数据;Redis 模式只写入用户 ID、时间、IP 等会话信息,不写 SESSION_DATA。
  2. SESSION_ID 是会话标识,见 SESSION_ID 的含义。
  3. CREATE_TIME 在会话创建时写入,不再变更。
  4. LAST_ACCESS_TIME 每次请求结束时更新,可用于判断最近活动时间。
  5. EXPIRY_TIME 标记会话过期时间。过期会话不会立即删除,查询时通过 EXPIRY_TIME > now() 过滤,历史数据由后台任务或手动清理。
  6. SESSION_DATA 由系统维护,不应手工修改或用于业务查询。
  7. CLUSTER_NODE 记录会话创建时所在节点。集群中的后续请求可能由其他节点处理,因此该字段不代表当前服务节点。
  8. IP_ADDRESS 存储为整数格式的 IPv4 地址,方便按 IP 范围查询审计日志。
微信公众号微信公众号:山川软件