[jboss-svn-commits] JBL Code SVN: r24886 - in labs/jbosstm/trunk/XTS/WS-T/dev: src10/org/jboss/jbossts/xts10/recovery/participant/at and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 23 07:12:19 EST 2009
Author: adinn
Date: 2009-01-23 07:12:19 -0500 (Fri, 23 Jan 2009)
New Revision: 24886
Modified:
labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java
labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java
labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/at/ATParticipantRecoveryRecord.java
labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/ba/BAParticipantRecoveryRecord.java
labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/CoordinatorCompletionParticipantEngine.java
labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/ParticipantCompletionParticipantEngine.java
labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/at/ATParticipantRecoveryRecord.java
labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/ba/BAParticipantRecoveryRecord.java
Log:
ensured participants reinitiate contact with the coordinator during recovery - fixes JBTM-478
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngine.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -436,6 +436,34 @@
}
/**
+ * Handle the recovery event.
+ *
+ * Active -> Active (invalid state)
+ * Canceling -> Canceling (invalid state)
+ * Completed -> Completed (resend completed)
+ * Closing -> Closing (invalid state)
+ * Compensating -> Compensating (invalid state)
+ * Faulting -> Ended
+ * Faulting-Active -> Ended
+ * Faulting-Compensating -> Ended
+ * Exiting -> Exiting (invalid state)
+ * Ended -> Ended (invalid state)
+ */
+ public void recovery()
+ {
+ final State current ;
+ synchronized(this)
+ {
+ current = state ;
+ }
+
+ if (current == State.STATE_COMPLETED)
+ {
+ sendCompleted();
+ }
+ }
+
+ /**
* Handle the soap fault event.
* @param soapFault The soap fault.
* @param addressingContext The addressing context.
@@ -499,7 +527,7 @@
}
if (current == State.STATE_COMPLETING) {
// ok we need to write the participant details to disk because it has just completed
- BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, true, coordinator);
+ BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, false, coordinator);
if (!XTSBARecoveryManager.getRecoveryManager().writeParticipantRecoveryRecord(recoveryRecord)) {
// hmm, could not write entry log warning
@@ -1089,7 +1117,7 @@
if (current == State.STATE_COMPLETING)
{
// ok we need to write the participant details to disk because it has just completed
- BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, true, coordinator);
+ BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, false, coordinator);
if (!XTSBARecoveryManager.getRecoveryManager().writeParticipantRecoveryRecord(recoveryRecord)) {
// hmm, could not write entry log warning
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src10/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngine.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -374,6 +374,34 @@
}
/**
+ * Handle the recovery event.
+ *
+ * Active -> Active (invalid state)
+ * Canceling -> Canceling (invalid state)
+ * Completed -> Completed (resend completed)
+ * Closing -> Closing (invalid state)
+ * Compensating -> Compensating (invalid state)
+ * Faulting -> Ended
+ * Faulting-Active -> Ended
+ * Faulting-Compensating -> Ended
+ * Exiting -> Exiting (invalid state)
+ * Ended -> Ended (invalid state)
+ */
+ public void recovery()
+ {
+ final State current ;
+ synchronized(this)
+ {
+ current = state ;
+ }
+
+ if (current == State.STATE_COMPLETED)
+ {
+ sendCompleted();
+ }
+ }
+
+ /**
* Handle the soap fault event.
* @param soapFault The soap fault.
* @param addressingContext The addressing context.
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/at/ATParticipantRecoveryRecord.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/at/ATParticipantRecoveryRecord.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/at/ATParticipantRecoveryRecord.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -78,6 +78,7 @@
public void activate() {
ParticipantEngine engine = new ParticipantEngine(participant, id, State.STATE_PREPARED_SUCCESS, endpoint, true);
ParticipantProcessor.getProcessor().activateParticipant(engine, getId());
+ engine.recovery();
}
/**
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/ba/BAParticipantRecoveryRecord.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/ba/BAParticipantRecoveryRecord.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src10/org/jboss/jbossts/xts10/recovery/participant/ba/BAParticipantRecoveryRecord.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -82,10 +82,12 @@
if (isParticipantCompletion) {
ParticipantCompletionParticipantEngine engine = new ParticipantCompletionParticipantEngine(id, endpoint, participant, State.STATE_COMPLETED, true);
ParticipantCompletionParticipantProcessor.getProcessor().activateParticipant(engine, getId());
+ engine.recovery();
} else {
BusinessAgreementWithCoordinatorCompletionParticipant coordinatorCompletionParticipant = (BusinessAgreementWithCoordinatorCompletionParticipant) participant;
CoordinatorCompletionParticipantEngine engine = new CoordinatorCompletionParticipantEngine(id, endpoint, coordinatorCompletionParticipant, State.STATE_COMPLETED, true);
CoordinatorCompletionParticipantProcessor.getProcessor().activateParticipant(engine, getId());
+ engine.recovery();
}
}
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/CoordinatorCompletionParticipantEngine.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/CoordinatorCompletionParticipantEngine.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/CoordinatorCompletionParticipantEngine.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -475,6 +475,35 @@
}
/**
+ * Handle the recovery event.
+ *
+ * Active -> Active (invalid state)
+ * Canceling -> Canceling (invalid state)
+ * Completed -> Completed (resend completed)
+ * Closing -> Closing (invalid state)
+ * Compensating -> Compensating (invalid state)
+ * Failing-Active -> Failing-Active (invalid state)
+ * Failing-Canceling -> Failing-Canceling (invalid state)
+ * Failing-Compensating -> Failing-Compensating (invalid state)
+ * NotCompleting -> NotCompleting (invalid state)
+ * Exiting -> Exiting (invalid state)
+ * Ended -> Ended (invalid state)
+ */
+ public void recovery()
+ {
+ final State current ;
+ synchronized(this)
+ {
+ current = state ;
+ }
+
+ if (current == State.STATE_COMPLETED)
+ {
+ sendCompleted();
+ }
+ }
+
+ /**
* Handle the soap fault event.
* @param soapFault The soap fault.
* @param addressingProperties The addressing context.
@@ -541,7 +570,7 @@
if (current == State.STATE_COMPLETING) {
// ok we need to write the participant details to disk because it has just completed
- BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, true, coordinator);
+ BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, false, coordinator);
if (!XTSBARecoveryManager.getRecoveryManager().writeParticipantRecoveryRecord(recoveryRecord)) {
// hmm, could not write entry log warning
@@ -1222,7 +1251,7 @@
if (current == State.STATE_COMPLETING)
{
// ok we need to write the participant details to disk because it has just completed
- BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, true, coordinator);
+ BAParticipantRecoveryRecord recoveryRecord = new BAParticipantRecoveryRecord(id, participant, false, coordinator);
if (!XTSBARecoveryManager.getRecoveryManager().writeParticipantRecoveryRecord(recoveryRecord)) {
// hmm, could not write entry log warning
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/ParticipantCompletionParticipantEngine.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/ParticipantCompletionParticipantEngine.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/engines/ParticipantCompletionParticipantEngine.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -402,6 +402,35 @@
}
/**
+ * Handle the recovery event.
+ *
+ * Active -> Active (invalid state)
+ * Canceling -> Canceling (invalid state)
+ * Completed -> Completed (resend completed)
+ * Closing -> Closing (invalid state)
+ * Compensating -> Compensating (invalid state)
+ * Failing-Active -> Failing-Active (invalid state)
+ * Failing-Canceling -> Failing-Canceling (invalid state)
+ * Failing-Compensating -> Failing-Compensating (invalid state)
+ * NotCompleting -> NotCompleting (invalid state)
+ * Exiting -> Exiting (invalid state)
+ * Ended -> Ended (invalid state)
+ */
+ public void recovery()
+ {
+ final State current ;
+ synchronized(this)
+ {
+ current = state ;
+ }
+
+ if (current == State.STATE_COMPLETED)
+ {
+ sendCompleted();
+ }
+ }
+
+ /**
* Handle the soap fault event.
* @param soapFault The soap fault.
* @param addressingProperties The addressing context.
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/at/ATParticipantRecoveryRecord.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/at/ATParticipantRecoveryRecord.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/at/ATParticipantRecoveryRecord.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -65,6 +65,7 @@
public void activate() {
ParticipantEngine engine = new ParticipantEngine(participant, id, State.STATE_PREPARED_SUCCESS, endpoint, true);
ParticipantProcessor.getProcessor().activateParticipant(engine, getId());
+ engine.recovery();
}
/**
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/ba/BAParticipantRecoveryRecord.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/ba/BAParticipantRecoveryRecord.java 2009-01-23 10:23:38 UTC (rev 24885)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/org/jboss/jbossts/xts11/recovery/participant/ba/BAParticipantRecoveryRecord.java 2009-01-23 12:12:19 UTC (rev 24886)
@@ -69,10 +69,12 @@
if (isParticipantCompletion) {
ParticipantCompletionParticipantEngine engine = new ParticipantCompletionParticipantEngine(id, endpoint, participant, State.STATE_COMPLETED, true);
ParticipantCompletionParticipantProcessor.getProcessor().activateParticipant(engine, getId());
+ engine.recovery();
} else {
BusinessAgreementWithCoordinatorCompletionParticipant coordinatorCompletionParticipant = (BusinessAgreementWithCoordinatorCompletionParticipant) participant;
CoordinatorCompletionParticipantEngine engine = new CoordinatorCompletionParticipantEngine(id, endpoint, coordinatorCompletionParticipant, State.STATE_COMPLETED, true);
CoordinatorCompletionParticipantProcessor.getProcessor().activateParticipant(engine, getId());
+ engine.recovery();
}
}
More information about the jboss-svn-commits
mailing list