orient db disconnect/timeout

134 views
Skip to first unread message

Mihai Ocneanu

unread,
May 4, 2016, 5:12:25 AM5/4/16
to OrientDB
Hello,

I'm having a strange issue with orientdb getting disconnected: after a longer period of inactivity ( ~3hours ? ), when we try to insert/register a new user, the attempt hangs on commit.

There is no error, but a warnings in the server log:
WARNING [com.orientechnologies.orient.client.remote.OStorageRemote] (default task-4) Caught I/O errors from Not connected (local socket=?), trying to reconnect (error: java.io.IOException: Stream closed)
WARNING [com.orientechnologies.orient.client.remote.OStorageRemote] (default task-4) Connection re-acquired transparently after 156ms and 1 retries to server '127.0.0.1:2424/ImpYMaster2': no errors will be thrown at application level

The code is nothing out of the ordinary:

newUser = txGraph.addVertex("class:V_User");
//set some properties
userConfToken
= txGraph.addVertex("class:V_UConfirmationToken");
//set some other properties
txGraph
.addEdge("class:E_UserConfirmationToken", newUser, userConfToken, "E_UserConfirmationToken");
//just created an edge

//and just commit the whole thing
txGraph
.commit();

//where OrientGraph txGraph = graphFactory.getTx() ...




By 'hangs', I mean, on commit, there are no errors thrown, the data gets persisted, but any lines of code after the commit never get executed. All our  code is executed as the result of a POST call, so the end result is that the call never completes.

The client/ JAVA API version is 2.1.6, and the DB version is the same.
The transaction is not started manually.
The app is packaged as a war and deployed with Wildfly.
If the application is redeployed / Wildfly is restarted, it will work OK until it will time-out/disconnect again.

It's difficult track down/debug as it seems to happen after a long period of inactivity.

Q: Is is something related to the odb version? Should we try mis-matched client/db versions?
Q: How/when does the timeout/disconnect occur? Why does it occur?
Q: Can we change the timeout interval?
Q: Is there a way to manually check within the Java API that we're disconnected and then manually reconnect?

Thanks,
Mihai

Andrea Pravato

unread,
May 4, 2016, 5:17:19 AM5/4/16
to OrientDB
The same situation happens if we use the database from the same server in which the database is running, with the difference that the first warning is about Channel closed instead of Stream closed:
WARNING [com.orientechnologies.orient.client.remote.OStorageRemote] (default task-4) Caught I/O errors from Not connected (local socket=?), trying to reconnect (error: java.io.IOException: Channel closed)

Luca Son

unread,
May 4, 2016, 5:50:33 AM5/4/16
to orient-...@googlegroups.com
Hi Mihai,

the reasons of the issue can be different (e.g. network problems) but similar issues have been fixed in the latest OrientDB versions.

Could you try to update to the latest 2.1.16 ?

Thanks
Reply all
Reply to author
Forward
0 new messages