KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > rmi > RmiDXAResource


1 package com.daffodilwoods.rmi;
2
3 import com.daffodilwoods.rmi.interfaces._RmiDXAResource;
4 import com.daffodilwoods.daffodildb.server.serversystem._Connection;
5 import javax.transaction.xa.Xid JavaDoc;
6 import java.util.Properties JavaDoc;
7 import javax.transaction.xa.XAException JavaDoc;
8 import com.daffodilwoods.daffodildb.server.serversystem._DXAResource;
9 import java.rmi.RemoteException JavaDoc;
10 import com.daffodilwoods.database.utility.P;
11 import com.daffodilwoods.rmi.interfaces._RmiConnection;
12
13
14 public class RmiDXAResource implements _DXAResource {
15    _RmiDXAResource dxaResource_Interface;
16
17    public RmiDXAResource(_RmiDXAResource dxaResource0){
18       dxaResource_Interface = dxaResource0;
19    }
20
21    public _Connection start(Xid JavaDoc xid, int flags, Properties JavaDoc prop) throws XAException JavaDoc {
22       try {
23          xid = getServerXID(xid);
24          return new RmiConnection(dxaResource_Interface.start(xid,flags,prop));
25       }
26       catch (RemoteException JavaDoc re) {
27          throw new RuntimeException JavaDoc(re.getMessage());
28       }
29    }
30    public void end(Xid JavaDoc xid, int flags) throws XAException JavaDoc {
31       try {
32          xid = getServerXID(xid);
33          dxaResource_Interface.end(xid,flags);
34       }
35       catch (RemoteException JavaDoc re) {
36          throw new RuntimeException JavaDoc(re.getMessage());
37       }
38    }
39    public void forget(Xid JavaDoc xid) throws XAException JavaDoc {
40       try {
41          xid = getServerXID(xid);
42          dxaResource_Interface.forget(xid);
43       }
44       catch (RemoteException JavaDoc re) {
45          throw new RuntimeException JavaDoc(re.getMessage());
46       }
47    }
48    public void commit(Xid JavaDoc xid) throws XAException JavaDoc {
49       try {
50          xid = getServerXID(xid);
51          dxaResource_Interface.commit(xid);
52       }
53       catch (RemoteException JavaDoc re) {
54          throw new RuntimeException JavaDoc(re.getMessage());
55       }
56    }
57    public int prepare(Xid JavaDoc xid) throws XAException JavaDoc {
58       try {
59          xid = getServerXID(xid);
60          return dxaResource_Interface.prepare(xid);
61       }
62       catch (RemoteException JavaDoc re) {
63          throw new RuntimeException JavaDoc(re.getMessage());
64       }
65    }
66    public int makePersistent(Xid JavaDoc xid) throws XAException JavaDoc {
67       try {
68          xid = getServerXID(xid);
69          return dxaResource_Interface.makePersistent(xid);
70       }
71       catch (RemoteException JavaDoc re) {
72          throw new RuntimeException JavaDoc(re.getMessage());
73       }
74    }
75    public void rollback(Xid JavaDoc xid) throws XAException JavaDoc {
76       try {
77          xid = getServerXID(xid);
78          dxaResource_Interface.rollback(xid);
79       }
80       catch (RemoteException JavaDoc re) {
81          throw new RuntimeException JavaDoc(re.getMessage());
82       }
83    }
84
85    private Xid JavaDoc getServerXID(Xid JavaDoc xid){
86       return xid;// new DBXID(xid);
87
}
88    public boolean inGlobalTransaction() {
89       try {
90          return dxaResource_Interface.inGlobalTransaction();
91       }
92       catch (RemoteException JavaDoc ex) {
93          return false;
94       }
95    }
96    public void close() {
97       try {
98          dxaResource_Interface.close();
99       }
100       catch (RemoteException JavaDoc ex) {
101       }
102    }
103 }
104
105 /*class DBXID implements Xid,java.io.Serializable{
106
107    int formatID;
108    byte[] globalTransactionId;
109    byte[] branchQualifier;
110    int hashCode = 1;
111
112    DBXID(Xid xid){
113       formatID = xid.getFormatId();
114       globalTransactionId = xid.getGlobalTransactionId();
115       branchQualifier = xid.getBranchQualifier();
116       hashCode = formatID;
117       for (int i = 0; i < globalTransactionId.length; i++) {
118          hashCode = 31*hashCode + (int)globalTransactionId[i];
119       }
120
121    }
122    public String toString() {
123       return "Dxid :: "+ formatID + globalTransactionId[0] +globalTransactionId[1];// +globalTid[2] + globalTid[3];
124    }
125
126
127    public int getFormatId() {
128       return formatID;
129    }
130
131    public byte[] getGlobalTransactionId() {
132       return globalTransactionId;
133    }
134
135    public byte[] getBranchQualifier() {
136       return branchQualifier;
137    }
138
139    public int hashCode(){
140       return hashCode;
141    }
142
143    public boolean equals(Object o) {
144       if(o == null || !(o instanceof DBXID))
145          return false;
146       if(formatID != ((Xid)o).getFormatId())
147          return false;
148       if(!byteArrayComparator(((Xid)o).getGlobalTransactionId(),globalTransactionId))
149          return false;
150       if(!byteArrayComparator(((Xid)o).getBranchQualifier(),branchQualifier))
151          return false;
152       return true;
153    }
154
155    private boolean byteArrayComparator(byte[] b1, byte[] b2) {
156       int len = b1.length;
157       if(len != b2.length)
158          return false;
159       int i=0;
160       while( b1[i] == b2[i] ) {
161          i++;
162          if (i >=len)
163             return true;
164       }
165       return false;
166    }
167 }*/

168
Popular Tags