connection and session

Session 简介

Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。

  具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。

  需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

  session的工作原理

  (1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

  (2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。

  (3)当执行PHP脚本时,通过使用session_register()函数注册session变量。

  (4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。

Connection 简介:

说明:代表打开的、与数据源的连接。

Connection 对象代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象可以等价于到服务器的实际网络连接。取决于提供者所支持的功能,Connection 对象的某些集合、方法或属性有可能无效。

使用 Connection 对象的集合、方法、和属性可执行下列操作:

在打开连接前使用 ConnectionString、ConnectionTimeout 和 Mode 属性对连接进行配置。

设置 CursorLocation 属性以便调用支持批更新的“客户端游标提供者”。

使用 DefaultDatabase 属性设置连接的默认数据库。

使用 IsolationLevel 属性为在连接上打开的事务设置隔离级别。

使用 Provider 属性指定 OLE DB提供者。

使用 Open 方法建立到数据源的物理连接。使用 Close 方法将其断开。

使用 Execute 方法执行对连接的命令,并使用 CommandTimeout 属性对执行进行配置。

可使用 BeginTrans、CommitTrans 和 RollbackTrans 方法以及 Attributes 属性管理打开的连接上的事务(如果提供者支持则包括嵌套的事务)。

使用 Errors 集合检查数据源返回的错误。

通过 Version 属性读取使用中的 ADO 执行版本。

使用 OpenSchema 方法获取数据库模式信息。

注意   如果不使用 Command 对象执行查询,请向 Connection 对象的 Execute 方法传送查询字符串。但是,当需要使命令文本具有持久性并重新执行,或使用查询参数的时候,则必须使用 Command 对象。

可以创建独立于先前定义的其他任何对象的 Connection 对象。

注意   可以象执行 Connection 对象的本地方法一样执行命令或存储过程。

如果要执行命令,可以使用 Command 对象的 Name 属性给命令指定一个名称。将 Command 对象的 ActiveConnection 属性设置为该连接。然后,象发出 Connection 对象的方法一样发出使用命令名称的语句,后面可带任何参数(如果有返回行,则后面带 Recordset 对象)。设置 Recordset 属性以便自定义所产生的记录集。例如:

Dim cnn As New ADODB.Connection

Dim cmd As New ADODB.Command

Dim rst As New ADODB.Recordset

...

cnn.Open "..."

cmd.Name = "yourCommandName"

cmd.ActiveConnection = cnn

...

'命令名称、任意参数、以及可选记录集。

cnn.yourCommandName "parameter",rst

要执行存储过程,可以如同发出 Connection 对象的方法一样发出使用存储过程名称的语句,后面可带任何参数。ADO 将对参数类型进行“最佳判断”。例如:

Dim cnn As New ADODB.Connection

...

'存储过程名称及任意参数。

cnn.sp_yourStoredProcedureName"parameter"

Connection and Session

Connection与Session的区别,Connection就是指的一个TCP连接,在大多数的情况下,Connection是负载均衡处理的最小单位。而Session是以会话保持的最小单位为基础的,通常一个Session可以包含多个Connection。比如我们使用源地址会话保持,则一个IP地址发出的所有连接在BIGIP上都认为是一个Session。如果源地址会话保持记录过期了,则这个Session被删除掉了。如果采用Cookie会话保持,则一个浏览器进程发出的所有连接被认为是一个Session。在BIGIP的poolmember维护的时候,有Connection disable和SessionDisable,理解清楚Connection 和Session的概念非常重要。

session和connection的关系的理解:
1. 一个用户对应一个session,但不一定对应一个connection (几个session可能共享一个connection,如 4. 所述)

2. 在dedicated模式下,session和connection一一对应,且个数上session = connection。

3. 在sharedserver的普通模式下, 个数上session >= connection(通过ConnectionPooling来实现),但就active的用户来说, 两者还是一一对应的。

4. 在sharedserver的multiplexing session模式下,session >= connection,且并不一一对应。

另外,关于session和connection本身是什么?
1. connection是指用户到数据库建立起来的(物理)连接
2. session是指这个物理连接上的传递的数据,或者说session是一个逻辑上的连接

conn连接包含了四层信息。当一个TCP的SYN 或者UDP的第一个包来时就建立, 当ACK或者UDP超时时结束。

session是会话,在这段会话时间中可以包含几个conn,但都是同一个会话,session一直保持。除了四层信息,也许包含了上到七层的信息处理过程。

通常所说最大连接数量就是系统能够保持的最大并发会话数量,都是厂商标称。

设备中就是sh conn , sh local-host等. 到达顶峰时cpu和mem会显著上升。

Connection与Session的形象理解:

1.连接(connection)是一个物理的概念,它指的是一个通过网络建立的客户端和专有服务器(DedicatedServer)或调度器(Shared Server)的一个网络连接。
2.会话(session)是一个逻辑的概念,它是存在于实例中。
一个连接可以拥有多个会话也可以没有会话,同一个连接上的不同会话之间不会相互影响。

两个会话之间的影响,体现在锁和锁存,即对相同资源的操作(对象定义或数据块)或请求(CPU/内存),它们的处理一般是按队列来处理的,前面的没有处理好,后面的就要等待。

如果以打电话来比喻:
connect就好比你接通对方,这时,connect就建立了,有没有通话,不管。
双方进行通话,则session建立了,如果换人,则新的session建立,原session结束,类似的,可以在同一个connect上进行多个会话。
最后,挂机,connect结束。

connection and session相关推荐

  1. Nhibernate中session的状态与session.connection.state状态的差别的解释

    在项目中用到了nhibernate,但是需要判断数据连接的状态,在NHIbernate的文档中找了半天,英文的中文的都看了一遍,都没找到相关的说明 .后来在Hibernate的论坛上才找到了一些说明. ...

  2. open session and Hibernate事务处理机制

    相关文章: Hibernate入门 - Transaction 使用OpenSessionInView模式时的一个异常问题解决方法 推荐圈子: 青岛javaeye 更多相关推荐 在没有使用Spring ...

  3. oracle会话资源,oracle session 会话

    管理Oracle Session是后台DBMS采用Oracle的信息管理系统的一个重要工作.如果管理不当,会对系统的性能和运行的稳定性产生非常大的影响.Oracle Session是非常宝贵的资源,其 ...

  4. session 中对象实例在不同事务中的状态

    不同事务中执行hibernate query,则查询出来的对象会在不同session中,或一个在托管态,一个在session中管理,所以是不同实例. 如果在同一事务中的话,则多次query出来的对象实 ...

  5. w3wp ash oracle,Oracle session简介

    什么是session 通俗来讲,session 是通信双方从开始通信到通信结束期间的一个上下文(context).这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器.通过哪个应用程序.哪个 ...

  6. Session.AUTO_ACKNOWLEDGE

    使用自动确认模式,必须要创建无事务session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE) ...

  7. Session.CLIENT_ACKNOWLEDGE

    使用客户端确认模式,必须要创建无事务session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE ...

  8. ch.ethz.ssh2.Session和com.jcraft.jsch.Session

    通过Jsch连接 step 1引入jar包 <!-- jcraft包 -->         <dependency>             <groupId>c ...

  9. openfire linux 启动,Openfire的启动过程与session管理

    说明 本文源码基于Openfire4.0.2. Openfire的启动 Openfire的启动过程非常的简单,通过一个入口初始化lib目录下的openfire.jar包,并启动一个XMPPServer ...

最新文章

  1. Java打造一款SSH客户端,而且已开源
  2. 语言舒尔特方格程序_注意力训练神器——舒尔特方格(成人、孩子均适用)
  3. C#之 VS2008 之 Extension Methods
  4. 容器删除元素后迭代器失效_STL 4: STL之容器:选择时机,删除元素,迭代器失效...
  5. 熟悉Java String的使用,熟悉String的各种函数,Java中各种变量类型
  6. C# xml文件的创建,修改和添加节点 。
  7. Nginx凭啥子并发数可以达到3w!
  8. 给正在备战秋招的同学一些小建议
  9. pthread条件变量函数的使用
  10. 在普通java类里获取Spring管理的bean
  11. 多语言界面 Web 站点的几个 Tip
  12. 哈佛MIT联手出品 | 造价低于1美元的机械臂,可承自身重量千倍
  13. 【原创】Mysql客户端如何处理中文
  14. 8数码的各种版本-搜索
  15. (5)二进制文件方式部署Kubernetes高可用集群----------创建kubeconfig文件Token.csv随机数文件
  16. 四川华为EC6108V9C悦me和CA高安版_卡刷固件包
  17. nina数据库的采样频率_急求!!!什么是时域采样定理和频域采样定理?
  18. 毕业论文word版 格式设置技巧
  19. 【Excel VBA】自动调整列宽和行高
  20. 京东商品关联版式,如何设置手机和电脑都显示?

热门文章

  1. 使用Realsense测试aruco_ros包
  2. Java语言之动画的简单入门学习
  3. 【MyBatis-Plus】之批量插入
  4. windows编译skia的注意事项
  5. 物联网典型的四层架构分析
  6. Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务
  7. 上传文件、下载文件、数据导出excel表格整理模板
  8. php问号和冒号组合,带有问号和符号的mod_rewrite(使用PHP)
  9. MATLAB求解非线性方程
  10. 微信抢号软件_一般公众号文章是用哪个微信编辑软件?新手小白适合什么编辑器?...