数据库session有什么作用

数据库session有什么作用,第1张

session 不是数据库关键字 是脚本语言中的关键字 比如ASP中 Session 允许通过将对象存储在 Web服务器的内存中在整个用户会话过程中保持任何对象。比如你在一个网页中输入了用户名和密码,而你需要到另外一个网页指定该用户ID,就用SESSION来完成

服务器Oracle数据库出现问题,用不到半天,就会报maxsession(150)的问题,肯定是数据库的会话超过最大数了。

由于服务器跑的是文件传输应用,占用的请求和会话肯定很大,因此用户数不大就已经让oracle的会话数达到最大值。

处理方式不外乎两种:扩大oracle最大session数以及清除inactive会话,当然还有,就是从数据库连接池和程序bug上面下手。

从各处收集了一些查看当前会话的语句,记录一下:

1select count() from v$session;

Sql代码

select count() from v$process;

查看当前总会话数和进程数,这两个视图就是跟会话及进程有关的重要视图啦,信息都是从这里面取的。

2查询那些应用的连接数此时是多少

Sql代码

select bMACHINE, bPROGRAM , count() from v$process a, v$session b where aADDR = bPADDR and bUSERNAME is not null group by bMACHINE , bPROGRAM order by count() desc;

3查询是否有死锁

select from v$locked_object;

如果查询结果为no rows selected,说明数据库中没有死锁。否则说明数据库中存在死锁。

接下来说明一下会话的状态

1active 处于此状态的会话,表示正在执行,处于活动状态。

2killed 处于此状态的会话,表示出现了错误,正在回滚,当然,也是占用系统资源的。还有一点就是,killed的状态一般会持续较长时间,而且用windows下的工具pl/sql developer来kill掉,是不管用的,要用命令:alter system kill session 'sid,serial#' ;

3inactive 处于此状态的会话表示不是正在执行的,比如select语句已经完成。我一开始以为,只要是inactive状态的会话,就是该杀,为什么不释放呢。其实,inactive对数据库本身没有什么影响,但是如果程序没有及时commit,那么就会造成占用过多会话。解决inactive的方法最好的就是在oracle中直接设置超时时间,也是有两种方法,区别暂时还不清楚:

1修改sqlnetora文件,新增expire_time=x(单位是分钟)

我的sqlnetora位置在D:\oracle\ora92\network\admin

2通过ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 命令修改,记得重启下oracle。

楼主的问题确实很奇怪,我和他一起研究了很久,只要 OleDbConnection 一 Open,Session 值就丢失,连完全无关的其它类的静态成员的值都会丢失。

如果把有关数据库的代码注释掉,就一切正常了。

USER为关键字,不能使用

如果A里提交页,B是写入数据库,那么你在A里提交的表单(USER)传到B里的值就应该为你的USER的值,比如说“tom”,在B这边可以使用session("USER")=request("User")的方式赋给Session,这样的话,你在打开一个数据库表后,就可以把这个值赋给他或是使用UPDATE语句加进去。

如果说无法插入,那么,你改一下:

打开我的电脑,选择“工具”---》“文件夹选项”---》“查看”---》“使用简单共享”这个勾去了,点确定

选择你的虚拟文件夹:如放在A目录下,就对A目录下点右键选择“属性”---》“安全”---》“添加”按钮---》“高级按钮”---》“立即查找”按钮---》选中“Everyone”用户,点确定。然后在Everyone权限里把读写权限都加上即可

1、也许是程序有链接泄漏, 先排查或确认一下。连接池改大一点就可以了,一般说来连接不会太多。如果经常用光的话需要考虑一下,是不是连接使用有问题。

2、所有的连接池都支持最大连接数的设置,可以增加那个配置。

3、确认数据库设置支持那个最大连接数,比如mysql, 默认的最大链接只有50个。

以上就是关于数据库session有什么作用全部的内容,包括:数据库session有什么作用、高手求助ORACLE 中Inactive状态的session连接数很多问题如何解决、为什么我用c#做的Session一连接数据库Session中保存的数据就不存在了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9292788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存