00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
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
00035
00036
00037
00038
00039 public class ExecWriteStoredProcedure extends DistributedRequest
00040 {
00041
00042
00043
00044
00045
00046
00047 public ExecWriteStoredProcedure(StoredProcedure proc)
00048 {
00049 super(proc);
00050 }
00051
00052
00053
00054
00055 public void scheduleRequest(DistributedRequestManager drm)
00056 throws SQLException
00057 {
00058 drm.lazyTransactionStart(request);
00059 }
00060
00061
00062
00063
00064 public Object executeScheduledRequest(DistributedRequestManager drm)
00065 throws SQLException
00066 {
00067 try
00068 {
00069 return new Integer(
00070 drm
00071 .execDistributedWriteStoredProcedureLocally((StoredProcedure) request));
00072 }
00073 catch (SQLException e)
00074 {
00075 drm.getLogger().warn(
00076 Translate.get(
00077 "virtualdatabase.distributed.write.procedure.sqlexception", e
00078 .getMessage()), e);
00079 throw e;
00080 }
00081 catch (RuntimeException re)
00082 {
00083 drm.getLogger().warn(
00084 Translate.get(
00085 "virtualdatabase.distributed.write.procedure.exception", re
00086 .getMessage()), re);
00087 throw new SQLException(re.getMessage());
00088 }
00089 }
00090 }