KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > tm > test > TransactionManagerUnitTestCase


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2005, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package org.jboss.test.tm.test;
23
24 import javax.management.ObjectName JavaDoc;
25 import javax.transaction.RollbackException JavaDoc;
26 import javax.transaction.Status JavaDoc;
27 import javax.transaction.xa.XAException JavaDoc;
28 import javax.transaction.xa.XAResource JavaDoc;
29
30 import junit.framework.Test;
31
32 import org.jboss.test.JBossTestCase;
33 import org.jboss.test.JBossTestSetup;
34 import org.jboss.test.tm.resource.Operation;
35 import org.jboss.test.tm.resource.Resource;
36
37 /**
38  * Tests for the transaction manager
39  * @author Adrian@jboss.org
40  * @version $Revision: 41193 $
41  */

42 public class TransactionManagerUnitTestCase
43    extends JBossTestCase
44 {
45    static String JavaDoc[] SIG = new String JavaDoc[] { String JavaDoc.class.getName(), new Operation[0].getClass().getName() };
46
47    ObjectName JavaDoc tmMBean;
48
49    public TransactionManagerUnitTestCase(String JavaDoc name)
50    {
51       super(name);
52
53       try
54       {
55          tmMBean = new ObjectName JavaDoc("jboss.test:test=TransactionManagerUnitTestCase");
56       }
57       catch (Exception JavaDoc e)
58       {
59          throw new RuntimeException JavaDoc(e.toString());
60       }
61    }
62
63    public void runTest(Operation[] ops) throws Exception JavaDoc
64    {
65       getServer().invoke(tmMBean, "testOperations", new Object JavaDoc[] { getName(), ops }, SIG);
66    }
67
68    public static Test suite() throws Exception JavaDoc
69    {
70       return new JBossTestSetup(getDeploySetup(TransactionManagerUnitTestCase.class, "tmtest.sar"));
71    }
72
73    public void testNoResourcesCommit() throws Exception JavaDoc
74    {
75       runTest(new Operation[]
76       {
77          new Operation(Operation.BEGIN, 1),
78          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
79          new Operation(Operation.COMMIT, 1),
80       });
81    }
82
83    public void testNoResourcesRollback() throws Exception JavaDoc
84    {
85       runTest(new Operation[]
86       {
87          new Operation(Operation.BEGIN, 1),
88          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
89          new Operation(Operation.ROLLBACK, 1),
90       });
91    }
92
93    public void testNoResourcesSuspendResume() throws Exception JavaDoc
94    {
95       runTest(new Operation[]
96       {
97          new Operation(Operation.BEGIN, 1),
98          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
99          new Operation(Operation.SUSPEND, 1),
100          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
101          new Operation(Operation.RESUME, 1),
102          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
103          new Operation(Operation.COMMIT, 1),
104       });
105    }
106
107    public void testOneResourceCommit() throws Exception JavaDoc
108    {
109       runTest(new Operation[]
110       {
111          new Operation(Operation.BEGIN, 1),
112          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
113          new Operation(Operation.CREATE, 1),
114          new Operation(Operation.ENLIST, 1),
115          new Operation(Operation.STATE, 1, Resource.ACTIVE),
116          new Operation(Operation.COMMIT, 1),
117          new Operation(Operation.STATE, 1, Resource.COMMITTED),
118       });
119    }
120
121    public void testOneResourceRollback() throws Exception JavaDoc
122    {
123       runTest(new Operation[]
124       {
125          new Operation(Operation.BEGIN, 1),
126          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
127          new Operation(Operation.CREATE, 1),
128          new Operation(Operation.ENLIST, 1),
129          new Operation(Operation.STATE, 1, Resource.ACTIVE),
130          new Operation(Operation.ROLLBACK, 1),
131          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
132       });
133    }
134
135    public void testOneResourceSetRollback() throws Exception JavaDoc
136    {
137       runTest(new Operation[]
138       {
139          new Operation(Operation.BEGIN, 1),
140          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
141          new Operation(Operation.CREATE, 1),
142          new Operation(Operation.ENLIST, 1),
143          new Operation(Operation.STATE, 1, Resource.ACTIVE),
144          new Operation(Operation.SETROLLBACK, 1),
145          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
146          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
147          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
148       });
149    }
150
151    public void testLocalResourceCommit() throws Exception JavaDoc
152    {
153       runTest(new Operation[]
154       {
155          new Operation(Operation.BEGIN, 1),
156          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
157          new Operation(Operation.CREATE_LOCAL, 1),
158          new Operation(Operation.ENLIST, 1),
159          new Operation(Operation.STATE, 1, Resource.ACTIVE),
160          new Operation(Operation.COMMIT, 1),
161          new Operation(Operation.STATE, 1, Resource.COMMITTED),
162       });
163    }
164
165    public void testLocalResourceRollback() throws Exception JavaDoc
166    {
167       runTest(new Operation[]
168       {
169          new Operation(Operation.BEGIN, 1),
170          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
171          new Operation(Operation.CREATE_LOCAL, 1),
172          new Operation(Operation.ENLIST, 1),
173          new Operation(Operation.STATE, 1, Resource.ACTIVE),
174          new Operation(Operation.ROLLBACK, 1),
175          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
176       });
177    }
178
179    public void testLocalResourceSetRollback() throws Exception JavaDoc
180    {
181       runTest(new Operation[]
182       {
183          new Operation(Operation.BEGIN, 1),
184          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
185          new Operation(Operation.CREATE_LOCAL, 1),
186          new Operation(Operation.ENLIST, 1),
187          new Operation(Operation.STATE, 1, Resource.ACTIVE),
188          new Operation(Operation.SETROLLBACK, 1),
189          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
190          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
191          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
192       });
193    }
194
195    public void testLocalResourceCommitFail() throws Exception JavaDoc
196    {
197       runTest(new Operation[]
198       {
199          new Operation(Operation.BEGIN, 1),
200          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
201          new Operation(Operation.CREATE_LOCAL, 1),
202          new Operation(Operation.ENLIST, 1),
203          new Operation(Operation.STATE, 1, Resource.ACTIVE),
204          new Operation(Operation.FAIL_LOCAL, 1),
205          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
206          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
207       });
208    }
209
210    public void testTwoResourceSameRMCommit() throws Exception JavaDoc
211    {
212       runTest(new Operation[]
213       {
214          new Operation(Operation.BEGIN, 1),
215          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
216          new Operation(Operation.CREATE, 1),
217          new Operation(Operation.ENLIST, 1),
218          new Operation(Operation.STATE, 1, Resource.ACTIVE),
219          new Operation(Operation.CREATE, 2),
220          new Operation(Operation.ENLIST, 2),
221          new Operation(Operation.STATE, 2, Resource.ACTIVE),
222          new Operation(Operation.COMMIT, 1),
223          new Operation(Operation.STATE, 1, Resource.COMMITTED),
224          new Operation(Operation.STATE, 2, Resource.COMMITTED),
225       });
226    }
227
228    public void testTwoResourceSameRMRollback() throws Exception JavaDoc
229    {
230       runTest(new Operation[]
231       {
232          new Operation(Operation.BEGIN, 1),
233          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
234          new Operation(Operation.CREATE, 1),
235          new Operation(Operation.ENLIST, 1),
236          new Operation(Operation.STATE, 1, Resource.ACTIVE),
237          new Operation(Operation.CREATE, 2),
238          new Operation(Operation.ENLIST, 2),
239          new Operation(Operation.STATE, 2, Resource.ACTIVE),
240          new Operation(Operation.ROLLBACK, 1),
241          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
242          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
243       });
244    }
245
246    public void testTwoResourceSameRMSetRollback() throws Exception JavaDoc
247    {
248       runTest(new Operation[]
249       {
250          new Operation(Operation.BEGIN, 1),
251          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
252          new Operation(Operation.CREATE, 1),
253          new Operation(Operation.ENLIST, 1),
254          new Operation(Operation.STATE, 1, Resource.ACTIVE),
255          new Operation(Operation.CREATE, 2),
256          new Operation(Operation.ENLIST, 2),
257          new Operation(Operation.STATE, 2, Resource.ACTIVE),
258          new Operation(Operation.SETROLLBACK, 1),
259          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
260          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
261          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
262          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
263       });
264    }
265
266    public void testTwoResourceDifferentRMCommitOneReadOnly() throws Exception JavaDoc
267    {
268       runTest(new Operation[]
269       {
270          new Operation(Operation.BEGIN, 1),
271          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
272          new Operation(Operation.CREATE, 1),
273          new Operation(Operation.ENLIST, 1),
274          new Operation(Operation.STATE, 1, Resource.ACTIVE),
275          new Operation(Operation.SETSTATUS, 1, XAResource.XA_RDONLY),
276          new Operation(Operation.CREATE, 2),
277          new Operation(Operation.ENLIST, 2),
278          new Operation(Operation.DIFFRM, 2),
279          new Operation(Operation.STATE, 2, Resource.ACTIVE),
280          new Operation(Operation.COMMIT, 1),
281          new Operation(Operation.STATE, 1, Resource.PREPARED),
282          new Operation(Operation.STATE, 2, Resource.COMMITTED),
283       });
284    }
285
286    public void testTwoResourceDifferentRMRollbackOneReadOnly() throws Exception JavaDoc
287    {
288       runTest(new Operation[]
289       {
290          new Operation(Operation.BEGIN, 1),
291          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
292          new Operation(Operation.CREATE, 1),
293          new Operation(Operation.ENLIST, 1),
294          new Operation(Operation.STATE, 1, Resource.ACTIVE),
295          new Operation(Operation.SETSTATUS, 1, XAResource.XA_RDONLY),
296          new Operation(Operation.CREATE, 2),
297          new Operation(Operation.ENLIST, 2),
298          new Operation(Operation.DIFFRM, 2),
299          new Operation(Operation.STATE, 2, Resource.ACTIVE),
300          new Operation(Operation.ROLLBACK, 1),
301          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
302          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
303       });
304    }
305
306    public void testTwoResourceDifferentRMSetRollbackOneReadOnly() throws Exception JavaDoc
307    {
308       runTest(new Operation[]
309       {
310          new Operation(Operation.BEGIN, 1),
311          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
312          new Operation(Operation.CREATE, 1),
313          new Operation(Operation.ENLIST, 1),
314          new Operation(Operation.STATE, 1, Resource.ACTIVE),
315          new Operation(Operation.SETSTATUS, 1, XAResource.XA_RDONLY),
316          new Operation(Operation.CREATE, 2),
317          new Operation(Operation.ENLIST, 2),
318          new Operation(Operation.DIFFRM, 2),
319          new Operation(Operation.STATE, 2, Resource.ACTIVE),
320          new Operation(Operation.SETROLLBACK, 1),
321          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
322          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
323          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
324          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
325       });
326    }
327
328    public void testTwoResourceOneLocalCommitOneReadOnly() throws Exception JavaDoc
329    {
330       runTest(new Operation[]
331       {
332          new Operation(Operation.BEGIN, 1),
333          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
334          new Operation(Operation.CREATE_LOCAL, 1),
335          new Operation(Operation.ENLIST, 1),
336          new Operation(Operation.STATE, 1, Resource.ACTIVE),
337          new Operation(Operation.CREATE, 2),
338          new Operation(Operation.ENLIST, 2),
339          new Operation(Operation.STATE, 2, Resource.ACTIVE),
340          new Operation(Operation.SETSTATUS, 2, XAResource.XA_RDONLY),
341          new Operation(Operation.COMMIT, 1),
342          new Operation(Operation.STATE, 1, Resource.COMMITTED),
343          new Operation(Operation.STATE, 2, Resource.PREPARED),
344       });
345    }
346
347    public void testTwoResourceOneLocalRollbackOneReadOnly() throws Exception JavaDoc
348    {
349       runTest(new Operation[]
350       {
351          new Operation(Operation.BEGIN, 1),
352          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
353          new Operation(Operation.CREATE_LOCAL, 1),
354          new Operation(Operation.ENLIST, 1),
355          new Operation(Operation.STATE, 1, Resource.ACTIVE),
356          new Operation(Operation.CREATE, 2),
357          new Operation(Operation.ENLIST, 2),
358          new Operation(Operation.STATE, 2, Resource.ACTIVE),
359          new Operation(Operation.SETSTATUS, 2, XAResource.XA_RDONLY),
360          new Operation(Operation.ROLLBACK, 1),
361          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
362          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
363       });
364    }
365
366    public void testTwoResourceOneLocalSetRollbackOneReadOnly() throws Exception JavaDoc
367    {
368       runTest(new Operation[]
369       {
370          new Operation(Operation.BEGIN, 1),
371          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
372          new Operation(Operation.CREATE_LOCAL, 1),
373          new Operation(Operation.ENLIST, 1),
374          new Operation(Operation.STATE, 1, Resource.ACTIVE),
375          new Operation(Operation.CREATE, 2),
376          new Operation(Operation.ENLIST, 2),
377          new Operation(Operation.STATE, 2, Resource.ACTIVE),
378          new Operation(Operation.SETSTATUS, 2, XAResource.XA_RDONLY),
379          new Operation(Operation.SETROLLBACK, 1),
380          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
381          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
382          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
383          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
384       });
385    }
386
387    public void testTwoResourceOneLocalCommitFailOneReadOnly() throws Exception JavaDoc
388    {
389       runTest(new Operation[]
390       {
391          new Operation(Operation.BEGIN, 1),
392          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
393          new Operation(Operation.CREATE_LOCAL, 1),
394          new Operation(Operation.ENLIST, 1),
395          new Operation(Operation.STATE, 1, Resource.ACTIVE),
396          new Operation(Operation.CREATE, 2),
397          new Operation(Operation.ENLIST, 2),
398          new Operation(Operation.STATE, 2, Resource.ACTIVE),
399          new Operation(Operation.SETSTATUS, 2, XAResource.XA_RDONLY),
400          new Operation(Operation.FAIL_LOCAL, 1),
401          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
402          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
403          new Operation(Operation.STATE, 2, Resource.PREPARED),
404       });
405    }
406
407    public void testTwoResourceDifferentRMCommit() throws Exception JavaDoc
408    {
409       runTest(new Operation[]
410       {
411          new Operation(Operation.BEGIN, 1),
412          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
413          new Operation(Operation.CREATE, 1),
414          new Operation(Operation.ENLIST, 1),
415          new Operation(Operation.STATE, 1, Resource.ACTIVE),
416          new Operation(Operation.CREATE, 2),
417          new Operation(Operation.ENLIST, 2),
418          new Operation(Operation.DIFFRM, 2),
419          new Operation(Operation.STATE, 2, Resource.ACTIVE),
420          new Operation(Operation.COMMIT, 1),
421          new Operation(Operation.STATE, 1, Resource.COMMITTED),
422          new Operation(Operation.STATE, 2, Resource.COMMITTED),
423       });
424    }
425
426    public void testTwoResourceDifferentRMRollback() throws Exception JavaDoc
427    {
428       runTest(new Operation[]
429       {
430          new Operation(Operation.BEGIN, 1),
431          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
432          new Operation(Operation.CREATE, 1),
433          new Operation(Operation.ENLIST, 1),
434          new Operation(Operation.STATE, 1, Resource.ACTIVE),
435          new Operation(Operation.CREATE, 2),
436          new Operation(Operation.ENLIST, 2),
437          new Operation(Operation.DIFFRM, 2),
438          new Operation(Operation.STATE, 2, Resource.ACTIVE),
439          new Operation(Operation.ROLLBACK, 1),
440          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
441          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
442       });
443    }
444
445    public void testTwoResourceDifferentRMSetRollback() throws Exception JavaDoc
446    {
447       runTest(new Operation[]
448       {
449          new Operation(Operation.BEGIN, 1),
450          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
451          new Operation(Operation.CREATE, 1),
452          new Operation(Operation.ENLIST, 1),
453          new Operation(Operation.STATE, 1, Resource.ACTIVE),
454          new Operation(Operation.CREATE, 2),
455          new Operation(Operation.ENLIST, 2),
456          new Operation(Operation.DIFFRM, 2),
457          new Operation(Operation.STATE, 2, Resource.ACTIVE),
458          new Operation(Operation.SETROLLBACK, 1),
459          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
460          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
461          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
462          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
463       });
464    }
465
466    public void testTwoResourceOneLocalCommit() throws Exception JavaDoc
467    {
468       runTest(new Operation[]
469       {
470          new Operation(Operation.BEGIN, 1),
471          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
472          new Operation(Operation.CREATE_LOCAL, 1),
473          new Operation(Operation.ENLIST, 1),
474          new Operation(Operation.STATE, 1, Resource.ACTIVE),
475          new Operation(Operation.CREATE, 2),
476          new Operation(Operation.ENLIST, 2),
477          new Operation(Operation.STATE, 2, Resource.ACTIVE),
478          new Operation(Operation.COMMIT, 1),
479          new Operation(Operation.STATE, 1, Resource.COMMITTED),
480          new Operation(Operation.STATE, 2, Resource.COMMITTED),
481       });
482    }
483
484    public void testTwoResourceOneLocalRollback() throws Exception JavaDoc
485    {
486       runTest(new Operation[]
487       {
488          new Operation(Operation.BEGIN, 1),
489          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
490          new Operation(Operation.CREATE_LOCAL, 1),
491          new Operation(Operation.ENLIST, 1),
492          new Operation(Operation.STATE, 1, Resource.ACTIVE),
493          new Operation(Operation.CREATE, 2),
494          new Operation(Operation.ENLIST, 2),
495          new Operation(Operation.STATE, 2, Resource.ACTIVE),
496          new Operation(Operation.ROLLBACK, 1),
497          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
498          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
499       });
500    }
501
502    public void testTwoResourceOneLocalSetRollback() throws Exception JavaDoc
503    {
504       runTest(new Operation[]
505       {
506          new Operation(Operation.BEGIN, 1),
507          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
508          new Operation(Operation.CREATE_LOCAL, 1),
509          new Operation(Operation.ENLIST, 1),
510          new Operation(Operation.STATE, 1, Resource.ACTIVE),
511          new Operation(Operation.CREATE, 2),
512          new Operation(Operation.ENLIST, 2),
513          new Operation(Operation.STATE, 2, Resource.ACTIVE),
514          new Operation(Operation.SETROLLBACK, 1),
515          new Operation(Operation.STATUS, 1, Status.STATUS_MARKED_ROLLBACK),
516          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
517          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
518          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
519       });
520    }
521
522    public void testTwoResourceOneLocalCommitFail() throws Exception JavaDoc
523    {
524       runTest(new Operation[]
525       {
526          new Operation(Operation.BEGIN, 1),
527          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
528          new Operation(Operation.CREATE_LOCAL, 1),
529          new Operation(Operation.ENLIST, 1),
530          new Operation(Operation.STATE, 1, Resource.ACTIVE),
531          new Operation(Operation.CREATE, 2),
532          new Operation(Operation.ENLIST, 2),
533          new Operation(Operation.STATE, 2, Resource.ACTIVE),
534          new Operation(Operation.FAIL_LOCAL, 1),
535          new Operation(Operation.COMMIT, 1, 0, new RollbackException JavaDoc()),
536          new Operation(Operation.STATE, 1, Resource.ROLLEDBACK),
537          new Operation(Operation.STATE, 2, Resource.ROLLEDBACK),
538       });
539    }
540
541    public void testOneResourceCommitHeurRB() throws Exception JavaDoc
542    {
543       runTest(new Operation[]
544       {
545          new Operation(Operation.BEGIN, 1),
546          new Operation(Operation.STATUS, 1, Status.STATUS_ACTIVE),
547          new Operation(Operation.CREATE, 1),
548          new Operation(Operation.ENLIST, 1),
549          new Operation(Operation.STATE, 1, Resource.ACTIVE),
550          new Operation(Operation.SETSTATUS, 1, XAException.XA_HEURRB),
551          new Operation(Operation.COMMIT, 1, 0,new RollbackException JavaDoc()),
552          new Operation(Operation.STATE, 1, Resource.FORGOT),
553       });
554    }
555 }
556
Popular Tags