How to continue a loop after rear roller called a Transaction in SOA
Hi all
I have major bpel processes that call an external web service that returns the Recordset.
iiterate through the game, I need to remember the each file in topic QA.
and ack each record after their storage in AQTopic. If the ACK does not I should roll back the previously inserted record of QA.
I have divided into two parts of the XA transaction using "checkpoint();".
Based on the status of the receipt, I called throw with Rollback transaction activity, I handled that by using catch everything in scope.but even after this process ends is not an iteration in the loop.
I used XA Datasource.
Please suggest me.
Thanks René.
Hi PuneetRekhade,
Thanks for your suggestion.
After receving the ack = success, before storing the recording in the AQ if the system breaks down data would no longer exist in AQ's or database for the external web service.
the recording should not be lost at any cost.
in my case, if the system crashes before sending the data to QA, nothing happens because I wouldn't send the acknowledgement to the external web service.
Thank you
Raj.
Tags: Fusion Middleware
Similar Questions
-
Continue the loop after the exception thrown in SQL
How would continue the while loop in the code below after an exception was thrown?
DECLARE v_blob_data BLOB; v_blob_len NUMBER; v_position NUMBER; v_raw_chunk RAW(10000); v_char CHAR(1); c_chunk_len number := 1; v_line VARCHAR2 (32767) := NULL; v_data_array wwv_flow_global.vc_arr2; v_rows number; v_sr_no number := 1; v_first_line_done boolean := false; v_error_cd number :=0; v_quote_pos1 NUMBER; v_quote_pos2 NUMBER; v_enclosed_str VARCHAR(200); v_errmsg VARCHAR2(4000); BEGIN delete from TEMP_MM_UPDATE where username = :P1_USER_ID; -- Read data from wwv_flow_files</span> select blob_content into v_blob_data from wwv_flow_files where name = :P2_FILE_UPLOAD; v_blob_len := dbms_lob.getlength(v_blob_data); v_position := 1; -- Read and convert binary to char</span> WHILE ( v_position <= v_blob_len ) LOOP begin v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position); v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk))); v_line := v_line || v_char; v_position := v_position + c_chunk_len; -- When a whole line is retrieved </span> IF v_char = CHR(10) THEN LOOP --Make sure there's something to replace IF INSTR(v_line, '"', 1, 1) = 0 THEN EXIT; -- If nothing to replace, exit loop and don't try END IF; --Find the position of the first and second quotes in the line of text v_quote_pos1 := INSTR(v_line, '"', 1, 1); v_quote_pos2 := INSTR(v_line, '"', 1, 2); --Extract the inner string v_enclosed_str := SUBSTR(v_line, v_quote_pos1 + 1, v_quote_pos2 - v_quote_pos1 - 1); --perform the replacement v_line := SUBSTR(v_line, 0, v_quote_pos1 - 1) || REPLACE(v_enclosed_str, ',', '<') || SUBSTR(v_line, v_quote_pos2 + 1); END LOOP; -- Convert comma to : to use wwv_flow_utilities </span> v_line := REPLACE (v_line, ',', ':'); v_line := REPLACE (v_line, '<', ','); v_line := REPLACE (trim(v_line), '-', NULL); --v_line := REPLACE (trim(v_line), '"', NULL); -- Convert each column separated by : into array of data </span> v_data_array := wwv_flow_utilities.string_to_table (v_line); --Check to see if the row of column headers has already been parsed through IF(v_first_line_done != true)THEN v_first_line_done := true; --Check column order in spreadsheet IF(v_data_array(1) LIKE '%Username%' AND v_data_array(2) LIKE '%NDN%' AND v_data_array(3) LIKE '%PCFN%' ) THEN v_error_cd := 0; v_line := NULL; ELSE v_error_cd := 1; END IF; --If first line is done and the column order is correct then ELSIF(v_first_line_done = true AND v_error_cd = 0) THEN -- Insert data into target table </span> EXECUTE IMMEDIATE 'insert into TEMP_MM_UPDATE (USERNAME, RPT_FLAG, PCFN) values (:1,:2,:3)' USING v_data_array(1), v_data_array(2), v_data_array(3); -- Clear out v_line := NULL; v_sr_no := v_sr_no + 1; END IF; END IF; exception WHEN OTHERS then v_errmsg := SQLERRM; insert into temp_mm_update (username,error_desc) values (:P1_USER_ID, v_errmsg); end; END LOOP; DELETE FROM WWV_FLOW_FILES where name = :P2_FILE_UPLOAD; DELETE FROM TEMP_MM_UPDATE WHERE USERNAME IS NULL AND PCFN IS NULL; IF(v_error_cd = 1) THEN INSERT INTO temp_mm_update (USERNAME, ERROR_DESC) VALUES (:P1_USER_ID, 'Error. Please check column order in spreadsheet.'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN insert into temp_mm_update (username,error_desc) values (:P1_USER_ID, 'No Data Found.'); WHEN OTHERS then v_errmsg := SQLERRM; insert into temp_mm_update (username,error_desc) values (:P1_USER_ID, v_errmsg); END;
When I set the exception inside the loop, as above, the procedure seems never to end, and I end up getting a 'NOWAIT' error when I try to remove the table or something like that.
The code works fine if I remove the 'START' just after the loop and also out of the exception within the loop, but I want to be able to specify what's wrong with each record rather than deal with the correct records and then stop after that it is a record that has, for example, 9 values in a column that accepts only 6.
Can anyone help with this?
Thank you
Steven
Play with my code I found what was wrong.I needed to add in the following line in my code block of exception:v_line := NULL; v_sr_no := v_sr_no + 1;
Final code:DECLARE v_blob_data BLOB; v_blob_len NUMBER; v_position NUMBER; v_raw_chunk RAW(10000); v_char CHAR(1); c_chunk_len number := 1; v_line VARCHAR2 (32767) := NULL; v_data_array wwv_flow_global.vc_arr2; v_rows number; v_sr_no number := 1; v_first_line_done boolean := false; v_error_cd number :=0; v_quote_pos1 NUMBER; v_quote_pos2 NUMBER; v_enclosed_str VARCHAR(200); v_errmsg VARCHAR2(4000); BEGIN delete from TEMP_MM_UPDATE where username = :P1_USER_ID; -- Read data from wwv_flow_files select blob_content into v_blob_data from wwv_flow_files where name = :P2_FILE_UPLOAD; v_blob_len := dbms_lob.getlength(v_blob_data); v_position := 1; -- Read and convert binary to char WHILE ( v_position <= v_blob_len ) LOOP begin v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position); v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk))); v_line := v_line || v_char; v_position := v_position + c_chunk_len; -- When a whole line is retrieved IF v_char = CHR(10) THEN LOOP --Make sure there's something to replace IF INSTR(v_line, '"', 1, 1) = 0 THEN EXIT; -- If nothing to replace, exit loop and don't try END IF; --Find the position of the first and second quotes in the line of text v_quote_pos1 := INSTR(v_line, '"', 1, 1); v_quote_pos2 := INSTR(v_line, '"', 1, 2); --Extract the inner string v_enclosed_str := SUBSTR(v_line, v_quote_pos1 + 1, v_quote_pos2 - v_quote_pos1 - 1); --perform the replacement v_line := SUBSTR(v_line, 0, v_quote_pos1 - 1) || REPLACE(v_enclosed_str, ',', '<') || SUBSTR(v_line, v_quote_pos2 + 1); END LOOP; -- Convert comma to : to use wwv_flow_utilities v_line := REPLACE (v_line, ',', ':'); v_line := REPLACE (v_line, '<', ','); v_line := REPLACE (trim(v_line), '-', NULL); --v_line := REPLACE (trim(v_line), '"', NULL); -- Convert each column separated by : into array of data v_data_array := wwv_flow_utilities.string_to_table (v_line); --Check to see if the row of column headers has already been parsed through IF(v_first_line_done != true)THEN v_first_line_done := true; --Check column order in spreadsheet IF(v_data_array(1) LIKE '%Username%' AND v_data_array(2) LIKE '%NDN%' AND v_data_array(3) LIKE '%PCFN%') THEN v_error_cd := 0; v_line := NULL; ELSE v_error_cd := 1; END IF; --If first line is done and the column order is correct then ELSIF(v_first_line_done = true AND v_error_cd = 0) THEN -- Insert data into target table EXECUTE IMMEDIATE 'insert into TEMP_MM_UPDATE (USERNAME, RPT_FLAG, PCFN) values (:1,:2,:3)' USING v_data_array(1), v_data_array(2), v_data_array(3); -- Clear out v_line := NULL; v_sr_no := v_sr_no + 1; END IF; END IF; exception WHEN OTHERS then v_errmsg := SQLERRM; insert into temp_mm_update (username,error_desc) values (:P1_USER_ID, v_errmsg); v_line := NULL; v_sr_no := v_sr_no + 1; END; END LOOP; DELETE FROM WWV_FLOW_FILES where name = :P2_FILE_UPLOAD; DELETE FROM TEMP_MM_UPDATE WHERE USERNAME IS NULL AND PCFN IS NULL; IF(v_error_cd = 1) THEN INSERT INTO temp_mm_update (USERNAME, ERROR_DESC) VALUES (:P1_USER_ID, 'Error. Please check column order in spreadsheet.'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN insert into temp_mm_update (username,error_desc) values (:P1_USER_ID, 'No Data Found.'); WHEN OTHERS then v_errmsg := SQLERRM; insert into temp_mm_update (username,error_desc) values (:P1_USER_ID, v_errmsg); END;
-
How to continue the loop loop T/F until it is wrong
Need help!
I want to compare 2 numbers (low and high).
If salvation > Lo - false cases: go to the next step
If Lo > Hi - real deal: display the error and ask the user enter again until it is correct (case false)
Can you post your code? It would make it much easier to see what is the problem. In the meantime, I have attached an example of code that basically does the same thing you want to do.
-
How to get you to your rear camera works again after upgrading 8.3 on an iPhone 5?
How to get you to your rear camera works again after upgrading 8.3 on an iPhone 5?
Is 8.3 typo?
After which update exactly?
-
How I continuously loop frames with pause for 20 seconds in each image of the scene even without going to the next scene? There are buttons for other scenes in these images. The below works well until I got to the last frame of the scene, then he goes to the next scene and plays. How can I make one loop continuously.
Stop();
var: timer = new Timer (20000,0); / / <--
timer.addEventListener (TimerEvent.TIMER, timerHandler);
Timer.Start ();
function timerHandler(event:TimerEvent):void {}
this.nextFrame ();
or if you want to jump for example 5 executives
this.gotoAndStop(this.currentFrame+5);
}
Thanks for any help.
If you want to stop your timer, use the stop() method:
Timer.Stop ();
PS when you use the adobe forums, please check the useful/correct, if there is.
-
AFTER ERROR CONTINUE to LOOP (or any other way)
Hi all
I have to keep my loop for next after the error.
---
BEGIN
FOR rs
(SELECT 'my select stmt' FROM DUAL)
)
LOOP
NULL;-if there is error update error information in the ERR_LOG table and continue the loop
END LOOP;
EXCEPTION
WHILE OTHERS THEN
INSERT INTO ERR_LOG VALUES ('error details')
NULL;
END;
---
or apart from Above method we have another way to implement above solution?
Thank you
Isabelle DhaneenjaYou can declare an another begin... end with its own exception handler to catch the error.
BEGIN FOR rs (SELECT 'my select stmt' FROM DUAL ) LOOP NULL;--if there has error update error info to ERR_LOG table and continue loop begin null; EXCEPTION WHEN OTHERS THEN INSERT INTO ERR_LOG VALUES('error details' ) end: END LOOP; END;
-
Stopping everything in a loop after the last element of a 2D array
How to stop a while loop after the last element of a 2d array. I tried an uninitialized matrix wiring constant and comparison with table 2d, which has been indexed to a 1 d table, but that did not work.
Hahaha, Hey, it's true what they say, a picture is worth a thousand words
-
Windows Installer loop after installation of the training software
I have a MSI file missing because of training software now Installer is stuck in a loop, after that I tried to uninstall the program.p
Hi MWRN,
· What is the exact error message that you receive with the error code?
· What is the service pack installed on the computer?
· Do you remember any recent changes on the computer?
Try the steps listed in the link below: how to solve the problems that may occur when you install, uninstall, or upgrade one program on a Windows computer: http://support.microsoft.com/kb/2438651
-
How to disable automatic reboot after BSOD XPSP3.
It continues to, and I need to know how an automatic restart not after it BSOD, I can see this error message I receive.
Preference does not change the registry, thank you.
Make a right click my computer and select Properties. Click on the Advanced tab click settings under Startup and recovery. Under system failure, uncheck 'automatically restart '. Click OK.
-
Hi all
My question is:
Transaction is written to the log file and it is not written to undo tablespace.
During a failure of the system how oracle rolls back the transaction.
I have already provided the answer, you ignored if well (you seem to only read the responses by people of your country).
Redo log is always written * first * before * writing to the data block (redo log writing is much more aggressive). So it DOESN 'T MATTER if you lose these scriptures of rollback segment.
Valuation: rear roller followed by roll forward, using redo log files and/or archive redo log files.
Sybrand Bakker
Senior Oracle DBA
-
I am trying to contact a person that I paid for my subscription to the CC and it is to show that I have not bought the product. The page contact technical support is a labyrinth and continues to loop back to the same place without giving me any contact information! Help, please!
Move the debate towards Adobe Creative cloud
We have checked your account details, we see active participation of Photography Photoshop program. Please make sure that you are connected with correct Adobe Id to Adobe.com to get it. You can check:Adobe Store | Order FAQ and your online payment
To install Creative Cloud app - https://helpx.adobe.com/creative-cloud/help/install-apps.html, you can also Learn how to enable or disable Adobe applications from here.
Kindly let us know in case you have further questions on your membership.
I hope this helps.
-
Premiere Pro debug event - Premiere Pro has encountered an error. [..-.. \src\TickTime.cpp-290 button] continue alone. After you click Next message: Sorry, a serious error has occurred which requires Adobe Premiere Pro stop. We will try to save your current project. Button OK I don t open my project - please help me! My project of losing many hours of work of panic!
Hello
Follow this: FAQ: how to fix projects that get an error "TickTime.cpp - 290" after opening a project.
Thank you
Regalo
-
How to continue using ESXi 4.1 in free mode?
Well, I need to know how to continue to use ESXi 4.1 in free mode.
I installed ESXi 4.1 vSphere and installed time-limited evaluation license.
Now that the trial license has expired, how to return to the free license?
I tried this: go to license Features, Edit, then "Assign an existing license key for this host" and chose "evaluation Mode...". (Not LicenseKey) "but he said I'm not a license.
So, how can I continue using ESXi 4.1 in free mode after the use of time-limited evaluation license that has now expired?
A detailed explanation of a person who has really, actually used an evaluation license and has successfully passed regularly in fr. old mode under license will be more appropriate.
Thanks in advance.
Once you have taken of / found your license free key just use the console vsphere and go to configuration | license and enter the key.
-
How to recover a database after you add a data since the last file backup.
How to recover a database after you add a data file to a tablspace existing since the last user managed backup.
PS: I am aware that the user managed backups are not used and RMAN is used these days.At the stage of the mount: select name from v$ datafile;
The last entry indicates a file named /xxx/xxx/.../UNNAMEDXXX.dbfNow
ALTER database create datafile ' / xxx/xxx/.../UNNAMEDXXX.dbf' as 'path_where_you_want_to_add_the_datafile ';
The name of the data file must match the name that added in production
This will create a data file to the required location.
Once the file has been created, you can continue with recovery.
-
I have a bunch of lively type but it continues to loop and I want him to stop on the last keyframe. How do I add a "stop" action or can I just turn off the "loopback" somewhere?
It is advisable to create a layer for actionscript, but it is not serious for the features. layers do not yet exist in your swf file.
Maybe you are looking for
-
ICloud messages after the mac is restarted
Dear people, I have a question When you start the mac I get every time iCloud messages (see the illustration) There are a lot of 10 they keep coming back very annoying Someone has an idea of what I can do about it? I have Mac OSX version 10.11.3 Than
-
I have a massive (10 pages) paper jam in my canon pixma mx432
My printer was printing a job, when I noticed there was only 2 pieces of paper left so I tried to add a little more and he must have done at the wrong time... now there are 15 pages of paper stuck and I can see them at the entrance and the exit tight
-
It is legal to use Windows XP Home Edition for commercial purposes?
I am facing issues of authority of the Indonesian Government on the use of Windows XP Edition family in my shop. Although my Windows certificate and had been forwarded to the audit conducted by the BSA software, the Government continues to officer in
-
Dear Sir / Madam,. I recently bought a Linksys amplifier, in order to improve my network speed. I have a lenovo tablet laptop without a cd drive, so I downloaded setup of your site (version 3), but I get an error every time after about 90%. I have an
-
I am running Dell Power Connect 5548 and 5524 in an arrangement of battery on 3 floors. I have a question on the Middle floor by which DHCP addresses are not to be issued to clients in vlan 90 See below GFLOOR interface gigabitethernet1/0/48channel-g