State of Transaction in High Safety mode (Synchronous mode)

Hello Team,
I have configured Database Mirroring with High Safety mode ( Synchronous Mode). I have started a long transaction (transaction A) which is expected to complete in 10 minutes. However, principal server shuts down due to hardware issue.
What will happen to the transaction A.
Also, what will be state of transaction if i have configured Mirroring with High Performance Mode (Asynchronous Mode).
Chetan

1. Transaction is being executed on Principal server and mirroring fails
In this scenario SQL Server would not be able to commit its transaction because it wont be able to send log records to mirror and hence would not be able to get acknowledgement about commit on mirror. Transaction log will grow till it occupies whole space
and then application might stop responding as database would not able to log transactions. DB might also go in unresponsive state
2. Transaction is completed execution on principal server, it is being executing on mirrored server and mirroring fails
Transaction replay happens almost at same time (with little delay) . The mirror receives and writes the log buffer to disk and records the mirroring_failover_lsn and notifies the principal that the log block has been hardened. If commit has been acknowledged
on mirror and principal both before failover, then after when mirror will come online it will replay transaction. Anything before that would cause rollback on mirror.
3. Transaction is completed execution on principal server & mirroring server. Before principal server receives confirmation from mirrored server about execution completion, mirroring fails.
Actually this question is bit confusing and in some way incorrect I would like you to read
Table 9: A Safety FULL (Synchronous transfer) example sequence of events.
in below link
http://technet.microsoft.com/en-us/library/cc917680.aspx
The possible answer is rollback on mirror.
Edit: In case of any conflict LSN on both principal and mirror is used to resolve conflict. Remember mirroring does not works in two phase commit like distributed transaction failures to commit on the mirror will not cause a transaction rollback on the principal.
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP

