Ragasudha
Ragasudha

Reputation: 31

Copy contents from one container to another container in Berkeley XMLDb

I need to copy some documents from one container to another container in XML DB 2.5.16.

Below is the snippet to open those containers

public static void main(String[] args) throws DatabaseException {

    EnvironmentConfig config_1 = getEnvConfig();
    EnvironmentConfig config_2 = getEnvConfig();
    Environment dbEnv_1 =  new Environment(<dbEnvPath1>, config);
    Environment dbEnv_2 =  new Environment(<dbEnvPath2>, config_new);
    XmlManager mgr_1 = new XmlManager(dbEnv_1 ,getManagerConfig());
    XmlContainer cont_1 = mgr_1.openContainer(<containerName_1>, getContainerConfig());
    XmlManager mgr_2 = new XmlManager(dbEnv_2,getManagerConfig());
    XmlContainer cont_2 = mgr_2_new.openContainer(<containerName_2>, getContainerConfig());
}
private static EnvironmentConfig getEnvConfig() throws 
       DatabaseException{
    EnvironmentConfig config = new EnvironmentConfig();
    config.setErrorStream(System.err);
    config.setAllowCreate(true);
    config.setRunRecovery(true);
    config.setTransactional(true);
    config.setInitializeLocking(true);
    config.setInitializeLogging(true);
    config.setInitializeCache(true);
    config.setLogAutoRemove(true);
    config.setCacheSize(134217728);
    config.setMaxLocks(80000);
    config.setMaxLockers(4000000);
    config.setMaxLockObjects(80000);
    config.setMaxMutexes(86068);
    config.setMaxMutexes(70000);
    return config;
}
private static XmlManagerConfig getManagerConfig(){
    XmlManagerConfig mconfig = new XmlManagerConfig();
    mconfig.setAllowExternalAccess(true);
    return mconfig;
}
private static XmlContainerConfig getContainerConfig(){
    XmlContainerConfig cconfig = new XmlContainerConfig();
    cconfig.setAllowValidation(false); 
    cconfig.setTransactional(true);
    return cconfig;
}

While running this code, I got following error

PANIC: fatal region error detected; run recovery com.sleepycat.dbxml.XmlException: Error: DB_RUNRECOVERY: Fatal error, run database recovery, errcode = DATABASE_ERROR at com.sleepycat.dbxml.dbxml_javaJNI.XmlManager_openContainerInternal__SWIG_0(Native Method)
at com.sleepycat.dbxml.XmlManager.openContainerInternal(XmlManager.java:621) at com.sleepycat.dbxml.XmlManager.openContainer(XmlManager.java:197)

Upvotes: 0

Views: 36

Answers (1)

lrv-eps
lrv-eps

Reputation: 136

Try running fatal recovery, as described in the documentation here: https://docs.oracle.com/cd/E17276_01/html/gsg_xml_txn/java/recovery.html

// Run catastrophic normal recovery
config.setRunFatalRecovery(true);

Upvotes: 1

Related Questions