Thank you. I will have to take a close look at # of vertices, edges, properties per transaction. Does not seem like they are huge, but forming relationships perhaps ends up reading and modifying large edge collections.
On Wed, Sep 16, 2015 at 2:33 PM, José Cornado <[email protected]> wrote: > I meant vertices, edges, properties, labels. When I have ran into this it > was caused by not do the bean counting. I work with a realtively simple > graph that run into supernodes quickly. But as luigi said, maybe try to > reproduce it outside all that noise > > > On Wednesday, September 16, 2015 at 8:39:14 AM UTC-6, Chris Gomes wrote: >> >> Hi Jose, >> Actually in our case, our transaction does not deal with more than at >> most 3-4K add/update/remove/read operations at a time. Do you mean # of >> operations or size of objects? >> >> Thanks >> -Chris >> >> On Wednesday, September 16, 2015 at 6:44:01 AM UTC-4, José Cornado wrote: >>> >>> My two cents: >>> >>> When I experience these performance drops, it has always been the case >>> that I left too many graph operations accumulate. My ballpark threshold is >>> 48K add/remove ops. It seems to do the job. >>> >>> >>> On Friday, September 11, 2015 at 3:59:17 PM UTC-6, Chris Gomes wrote: >>>> >>>> >>>> Hello, >>>> I really hope someone can shed some light on the performance issues that >>>> we have been experiencing. Thank you much in advance. >>>> >>>> Regards, >>>> -Chris >>>> >>>> I have attached 2 html files - one is heap dump of OrientDB server and the >>>> other is App 2 VM. >>>> Below is also partial stack trace of App 2 and some code snippet where >>>> main transaction boundaries are. >>>> >>>> We are getting long commit time and eventually runs out of memory, >>>> currently *Orient *is becoming *unusable *for what we are trying to do >>>> with client *App 2* as described below. >>>> >>>> *Background*: >>>> Database Server instance using Java 8 >>>> 1) We run OrientDB using server.sh/bat as a standalone and with 1G of heap >>>> space and default Disk Cache >>>> Databases >>>> 2) We have 2 databases created as plocal and graph, let's name them, >>>> Expansion & Universe. >>>> 3) 2 have 2 client applications, both are spring boot project with an >>>> embedded jetty container, run as executable jars >>>> >>>> *Java Client Applications - Spring Boot using Java 8* >>>> 4) App 1 - reads a large xml file (670 Meg and process each business unit >>>> of at a time) and create Vertices and Edges based on the >>>> business concepts described in the xml. NOTE, in both app we define the >>>> schema for Vertices and Edge Type definitions. >>>> For APP 1, Expansion DB barely has any index as we mostly write blindly >>>> as an expansion of elements from XML. BUT, we will need to read the data >>>> from APP 2. To load the file and expand the xml int vertex and edge >>>> representation it takes anywhere from 55 to 2 hours, depending on SSD vs >>>> regular disk, this is on a brand new clean DB. >>>> >>>> One thing that is clear, as data grows, same data file loaded again will >>>> take longer to load, seems like linear growth. I noticed something in the >>>> forum about this already. >>>> This file has about 35,000 business unit worth of data. The raw size in DB >>>> is 2,610,075 edges, 2,610,076 vertices. We have defined about 16 >>>> Vertices (vertex types) and 23 Edges (edge types) in Expansion and >>>> Universe DB. >>>> This is just one file and we will get incremental update everyday and will >>>> grow over the time. So, we would need to be able to handle large amount of >>>> data in MANY millions in both databases. >>>> >>>> App 1 runs fine with 256Meg of heap space and though it gets slower over >>>> the time, it runs. >>>> >>>> *5) App 2 *- All edge types have non unique index as we need to look for >>>> existing of vertices in an edge as well as we keep history of >>>> relationships as in what point a relationship is no longer current. >>>> We also have index for some of the Vertex where we have some business key >>>> we need to query on. Overall # of indices are certainly much more than >>>> Expansion DB, >>>> but not overwhelming as we would be doing lot of bulk writing >>>> (create/update vertices, create/update edges) as well as reading to look >>>> for existing vertices or edges. >>>> >>>> 6) NOTE, we use connection pool and transaction. Our transaction boundary >>>> would process a Business unit worth of data, which translates into* >>>> average of 100 vertices/edges.* >>>> However some extreme cases we could end up creating/updating about *1500 >>>> vertices/edges*. >>>> 7) App 2 has 2 Graph connection Factory one for each DB (Expansion and >>>> Universe). App reads one Business unit worth of vertices/edges from >>>> Expansion DB and in a transaction writes (create/update/lookup) into >>>> Universe DB. >>>> *Average for this varies from 2 sec to 4 secs depending on SSD vs non-SSD >>>> disks. * >>>> >>>> *8) With 1G of heap for the App2, it will eventually get out of memory >>>> exception.* I have only been able to process 30,000 business units read >>>> from Expansion DB and it took over 11 hours before getting out of memory. >>>> This is on a SSD drive. At this performance, the app and DB becomes pretty >>>> much unusable. >>>> >>>> 9) Tried few suggestions based on forum and documentation - *disabling >>>> transaction log, but I don't think it made any real difference*. >>>> >>>> *Here's the stack trace from App 2. I have also heap dumps from both >>>> OrientDB server and App 2.* >>>> >>>> Would love some insights as to what the options are. I am curious if >>>> anyone else is using OrientDB for something like the way I described. I >>>> don't think this usecase is anything out of the ordinary. >>>> >>>> *--- Stack Trace from Client App 2: Note, Caused by: >>>> java.lang.OutOfMemoryError: Java heap space---* >>>> >>>> 2015-09-11 04:11:16.858 DEBUG 1132 --- [qtp174969681-23] >>>> .b.u.u.UniverseMergeRequestServiceFacade : Processed 30555 statements with >>>> an average of 1332 milliseconds >>>> 2015-09-11 04:17:52.406 DEBUG 1132 --- [qtp174969681-23] >>>> c.b.u.u.StatementUniverseMergeService : >>>> {"delivery-id":"1e556f40-7e00-d9ba-9464-22000b9447eb","log-type":"universe-merge-statement","universe-merge-request-uuid":"c0fbbf7d-358e-4a01-a5c1-44007a311aab","statement-uid":"1e4ed31a-3631-df77-b997-22000a4590b6"} >>>> 2015-09-11 04:17:55.268 DEBUG 1132 --- [qtp174969681-23] >>>> c.b.u.u.StatementUniverseMergeService : >>>> {"delivery-id":"1e556f40-7e00-d9ba-9464-22000b9447eb","log-type":"universe-merge-statement","universe-merge-request-uuid":"c0fbbf7d-358e-4a01-a5c1-44007a311aab","statement-uid":"1e4ed31a-3f9b-d96a-b997-22000a4590b6"} >>>> 2015-09-11 04:18:01.435 DEBUG 1132 --- [qtp174969681-23] >>>> c.b.u.u.StatementUniverseMergeService : >>>> {"delivery-id":"1e556f40-7e00-d9ba-9464-22000b9447eb","log-type":"universe-merge-statement","universe-merge-request-uuid":"c0fbbf7d-358e-4a01-a5c1-44007a311aab","statement-uid":"1e4ed31a-3fe7-d518-b997-22000a4590b6"} >>>> 2015-09-11 04:34:02.328 ERROR 1132 --- [qtp174969681-23] >>>> .b.u.u.UniverseMergeRequestServiceFacade : Universe merge request for >>>> deliveries failed for extraction date > 2001-01-01 00:00:00.0 >>>> >>>> com.bps.commons.exception.StateDumpException: Exception thrown when >>>> creating the statement due to Exception during response processing. >>>> at >>>> com.bps.urjanet.universe.StatementUniverseMergeService.merge(StatementUniverseMergeService.java:97) >>>> at >>>> com.bps.urjanet.universe.UniverseMergeRequestServiceFacade.processMergeRequest(UniverseMergeRequestServiceFacade.java:87) >>>> at >>>> com.bps.urjanet.universe.resource.UniverseMergeResource.requestUniverseMerge(UniverseMergeResource.java:47) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>> at >>>> org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) >>>> at >>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151) >>>> at >>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:172) >>>> at >>>> org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152) >>>> at >>>> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104) >>>> at >>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:384) >>>> at >>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:342) >>>> at >>>> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101) >>>> at >>>> org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271) >>>> at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) >>>> at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) >>>> at org.glassfish.jersey.internal.Errors.process(Errors.java:315) >>>> at org.glassfish.jersey.internal.Errors.process(Errors.java:297) >>>> at org.glassfish.jersey.internal.Errors.process(Errors.java:267) >>>> at >>>> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) >>>> at >>>> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) >>>> at >>>> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1030) >>>> at >>>> org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:377) >>>> at >>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) >>>> at >>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344) >>>> at >>>> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) >>>> at >>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) >>>> at >>>> org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:224) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:291) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:102) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) >>>> at >>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) >>>> at >>>> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >>>> at >>>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) >>>> at >>>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration$MetricsFilter.doFilterInternal(MetricFilterAutoConfiguration.java:90) >>>> at >>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) >>>> at >>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) >>>> at >>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) >>>> at >>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) >>>> at >>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) >>>> at >>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) >>>> at >>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) >>>> at >>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) >>>> at >>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) >>>> at >>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) >>>> at org.eclipse.jetty.server.Server.handle(Server.java:497) >>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) >>>> at >>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) >>>> at >>>> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) >>>> at >>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) >>>> at >>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) >>>> at java.lang.Thread.run(Unknown Source) >>>> Caused by: >>>> com.orientechnologies.orient.enterprise.channel.binary.OResponseProcessingException: >>>> Exception during response processing. >>>> at >>>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.throwSerializedException(OChannelBinaryAsynchClient.java:445) >>>> at >>>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.handleStatus(OChannelBinaryAsynchClient.java:400) >>>> at >>>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:282) >>>> at >>>> com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.beginResponse(OChannelBinaryAsynchClient.java:171) >>>> at >>>> com.orientechnologies.orient.client.remote.OStorageRemote.beginResponse(OStorageRemote.java:2136) >>>> at >>>> com.orientechnologies.orient.client.remote.OStorageRemote.commit(OStorageRemote.java:1364) >>>> at >>>> com.orientechnologies.orient.client.remote.OStorageRemoteThread.commit(OStorageRemoteThread.java:448) >>>> at >>>> com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:596) >>>> at >>>> com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:156) >>>> at >>>> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2578) >>>> at >>>> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2547) >>>> at >>>> com.tinkerpop.blueprints.impls.orient.OrientTransactionalGraph.commit(OrientTransactionalGraph.java:161) >>>> >>>> >>>> >>>> * at >>>> com.bps.urjanet.universe.StatementUniverseMergeService.merge(StatementUniverseMergeService.java:85) >>>> ... 95 common frames omittedCaused by: java.lang.OutOfMemoryError: Java >>>> heap space* >>>> 2015-09-11 04:34:02.349 ERROR 1132 --- [qtp174969681-23] >>>> c.b.u.u.r.StateDumpExceptionMapper : >>>> StateDumpExceptionMapper>>toResponse:Error Occured: Exception thrown when >>>> updating the StatementsDelivery due to Transaction was rolled back more >>>> times than it was started. >>>> Transaction was rolled back more times than it was started. >>>> >>>> >>>> com.bps.commons.exception.StateDumpException: Exception thrown when >>>> updating the StatementsDelivery due to Transaction was rolled back more >>>> times than it was started. >>>> ... >>>> Caused by: >>>> com.orientechnologies.orient.core.exception.OTransactionException: >>>> Transaction was rolled back more times than it was started. >>>> at >>>> com.orientechnologies.orient.core.tx.OTransactionOptimistic.rollback(OTransactionOptimistic.java:188) >>>> at >>>> com.orientechnologies.orient.core.tx.OTransactionOptimistic.rollback(OTransactionOptimistic.java:169) >>>> at >>>> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.endResponse(ONetworkProtocolBinary.java:1764) >>>> at >>>> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.readRecord(ONetworkProtocolBinary.java:1662) >>>> at >>>> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:353) >>>> at >>>> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:223) >>>> at >>>> com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:77) >>>> >>>> >>>> >>>> *///Code snippet of where the main transaction processing happens. This >>>> method is called from another service to loop for each Business unit of >>>> work.As you can see, each business unit of work is where transactions are >>>> happening. * >>>> >>>> public TreeVertex merge(params...){ >>>> >>>> List<Reference> references = new ArrayList<>(); >>>> List<MeasurementPeriod> measurementPeriods = new ArrayList<>(); >>>> List<SummaryData> summaryDatas = new ArrayList<>(); >>>> List<RateComponents> rateComponentsList = new ArrayList<>(); >>>> Map<String, OrientVertex> vertexMap = new HashMap<>(); //<UID, >>>> Vertex> Only objects that have a UID that are created in process. >>>> >>>> *OrientGraph mergedGraph = >>>> this.orientUniverseGraphFactory.getTx();* //Exception should flow >>>> through. This is a problem. >>>> OrientVertex statement = null; >>>> >>>> try { >>>> *mergedGraph.begin();* >>>> >>>> *mergedGraph.getRawGraph().getTransaction().setUsingLog(false);* >>>> >>>> >>>> statementProcessor.endEdgesWithStatementUid(mergedGraph, uid); //If any >>>> edges are found with the statement UID, then end those relationships. >>>> >>>> statement = process(mergedGraph, expandedTreeVertex, >>>> deliveryId, uid, vertexMap, >>>> references, measurementPeriods, >>>> summaryDatas, rateComponentsList >>>> ); >>>> >>>> *mergedGraph.commit();* >>>> >>>> } catch (Exception e) { >>>> *mergedGraph.rollback();* >>>> >>>> throw new StateDumpException("Exception thrown when >>>> creating the statement due to " + e.getMessage(), e) >>>> .addStateDump("universeMergeRequestUuid", >>>> universeMergeRequestUuid) >>>> .addStateDump("deliveryId", deliveryId) >>>> .addStateDump("statement-uid", uid); >>>> } finally { >>>> >>>> >>>> *if (mergedGraph != null) { >>>> mergedGraph.shutdown(); }* >>>> } >>>> >>>> * mergedGraph = this.orientUniverseGraphFactory.getTx(); >>>> *//Exception should flow through. This is a problem. >>>> try { >>>> >>>> *mergedGraph.begin(); >>>> mergedGraph.getRawGraph().getTransaction().setUsingLog(false);* >>>> >>>> childProcessor.postProcess(mergedGraph, statement, >>>> references, measurementPeriods, summaryDatas, rateComponentsList); >>>> *mergedGraph.commit();* >>>> >>>> } catch (Exception e) { >>>> mergedGraph.rollback(); >>>> >>>> throw new StateDumpException("Exception thrown when >>>> creating the statement due to " + e.getMessage(), e) >>>> >>>> .addStateDump("universeMergeRequestUuid", universeMergeRequestUuid) >>>> .addStateDump("deliveryId", deliveryId) >>>> .addStateDump("uid", uid); >>>> } finally { >>>> >>>> >>>> *if (mergedGraph != null) { >>>> mergedGraph.shutdown(); }* >>>> } >>>> >>>> >>>> } >>>> ---- >>>> >>>> -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "OrientDB" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/orient-database/aVUbokCskEs/unsubscribe. > To unsubscribe from this group and all its topics, 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.
