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.
