private String IaddResourceNode(String resource_id)
    {
        String node_id = null;
        OrientGraph graph = null;
        try
        {
            node_id = getResourceNodeId(resource_id);

            if(node_id != null)
            {
                //System.out.println("Node already Exist: region=" + region + " agent=" + agent + " plugin=" + plugin);
            }
            else
            {
                graph = factory.getTx();
                //add something

                Vertex v = graph.addVertex("class:resourceNode");
                v.setProperty("resource_id", resource_id);
                graph.commit();
                node_id = v.getId().toString();
            }
        }
        catch(com.orientechnologies.orient.core.storage.ORecordDuplicatedException exc)
        {
            //eat exception.. this is not normal and should log somewhere
        }
        catch(com.orientechnologies.orient.core.exception.OConcurrentModificationException exc)
        {
            //eat exception.. this is normal
        }
        catch(Exception ex)
        {
            long threadId = Thread.currentThread().getId();
            System.out.println("addResourceNode: thread_id: " + threadId + " Error " + ex.toString());
        }
        finally
        {
            if(graph != null)
            {
                graph.shutdown();
            }
        }
        return node_id;

    }