Author: dasarath
Date: Fri Dec 30 19:57:21 2005
New Revision: 360230

URL: http://svn.apache.org/viewcvs?rev=360230&view=rev
Log: (empty)

Removed:
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AT.java
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATManager.java
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATOutHandler.java
Modified:
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AT2PCStatus.java
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AT2PCStatus.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AT2PCStatus.java?rev=360230&r1=360229&r2=360230&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AT2PCStatus.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/AT2PCStatus.java
 Fri Dec 30 19:57:21 2005
@@ -8,7 +8,7 @@
 
 /**
  * @author Dasarath Weeratunge
- * 
+ *  
  */
 public class AT2PCStatus {
        public static final int NONE = 0;
@@ -16,28 +16,32 @@
        public static final int ACTIVE = 1;
 
        public static final int PREPARING_VOLATILE = 2;
-       
+
        public static final int PREPARING_DURABLE = 3;
 
-       public static final int COMMITTING = 5;
+       public static final int PREPARING = 4;
+
+       public static final int PREPARED = 5;
 
-       public static final int ABORTING = 6;
+       public static final int COMMITTING = 6;
+
+       public static final int ABORTING = 7;
 
-       public static final int ENDED = 7;
-       
        private static Field[] flds = AT2PCStatus.class.getDeclaredFields();
 
        public static String getStatusName(int status) {
-               String statusName = null;
-
                try {
                        for (int i = 0; i < flds.length; i++) {
+                               System.out.println(flds[i].getName() + " "
+                                               + flds[i].getInt(null) + " " + 
status);
                                if (flds[i].getInt(null) == status)
-                                       statusName = flds[i].getName();
+                                       return flds[i].getName();
                        }
+               } catch (IllegalArgumentException e) {
+                       throw e;
                } catch (Exception e) {
-                       statusName = null;
+                       e.printStackTrace();
                }
-               return statusName;
+               throw new IllegalArgumentException();
        }
 }

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java?rev=360230&r1=360229&r2=360230&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/at/ATCoordinatorImpl.java
 Fri Dec 30 19:57:21 2005
@@ -25,6 +25,7 @@
 import org.apache.ws.transaction.coordinator.CoordinationService;
 import org.apache.ws.transaction.coordinator.CoordinatorImpl;
 import 
