关于临时表的问题

[复制链接]
查看11 | 回复6 | 2008-2-13 12:43:03 | 显示全部楼层 |阅读模式
通过JDBC的连接池将数据插入到临时表中,然后再对临时表进行查询,但是发现如果两个用户同时进行操作,第一个用户查出的却是第二个用户的操作结果。
可以请教一些会是什么原因导致这样的错误吗?
是不是只有会话级的临时表才有这样的问题,事务级的就不会有?但是因为业务的需要又只能采用事务级的临时表,有什么方法可以解决这个问题吗?
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
是oracle数据库吗?
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
jdbc conn pool , session lifecyle based temperory table.
what you guess are right.
try 事务级的临时表
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
不论你用的基于会话的还是基于事务的临时表,如果用两个用户连接必然启动两个不同的会话,都不会这样。不知道你这里两个用户到底怎么理解?
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
最初由 玉面飞龙 发布
[B]jdbc conn pool , session lifecyle based temperory table.
what you guess are right.
try 事务级的临时表 [/B]

因为我在oracle中试过了,无论对于会话级或者是事务级的临时表,在其他的会话中都查不出数据,按说两个会话的数据对于对方来说都是不可见的,因此出现这个问题,只可能是两个用户通过JDBC的连接池以同一个会话操作数据库造成的,可是对于一次数据库操作来说,应该是独占的呀,怎么会出现这种查询错误呢?数据库一个会话应该是不会有并发的情况吧?
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
我认为这是正常的结果
因为连接池里是一些常连接
所以如果建立会话级的临时表
你的两个操作可能用了同一个SESSION
或者出现访问交错的情况是正常的
理解好连接池就好了
回复

使用道具 举报

千问 | 2008-2-13 12:43:03 | 显示全部楼层
最初由 wlidflower 发布
[B]我认为这是正常的结果
因为连接池里是一些常连接
所以如果建立会话级的临时表
你的两个操作可能用了同一个SESSION
或者出现访问交错的情况是正常的
理解好连接池就好了 [/B]

是啊,可是现在就要用这种模式开发,有没有什么办法避免这个错误呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行