Similar Messages

  • Message interface in synchronous mode but run in asynchronous

    I try to use SAP-XI in synchronous mode with JDBC to JDBC connection.
    A 'Outbound' message Interface under synchronous mode is defined for
    sender while an 'Inbound' message interface under synchronous mode is for
    receiver.
    In the sender communication channel, a "select" SQL statement is
    placed for getting data via JDBC.
    For inbound interface, a stored procedure is triggered and it will
    return 2 paramaters.
    From transaction SXMB_MONI, I found that the message was in 'asynchronous'
    mode and I don't know how to collect the 2 output paramters.

    Dear all,
    Upon all your suggestions, my testing have a big jump with below results but still have some problem
    In the sender communication channel, a "select" SQL statement is  placed for getting data via JDBC. It works.
    For inbound interface (receiver), below stored procedure was actually triggered and it DOES return 2 paramaters.
    <?xml version="1.0" encoding="UTF-8" ?>
    <ns0:MT_t1 xmlns:ns0="http://xxx.xxx.hk/zxxxx/jdbc">
    <update>
    <storedProcedurename action="EXECUTE">
      <table>LIBRARY.PANSYTEST</table>
      <TRNX_TYPE IsInput="TRUE" TYPE="CHAR">001</TRNX_TYPE>
      <TRNX_NO IsInput="TRUE" TYPE="CHAR">101048</TRNX_NO>
      <OUT_TRNX_TYPE IsOutput="TRUE" TYPE="CHAR">001</OUT_TRNX_TYPE>
      <OUT_TRNX_NO IsOutput="TRUE" TYPE="CHAR">101048</OUT_TRNX_NO>
      </storedProcedurename>
      </update>
      </ns0:MT_t1>
      Then I got the response message from the inbound interface 
      <?xml version="1.0" encoding="utf-8" ?>
      <ns0:MT_t1_response xmlns:ns0="http://xxx.xxx.hk/zxxxx/jdbc">
      <update_response>
      <response_1>
        <update_count>0</update_count>
        </response_1>
        <OUT_TRNX_TYPE>001</OUT_TRNX_TYPE>
        <OUT_TRNX_NO>101048</OUT_TRNX_NO>
        </update_response>
      </ns0:MT_t1_response>
      This response message was mapped to below message type. I suppose this will be passed
      to outbound system (sender) and run a SQL "Update ps_cu_pg1iawd set cu_retrieved_by = "ZCU_CUSIS"
      cu_action_cd = 'P' where cu_trx_type = 001 and cu_trx_num = 101048"
      BUT the table ps_cu_pg1iawd is NOT updated and NO error was found in SXMB_MONI.
        <?xml version="1.0" encoding="UTF-8" ?>
      <ns0:MT_Response xmlns:ns0="http://xxx.xxx.hk/zxxxxx/jdbc">
      <statement>
      <PS_CU_PG1IAWD action="UPDATE">
        <table>ps_cu_pg1iawd</table>
      <access>
        <cu_retrieved_by>ZCU_CUSIS</cu_retrieved_by>
        <cu_action_cd>P</cu_action_cd>
        </access>
      <key_1>
        <cu_trx_type>001</cu_trx_type>
        </key_1>
      <key_2>
        <cu_trx_num>101048</cu_trx_num>
        </key_2>
        </PS_CU_PG1IAWD>
        </statement>
      </ns0:MT_Response>

  • Statement "CALL TRANSACTION" is not allowed in this form.

    Hi
    I have a form in which i want to call a transaction:
      CALL TRANSACTION 'VL32N'  USING bdc_tab
                                                       MODE    'E'
                                                       UPDATE  'S'
                                                       MESSAGES INTO mestab.
    I call this report from within a message and when reaching this statement it fails.
    Now i get this error in ST22:
    POSTING_ILLEGAL_STATEMENT
    Statement "CALL TRANSACTION" is not allowed in this form.
    and afterwards this error:
    DYNPRO_SEND_IN_BACKGROUND
    Screen output without connection to user.
    As i read,it is not allowed to call this kind of statement from within a form and we should use something like:
    RECEIVE RESULTS FROM FUNCTION but i do not know how because i have never before used such call statements.
    thanks

    Hi,
    The bdc table is filled correctly but the CALL TRANSACTION is not alllowed.I think it is because of the call from the Form ENTRY which is called when issuing an message from my transaction.I have read that it is not allowed to have any call transaction,submit or any other statements like these in a function call,and i think that my form ENTRY is seen as a sort of function module.
    Any other opinions?
    With my "call transaction" statement i wanted to open the VL32N Transaction and post a goods receipt.Is there any other way to do this?
    I get this message in the ST22 Transaction:
    This program is triggered in the update task. There, the   
    following ABAP/4 statements are not allowed:                                                                               
    -  CALL SCREEN                                             
    -  CALL DIALOG                                             
    -  CALL TRANSACTION                                        
    -  SUBMIT                                                  
    But i do not know what is ment by update task.All i use are some "export to memory"  statements and this is all.
    Any ideas?
    thanks.
    Edited by: seba seba on Jul 28, 2009 11:22 AM

  • I want to know the particular diff betwenn synchronous mode & asynchronous

    Dear Friends,
    can u pls explain the difference between synchronous & asynchronous mode.
    Regards
    Jagadeeshwar.B

    Hi
    synchronous mode
    In synchronous update, you do not submit an update request using CALL FUNCTION... IN UPDATE TASK. Instead, you use the ABAP statement COMMIT WORK AND WAIT. When the update is finished, control passes back to the program. Synchronous update works in the same way as bundling update requests in a subroutine (PERFORM ON COMMIT). This kind of update is useful when you want to use both asynchronous and synchronous processing without having to program the bundles in two separate ways.
    Asynchronous mode
    A typical SAP system installation contains dialog work processes and at least one update work process. The update work processes are responsible for updating the database. If, in a dialog work process, the function modules stored in interim storage through CALL FUNCTION ... IN UPDATE TASK are released for processing by means of the ABAP statement COMMIT WORK, the dialog work process will not wait for the update process to finish. This kind of update is called asynchronous update.
    If its useful reward points

  • Deadlocked Schedulers - HADR Mirroring High Safety

    Sql Server - Sql Server 2008 R2 Standard 10.50.4000
    OS - Windows Server 2008 R2 Standard
    CPU - Processor(s):              2 Processor(s)
    Installed. => 32 Thread... MAX worker thread 960
    Memory – 32 GB, Sql Server allocated 22 GB.
    MAXDOP -1, which was like that for last one year.
    Session Count - 1800+ but active one at a time remain not more than 30 or 50...
    As per MS engineer 985 Total threads, 883 are stuck in below function
    0000000077a82aaa ntdll!ZwSignalAndWaitForSingleObject+0xa             
        0000000077882da0 kernel32!SignalObjectAndWait+0x110                   
        0000000000215288 sqlservr!SOS_Scheduler::Switch+0x181                 
        000000000021313e sqlservr!SOS_Scheduler::SuspendNonPreemptive+0xca    
        0000000000212890 sqlservr!SOS_Scheduler::Suspend+0x2d                 
        00000000002129bc sqlservr!EventInternal<Spinlock<154,1,0> >::Wait+0x1a8
        00000000022db1ad sqlservr!ReleaseSpinlockAndWaitOnAddressX+0x41       
        00000000025d9b42 sqlservr!LsMgr::WaitForHardenedLsn+0x3d2             
        00000000025b2938 sqlservr!DBMirroring::WaitForHardenedLsn+0x4c        
        0000000000ab295c sqlservr!XdesRMFull::Commit+0x4c8                    
        00000000007e6ed9 sqlservr!XactRM::SinglePhaseCommit+0x184             
        000000000077c2c9 sqlservr!XactRM::CommitInternal+0x3e3                
        000000000077c0f0 sqlservr!FullXactImp::Commit+0x328                   
        000000000079f36f sqlservr!CMsqlXactInternalBase::CommitInternal+0x27  
        00000000007dac66 sqlservr!CMsqlXactInternalReadWrite::Commit+0x16     
        000000000079f2ec sqlservr!CMsqlXactImp::Commit+0x10a                  
        00000000006d987a sqlservr!CXStmtDML::FinishNormalImp+0x3d             
        00000000016b87f0 sqlservr!CMsqlExecContext::ExecuteStmts<1,0>+0x157c  
        000000000087be96 sqlservr!CMsqlExecContext::FExecute+0x9a3            
        000000000079ac8c sqlservr!CSQLSource::Execute+0x7b5                   
        00000000017145bc sqlservr!CStmtExecProc::XretLocalExec+0x24c          
        0000000001713f16 sqlservr!CStmtExecProc::XretExecExecute+0x416        
        0000000001711f25 sqlservr!CXStmtExecProc::XretExecute+0x19            
        00000000016b8075 sqlservr!CMsqlExecContext::ExecuteStmts<1,0>+0xe01   
        000000000087be96 sqlservr!CMsqlExecContext::FExecute+0x9a3            
        000000000079ac8c sqlservr!CSQLSource::Execute+0x7b5                   
        000000000079c800 sqlservr!process_request+0x64b                       
        0000000000743dc6 sqlservr!process_commands+0x4e5                      
        000000000021ab94 sqlservr!SOS_Task::Param::Execute+0x12a              
        000000000021b05e sqlservr!SOS_Scheduler::RunTask+0x96                 
        000000000021ad57 sqlservr!SOS_Scheduler::ProcessTasks+0x128           
        00000000006f51de sqlservr!SchedulerManager::WorkerEntryPoint+0x2d2    
        00000000006f5395 sqlservr!SystemThread::RunWorker+0xcc                
        00000000006f8925 sqlservr!SystemThreadDispatcher::ProcessWorker+0x2db 
        00000000006f59d6 sqlservr!SchedulerManager::ThreadEntryPoint+0x173    
        00000000749637d7 msvcr80!_callthreadstartex+0x17                      
        0000000074963894 msvcr80!_threadstartex+0x84                          
        000000007782652d kernel32!BaseThreadInitThunk+0xd                     
        0000000077a5c521 ntdll!RtlUserThreadStart+0x1d                        
    Below is the one they are highlighting, some latency caused threads to stack up, Any idea? Looking for anyone experienced similar scheduler deadlock
    00000000025d9b42 sqlservr!LsMgr::WaitForHardenedLsn+0x3d2             
    00000000025b2938 sqlservr!DBMirroring::WaitForHardenedLsn+0x4c 
    Thanks,
    -SreejitG

    SreejitG
    I'm curious to know why the system is setup for high safety?  Essentially, what High Safety is saying is the transactions cannot return scope to the application until the commit has been hardened in the log on the mirror database server.  The end
    result is whatever transaction the application attempts to commit against the primary, it will try to commit on the mirror as well, prior to sending an Ack back to the caller.   What can go wrong?  Well, if the mirror server is slow for any
    reason, or the wire speed latency is large for any reason, the primary application will slow down.  Essentially, what the above is telling you is that there's something going on at the mirror database or server that is slower than the primary server,
    and it's waiting, and waiting to be able to return to the caller. 
    That said, is there a great latency between the two servers?  Is the mirror committed to another activity?  If you turn off high safety and use asyc-transactions you'll see this go away.  If you need zero data loss, and have this as a
    failover, then fix the problems occurring on the mirror server.
    Good luck. 

  • Idocs in mode synchronous

    Hi:
    Is it possible to configure the idocs to send it from XI to SAP in mode synchronous?
    Thanks

    you cannot ... but then you can configure ACK for IDocs.
    Ref: https://websmp210.sap-ag.de/~sapdownload/011000358700003477212005E/HowTo_IDOC_Ack_20040817RR.pdf

  • Issue with splitting 1:N mapping using Synchronous mode.

    Hi All,
    My Scenario is like below and i'm using BPM to handle this scenario
    SOAP request from sys-A --> SOAP sync call to Sys-B --> Send sync response from Sys-B  to Sys-C
    - I will be getting mutlple orders in single message from Sys-A.
    - I need to split this single message into multiple messages and pass as a sync request to Sys-B
    - The responses from sys-B should go to Sys-C.
    Issue:
    The scenario is working fine when I send the orders in Asynchronous mode to Sys-B by changing the occurence to 0..unbounded in message mapping and interface mapping.
    The same scenario is not working when I try to send the orders in Synchronous mode to Sys-B. When I tried to change the occurance in Interface mapping, the reponse tab is disappearing when I click "Read interfaces" in Interface mapping.
    If I don't mention 0..occurance in interface mapping then the interface mapping is not showing up in interface determination (when i click Enhannced radio button to select the interface mapping).
    Is there any limitation that split messages won't work in Synchronous mode?
    Do I need to use any function in BPM to handle this splitting message? I want do this in a simple way without complicating in BPM.
    Kindly suggest me.
    Thanks
    Deepthi

    Hi Bhupesh,
    I think you didn't get my scenario correctly. Here I explained with BPM steps.
    Start>Receive(Async)>Send(Sync)>Send(Async)>stop
    receive req from SysA >Send sync req to sysB>Map sync response to Idoc and send to SysC
    While sending Sync message to Sys-B, I will be mapping Abstract Sync message to Inbound Sync message.
    So in interface mapping, I will be assigned
    Abstract_SyncB <---> Inbound_SyncB
    request and response tabs will present.
    This scenario is working perfectly fine when i try to send single order sync message to SysB. But according to my requirement I need to Split the input message into multiple messages and send to sysB.
    To do this, I trying to change the occurances from 0..1 to 1..unbounded in both message mapping and interface mapping. by doing this, I can use the enhanced button in interface determination. So that the splitting the message will happen.
    When I change the occurance to 0..unbounded and save in interface mapping, the response tab is dissapearing.
    What might be the reason for this?  Is sync message can't handle splitting the messages?
    Thanks
    Deepthi.

  • Error in Synchronous mode of data flow

    Dear All,
    I am new to PI. I am using a Synchronous mode while sending a message from ECC system to JDBC Receiver. After processing the message i am getting a error in response message.
    Are there any naming conventions to be followed while creating data type or message type?
    Regards,
    Soumya.

    hi Soumya,
    We dont have a naming convention as such. However, for JDBC receivers we have a standard structure for the data type like
    http://www.riyaz.net/blog/jdbc-adapter-configuration/technology/1200/
    Regards,
    Ninu

  • JdbcRowSetXImp (..): SET TRANSACTION must be first statement of transaction

    Hi.
    Im running JSC created application and getting in the log file this messages:
    [date & time] warning (24167): CORE3238: stderr: JdbcRowSetXImpl (setTransactionIsolation): [Sun][Oracle JDBC Driver][Oracle]ORA-01453: SET TRANSACTION must be the first statement of transaction
    As you may see, Im using JSC JDBC drivers. Im running on Sun One Web Server version 6.1 sp2 on Linux RedHat 3Ent. The application was builded with JSC me with latest patch applied.
    It seems a bug in the JdbcRowSetXImpl.
    Has someone similar problem?
    Regards.

    Hi John.
    This message is present on all log file a few days after the application began in production use, almost a month ago.
    The only change done in the configuration few days after the app was deployed was "Guarantee Isolation Level" in the JDBC connection pool configuration, switched from OFF to ON.
    Yesterday I turn OFF again and have no more messages about SET TRANSACTION...
    I guess that the SET TRANSACTION is issued two times, one by the web server before giving the connection to the app then by the row set impl.
    I will let you known if the messages appears again (I guess not).
    Regards.

  • 2xC350 in High Availability Mode (Cluster Mode)

    Hello all,
    first of all, i`m a newbie in ironport. So Sorry for my basic questions, but i can`t find anything in the manuals.
    I want to configure the two boxes in High Availability Mode (Cluster Mode) but i don`t understand the ironport cluster architecture.
    1) in machine mode i can configure IP-Adresses -> OK
    2) in Clustermode i can configure listeners and bind them to a IP-Address -> OK
    But how works the HA?
    A) Should i configure on both boxes the same IP to use one MX Record? And if one box is down the other takes over?
    B) Or should i configure different IPs and configure two MX Records?
    And if one box is down the second MX will be used.
    Thanks in advance
    Michael

    The ironport clustering is for policy distribution only - not for smtp load mgmt.
    A) Should i configure on both boxes the same IP to use one MX Record? And if one box is down the other takes over?
    Could do - using NAT'ing on the f/w but few large business take this approach today.
    Many/most large businesses use a HW loadbalancer like an F5, Foundry ServerIron, etc. The appliances themselves would be set up on seperate IP addresses. Depending on the implementation requirements, the internal IP address could be a public IP or a private IP.
    B) Or should i configure different IPs and configure two MX Records?
    And if one box is down the second MX will be used.
    If you set up two boxes, even with a different MX preference, mail will be delivered to both MX records. There are broken SMTP implementations that get the priority backwards, and many spammers will intentionally attempt to exploit less-restrictive accept rules on secondary MX recievers and will send to them first.

  • BizTalk works in Synchronous mode or asynchronous mode

    I am little bit confused that BizTalk receive ports and send ports works in Synchronous mode or asynchronous mode .
    Any kind of help will be appreciated.
    Prakash

    To be perfectly clear, BizTalk is asynchronous. That's just how it works. Different messaging patterns will
    appear to the caller as synchronous but in BizTalk world, we call the Sync-over-Async.
    So for examples, in practical terms:
    Synchronous:
    A Two-Way Receive or Send Port
    Asynchronous: A One-Way Receive Port followed eventually by a One-Way Send Port. Or vice
    versa. No matter what the app does inside BizTalk, the port types are what determines it's sync'ness to calling or called apps.
    Rachit
    Sorry to rectify ,Two way Operations within Biz Talk is  also Asynchronous .

  • Updation in synchronous mode using bapi

    hi all ,
           i have a requirement to update master table using bapi /SAPMP/BAPI_MATERIAL_SAVEDATA  where has it is taking more time can any one of you sugguest what will be the best approach which i can improve the execution time and can u tell me whether i can execute bapi in synchronous mode.
    with regards,
    abaper

    Hi,
    You can go for either BDC or LSMW also.
    Regards,
    Renjith Michael.

  • Sequential numbering of the bank statements in transaction FEBA

    Hi expert,
    When I load the bank statements in transaction FEBA, the numbering of the bank statements is not sequential.
    How can I make it sequential?
    Thank you.
    Kind regards,
    Linda

    Please note the statement number is normally provided by your bank.
    I would contact your bank to ask why the numbering changed.
    There is normally a check inside SAP that looks at opening statement balance and statement number.
    Perhaps your coder have turned this off. - Please check with them over this.

  • Sybase ASE integrator to Oracle 10g use Synchronous mode?

    I want to use ODI to replicate Sybase ASE data into Oracle 10g, what I've done is using "JKM Sybase simple" and "LKM SQL to SQL" and "IKM Oracle Incremental Update", then create a interface, create a scenario, create a scheduling running in Scheduler Agent, every 5 seconds get the journalized data from Sybase and refresh to Oracle.
    This is acceptable, but my question is: Can I set this scenario in synchronous mode, not pulling changed data every 5 seconds but instead of pushing changed data to Oracle just after DML committed in Sybase?

    No, not the current workbench. We will be bringing out support for Sybase 15 in SQL Developer at the next release.
    You could try bringing the db down to 12 if that was an option and then migrate from that.
    Barry

  • What is synchronous mode

    while doing transport request import option called synchronous and asynchronous,what does it mean,which work process is utilised in what mode

    Hi Muddana,
    When you are doing import in synchronous mode then the work process used for import  is not released and is blocked until the import is over. it is a different thing whether import is successful or unsuccessful.
    In case of asynchronous mode no such blocking takes place.
    Please award points accordingly.
    Regards.
    Ruchit.

Maybe you are looking for