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.

Reply via email to