什么是session
通俗来讲,session 是通信双方从开始通信到通信结束期间的一个上下文(context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户在登录等信息[在pl/sql developer中,通过Tools-->Sessions可以查看当前数据库的session]。session 是和connection同时建立的,两者是对同一件事情不同层次的描述。简单讲,connection是物理上的客户机同服务器段的通信链路,session是逻辑上的用户同服务器的通信交互。
oracle中一个用户登录oracle服务器的前提,就是该用户具有oracle的 “create session”权限。oracle允许同一个用户在同一个客户机上建立多个同服务器的连接,这一点从oracle的视图V$session中可以看到[select * from v$session;]。每个session都代表了用户与服务器的一个交互。就像两个国家之间可以同时开展很多谈判,经济的,环境的等等。关闭了有关经济的谈判,不会影响到环境谈判的进行。后台进程PMON会每隔一段时间,就会测试用户连接状况,如果连接已断开,PMON会清理现场,释放相关的资源。
在具体的应用场景中connction 和 session 有很多情况:
1. sqlplus 登录 oracle
这种场景比较容易理解,一个连接对应一个session。
2. 其他客户端工具登录oracle
比如:pl/sql developer 登录oracle。pl/sql developer 可以设置是否每个窗口共用同一个session. 如果想在调试窗口调试存储过程或函数,则必须设置为共享session。如果设置为非共享, 则每次打开一个操作窗口,pl/sql developer 会利用最初输入的帐户和口令建立新的connection 和 session.
3. IIS 用程序登录oracle
这种情况下,其实是IIS在登录oracle。connection 和 session 的建立情况和iis机制相关。(以下是参考了网友的观点,文章来源:http://www.cnblogs.com/)
“对于Oracle来说,安全的Sessions数应该为Sessions = (IIS process number) * (min pool size)。”
IIS进程:在IIS6.0中,采用了新的进程隔离模式来响应用户的请求,在IIS管理器中,可以设置应用程序池的最大进程数。对于新的WEB应用请求,IIS进程管理器会启动多个W3wp.exe进行响应。
4、 其他情况 有待各路英雄补充
orcale的session内存
oracle 的连接分为两种:独占式,共享式。
在独占式连接情况下,session(如游标,排序去,sql区)是在PGA中分配的。
在共享式连接情况下,session的一部分(如UGA)是在中SGA的larg pool中分配的。
oracle session 和process
oracle中每个process 都有对应的session。
process 分为
用户进程在V$session 中可用条件:$session.type = ‘USER’.查询。
后台进程在V$session 中可用条件:$session.type = ‘BACKGROUND’查询。
常见的后台进程:
SMON,PMON,DBWR,LGWR,MMAN,MRP, RFS,RECO,CKPT,ARCH,Dnnn,Snnn,LMON,LMD0,QMNn,TRWR,WMON,LCKnnn,SNPnnn, MMON,DMON,SNP
session 相关的初始化参数:
process:oracle的连接数(sessions)与其参数文件中的进程数(process)相关,它们的关系如下:sessions=(1.1*process+5),我们可以通过修改inia.ora的这个process参数在更改可连接的最大session数。
workarea_size_policy:PGA用手动管理还是自动管, 在AUTO的时候每个session最多能用到5%或100M.
以上内容 来自itpub论坛
其他参考:http://www.cnblogs.com/yanrongpi/archive/2007/12/19/1006447.html
管理Oracle Session是后台DBMS采用Oracle的信息管理系统的一个重要工作。如果管理不当,会对系统的性能和运行的稳定性产生非常大的影响。Oracle Session是非常宝贵的资源,其数量通常都是有一个固定的设定值,对于Oracle 10g Enterprise Edition来说,如果不修改初始化参数,那么默认最大的Session数为170个,在后期系统管理员可以根据实际的需要来修改这个数值。因此系统必须非常小心的管理这些Session。本文主要就多层分布式系统中Oracle Session的管理提供解决方案。下图是本文所述的多层分布式管理系统的模型图,层与层之间的调用关系如图所示。
相关推荐
ASP.NET中的会话(Session)是Web开发中一个重要的概念,它允许开发者在用户的不同页面请求之间保持数据。本文将详细讲解ASP.NET中会话的应用,帮助你理解其工作机制。 一、什么是会话(Session)? 在Web应用程序...
session.js, Session.js 获取用户会话信息 Session.js提供有关当前会话的信息。要使用:包括文件 session.js, 然后访问访问者对象。 它使用google加载器获取位置数据。 对于异步加载,请使用 window.session_loaded ...
在Tomcat中,我们可以使用第三方库如`memcached-session-manager`来实现会话到Memcached的迁移。在Tomcat的`lib`目录下添加该库的jar包,比如`tomee-memcached-session-manager-x.x.x.jar`,并配置`context.xml`: ...
- 在用户登出时,应该销毁Session(使用session_destroy()函数),以清除服务器端的会话数据。 - 设置合理的Session生命周期,对于敏感操作,应考虑缩短Session有效期,并在关键操作后重置Session。 - 如果使用SSL...
当用户访问网站时,服务器为该用户创建一个唯一的会话ID(session_id),并将其存储在服务器的内存中。这个ID通过COOKIE发送给用户的浏览器,之后浏览器在每次请求时都会带上这个ID,使得服务器能够识别并跟踪特定...
在分布式系统或微服务架构中,会话管理成为一个关键问题,因为默认情况下,Shiro的session管理是基于单个服务器的,无法在多台服务器之间共享用户会话信息。 在传统的Web应用中,session信息通常存储在服务器的内存...
Session 会话管理 Session 会话管理是指在 Web 应用程序中管理用户会话的机制。Session 是一种服务器端的存储机制,用于存储用户的会话信息。Session 管理包括 Session 的创建、读取、更新和删除等操作。 Session ...
Session,中文常译为“会话”,在Web开发领域中扮演着至关重要的角色,尤其是在维护客户端与服务器之间的交互状态方面。Session的概念源远流长,但其核心在于“保持状态”,即确保在一系列操作或消息传递过程中,...
Spring Session 是一个开源项目,由 Pivotal 团队维护,它旨在提供一种在分布式环境中管理用户会话的解决方案。Spring Session 的核心理念是将传统的 HTTP Session 数据存储和管理从应用服务器迁移到更灵活、可扩展...
NULL 博文链接:https://8366.iteye.com/blog/615278
本篇文章将深入探讨如何使用HTTPClient来实现session会话的保持,并在模拟登录后执行后续的操作。 首先,了解HTTP协议的基础知识是非常重要的。HTTP协议是无状态的,这意味着每次请求之间没有任何关联。为了保持...
Session是服务器端会话管理的一种方式,当用户登录网站或进行其他需要保持状态的操作时,服务器会在内存中创建一个与用户相关的Session对象,将用户信息存储在这个对象中,并返回一个唯一的Session ID给客户端(通常...
ISO 14229-2标准的全名是《道路车辆—统一诊断服务(UDS)—第2部分:会话层服务》。这是一系列国际标准中的一部分,专注于为汽车行业的电子控制单元(ECU)诊断提供统一的方法和协议。UDS标准定义了汽车制造商、...
"Tomcat+Redis集群实现session会话共享"这一主题,正是关注如何在使用Tomcat作为应用服务器的环境中,通过集成Redis缓存系统来构建一个高效的、高可用的会话共享解决方案。 首先,我们来理解一下`session`。在Web...
本书详细阐述了php中的session会话固定漏洞可能引发的安全问题,叙述了php代码审计的一些tips。
在Tensorflow中,图(tf.Graph)和会话(tf.Session)是两个核心概念,它们构成了Tensorflow程序的基础架构。 **图(tf.Graph)** 计算图是Tensorflow中用于描述计算流程的数据结构,它是一个有向图,由节点(Nodes...
本篇文章将深入探讨基于Session ID和Session ticket的会话恢复机制,并通过Wireshark抓包工具进行示例分析。 首先,我们要理解Session ID的概念。在Web应用中,当用户成功登录后,服务器通常会生成一个唯一的...
会话(session)是在用户与服务器交互的过程中,一系列连续的请求和响应形成的连接。例如,当用户浏览一个电子商务网站并添加商品到购物车时,服务器需要识别这个用户,以便在后续请求中知道应该将哪些商品关联到...
当用户成功登录后,系统通常会创建一个会话(Session)来跟踪用户的状态,直到用户主动退出或者会话超时。本教程将深入探讨"登录超时完整实例",包括如何进行`session超时设置`以及在`JSP页面`中处理会话超时的问题...
本文将深入探讨Cookie和Session两种主要的会话管理方式,并结合一个名为"ShoppingCar"的示例来阐述它们在实际应用中的工作原理。 **一、Cookie** Cookie是由服务器发送到客户端(浏览器)的一小段信息,然后由...