001: /**
002: * Sequoia: Database clustering technology.
003: * Copyright (C) 2002-2004 French National Institute For Research In Computer
004: * Science And Control (INRIA).
005: * Copyright (C) 2005 AmicoSoft, Inc. dba Emic Networks
006: * Contact: sequoia@continuent.org
007: *
008: * Licensed under the Apache License, Version 2.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: * Initial developer(s): Nicolas Modrzyk.
021: * Contributor(s): Emmanuel Cecchet.
022: */package org.continuent.sequoia.common.exceptions;
023:
024: import java.sql.SQLException;
025:
026: /**
027: * This class defines a NoMoreBackendException. This means that a controller
028: * does not have any backend left to execute the query. The exception might
029: * carry an optional identifier of the request that failed. This is useful to
030: * unlog a remote request that has failed since each controller has its own
031: * local id for each distributed request.
032: *
033: * @author <a href="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk </a>
034: * @author <a href="mailto:emmanuel.cecchet@emicnetworks.com">Emmanuel Cecchet
035: * </a>
036: * @version 1.0
037: */
038: public class NoMoreBackendException extends SQLException {
039: private static final long serialVersionUID = 8265839783849395122L;
040:
041: private long recoveryLogId = 0;
042: private String login = null;
043:
044: /**
045: * Creates a new <code>NoMoreBackendException</code> object
046: */
047: public NoMoreBackendException() {
048: super ();
049: }
050:
051: /**
052: * Creates a new <code>NoMoreBackendException</code> object
053: *
054: * @param reason the error message
055: */
056: public NoMoreBackendException(String reason) {
057: super (reason);
058: }
059:
060: /**
061: * Creates a new <code>NoMoreBackendException</code> object
062: *
063: * @param reason the error message
064: * @param sqlState the SQL state
065: */
066: public NoMoreBackendException(String reason, String sqlState) {
067: super (reason, sqlState);
068: }
069:
070: /**
071: * Creates a new <code>NoMoreBackendException</code> object
072: *
073: * @param reason the error message
074: * @param sqlState the SQL state
075: * @param vendorCode vendor specific code
076: */
077: public NoMoreBackendException(String reason, String sqlState,
078: int vendorCode) {
079: super (reason, sqlState, vendorCode);
080: }
081:
082: /**
083: * Returns the recovery log id of the request that failed.
084: *
085: * @return Returns the recoveryLogId.
086: */
087: public long getRecoveryLogId() {
088: return recoveryLogId;
089: }
090:
091: /**
092: * Sets the recovery log id of the request that failed.
093: *
094: * @param recoveryLogId The recoveryLogId to set.
095: */
096: public void setRecoveryLogId(long recoveryLogId) {
097: this .recoveryLogId = recoveryLogId;
098: }
099:
100: /**
101: * Returns the login of the request that failed.
102: *
103: * @return Returns the login.
104: */
105: public String getLogin() {
106: return login;
107: }
108:
109: /**
110: * Sets the login of the request that failed.
111: *
112: * @param login The login to set.
113: */
114: public void setLogin(String login) {
115: this.login = login;
116: }
117: }
|