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.console.text.commands.dbadmin;
00026
00027 import java.util.StringTokenizer;
00028
00029 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
00030 import org.objectweb.cjdbc.common.jmx.mbeans.DatabaseBackendMBean;
00031 import org.objectweb.cjdbc.common.jmx.mbeans.VirtualDatabaseMBean;
00032 import org.objectweb.cjdbc.console.text.ConsoleException;
00033 import org.objectweb.cjdbc.console.text.module.VirtualDatabaseAdmin;
00034
00035
00036
00037
00038
00039
00040
00041 public class EnableWrite extends AbstractAdminCommand
00042 {
00043
00044
00045
00046
00047
00048
00049 public EnableWrite(VirtualDatabaseAdmin module)
00050 {
00051 super(module);
00052 }
00053
00054
00055
00056
00057 public void parse(String commandText) throws Exception
00058 {
00059 StringTokenizer st = new StringTokenizer(commandText);
00060 if (st.countTokens() != 1)
00061 throw new ConsoleException(ConsoleTranslate
00062 .get("console.error.invalid.comment.argument"));
00063 String backendName = st.nextToken();
00064 console.println(ConsoleTranslate.get("admin.command.enable.write.echo",
00065 backendName));
00066 VirtualDatabaseMBean vdjc = jmxClient.getVirtualDatabaseProxy(dbName, user,
00067 password);
00068 DatabaseBackendMBean mbean = jmxClient.getDatabaseBackendProxy(dbName,
00069 backendName, user, password);
00070 if(vdjc.hasRecoveryLog())
00071 {
00072 if(mbean.isWriteEnabled())
00073 return;
00074 vdjc.enableBackendFromCheckpoint(backendName);
00075 }
00076 else
00077 {
00078 mbean.enableWrite();
00079 }
00080
00081
00082 }
00083
00084
00085
00086
00087 public String getCommandName()
00088 {
00089 return "enableWrite";
00090 }
00091
00092
00093
00094
00095 public String getCommandDescription()
00096 {
00097 return ConsoleTranslate.get("admin.command.enable.write");
00098 }
00099
00100
00101
00102
00103 public String getCommandParameters()
00104 {
00105 return "<backendName>";
00106 }
00107
00108 }