我的问题与this one非常相似,但我需要更多指导。我还阅读了Oracle context文档。参数化触发器 - 并发问题
目前(测试)触发:
CREATE OR REPLACE TRIGGER CHASSIS_DT_EVNT_AIUR_TRG_OLD AFTER DELETE OR INSERT OR UPDATE
OF ETA
ON CHASSITRANSPORTS
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
BEGIN
INSERT INTO TS_CHASSIS_DATE_EVENTS (CHASSISNUMBER,DATETYPE,TRANSPORTLEGSORTORDER,OLDDATE,CREATEDBY,CREATEDDATE,UPDATEDBY,UPDATEDDATE) VALUES (:old.chassino,'ETA',:old.sortorder,:old.eta,'xyz',sysdate,'xyz',sysdate);
EXCEPTION
WHEN OTHERS THEN
NULL;
END TS_CHASSIS_DT_EVNT_AIUR_TRG;
现在“CREATEDBY”,“UPDATEDBY”会是谁已登录并提出这引起了触发器执行,因此改变Web应用程序的用户,这些值需要从应用程序传递。
Web应用程序:
- 被部署在WebSphere Application Server在数据源配置
- 正如预期的那样,是使用数据库连接池
我的问题是哪种方法中提到的线程和文档。我应该采取什么措施来避免“并发”问题,即应用程序的更新。在应用程序级别的多个会话中的用户以及数据库级别不应相互干扰。
你可能要“砍”休眠不知何故,迫使某种每次启动新事务时执行回调,或每次从池中取消连接时执行回调。我怀疑这甚至是可能的。 – ibre5041 2015-03-03 14:27:09