一个ssh框架中出现一个奇怪问题?

情况如下:

用户添加数据时,发送如下奇怪的情况:

1.添加的数据没有了,但是多了一条不是自己添加的数据。

2.那条数据中,出现部分内容重复。

不知道大家有没有看懂,打个比方吧!

比如我是用户A,添加了一条数据为“abcde”,并且系统提示添加成功,但是显示列表里面不是我刚刚添加的内容(123456abcde,123abcde,123)

这种情况,在一个时间段内,一个客户发送了好几次;但是这种情况出现频率非常小,我试了很多次也没有出现。以前也出现过。

我从来没遇到过怎么奇怪的情况?大家帮帮分析分析?

系统集成的sso,本身的功能使用ssh开发的(struts1).
[b]问题补充:[/b]
如果可以debug,成功就好了,我说了这种情况只有在并发量很高的情况下,才会发送,我为了保证安全,我在action里面的execute方法前直接加上修饰synchronized,但是这样还是会发送上面的情况? 十万火急啊 十万火急 十万火急 十万火急 十万火急 十万火急 十万火急
[b]问题补充:[/b]
public class SendSuperOkAction extends Action ,action中没有定义任何实例变量和类变量,但是构造函数被重写一遍,没有做任何事情?这样会不会有影响了?
[b]问题补充:[/b]
成员属性,我都检查了,并没有在类和jsp中设置成员变量。这是我最头疼地方!
[b]问题补充:[/b]
数据库操作有并发的问题,这一点,我到时没有想到,非常感谢;但是我在action中加了同步控制的情况下也会出现这种数据库并发的问题吗?
[b]问题补充:[/b]
我用的是struts1

8个回答

如果能保证一个时间只有一个用户新增数据的话,应该就不会出现这种问题

与sso应该没有什么关系吧?

struts1.x不是线程安全的。

DEBUG 跟一下,应该是程序的问题, 与框架无关

你的 action 是不是有 类变量 ? struts1 不是线程安全的, 多个线程访问一个 类. 类变量会被多个线程访问. 应该把类变量放到 方法内部来, 牺牲一点性能 换安全

这个可能就是并发高的时候有线程不安全的类导致的,

你看你代码那种有成员属性的检查看

那就可能是你的新增的数据库操作有并发的问题

采用乐观锁来实现

action中加了同步控制,问题是你的action是单例的吗?
如果不是单例的,加同步也没有用

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问