lists, I have tested streams on very simple configuration, which consist of source and destination database. for all simple transactions there are no serious conflict/error, but with this kind of transaction, the apply process become stuck :) at source database: insert into tbl values (......) ; -- insert 1 record update tbl set ...... where ..... ; -- update the row that inserted justnow commit; at destination, apply process complaining that no data found (ORA-01403). I Know this error, due to the first command is INSERT bu the latest command is UPDATE and then commit. please let me know if you have handy procedure/function to handle this kind of transaction. I thinking that I have to set error handler and insert into particular table at destination first, prior to execute the LCR, is it make sense? :) from trace files: kngofre: freeing lcr kngoonew: request dur= 89, numcols=7 kngoonew: creating lcr 3 - dur 89, actual dur 89 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acaec70 colsize = 7, allocsz_kngxrcol = 7 nat_kngoxrcol, allocated size = 12, actual size = 7 xrcolp->nat_kngoxrcol = ffffffff7acaeb40 colsize = 7, allocsz_kngxrcol = 7 nat_kngoxrcol, allocated size = 12, actual size = 7 xrcolp->nat_kngoxrcol = ffffffff7acaea10 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acae8e0 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acae7b0 colsize = 5, allocsz_kngxrcol = 5 nat_kngoxrcol, allocated size = 12, actual size = 5 xrcolp->nat_kngoxrcol = ffffffff7acae680 colsize = 1, allocsz_kngxrcol = 1 nat_kngoxrcol, allocated size = 12, actual size = 1 xrcolp->nat_kngoxrcol = ffffffff7acae550 knipdis --------- *** 2008-09-15 20:24:38.667 userid: 69 sname:CC oname:DIALCODES opname:REP_INSERT knipgisql: insert ------------------- insert /*+ restrict_all_ref_cons */ into "CC"."DIALCODES" p("DCID","DCIDPARENT","DCTEXT","DCTYPE","DCV ALIDFROM","DCVALIDTO","DCVALUE")values(:1,:2,:3,:4,:5,:6,:7) knipdmpargs: dump new argument list: column: "DCID" (dty, kncdty, acl, csf, csi, ind)=(2,0,3,0,0,0) value = 8888 column: "DCIDPARENT" (dty, kncdty, acl, csf, csi, ind)=(2,0,1,0,0,0) value = 0 column: "DCTEXT" (dty, kncdty, acl, csf, csi, ind)=(1,0,5,1,31,0) value = PPPPP column: "DCTYPE" (dty, kncdty, acl, csf, csi, ind)=(1,0,3,1,31,0) value = PPP column: "DCVALIDFROM" (dty, kncdty, acl, csf, csi, ind)=(12,0,7,0,0,0) value = Mon Sep 15 19:42:57 2008 column: "DCVALIDTO" (dty, kncdty, acl, csf, csi, ind)=(12,0,7,0,0,0) value = Mon Sep 15 19:42:57 2008 column: "DCVALUE" (dty, kncdty, acl, csf, csi, ind)=(1,0,3,1,31,0) value = PPP executing REP_INSERT leaving knipdis ---- *** 2008-09-15 20:24:38.668 kngofre: freeing lcr kngoonew: request dur= 89, numcols=5 kngoonew: creating lcr 3 - dur 89, actual dur 89 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acaec70 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acaeb40 colsize = 7, allocsz_kngxrcol = 7 nat_kngoxrcol, allocated size = 12, actual size = 7 xrcolp->nat_kngoxrcol = ffffffff7acaea10 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acae8e0 colsize = 3, allocsz_kngxrcol = 3 nat_kngoxrcol, allocated size = 12, actual size = 3 xrcolp->nat_kngoxrcol = ffffffff7acae7b0 knipdis --------- *** 2008-09-15 20:24:38.668 userid: 69 sname:CC oname:DIALCODES opname:REP_UPDATE knipgusql: update ------------------- update /*+ streams or_expand(p "DCIDPARENT" )restrict_all_ref_cons */ "CC"."DIALCODES" p set "DCID"=de code(:1,'N',"DCID",:2), "DCIDPARENT"=decode(:3,'N',"DCIDPARENT",:4), "DCTEXT"=decode(:5,'N',"DCTEXT",:6 ), "DCTYPE"=decode(:7,'N',"DCTYPE",:8), "DCVALIDFROM"=decode(:9,'N',"DCVALIDFROM",:10), "DCVALIDTO"=dec ode(:11,'N',"DCVALIDTO",:12), "DCVALUE"=decode(:13,'N',"DCVALUE",:14) where (:15="DCID") and(:16="DCID PARENT" or(:16 is null and "DCIDPARENT" is null)) and(:17="DCTEXT") and(:18="DCTYPE") and(:19="DCV ALIDFROM") and(:20="DCVALIDTO") and(:21="DCVALUE") knipdmpargs: dump old argument list: column: "DCID" (dty, kncdty, acl, csf, csi, ind)=(2,0,3,0,0,0) value = 8888 column: "DCIDPARENT" no available value column: "DCTEXT" no available value column: "DCTYPE" (dty, kncdty, acl, csf, csi, ind)=(1,0,3,1,31,0) value = PPP column: "DCVALIDFROM" no available value column: "DCVALIDTO" (dty, kncdty, acl, csf, csi, ind)=(12,0,7,0,0,0) value = Mon Sep 15 19:42:57 2008 column: "DCVALUE" (dty, kncdty, acl, csf, csi, ind)=(1,0,3,1,31,0) value = PPP knipdmpargs: dump new argument list: column: "DCID" no available value column: "DCIDPARENT" no available value column: "DCTEXT" no available value column: "DCTYPE" (dty, kncdty, acl, csf, csi, ind)=(1,0,3,1,31,0) value = XXX column: "DCVALIDFROM" no available value column: "DCVALIDTO" no available value column: "DCVALUE" no available value executing REP_UPDATE *** 2008-09-15 20:24:38.669 ksedmp: internal or fatal error ORA-01403: no data found -- thanks and regards ujang | oracle dba jakarta | http://ora62.wordpress.com -- //www.freelists.org/webpage/oracle-l