快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

如何同步PL / SQL调用的Java方法

请联系QQ:1793040 索取软件

我只是有一个与并发有关的问题,它的逻辑流程是当客户端(称为Oracle Forms)提交请求(称为并发程序)并调用plsql过程时,此过程最终将调用java静态方法.

我发现,当我同时或在很短的间隔(例如1秒)内提交两个请求时,会发现一些并发问题.

java方法是从数据库中搜索建议将哪些记录插入数据库的操作的起点.

问题是,它们将导致重复的结果,因为当我查询时,两个请求都认为插入新记录很好.

我尝试在静态java方法中添加添加同步,但这不能解决此问题,为什么?

我要做的是:


请注意,insert将在plsql中调用,这意味着如果仅同步java方法,我将无法进行足够的同步.但是当我查看日志时,它显示两个请求在同一秒内运行,我认为这是不正常的!因为查询数据库和执行建议非常耗时.

为了使Java方法真正耗时,我添加了一个代码调用Thread.sleep(5000),并在此代码之后记录时间并记录线程ID.

惊奇地发现线程ID是1!而且,他们通过睡眠的时间是在同一时间.这是为什么?

我该怎么办才能解决问题? java方法或pl sql是否有锁?

PS:我现在正在尝试使用DMBS_LOCK,它似乎正在工作,但是我仍然希望知道java方法未同步的原因.

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040