No, not that I can see.
I removed the catch code and re-ran to see what else it might come up with,
and below is what I got:
Exception in thread "main" org.neo4j.graphdb.TransactionFailureException:
Unable to commit transaction
at
org.neo4j.kernel.TopLevelTransaction.close(TopLevelTransaction.java:134)
at
org.mitre.provenance.db.neo4j.Neo4JStorage.getMembers(Neo4JStorage.java:545)
at org.mitre.provenance.test.Stub.main(Stub.java:17)
Caused by: javax.transaction.RollbackException: Failed to commit,
transaction rolled back
at
org.neo4j.kernel.impl.transaction.TxManager.rollbackCommit(TxManager.java:623)
at
org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:402)
at
org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:122)
at
org.neo4j.kernel.TopLevelTransaction.close(TopLevelTransaction.java:124)
... 2 more
On Wednesday, February 5, 2014 10:13:55 AM UTC-5, Jacob Hansson wrote:
>
> David, are there any additional cause exceptions available for that stack
> trace?
>
> Sent from my phone, please excuse typos and brevity.
> On Feb 5, 2014 3:56 PM, "M. David Allen" <[email protected]<javascript:>>
> wrote:
>
>> I'm running into exceptions where my transactions fail to commit, even
>> though they're read-only cypher queries. I created a small test database
>> that's attached to some software I've written (running embedded DB). I'm
>> attaching messages.log for a lot of diagnostics. I ran some simple stub
>> code to populate the test database, then do some querying on it using
>> methods I wrote.
>>
>> I'm hoping to find some help with why this is happening. I can actually
>> safely ignore these transaction exceptions, and nothing seems to go
>> horribly wrong, but they just shouldn't be there and I don't want to ignore
>> them as my strategy. Below I'm providing what the exceptions look like,
>> and the code of the method that's creating these exceptions. In other
>> parts of my code base I have other similar queries (always read-only cypher
>> queries wrapped in transactions) that have the same problems. I ran this
>> stub to try to illustrate the problem in one specific compact way.
>>
>> The exception dumps --
>>
>> SEVERE: Failed transaction: Unable to commit transaction
>> org.neo4j.graphdb.TransactionFailureException: Unable to commit
>> transaction
>> at
>> org.neo4j.kernel.TopLevelTransaction.close(TopLevelTransaction.java:134)
>> at
>> org.mitre.provenance.db.neo4j.Neo4JStorage.getMembers(Neo4JStorage.java:545)
>> at org.mitre.provenance.test.Stub.main(Stub.java:17)
>> Caused by: javax.transaction.RollbackException: Failed to commit,
>> transaction rolled back
>> at
>> org.neo4j.kernel.impl.transaction.TxManager.rollbackCommit(TxManager.java:623)
>> at
>> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:402)
>> at
>> org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:122)
>> at
>> org.neo4j.kernel.TopLevelTransaction.close(TopLevelTransaction.java:124)
>>
>> The code that's throwing the exception:
>>
>> public static ProvenanceCollection getMembers(PLUSWorkflow wf, User
>> user, int maximum) {
>> ViewedCollection d = new ViewedCollection(user);
>> if(db == null) initialize();
>>
>> if(maximum <= 0 || maximum > Neo4JPLUSObjectFactory.MAX_OBJECTS)
>> maximum = 100;
>>
>> Map<String,Object>params = new HashMap<String,Object>();
>> params.put("wf", wf.getId());
>> String query = "start
>> r=relationship:relationship_auto_index(workflow={wf}) " +
>> "return r " +
>> "limit " + maximum;
>>
>> try (Transaction tx = db.beginTx()) {
>> ResourceIterator<Relationship> rs =
>> Neo4JStorage.execute(query, params).columnAs("r");
>>
>> try {
>> while(rs.hasNext()) {
>> Relationship r = rs.next();
>>
>>
>> d.addNode(Neo4JPLUSObjectFactory.newObject(r.getStartNode()));
>>
>> d.addNode(Neo4JPLUSObjectFactory.newObject(r.getEndNode()));
>> d.addEdge(Neo4JPLUSObjectFactory.newEdge(r));
>>
>> }
>> } catch(PLUSException exc) {
>> exc.printStackTrace();
>> }
>>
>> rs.close();
>> tx.success();
>> } catch(TransactionFailureException exc) {
>> log.severe("Failed transaction: " + exc.getMessage());
>> exc.printStackTrace();
>> }
>>
>> return d;
>> } // End getMembers
>>
>> Another relevant method (Neo4JStorage.execute): (db is a
>> GraphDatabaseService)
>>
>> public static ExecutionResult execute(String cypherQuery,
>> Map<String,Object>params) {
>> if(db == null) initialize();
>>
>> ExecutionEngine engine = new ExecutionEngine(db);
>>
>> assert(db.index().getNodeAutoIndexer().isEnabled());
>>
>> StringBuffer sb = new StringBuffer("");
>> for(String k : params.keySet()) sb.append(" " + k + "=" +
>> params.get(k));
>>
>> //log.info("EXECUTING: " + cypherQuery + " /" +sb);
>> return engine.execute(cypherQuery + " ", params);
>> }
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
--
You received this message because you are subscribed to the Google Groups
"Neo4j" 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.