1 /* 2 * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package javax.transaction.xa; 27 28 /** 29 * The XAException is thrown by the Resource Manager (RM) to inform the 30 * Transaction Manager of an error encountered by the involved transaction. 31 * 32 */ 33 public class XAException extends Exception { 34 35 /** 36 * Specify serialVersionUID for backward compatibility 37 */ 38 private static final long serialVersionUID = -8249683284832867751L; 39 40 /** 41 * The error code with which to create the SystemException. 42 * 43 * @serial The error code for the exception 44 */ 45 public int errorCode; 46 47 /** 48 * Create an XAException. 49 */ 50 public XAException() { 51 super(); 52 } 53 54 /** 55 * Create an XAException with a given string. 56 * 57 * @param s The <code>String</code> object containing the exception 58 * message. 59 */ 60 public XAException(String s) { 61 super(s); 62 } 63 64 /** 65 * Create an XAException with a given error code. 66 * 67 * @param errcode The error code identifying the exception. 68 */ 69 public XAException(int errcode) { 70 super(); 71 errorCode = errcode; 72 } 73 74 /** 75 * The inclusive lower bound of the rollback codes. 76 */ 77 public final static int XA_RBBASE = 100; 78 79 /** 80 * Indicates that the rollback was caused by an unspecified reason. 81 */ 82 public final static int XA_RBROLLBACK = XA_RBBASE; 83 84 /** 85 * Indicates that the rollback was caused by a communication failure. 86 */ 87 public final static int XA_RBCOMMFAIL = XA_RBBASE + 1; 88 89 /** 90 * A deadlock was detected. 91 */ 92 public final static int XA_RBDEADLOCK = XA_RBBASE + 2; 93 94 /** 95 * A condition that violates the integrity of the resource was detected. 96 */ 97 public final static int XA_RBINTEGRITY = XA_RBBASE + 3; 98 99 /** 100 * The resource manager rolled back the transaction branch for a reason 101 * not on this list. 102 */ 103 public final static int XA_RBOTHER = XA_RBBASE + 4; 104 105 /** 106 * A protocol error occurred in the resource manager. 107 */ 108 public final static int XA_RBPROTO = XA_RBBASE + 5; 109 110 /** 111 * A transaction branch took too long. 112 */ 113 public final static int XA_RBTIMEOUT = XA_RBBASE + 6; 114 115 /** 116 * May retry the transaction branch. 117 */ 118 public final static int XA_RBTRANSIENT = XA_RBBASE + 7; 119 120 /** 121 * The inclusive upper bound of the rollback error code. 122 */ 123 public final static int XA_RBEND = XA_RBTRANSIENT; 124 125 /** 126 * Resumption must occur where the suspension occurred. 127 */ 128 public final static int XA_NOMIGRATE = 9; 129 130 /** 131 * The transaction branch may have been heuristically completed. 132 */ 133 public final static int XA_HEURHAZ = 8; 134 135 /** 136 * The transaction branch has been heuristically committed. 137 */ 138 public final static int XA_HEURCOM = 7; 139 140 /** 141 * The transaction branch has been heuristically rolled back. 142 */ 143 public final static int XA_HEURRB = 6; 144 145 /** 146 * The transaction branch has been heuristically committed and 147 * rolled back. 148 */ 149 public final static int XA_HEURMIX = 5; 150 151 /** 152 * Routine returned with no effect and may be reissued. 153 */ 154 public final static int XA_RETRY = 4; 155 156 /** 157 * The transaction branch was read-only and has been committed. 158 */ 159 public final static int XA_RDONLY = 3; 160 161 /** 162 * There is an asynchronous operation already outstanding. 163 */ 164 public final static int XAER_ASYNC = -2; 165 166 /** 167 * A resource manager error has occurred in the transaction branch. 168 */ 169 public final static int XAER_RMERR = -3; 170 171 /** 172 * The XID is not valid. 173 */ 174 public final static int XAER_NOTA = -4; 175 176 /** 177 * Invalid arguments were given. 178 */ 179 public final static int XAER_INVAL = -5; 180 181 /** 182 * Routine was invoked in an inproper context. 183 */ 184 public final static int XAER_PROTO = -6; 185 186 /** 187 * Resource manager is unavailable. 188 */ 189 public final static int XAER_RMFAIL = -7; 190 191 /** 192 * The XID already exists. 193 */ 194 public final static int XAER_DUPID = -8; 195 196 /** 197 * The resource manager is doing work outside a global transaction. 198 */ 199 public final static int XAER_OUTSIDE = -9; 200 }