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 * @since 1.4 33 */ 34 public class XAException extends Exception { 35 36 /** 37 * Specify serialVersionUID for backward compatibility 38 */ 39 private static final long serialVersionUID = -8249683284832867751L; 40 41 /** 42 * The error code with which to create the SystemException. 43 * 44 * @serial The error code for the exception 45 */ 46 public int errorCode; 47 48 /** 49 * Create an XAException. 50 */ 51 public XAException() { 52 super(); 53 } 54 55 /** 56 * Create an XAException with a given string. 57 * 58 * @param s The <code>String</code> object containing the exception 59 * message. 60 */ 61 public XAException(String s) { 62 super(s); 63 } 64 65 /** 66 * Create an XAException with a given error code. 67 * 68 * @param errcode The error code identifying the exception. 69 */ 70 public XAException(int errcode) { 71 super(); 72 errorCode = errcode; 73 } 74 75 /** 76 * The inclusive lower bound of the rollback codes. 77 */ 78 public final static int XA_RBBASE = 100; 79 80 /** 81 * Indicates that the rollback was caused by an unspecified reason. 82 */ 83 public final static int XA_RBROLLBACK = XA_RBBASE; 84 85 /** 86 * Indicates that the rollback was caused by a communication failure. 87 */ 88 public final static int XA_RBCOMMFAIL = XA_RBBASE + 1; 89 90 /** 91 * A deadlock was detected. 92 */ 93 public final static int XA_RBDEADLOCK = XA_RBBASE + 2; 94 95 /** 96 * A condition that violates the integrity of the resource was detected. 97 */ 98 public final static int XA_RBINTEGRITY = XA_RBBASE + 3; 99 100 /** 101 * The resource manager rolled back the transaction branch for a reason 102 * not on this list. 103 */ 104 public final static int XA_RBOTHER = XA_RBBASE + 4; 105 106 /** 107 * A protocol error occurred in the resource manager. 108 */ 109 public final static int XA_RBPROTO = XA_RBBASE + 5; 110 111 /** 112 * A transaction branch took too long. 113 */ 114 public final static int XA_RBTIMEOUT = XA_RBBASE + 6; 115 116 /** 117 * May retry the transaction branch. 118 */ 119 public final static int XA_RBTRANSIENT = XA_RBBASE + 7; 120 121 /** 122 * The inclusive upper bound of the rollback error code. 123 */ 124 public final static int XA_RBEND = XA_RBTRANSIENT; 125 126 /** 127 * Resumption must occur where the suspension occurred. 128 */ 129 public final static int XA_NOMIGRATE = 9; 130 131 /** 132 * The transaction branch may have been heuristically completed. 133 */ 134 public final static int XA_HEURHAZ = 8; 135 136 /** 137 * The transaction branch has been heuristically committed. 138 */ 139 public final static int XA_HEURCOM = 7; 140 141 /** 142 * The transaction branch has been heuristically rolled back. 143 */ 144 public final static int XA_HEURRB = 6; 145 146 /** 147 * The transaction branch has been heuristically committed and 148 * rolled back. 149 */ 150 public final static int XA_HEURMIX = 5; 151 152 /** 153 * Routine returned with no effect and may be reissued. 154 */ 155 public final static int XA_RETRY = 4; 156 157 /** 158 * The transaction branch was read-only and has been committed. 159 */ 160 public final static int XA_RDONLY = 3; 161 162 /** 163 * There is an asynchronous operation already outstanding. 164 */ 165 public final static int XAER_ASYNC = -2; 166 167 /** 168 * A resource manager error has occurred in the transaction branch. 169 */ 170 public final static int XAER_RMERR = -3; 171 172 /** 173 * The XID is not valid. 174 */ 175 public final static int XAER_NOTA = -4; 176 177 /** 178 * Invalid arguments were given. 179 */ 180 public final static int XAER_INVAL = -5; 181 182 /** 183 * Routine was invoked in an inproper context. 184 */ 185 public final static int XAER_PROTO = -6; 186 187 /** 188 * Resource manager is unavailable. 189 */ 190 public final static int XAER_RMFAIL = -7; 191 192 /** 193 * The XID already exists. 194 */ 195 public final static int XAER_DUPID = -8; 196 197 /** 198 * The resource manager is doing work outside a global transaction. 199 */ 200 public final static int XAER_OUTSIDE = -9; 201 }