Hmm.. it is really strange, because the console work in the same way as your code. Could you check which file is blocked?
Best regards, Artem Orobets * Orient Technologiesthe Company behind OrientDB* 2014-07-02 11:20 GMT+03:00 Chris Klinger <[email protected]>: > Hi Artem, > > the restore command on the console is working fine with the backup created > by above code: > > orientdb {test}> restore database > C:/Users/klinger/Documents/prototypes/conceptor-base/testbackup.zip > > Restoring database database > C:/Users/klinger/Documents/prototypes/conceptor-base/testbackup.zip... > - Uncompressing file attribute.cpm... > - Uncompressing file attribute.pcl... > - Uncompressing file attributegroup.cpm... > [...] > Database restored in 0,86 seconds > orientdb {test}> > > > best regards, > chris > > Am Dienstag, 1. Juli 2014 18:03:23 UTC+2 schrieb Artem Orobets: >> >> Hi Chris, >> >> Does *restore* command works in console? >> >> Best regards, >> Artem Orobets >> >> * Orient Technologiesthe Company behind OrientDB* >> >> >> 2014-07-01 13:12 GMT+03:00 Chris Klinger <[email protected]>: >> >>> Hey guys, >>> >>> i'm trying to implement a basic backup/restore mechanism in my >>> application. the use case basicly is to load a previous snapshot of data. >>> so i do a backup and later i want to restore this to a second "working copy >>> database" to view the old data. >>> The db service in the following code is a simple spring bean starting an >>> embedded orientdb server and retuns the graph database instance. >>> >>> try { >>> File backupFile = new File("testbackup.zip"); >>> OutputStream oS = new FileOutputStream(backupFile); >>> >>> dbService.getGraphDatabaseInstanceNoTx().getRawGraph().backup(oS, >>> null, null, null, 1, 1024); >>> >>> oS.close(); // close the stream >>> dbService.destroy(); // shutdown embedded server >>> >>> dbService.setGraphDatabase("restoreSnapshot" + >>> System.currentTimeMillis()); >>> >>> dbService.afterPropertiesSet(); // start embedded server >>> >>> FileInputStream iS = new FileInputStream(backupFile); >>> dbService.getGraphDatabaseInstanceNoTx().getRawGraph().restore(iS, >>> null, null, null); >>> iS.close(); // close input stream >>> >>> } catch (FileNotFoundException e) { >>> // TODO Auto-generated catch block >>> e.printStackTrace(); >>> } catch (IOException e) { >>> // TODO Auto-generated catch block >>> e.printStackTrace(); >>> } catch (Exception e) { >>> // TODO Auto-generated catch block >>> e.printStackTrace(); >>> } >>> >>> Running this code i get the following exception: >>> >>> java.io.IOException: The process cannot access the file because another >>> process has locked a portion of the file >>> at java.io.FileOutputStream.writeBytes(Native Method) >>> at java.io.FileOutputStream.write(FileOutputStream.java:345) >>> at java.io.BufferedOutputStream.write(BufferedOutputStream.java:122) >>> at com.orientechnologies.common.io.OIOUtils.copyStream( >>> OIOUtils.java:153) >>> at com.orientechnologies.orient.core.compression.impl. >>> OZIPCompressionUtil.extractFile(OZIPCompressionUtil.java:90) >>> at com.orientechnologies.orient.core.compression.impl. >>> OZIPCompressionUtil.uncompressDirectory(OZIPCompressionUtil.java:76) >>> at com.orientechnologies.orient.core.storage.impl.local. >>> OStorageLocalAbstract.restore(OStorageLocalAbstract.java:119) >>> at com.orientechnologies.orient.core.db.raw.ODatabaseRaw. >>> restore(ODatabaseRaw.java:182) >>> at com.orientechnologies.orient.core.db.ODatabaseWrapperAbstract. >>> restore(ODatabaseWrapperAbstract.java:77) >>> at com.orientechnologies.orient.core.db.ODatabaseWrapperAbstract. >>> restore(ODatabaseWrapperAbstract.java:77) >>> at com.encoway.conceptor.base.document.orient.OrientDbBasicTest. >>> testDbSnapshot(OrientDbBasicTest.java:126) >>> >>> I'm sure, none of the used files is accessed by another process. i'm >>> doing something wrong? or could this be a bug in orientdb? i'm using >>> version 1.7.3 >>> >>> any ideas? >>> >>> thanks >>> >>> -- >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "OrientDB" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > > --- > You received this message because you are subscribed to the Google Groups > "OrientDB" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
