Go to https://github.com/orientechnologies/orientdb/issues , the rest is obvious :-)
On Mon, Mar 17, 2014 at 7:19 PM, Dodong Juan <[email protected]> wrote: > Just show my how .. > > > On Monday, March 17, 2014 1:15:36 PM UTC-4, Andrey Lomakin wrote: > >> Thank you very much I will look on it tomorrow. >> Meanwhile do not you mind to create issue so I will start to work on it ? >> >> >> >> On Mon, Mar 17, 2014 at 7:08 PM, Dodong Juan <[email protected]> wrote: >> >>> TestNode is define this way >>> >>> create class TestNode extends V >>> >>> create property TestNode.uuid String >>> >>> create index TestNode.index on TestNode(uuid) UNIQUE >>> >>> >>> >>> On Monday, March 17, 2014 1:05:21 PM UTC-4, Dodong Juan wrote: >>>> >>>> A quick code .. >>>> >>>> >>>> >>>> >>>> import java.util.HashMap; >>>> >>>> import java.util.concurrent.BlockingQueue; >>>> >>>> import java.util.concurrent.LinkedBlockingQueue; >>>> >>>> import java.util.concurrent.ThreadPoolExecutor; >>>> >>>> import java.util.concurrent.TimeUnit; >>>> >>>> >>>> import com.tinkerpop.blueprints.Vertex; >>>> >>>> import com.tinkerpop.blueprints.impls.orient.OrientBaseGraph; >>>> >>>> import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory; >>>> >>>> import com.tinkerpop.blueprints.impls.orient.OrientGraphNoTx; >>>> >>>> import com.tinkerpop.blueprints.impls.orient.OrientVertex; >>>> >>>> >>>> public class TestConnection >>>> >>>> { >>>> >>>> >>>> private static final String url = "remote:localhost/testdb"; >>>> >>>> private static final String user = "admin"; >>>> >>>> private static final String pass = "admin"; >>>> >>>> >>>> OrientGraphFactory graphFactory; >>>> >>>> >>>> private static final ThreadLocal<OrientGraphNoTx> graphNoTx = >>>> newThreadLocal<OrientGraphNoTx>() >>>> ; >>>> >>>> private int counter = 0; >>>> >>>> >>>> public TestConnection() >>>> >>>> { >>>> >>>> graphFactory = new OrientGraphFactory(url, user, pass); >>>> >>>> } >>>> >>>> >>>> public OrientGraphNoTx getDB() >>>> >>>> { >>>> >>>> if (graphNoTx.get() == null) >>>> >>>> { >>>> >>>> graphNoTx.set(graphFactory.getNoTx()); >>>> >>>> } >>>> >>>> >>>> return graphNoTx.get(); >>>> >>>> } >>>> >>>> >>>> public synchronized String getId() >>>> >>>> { >>>> >>>> counter++; >>>> >>>> return "ID: " + counter; >>>> >>>> } >>>> >>>> >>>> public Vertex query(OrientBaseGraph graph, String uuid) >>>> >>>> { >>>> >>>> Vertex ret = null; >>>> >>>> >>>> Object rec = graph.getRawGraph().getMetadata().getIndexManager(). >>>> getIndex("TestNode.index").get(uuid); >>>> >>>> >>>> if (rec != null) >>>> >>>> { >>>> >>>> ret = graph.getVertex(rec); >>>> >>>> } >>>> >>>> >>>> return ret; >>>> >>>> } >>>> >>>> >>>> public Vertex saveNode(OrientBaseGraph graph) >>>> >>>> { >>>> >>>> String id = this.getId(); >>>> >>>> >>>> Vertex v = query(graph, id); >>>> >>>> if (v == null) >>>> >>>> { >>>> >>>> HashMap<String, Object> prop = new HashMap<String, Object>(); >>>> >>>> >>>> prop.put("uuid", id); >>>> >>>> prop.put("createTime", System.currentTimeMillis()); >>>> >>>> prop.put("updateTime", System.currentTimeMillis()); >>>> >>>> v = graph.addVertex("class:TestNode", prop); >>>> >>>> >>>> } >>>> >>>> >>>> return v; >>>> >>>> } >>>> >>>> >>>> public static void main(String[] args) >>>> >>>> { >>>> >>>> final TestConnection tc = new TestConnection(); >>>> >>>> BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>( >>>> ); >>>> >>>> >>>> ThreadPoolExecutor tp = new ThreadPoolExecutor(10, 40, 30, TimeUnit. >>>> SECONDS, workQueue); >>>> >>>> >>>> for (int count = 0; count < 1000; count++) >>>> >>>> { >>>> >>>> System.out.println("Running : " + count); >>>> >>>> >>>> if (tp.getActiveCount() > 40) >>>> >>>> { >>>> >>>> try >>>> >>>> { >>>> >>>> Thread.sleep(100); >>>> >>>> } catch (InterruptedException e) >>>> >>>> { >>>> >>>> // TODO Auto-generated catch block >>>> >>>> e.printStackTrace(); >>>> >>>> } >>>> >>>> >>>> } >>>> >>>> >>>> Thread t = new Thread() >>>> >>>> { >>>> >>>> public void run() >>>> >>>> { >>>> >>>> OrientGraphNoTx graph = tc.getDB(); >>>> >>>> >>>> OrientVertex v1 = (OrientVertex) tc.saveNode(graph); >>>> >>>> OrientVertex v2 = (OrientVertex) tc.saveNode(graph); >>>> >>>> v1.addEdge(null, v2, "CONNECT"); >>>> >>>> graph.shutdown(); >>>> >>>> >>>> } >>>> >>>> >>>> }; >>>> >>>> >>>> tp.execute(t); >>>> >>>> >>>> } >>>> >>>> >>>> } >>>> >>>> >>>> } >>>> >>>> >>>> On Monday, March 17, 2014 11:52:10 AM UTC-4, Dodong Juan wrote: >>>>> >>>>> yes .. 1.7-rc2 .. >>>>> I will create a test case .. >>>>> >>>>> On Monday, March 17, 2014 11:40:39 AM UTC-4, Andrey Lomakin wrote: >>>>>> >>>>>> I would appreciate if you provide test case. >>>>>> You use 1.7-rc2, right ? >>>>>> >>>>>> >>>>>> On Mon, Mar 17, 2014 at 5:34 PM, Dodong Juan <[email protected]>wrote: >>>>>> >>>>>>> In my case, If I do shutdown on the graph, I get an exception of >>>>>>> IllegalStateException: Database is closed. >>>>>>> >>>>>>> This is >>>>>>> >>>>>>> >>>>>>> On Monday, March 17, 2014 7:24:22 AM UTC-4, Andrey Lomakin wrote: >>>>>>> >>>>>>>> You should use shutdown as usual to put connection back to the pool. >>>>>>>> And call close only during application shutdown. >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Mar 17, 2014 at 1:14 PM, <[email protected]> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> A have implemented a connection pool based on this: >>>>>>>>> http://www.orientechnologies.com/new-orientdb-graph-factory/ >>>>>>>>> >>>>>>>>> OrientGraphFactory factory = new >>>>>>>>> OrientGraphFactory("plocal:/var/www/data/" >>>>>>>>> + tenant).setupPool(1, 10); >>>>>>>>> ... >>>>>>>>> OrientGraph graph = factory.getTx(); >>>>>>>>> >>>>>>>>> The documentation implies that calling factory.close() to free >>>>>>>>> resources, can that that right? >>>>>>>>> >>>>>>>>> Should I not be able to close/return one graph (graph.close() / >>>>>>>>> graph.release()) at a time? >>>>>>>>> >>>>>>>>> Thank you, >>>>>>>>> -Stefán >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> --- >>>>>>>>> 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. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Best regards, >>>>>>>> Andrey Lomakin. >>>>>>>> >>>>>>>> Orient Technologies >>>>>>>> the Company behind OrientDB >>>>>>>> >>>>>>>> -- >>>>>>> >>>>>>> --- >>>>>>> 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. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best regards, >>>>>> Andrey Lomakin. >>>>>> >>>>>> Orient Technologies >>>>>> the Company behind OrientDB >>>>>> >>>>>> -- >>> >>> --- >>> 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. >>> >> >> >> >> -- >> Best regards, >> Andrey Lomakin. >> >> Orient Technologies >> the Company behind OrientDB >> >> -- > > --- > 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. > -- Best regards, Andrey Lomakin. Orient Technologies the Company behind OrientDB -- --- 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.