org.apache.ws.transaction.coordinator.InvalidCoordinationProtocolException;
+import org.apache.ws.transaction.coordinator.TimedOutException;
 import org.apache.ws.transaction.wsat.Notification;
 
 /**
@@ -35,9 +36,9 @@
 
        int status = AT2PCStatus.NONE;
 
-       private static final int VOLATILE_2PC = 0;
+       private static final int VOLATILE = 0;
 
-       private static final int DURABLE_2PC = 1;
+       private static final int DURABLE = 1;
 
        Map participants2PC[] = new Map[2];
 
@@ -45,11 +46,11 @@
 
        List participantsComp = Collections.synchronizedList(new ArrayList());
 
-       public static final int MAX_ITERS = 3;
+       public static final int MAX_RETRIES = 3;
 
-       public static final int ITER_DELAY = 15 * 1000;
+       public static final int RETRY_DELAY_MILLIS = 15 * 1000;
 
-       public static final int RESPONSE_DELAY = 3 * 1000;
+       public static final int RESPONSE_DELAY_MILLIS = 3 * 1000;
 
        public ATCoordinatorImpl() throws MalformedURIException {
                super(COORDINATION_TYPE_ID);
@@ -58,8 +59,8 @@
                        participants2PC[i] = Collections.synchronizedMap(new 
HashMap());
        }
 
-       public EndpointReference register(String prot,
-                       EndpointReference pps) throws 
InvalidCoordinationProtocolException {
+       public EndpointReference register(String prot, EndpointReference pps)
+                       throws InvalidCoordinationProtocolException {
                if (!(status == AT2PCStatus.ACTIVE || status == 
AT2PCStatus.PREPARING_VOLATILE))
                        throw new IllegalStateException();
                CoordinationService cs = CoordinationService.getInstance();
@@ -75,9 +76,9 @@
                        UUIDGen gen = UUIDGenFactory.getUUIDGen();
                        ref = "uuid:" + gen.nextUUID();
                        if (prot.equals(PROTOCOL_ID_VOLATILE_2PC))
-                               participants2PC[VOLATILE_2PC].put(ref, pps);
+                               participants2PC[VOLATILE].put(ref, pps);
                        else if (prot.equals(PROTOCOL_ID_DURABLE_2PC))
-                               participants2PC[DURABLE_2PC].put(ref, pps);
+                               participants2PC[DURABLE].put(ref, pps);
                        else
                                throw new 
InvalidCoordinationProtocolException();
                        epr = cs.getCoordinatorService(this, ref);
@@ -86,8 +87,8 @@
        }
 
        public void forget2PC(String ref) {
-               if (participants2PC[VOLATILE_2PC].remove(ref) == null)
-                       participants2PC[DURABLE_2PC].remove(ref);
+               if (participants2PC[VOLATILE].remove(ref) == null)
+                       participants2PC[DURABLE].remove(ref);
        }
 
        public void rollback() {
@@ -101,7 +102,7 @@
 
                case AT2PCStatus.COMMITTING:
                case AT2PCStatus.ABORTING:
-               case AT2PCStatus.ENDED:
+               case AT2PCStatus.NONE:
                }
        }
 
@@ -121,8 +122,7 @@
                        forget2PC(ref);
                        return;
 
-               case AT2PCStatus.ENDED:
-                       return;
+               case AT2PCStatus.NONE:
                }
        }
 
@@ -141,8 +141,7 @@
                        forget2PC(ref);
                        return;
 
-               case AT2PCStatus.ENDED:
-                       return;
+               case AT2PCStatus.NONE:
                }
        }
 
@@ -155,27 +154,33 @@
                        return;
 
                case AT2PCStatus.COMMITTING:
-                       EndpointReference epr = get2PCEndpointReference(ref);
+                       EndpointReference epr = getEpr(ref);
                        try {
                                new ParticipantStub(epr).commitOperation(null);
                        } catch (Exception e) {
-                               // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        return;
 
                case AT2PCStatus.ABORTING:
-                       epr = get2PCEndpointReference(ref);
+                       epr = getEpr(ref);
                        try {
                                new 
ParticipantStub(epr).rollbackOperation(null);
                        } catch (Exception e) {
-                               // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        return;
 
-               case AT2PCStatus.ENDED:
-                       return;
+               case AT2PCStatus.NONE:
+                       epr = (EndpointReference) 
participants2PC[VOLATILE].get(ref);
+                       if (epr != null)
+                               throw new IllegalStateException();
+                       epr = (EndpointReference) 
participants2PC[DURABLE].get(ref);
+                       try {
+                               new 
ParticipantStub(epr).rollbackOperation(null);
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
                }
        }
 
@@ -191,28 +196,34 @@
                        return;
 
                case AT2PCStatus.COMMITTING:
-                       EndpointReference epr = get2PCEndpointReference(ref);
+                       EndpointReference epr = getEpr(ref);
                        try {
                                new ParticipantStub(epr).commitOperation(null);
                        } catch (Exception e) {
-                               // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        return;
 
                case AT2PCStatus.ABORTING:
-                       epr = get2PCEndpointReference(ref);
+                       epr = getEpr(ref);
                        try {
                                new 
ParticipantStub(epr).rollbackOperation(null);
                        } catch (Exception e) {
-                               // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        forget2PC(ref);
                        return;
 
-               case AT2PCStatus.ENDED:
-                       return;
+               case AT2PCStatus.NONE:
+                       epr = (EndpointReference) 
participants2PC[VOLATILE].get(ref);
+                       if (epr != null)
+                               throw new IllegalStateException();
+                       epr = (EndpointReference) 
participants2PC[DURABLE].get(ref);
+                       try {
+                               new 
ParticipantStub(epr).rollbackOperation(null);
+                       } catch (Exception e) {
+                               e.printStackTrace();
+                       }
                }
        }
 
@@ -231,15 +242,14 @@
                case AT2PCStatus.ABORTING:
                        throw new IllegalStateException();
 
-               case AT2PCStatus.ENDED:
-                       return;
+               case AT2PCStatus.NONE:
                }
        }
 
-       private EndpointReference get2PCEndpointReference(String ref) {
-               EndpointReference epr = (EndpointReference) 
participants2PC[VOLATILE_2PC].get(ref);
+       private EndpointReference getEpr(String ref) {
+               EndpointReference epr = (EndpointReference) 
participants2PC[VOLATILE].get(ref);
                if (epr == null)
-                       epr = (EndpointReference) 
participants2PC[DURABLE_2PC].get(ref);
+                       epr = (EndpointReference) 
participants2PC[DURABLE].get(ref);
                return epr;
        }
 
@@ -247,9 +257,9 @@
                int iters = 0;
                int status_old = status;
 
-               while (iters < MAX_ITERS) {
+               while (iters < MAX_RETRIES) {
                        if (iters++ > 0)
-                               pause(ITER_DELAY - RESPONSE_DELAY);
+                               pause(RETRY_DELAY_MILLIS - 
RESPONSE_DELAY_MILLIS);
 
                        Iterator iter = 
participants2PC[prot].values().iterator();
                        while (iter.hasNext()) {
@@ -258,12 +268,11 @@
                                try {
                                        new ParticipantStub((EndpointReference) 
iter.next()).prepareOperation(null);
                                } catch (Exception e) {
-                                       // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
 
-                       pause(RESPONSE_DELAY);
+                       pause(RESPONSE_DELAY_MILLIS);
 
                        if 
(prepared.containsAll(participants2PC[prot].keySet()))
                                return status == status_old;
@@ -274,11 +283,11 @@
 
        private boolean prepare() {
                status = AT2PCStatus.PREPARING_VOLATILE;
-               if (!prepare(VOLATILE_2PC))
+               if (!prepare(VOLATILE))
                        return false;
 
                status = AT2PCStatus.PREPARING_DURABLE;
-               return prepare(DURABLE_2PC);
+               return prepare(DURABLE);
        }
 
        public void commit() {
@@ -290,7 +299,7 @@
                case AT2PCStatus.PREPARING_DURABLE:
                case AT2PCStatus.COMMITTING:
                case AT2PCStatus.ABORTING:
-               case AT2PCStatus.ENDED:
+               case AT2PCStatus.NONE:
                        return;
                }
 
@@ -313,13 +322,12 @@
 
        private void terminate() {
                int iters = 0;
-               while (iters < MAX_ITERS
-                               && !(participants2PC[VOLATILE_2PC].isEmpty() && 
participants2PC[DURABLE_2PC].isEmpty())) {
+               while (iters < MAX_RETRIES
+                               && !(participants2PC[VOLATILE].isEmpty() && 
participants2PC[DURABLE].isEmpty())) {
                        if (iters++ > 0)
-                               pause(ITER_DELAY - RESPONSE_DELAY);
+                               pause(RETRY_DELAY_MILLIS - 
RESPONSE_DELAY_MILLIS);
 
-                       for (int prot = VOLATILE_2PC; prot == VOLATILE_2PC
-                                       || prot == DURABLE_2PC; prot = prot == 
VOLATILE_2PC ? DURABLE_2PC
+                       for (int prot = VOLATILE; prot == VOLATILE || prot == 
DURABLE; prot = prot == VOLATILE ? DURABLE
                                        : -1) {
                                Iterator iter = 
participants2PC[prot].values().iterator();
                                while (iter.hasNext())
@@ -330,18 +338,16 @@
                                                        
p.rollbackOperation(null);
                                                else
                                                        p.commitOperation(null);
-                                       } catch (Exception e1) {
-                                               // TODO Auto-generated catch 
block
-                                               e1.printStackTrace();
+                                       } catch (Exception e) {
+                                               e.printStackTrace();
                                        }
-
                        }
 
-                       pause(RESPONSE_DELAY);
+                       pause(RESPONSE_DELAY_MILLIS);
                }
 
-               if (participants2PC[VOLATILE_2PC].isEmpty()
-                               && participants2PC[DURABLE_2PC].isEmpty()) {
+               if (participants2PC[VOLATILE].isEmpty()
+                               && participants2PC[DURABLE].isEmpty()) {
                        Iterator iter = participantsComp.iterator();
                        while (iter.hasNext())
                                try {
@@ -352,12 +358,11 @@
                                        else
                                                p.committedOperation(null);
                                } catch (Exception e) {
-                                       // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                }
 
-               status = AT2PCStatus.ENDED;
+               status = AT2PCStatus.NONE;
        }
 
        public synchronized void preparedOperation(Notification parameters)
@@ -403,6 +408,10 @@
        }
 
        public synchronized void timeout() {
+               System.out.println("[ATCoordinatorImpl] timeout " + 
AT2PCStatus.getStatusName(status));
+               if (status == AT2PCStatus.NONE)
+                       return;
                rollback();
+               throw new TimedOutException();          
        }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to