Hi there,

I'm back with a bunch of questions again.

Today I faced a strange issue.
I'm running tests, trying to figure out pros and cons of OrientDB. Each 
test I run in a new DB, so I'm creating and dropping DBs with the same name.
Here is how I'm doing this

Create DB
public static void createDB()
throws IOException {

if (dbUrl.startsWith("remote")) {
OServerAdmin server = new OServerAdmin(dbUrl).connect(dbUser, dbPassword);
if (!server.existsDatabase("plocal")) {
server.createDatabase("graph", "plocal");
}
server.close();
}
else {
//OGraphDatabase database = new OGraphDatabase(dbUrl);
                        OrientGraph database = new OrientGraph(dbUrl);
if (!database.getRawGraph().exists()) {
database.getRawGraph().create();
}
database.getRawGraph().close();
}

}



Drop DB
public static void dropDB()
throws IOException {

if (dbUrl.startsWith("remote")) {
OServerAdmin server = new OServerAdmin(dbUrl).connect(dbUser, dbPassword);
if (server.existsDatabase("plocal")) {
server.dropDatabase("plocal");
}
server.close();
}
else {
                                                OrientGraph database = new 
OrientGraph(dbUrl);
if (database.getRawGraph().exists()) {
if (database.isClosed()) {
database.getRawGraph().open(dbUser, dbPassword);
}
OIndexManager indexManager = 
database.getRawGraph().getMetadata().getIndexManager();
for (@SuppressWarnings("rawtypes") OIndex index : 
indexManager.getIndexes()) {
index.delete();
}
database.drop();
}
database.getRawGraph().close();
}
}

Get DB

    public static synchronized OrientGraph getDatabase() {
                return new 
OrientGraph(OGraphDatabasePool.global().acquire(dbUrl, 
dbUser, dbPassword));
        }

I'm actually using project from this thread 
https://groups.google.com/forum/#!searchin/orient-database/bemchmark/orient-database/VF_j5rGeffA/hzyC9PVj9lAJ
 . 
Have to say thanks to Milen Dyankov for a great job he did there.
I changed it a little bit though...

So, here is the problem I faced.
I'm using OrientDB 1.6.4, remote connection.

1. Create DB
2. Do my tests. 4 threads simultaneously writing to DB
3. Drop DB
4. Create DB
5. Get an exception trying to create a vertex
OrientVertex vertex = db.addVertex("OGraphVertex", null);

com.orientechnologies.orient.enterprise.channel.binary.OResponseProcessingException:
 
>> Exception during response processing.
>
> at 
>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.throwSerializedException(OChannelBinaryAsynchClient.java:264)
>
> at 
>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.handleStatus(OChannelBinaryAsynchClient.java:231)
>
> at 
>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:202)
>
> at 
>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:113)
>
> at 
>> com.orientechnologies.orient.client.remote.OStorageRemote.beginResponse(OStorageRemote.java:1856)
>
> at 
>> com.orientechnologies.orient.client.remote.OStorageRemote.createRecord(OStorageRemote.java:328)
>
> at 
>> com.orientechnologies.orient.client.remote.OStorageRemoteThread.createRecord(OStorageRemoteThread.java:216)
>
> at 
>> com.orientechnologies.orient.core.db.raw.ODatabaseRaw.save(ODatabaseRaw.java:265)
>
> at 
>> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.executeSaveRecord(ODatabaseRecordAbstract.java:816)
>
> at 
>> com.orientechnologies.orient.core.tx.OTransactionNoTx.saveRecord(OTransactionNoTx.java:77)
>
> at 
>> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.save(ODatabaseRecordTx.java:270)
>
> at 
>> com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.save(ODatabaseRecordTx.java:38)
>
> at 
>> com.orientechnologies.orient.core.record.ORecordAbstract.save(ORecordAbstract.java:312)
>
> at 
>> com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1323)
>
> at 
>> com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1312)
>
> at 
>> com.orientechnologies.orient.core.record.impl.ODocument.save(ODocument.java:1301)
>
> at 
>> com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:148)
>
> at 
>> com.tinkerpop.blueprints.impls.orient.OrientElement.save(OrientElement.java:134)
>
> at 
>> com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.addVertex(OrientBaseGraph.java:356)
>
> at 
>> com.commsen.graphdbtests.orientdb.OrientdbInsertPerformanceTest.createVertex(OrientdbInsertPerformanceTest.java:25)
>
> at 
>> com.commsen.graphdbtests.orientdb.OrientdbInsertPerformanceTest.doAddDocuments_(OrientdbInsertPerformanceTest.java:120)
>
> at 
>> com.commsen.graphdbtests.orientdb.OrientdbInsertPerformanceTest.access$000(OrientdbInsertPerformanceTest.java:17)
>
> at 
>> com.commsen.graphdbtests.orientdb.OrientdbInsertPerformanceTest$1.call(OrientdbInsertPerformanceTest.java:160)
>
> at 
>> com.commsen.graphdbtests.orientdb.OrientdbInsertPerformanceTest$1.call(OrientdbInsertPerformanceTest.java:157)
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>
> at 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
> at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
> at java.lang.Thread.run(Thread.java:744)
>
> Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: 
>> Database 
>> 'plocal:c:/projects/GraphDBs/orientdb-community-1.6.4/databases//graphdb_tests_orient'
>>  
>> is closed
>
> at 
>> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.checkOpeness(ODatabaseRecordAbstract.java:1088)
>
> at 
>> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.getMetadata(ODatabaseRecordAbstract.java:556)
>
> at 
>> com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.getMetadata(ODatabaseRecordAbstract.java:87)
>
> at 
>> com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.getMetadata(ODatabaseRecordWrapperAbstract.java:156)
>
> at 
>> com.orientechnologies.orient.core.record.ORecordSchemaAwareAbstract.setClassNameIfExists(ORecordSchemaAwareAbstract.java:111)
>
> at 
>> com.orientechnologies.orient.core.serialization.serializer.record.string.ORecordSerializerSchemaAware2CSV.fromString(ORecordSerializerSchemaAware2CSV.java:377)
>
> at 
>> com.orientechnologies.orient.core.serialization.serializer.record.string.ORecordSerializerStringAbstract.fromStream(ORecordSerializerStringAbstract.java:80)
>
> at 
>> com.orientechnologies.orient.core.record.ORecordSchemaAwareAbstract.deserializeFields(ORecordSchemaAwareAbstract.java:150)
>
> at 
>> com.orientechnologies.orient.core.record.impl.ODocument.deserializeFields(ODocument.java:1371)
>
> at 
>> com.orientechnologies.orient.core.record.impl.ODocument.checkForFields(ODocument.java:1261)
>
> at 
>> com.orientechnologies.orient.core.record.ORecordSchemaAwareAbstract.validate(ORecordSchemaAwareAbstract.java:58)
>
> at 
>> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:265)
>
> at 
>> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:227)
>
> at 
>> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:45)
>
> at 
>> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.createRecord(OBinaryNetworkProtocolAbstract.java:332)
>
> at 
>> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.createRecord(ONetworkProtocolBinary.java:1284)
>
> at 
>> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:268)
>
> at 
>> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:125)
>
> at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:45)
>
>
If I call 

db.isClosed()

it returns FALSE.

Any ideas?

Thanks!

-Andrey




-- 

--- 
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/groups/opt_out.

Reply via email to