Am writing a code for database backup....by backupservlet is as given below
i get the following exception
[#|2007-10-31T16:05:25.741 +0530|INFO|sun-appserver-pe8.2|employeet ransaction.DBBa ckupServlet|_Th readID=22;| About to execute the command exp hrms/manager file=C:\ET\ET\E mployeeTransact ion\build\web\b ackupDir\Weekly .dmp log=C:\ET\ET\Em ployeeTransacti on\build\web\lo gDir\Weekly.log |#]
[#|2007-10-31T16:05:25.803 +0530|WARNING|s un-appserver-pe8.2|javax.ent erprise.system. stream.err|_Thr eadID=22;|
java.io.IOExcep tion: CreateProcess: exp hrms/manager file=C:\ET\ET\E mployeeTransact ion\build\web\b ackupDir\Weekly .dmp log=C:\ET\ET\Em ployeeTransacti on\build\web\lo gDir\Weekly.log error=2
at java.lang.Proce ssImpl.create(N ative Method)
at java.lang.Proce ssImpl.<init>(P rocessImpl.java :81)
at java.lang.Proce ssImpl.start(Pr ocessImpl.java: 30)
at java.lang.Proce ssBuilder.start (ProcessBuilder .java:451)
at java.lang.Runti me.exec(Runtime .java:591)
at java.lang.Runti me.exec(Runtime .java:429)
at java.lang.Runti me.exec(Runtime .java:326)
at employeetransac tion.DBBackupSe rvlet.processRe quest(DBBackupS ervlet.java:183 )
at employeetransac tion.DBBackupSe rvlet.doGet(DBB ackupServlet.ja va:307)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:747)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:860)
at sun.reflect.Gen eratedMethodAcc essor2305.invok e(Unknown Source)
at sun.reflect.Del egatingMethodAc cessorImpl.invo ke(DelegatingMe thodAccessorImp l.java:25)
at java.lang.refle ct.Method.invok e(Method.java:5 85)
at org.apache.cata lina.security.S ecurityUtil$1.r un(SecurityUtil .java:249)
at java.security.A ccessController .doPrivileged(N ative Method)
at javax.security. auth.Subject.do AsPrivileged(Su bject.java:517)
at org.apache.cata lina.security.S ecurityUtil.exe cute(SecurityUt il.java:282)
at org.apache.cata lina.security.S ecurityUtil.doA sPrivilege(Secu rityUtil.java:1 65)
at org.apache.cata lina.core.Appli cationFilterCha in.internalDoFi lter(Applicatio nFilterChain.ja va:257)
at org.apache.cata lina.core.Appli cationFilterCha in.access$000(A pplicationFilte rChain.java:55)
at org.apache.cata lina.core.Appli cationFilterCha in$1.run(Applic ationFilterChai n.java:161)
at java.security.A ccessController .doPrivileged(N ative Method)
at org.apache.cata lina.core.Appli cationFilterCha in.doFilter(App licationFilterC hain.java:157)
at org.apache.cata lina.core.Stand ardWrapperValve .invoke(Standar dWrapperValve.j ava:263)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Stand ardContextValve .invokeInternal (StandardContex tValve.java:225 )
at org.apache.cata lina.core.Stand ardContextValve .invoke(Standar dContextValve.j ava:173)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Stand ardHostValve.in voke(StandardHo stValve.java:17 0)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Stand ardEngineValve. invoke(Standard EngineValve.jav a:132)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:933)
at org.apache.coyo te.tomcat5.Coyo teAdapter.servi ce(CoyoteAdapte r.java:189)
at com.sun.enterpr ise.web.connect or.grizzly.Proc essorTask.doPro cess(ProcessorT ask.java:604)
at com.sun.enterpr ise.web.connect or.grizzly.Proc essorTask.proce ss(ProcessorTas k.java:475)
at com.sun.enterpr ise.web.connect or.grizzly.Read Task.executePro cessorTask(Read Task.java:371)
at com.sun.enterpr ise.web.connect or.grizzly.Read Task.doTask(Rea dTask.java:264)
at com.sun.enterpr ise.web.connect or.grizzly.Task Base.run(TaskBa se.java:281)
at com.sun.enterpr ise.web.connect or.grizzly.Work erThread.run(Wo rkerThread.java :83)
|#]
[#|2007-10-31T16:05:25.803 +0530|SEVERE|su n-appserver-pe8.2|employeet ransaction.DBBa ckupServlet|_Th readID=22;|stat e is null : false ::: state.isBusy() : false Exception in closing database connections.|#]
My streamgobbler is
i get the following exception
[#|2007-10-31T16:05:25.741 +0530|INFO|sun-appserver-pe8.2|employeet ransaction.DBBa ckupServlet|_Th readID=22;| About to execute the command exp hrms/manager file=C:\ET\ET\E mployeeTransact ion\build\web\b ackupDir\Weekly .dmp log=C:\ET\ET\Em ployeeTransacti on\build\web\lo gDir\Weekly.log |#]
[#|2007-10-31T16:05:25.803 +0530|WARNING|s un-appserver-pe8.2|javax.ent erprise.system. stream.err|_Thr eadID=22;|
java.io.IOExcep tion: CreateProcess: exp hrms/manager file=C:\ET\ET\E mployeeTransact ion\build\web\b ackupDir\Weekly .dmp log=C:\ET\ET\Em ployeeTransacti on\build\web\lo gDir\Weekly.log error=2
at java.lang.Proce ssImpl.create(N ative Method)
at java.lang.Proce ssImpl.<init>(P rocessImpl.java :81)
at java.lang.Proce ssImpl.start(Pr ocessImpl.java: 30)
at java.lang.Proce ssBuilder.start (ProcessBuilder .java:451)
at java.lang.Runti me.exec(Runtime .java:591)
at java.lang.Runti me.exec(Runtime .java:429)
at java.lang.Runti me.exec(Runtime .java:326)
at employeetransac tion.DBBackupSe rvlet.processRe quest(DBBackupS ervlet.java:183 )
at employeetransac tion.DBBackupSe rvlet.doGet(DBB ackupServlet.ja va:307)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:747)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:860)
at sun.reflect.Gen eratedMethodAcc essor2305.invok e(Unknown Source)
at sun.reflect.Del egatingMethodAc cessorImpl.invo ke(DelegatingMe thodAccessorImp l.java:25)
at java.lang.refle ct.Method.invok e(Method.java:5 85)
at org.apache.cata lina.security.S ecurityUtil$1.r un(SecurityUtil .java:249)
at java.security.A ccessController .doPrivileged(N ative Method)
at javax.security. auth.Subject.do AsPrivileged(Su bject.java:517)
at org.apache.cata lina.security.S ecurityUtil.exe cute(SecurityUt il.java:282)
at org.apache.cata lina.security.S ecurityUtil.doA sPrivilege(Secu rityUtil.java:1 65)
at org.apache.cata lina.core.Appli cationFilterCha in.internalDoFi lter(Applicatio nFilterChain.ja va:257)
at org.apache.cata lina.core.Appli cationFilterCha in.access$000(A pplicationFilte rChain.java:55)
at org.apache.cata lina.core.Appli cationFilterCha in$1.run(Applic ationFilterChai n.java:161)
at java.security.A ccessController .doPrivileged(N ative Method)
at org.apache.cata lina.core.Appli cationFilterCha in.doFilter(App licationFilterC hain.java:157)
at org.apache.cata lina.core.Stand ardWrapperValve .invoke(Standar dWrapperValve.j ava:263)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Stand ardContextValve .invokeInternal (StandardContex tValve.java:225 )
at org.apache.cata lina.core.Stand ardContextValve .invoke(Standar dContextValve.j ava:173)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Stand ardHostValve.in voke(StandardHo stValve.java:17 0)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Stand ardEngineValve. invoke(Standard EngineValve.jav a:132)
at org.apache.cata lina.core.Stand ardPipeline.inv oke(StandardPip eline.java:551)
at org.apache.cata lina.core.Conta inerBase.invoke (ContainerBase. java:933)
at org.apache.coyo te.tomcat5.Coyo teAdapter.servi ce(CoyoteAdapte r.java:189)
at com.sun.enterpr ise.web.connect or.grizzly.Proc essorTask.doPro cess(ProcessorT ask.java:604)
at com.sun.enterpr ise.web.connect or.grizzly.Proc essorTask.proce ss(ProcessorTas k.java:475)
at com.sun.enterpr ise.web.connect or.grizzly.Read Task.executePro cessorTask(Read Task.java:371)
at com.sun.enterpr ise.web.connect or.grizzly.Read Task.doTask(Rea dTask.java:264)
at com.sun.enterpr ise.web.connect or.grizzly.Task Base.run(TaskBa se.java:281)
at com.sun.enterpr ise.web.connect or.grizzly.Work erThread.run(Wo rkerThread.java :83)
|#]
[#|2007-10-31T16:05:25.803 +0530|SEVERE|su n-appserver-pe8.2|employeet ransaction.DBBa ckupServlet|_Th readID=22;|stat e is null : false ::: state.isBusy() : false Exception in closing database connections.|#]
Code:
Runtime s=Runtime.getRuntime();
//Process o=null;
String command = "exp "+usr+"/"+pwd+" file="+backupRealPath+backupFileName+" log="+logRealPath+logFileName;
java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.INFO," About to execute the command " + command);
try
{
Process o=s.exec(command);
java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.INFO,o.toString()+ " Process has started " );
// any error message?
StreamGobbler errorGobbler = new StreamGobbler(o.getErrorStream(), "ERROR");
// any output?
StreamGobbler outputGobbler = new StreamGobbler(o.getInputStream(), "OUTPUT" );
// kick them off
errorGobbler.start();
outputGobbler.start();
// any error???
int exitVal = o.waitFor();
java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.INFO," Exit Value = " + exitVal);
errBuff = errorGobbler.getOutPut();
outBuff = outputGobbler.getOutPut();
servletOutputStream.println("The command "+command+" has been submitted.<br>");
servletOutputStream.println(errBuff.toString());
servletOutputStream.println(outBuff.toString());
if (exitVal == 0)
servletOutputStream.println("The backup completed successfully.<br>");
else
servletOutputStream.println("The backup terminated with error code "+exitVal+".<br>");
// fos.flush();
// fos.close();
} catch (Throwable t)
{
t.printStackTrace();
}
servletOutputStream.flush();
servletOutputStream.close();
Code:
/*
* StreamGobbler.java
*
* Created on October 9, 2007, 9:53 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package employeetransaction;
/**
*
* @author kvishwas
*/
import java.util.*;
import java.io.*;
import javax.servlet.ServletOutputStream;
import org.apache.naming.java.javaURLContextFactory;
/**
*
* @author kvishwas
*/
public class StreamGobbler extends Thread {
/** Creates a new instance of StreamGobbler */
InputStream is;
String type;
StringBuffer out;
OutputStream os;
public StreamGobbler(InputStream is, String type)
{
this.is = is;
this.type = type;
this.out = new StringBuffer();
}
/*
public StreamGobbler(InputStream is, String type,OutputStream redirect)
{
this.is = is;
this.type = type;
this.os = redirect;
}
*/
public void run()
{
try
{
PrintWriter pw =null;
if(os!=null)
pw=new PrintWriter(os);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line=null;
while ( (line = br.readLine()) != null)
{
/* if(pw != null)
pw.println(line);*/
System.out.println(type + ">" + line);
String line1 = line + "<br>";
out.append(line1);
}
/* if(pw != null)
pw.flush();*/
} catch (IOException ioe)
{
ioe.printStackTrace();
}
}
public StringBuffer getOutPut()
{
return out;
}
}
Comment