title: Oracle ALTER SESSION ADVISE COMMIT?
body: <p>My app to recovers automatically from failures. I test it as follows:</p>
  
  <ol>
  <li>Start app</li>
  <li>In the middle of processing, kill the application server host (shutdown -r -f)</li>
  <li>On host reboot, application server restarts (as a windows service)</li>
  <li>Application restarts</li>
  <li>Application tries to process, but is blocked by incomplete 2-phase commit transaction in Oracle DB from previous session.</li>
  <li>Somewhere between 10 and 30 minutes later the DB resolves the prior txn and processing continues OK.</li>
  </ol>
  
  <p>I need it to continue processing faster than this. My DBA advises that I should prefix my statement with</p>
  
  <pre><code>ALTER SESSION ADVISE COMMIT;
  </code></pre>
  
  <p>But he can't give me guarantees or details about the potential for data loss doing this.</p>
  
  <p>Luckily the statement in question is simply updating a <code>datetime</code> value to <code>SYSDATE</code> every second or so, so if there was some data corruption it would last &lt; 1 second before it was overwritten.</p>
  
  <p>But, to my question. What exactly does the statement above do? How does Oracle resolve data synchronisation issues when it is used?</p>