ALSB 3 roll back a transaction without sending a fault message

Hi,
I have a proxy service exposed as a web service, which has some operations that call some tuxedo systems, do some transformation of the data, etc.
When any of it's operations is invoked I have to build an XML reply in both success AND error cases. The difference between both is a response code, if the call to the backend tuxedo system responded with a stream that starts with OK then everything is fine and I build the reply and send it back, but if an error ocurred it will send back an stream that starts with ER followed by an error code, with which I will have to build the SAME XML but using this error code and send it back to the client instead as a "successful" invocation instead of sending a SOAP fault message. Also I need to roll back the whole transaction in that error case. The system works like that and it can't be changed, we are building this proxy service based on a WSDL file given to us by the partner company that invokes our service and there's lots of other clients that do it in the same way. The problem is that I haven't found a way to roll back the transaction without making the proxy service send a fault message that the client system won't understand. The "Raise error" and "Reply with failure" do roll back the transaction but both send a fault message. Is there a way to answer "successfully" to the client but make an explicit rollback?

Hi,
Check the blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/22017.. [original link is broken] [original link is broken] [original link is broken]
You can handle the exception on your web service and model a Notification task so that you can send e-mail notification to the sender in case of exception
Regards, Anil

Similar Messages

  • Redo on rolling back a transaction.How?

    A transaction will generate redo and rolling back that transaction will generate further redo.
    I am a bit confused about rolling back a transaction further generates redo.can any one shed some light on the above statement.
    Thankx..

    data blocks are protected by redo.
    Tables: they are in data blocks
    Indices: they are in data blocks
    Undo segments: they are in data blocks.
    Crash recovery alone would require the rollback to be protected by redo.
    Apart from that: a rollback modifies data blocks.
    They are protected by redo.
    Sybrand Bakker
    Senior Oracle DBA

  • Sending the fault message payload to sender using BPM.

    I have the scenario where BPM splits a file into multiple record and each record calls webservice.
    For a successfull call a success response is generated by web service . For a failed transaction a fault message is sent back which needs to be delivered to the sender's mail ID.
    I am not able send the fault message payload which contains the error message details to sender ..
    Please suggest what can be done for such a scenario. Is there any way by which error details can be sent to sender?
    Edited by: trisha.b on Nov 28, 2010 7:23 PM
    Edited by: trisha.b on Nov 28, 2010 7:29 PM

    Hi,
    Check the blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/22017.. [original link is broken] [original link is broken] [original link is broken]
    You can handle the exception on your web service and model a Notification task so that you can send e-mail notification to the sender in case of exception
    Regards, Anil

  • Roll Back a Transaction from a DBControl

    Hello BEA Experts
    I have a DB control ,and there is a method in it that inserts data into a table , this method gets called multiple times and if a call to this method fails I would like to roll back the changes made by priors calls to that particular method with in a transaction.
    My problem is that if I use a DBControl will I be able to manage the transaction and roll back if something gooes wrong as I wasnt able to find any example of such a scenario.I would appreciate if anyone could point me in the right direction and an example would be great, or should I use a custom control rather than using a DB control and I am using oracle9i and theres only one Database and I am not using EJBs

    Administrators can reassign tasks, but they currently can't (in 11.1.1.4) move process token(s) backward/forward to a different activity (including human tasks). That capability, known as "grab", is planned for an upcoming release.

  • Rolling back the transaction from stateful session bean

    Hi,
    How can I mark the transaction to be rolled back in a stateful session bean implementation?.
    Should I call setRollbackOnly method or throw a RemoteException or throw an EJBException, etc.?
    the configuration is :
    OC4J 9.0.4
    Stateful session bean
    Related method has transaction attribute - "Required"
    thanks & regards.
    ps : I couldn't find a related topic even if this has been discussed before (too many topics). if so, excuses.
    Erdem.

    Tried using Bean managed transactions but with the same result. Given below is the sample code.
    UserTransaction uts = null;
    try {
    uts = (UserTransaction)(ctx.getUserTransaction());
    uts.begin();
    Connection con = null;
    con = getCountConnection();
    PreparedStatement ps = con.prepareStatement(sqlselectUserId);
    ps.executeUpdate();
    PreparedStatement ps1 = con.prepareStatement(sqlselectUserDetails);
    ps1.executeUpdate();
    uts.commit();
    catch(SQLException e) {
         uts.rollback();

  • HELP! how can I get my outbox emails back- they vanished without sending!!!

    I just came off 8 hour transatlatic flight the entireity of which I spent dealing dealing with email and deflagging as I hit send.
    When we touched down and I connected to wifi expecting to see the 27 messages in my outbox send....  But they didn't.  They just sat there.  New mail didn't come in either.   Mail ended up crashing and I had to do restart... after which there were no messages in outbox!!!!
    Most of the emails were associated with my work Gmail account however I also have a personal gmail.  My personal Gmail is picking up email however my work one is not....
    I've tried sending a coupel test emails but they now sit in my outbox without sending.  Unfortunately they sit alone in my outbox... can see no sign of the others... and they aren't in my drafts.  I do have a couple emails I had written but not sent sitting in drafts.
    I'm freaking out not just because I lost 8 hours work but also because I have no way of figuring out what emails I responded to now thay are unflagged.  I get ~500+ emails a day so this.
    Any here GREATLY appreciated.

    Sorry that I don't have a definite answer.  I assume you are using mobile.charter.net as per http://www.myaccount.charter.com/customers/support.aspx?supportarticleid=3230 and the built-in email app on the Galaxy?
    The thing is that desktop e-mail programs allow you to specify exactly what happens when you "delete" a message on an IMAP folder:
    http://support.google.com/mail/answer/78755http://kb.mozillazine.org/deleting%20messages%20in%20IMAP%20accounts
    I don't see where to configure these options on the phone.  Also, some e-mail programs have an command to "expunge" messages on the server.  What happens if you login to your IMAP account from a desktop computer and "compact" the folders?

  • BPM synchronous send step - Fault message extraction

    Hello Experts,
    I am developing a BPM with Asynch RFC -> synch Webservice -> Asynch RFC scenario.
    I have defined fault message in the synchronous interface used in the send step for web service, and also defined
    exception branch where an alert is thrown.
    In the alert, i want to send the fault text from the fault message. How can i do that??
    Thanks

    Hi Mona,
    SOAP adapter doesnt support fault messages.
    check stephan's reply @ How catch the SOAP Fault Message ?
    > SOAP adapter does not support fault message.
    > Any fault is treated as error.
    > fault messages are only supported for XI messages (ABAP or Java proxies) and RFCs.
    Fault message handling is not possible inside BPM.

  • Roll back the updated records

    One of our application users accidently updated approximately 1000 records of one of our Production Database tables .There are 3-5 records usually added /modifiled to this table per day .we also
    restore a copy of our production database to Test server  each night .In this situation, we wanted to roll back all transactions for that table those are updated by user accidently
     so we decided to rename the production table and tried to copy table to production from the test database .Unfortunally
     we could not rename the table name since there are a few production database tables are dependent on that table .Finally we compared the affected records of production table
     with Test database table and created update script that updated all affected records with the original values .This recovery step was very time consuming especially during the business hours . when someone accidently delete ,update and modified
    data , in this case what would be the possible options that SQL DBA can use to roll back the transactions without any downtime ?
    Has someone used the ApexSQL log against the Production database to recover data before ?
    Thank you in adavance for you help .
    Daizy

    Always prepared for a rollback steps (Scripts ), and make sure you have scheduled backups ( full and tlog )
    If you know the exact time then you may try for point-in-time recvery using your full_tlod backup.. for this you should aware the exact time and again you have to do some manual work, because this is unplanned and human mistakes always risky and etc.., You
    have to make sure that you are executing  correct scripts and you may have to test the same in Test servers before executing.
    Not sure how this ApexSQL works for rollback... you may have to test using your Test servers
    WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';http://msdn.microsoft.com/en-us/library/ms179451.aspx
    Raju Rasagounder Sr MSSQL DBA

  • Transaction roll back

              Dear Everyone,
              What kind of exceptions do the wls container force to roll back a transaction?
              Already a simple NullpointerException does it or it has to be a kind of special
              Exception like EJbException?
              And if I catch that exception I hope it does not roll the transaction back if
              I do not rethrow.
              Thanks for your help.
              Miklos
              

              Dear Deyan,
              Thanks for the answer. Actually an entity creation rolled back even I throw an
              CreateException.
              That is very intersting, and it is not mentioned in the sun documentation.
              Actually I catch the CreateException and rethrow it.
              Any idea why it happens?
              Miklos
              "Deyan D. Bektchiev" <[email protected]> wrote:
              >Miklos,
              >
              >Once the exception crosses the invocation wrapper if it is an instance
              >
              >of RuntimeException (NPE is) or RemoteException (this one is there
              >mostly for backward compatibility with pre-EJB 2.0 spec) the transaction
              >
              >will be marked for rollback so you cannot commit it.
              >If you don't want to roll back the transaction, throw an application
              >
              >exception instead (any other type that inherits from java.lang.Exception).
              >
              >Regards,
              >Dejan
              >
              >Miklos Molnar wrote:
              >
              >>Dear Everyone,
              >>
              >> What kind of exceptions do the wls container force to roll back a transaction?
              >> Already a simple NullpointerException does it or it has to be a kind
              >of special
              >>Exception like EJbException?
              >> And if I catch that exception I hope it does not roll the transaction
              >back if
              >>I do not rethrow.
              >>
              >> Thanks for your help.
              >>
              >> Miklos
              >>
              >>
              >
              

  • SqlTransaction.Rollback() does not throw InvalidOperationException in case the transaction has already been rolled back.

    According to
    MSDN SqlTransaction.Rollback() method must throw InvalidOperationException in case the transaction has already been committed or rolled back. 
    However, in my tests I don't get any exceptions. Here is the code:
    CREATE PROCEDURE dbo.USP_TEST_TX_PROC
    AS
    BEGIN
    SELECT 1/0;
    ROLLBACK TRANSACTION;
    END
    GO
    using(SqlConnection con = new SqlConnection(@"Data Source=XXX;Initial Catalog=TestDB;Integrated Security=True"))
    con.Open();
    SqlTransaction tr = con.BeginTransaction();
    SqlCommand cmd = new SqlCommand("dbo.USP_TEST_TX_PROC", con, tr) { CommandType = CommandType.StoredProcedure};
    try
    cmd.ExecuteNonQuery();
    tr.Commit();
    catch (Exception ex)
    try
    tr.Rollback();
    catch (Exception ex2)
    Console.WriteLine(" Message: {0}", ex2.Message);
    What am I doing wrong?
    Thank you.
    Alexey

    Hello Alexey,
    I created a client side demo which could throw the InvalidOperationException:
    using (SqlConnection connection = new SqlConnection(@"Server=(localdb)\Projects;Database=DFDB;Trusted_Connection=True;"))
    connection.Open();
    SqlCommand command = connection.CreateCommand();
    SqlTransaction transaction;
    transaction = connection.BeginTransaction("SampleTransaction");
    command.Connection = connection;
    command.Transaction = transaction;
    try
    command.CommandText = "ProInsertIntoOrder 1,'1'";
    command.ExecuteNonQuery();
    transaction.Rollback();
    throw new Exception();
    catch (Exception ex)
    // Attempt to roll back the transaction.
    try
    transaction.Rollback();
    catch (InvalidOperationException ex2)
    Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
    Console.WriteLine(" Message: {0}", ex2.Message);
    You could have a try. However, it is not clear why it could detect the ROLLBACK statement on the server side, I suggest that you could post this feedback to:
    https://connect.microsoft.com/VisualStudio/feedback/LoadSubmitFeedbackForm
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Calling mysql stored procedure having insert sql commands within cftransaction is not getting rolled back

    Hi,
    cftransaction is working perfectly when all the insert
    updates are called by cfqquery.
    But when there is a mysql stored procedure call with in
    cftrnsaction and that mysql stored procedure is having many inserts
    and updates, cftransaction is not able to roll back insert/updates
    happened in stored procedure.
    I am using InnoDB tables/database of mysql.
    Did anybody faced a similar problem and is it a coldfusion
    bug or mysql bug.
    We checked with Java and java is able to roll back the
    transaction, but coldfusion cftransaction is failing.
    Please help.
    Regards,
    Saikumar

    Mark,
    I believe the syntax of your formatted search is not right. I guess you are trying to get the U_Width from Item Master and the other values from the current form.
    SELECT @Width = T0.U_WTH FROM [dbo].[OITM] T0.WHERE T0.ItemCode = $[$38.1.0]
    EXEC TBC_CHOP @Width, $[$38.U_LINETYPE.0], $[$38.U_LI.0], $[$38.U_LN.0],
    $[$38.U_LD.0], $[$38.U_HI.0], $[$38.U_HN.0], $[$38.U_HD.0], $[$38.U_QTYORD.Number]
    If you see I have added a third parameter which is the Type to the formatted seach field selection $[$Item.Column.Type]
    I have made then all 0 but you may change it as per the col type.  This Type should be 0 for Char type columns, Number for numeric columns and Date for Date type cols
    Suda

  • Roll Back the Sales Order After Adding

    Hi Experts,
    I want to roll back the system form trasaction like Sales Order. After adding the Sales Order immediately i want to roll back the transaction.
    I used the Company.Transaction Object, but it is only working on User Tables. Not in System Forms like Sales Order.
    Can you please tell me the solution for this ASAP.
    Thanks in Advance,
    G.Suresh

    Hi Petr,
    You didnt get my point. In my concern is, i am going to add Sales Order by Manually not using code.
      In FormDataEvent of the Sales Order
                Select Case BusinessObjectInfo.EventType
                    Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD
                     If BusinessObjectInfo.ActionSuccess = True Then
    /***** This Code for getting current transaction of the Sales Order *****/
                            Dim oObject As SAPbobsCOM.Documents
                            oObject = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
                            oObject.Browser.GetByKeys(BusinessObjectInfo.ObjectKey).
    /**** here i want to rollback the saved sales order  ****/
                    End If
                  End Select
    Can you tell me, how i ll rollback the already saved transaction which added by user from Sales Order Screen not in code.
    Thanks in Advance,
    G.Suresh.

  • How to know how long the roll back is left?

    Hi, experts,
    I run a insert statment for about half hour. I just broke the procedure by clicking the break button in pl/sql. I want to know how long the roll back is left.
    Thanks

    pl/sql has a break button?
    assuming that you're using some gui tool, and hit a break button while executing some pl/sql - when the "break" is hit, the gui either rolls back the transaction or it leaves the transaction alone, waiting for you to either commit or rollback.
    the rollback will stay there until the transaction is either committed or rolled back.
    when the session disconnects, it will either rollback or commit the transaction (depending on the tool).

  • When to roll back?

    In an entity EJB method (bean-managed persistence), is it necessary or
    useful to roll back the transaction if a SQLException occurs in a
    read-only situation, such as on a finder method?

    Frank LaRosa <[email protected]> wrote:
    In an entity EJB method (bean-managed persistence), is it necessary or
    useful to roll back the transaction if a SQLException occurs in a
    read-only situation, such as on a finder method?
    Hi Frank,
    If the "find" is in your business role, so is advisable to rollback!

  • How Roll back works

    The User is doing below steps:
    1) Creating one table with the table name as Temp.
    2) Creating table as ABC.
    3) Inserting 10 rows in the Temp table.
    4) selectin * from Temp
    5) Deleting 5 rows from Temp table
    6) Rollback.
    Will it rollback all of the steps done i.e from 1-6.
    Or will it roll back only the 6th Step.
    Please help me getting solution as i am unable to undersand it.
    As per me only the last step should be rolledback.

    Let's make it clear...
    DML = Data Manipulation Language
    This consists of INSERT, UPDATE and DELETE. Also SELECT gets put into this category even though it is not really manipulating the data on the database.
    DDL = Data Definition Language
    Essentially, any database defining statement that is not DML.
    DDL statements automatically issue a "commit" before and after they execute.
    Transactions on a database are defined as what occurs between one commit and another.
    A Rollback statement will roll back any statements in the current transaction.
    Therefore if you issue DDL statements you are causing a commit to occur on the database so any subsequent rollback statement will only roll back to the point of the last commit (i.e. just after the last DDL statement or after the last explicit commit)
    1. create table ....                    <--- DDL (implicit) commit
    2. create table ....                    <--- DDL (implicit) commit
    3. insert into ....                     <--- DML (first statement in transaction)
    4. select ....                          <--- DML (second statement in transaction)
    5. delete from ....                     <--- DML (third statement in transaction)
    6. Rollback                             <--- Rolls back the transaction i.e. everything back to 3

Maybe you are looking for