Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

ExecReadStoredProcedure.java

00001 /**
00002  * C-JDBC: Clustered JDBC.
00003  * Copyright (C) 2002-2005 French National Institute For Research In Computer
00004  * Science And Control (INRIA).
00005  * Contact: c-jdbc@objectweb.org
00006  * 
00007  * This library is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU Lesser General Public License as published by the
00009  * Free Software Foundation; either version 2.1 of the License, or any later
00010  * version.
00011  * 
00012  * This library is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00014  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00015  * for more details.
00016  * 
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00020  *
00021  * Initial developer(s): Emmanuel Cecchet.
00022  * Contributor(s): ______________________.
00023  */
00024 
00025 package org.objectweb.cjdbc.controller.virtualdatabase.protocol;
00026 
00027 import java.sql.SQLException;
00028 
00029 import org.objectweb.cjdbc.common.i18n.Translate;
00030 import org.objectweb.cjdbc.common.sql.StoredProcedure;
00031 import org.objectweb.cjdbc.controller.requestmanager.distributed.DistributedRequestManager;
00032 
00033 /**
00034  * This class defines a ExecReadStoredProcedure
00035  * 
00036  * @author <a href="mailto:Emmanuel.Cecchet@inria.fr">Emmanuel Cecchet </a>
00037  * @version 1.0
00038  */
00039 public class ExecReadStoredProcedure extends DistributedRequest
00040 {
00041 
00042   /**
00043    * Creates a new <code>ExecReadStoredProcedure</code> object to execute a
00044    * read stored procedure on multiple controllers.
00045    * 
00046    * @param proc the stored procedure to execute
00047    */
00048   public ExecReadStoredProcedure(StoredProcedure proc)
00049   {
00050     super(proc);
00051   }
00052 
00053   /**
00054    * @see org.objectweb.cjdbc.controller.virtualdatabase.protocol.DistributedRequest#scheduleRequest(org.objectweb.cjdbc.controller.requestmanager.distributed.DistributedRequestManager)
00055    */
00056   public void scheduleRequest(DistributedRequestManager drm)
00057       throws SQLException
00058   {
00059     drm.lazyTransactionStart(request);
00060   }
00061 
00062   /**
00063    * @see org.objectweb.cjdbc.controller.virtualdatabase.protocol.DistributedRequest#executeScheduledRequest(org.objectweb.cjdbc.controller.requestmanager.distributed.DistributedRequestManager)
00064    */
00065   public Object executeScheduledRequest(DistributedRequestManager drm)
00066       throws SQLException
00067   {
00068     try
00069     {
00070       return drm
00071           .execDistributedReadStoredProcedureLocally((StoredProcedure) request);
00072     }
00073     catch (SQLException e)
00074     {
00075       drm.getLogger().warn(
00076           Translate.get(
00077               "virtualdatabase.distributed.read.procedure.sqlexception", e
00078                   .getMessage()), e);
00079       throw e;
00080     }
00081     catch (RuntimeException re)
00082     {
00083       drm.getLogger().warn(
00084           Translate.get("virtualdatabase.distributed.read.procedure.exception",
00085               re.getMessage()), re);
00086       throw new SQLException(re.getMessage());
00087     }
00088   }
00089 
00090 }

Generated on Mon Apr 11 22:01:32 2005 for C-JDBC by  doxygen 1.3.9.1