Package slavetest

Source Code of slavetest.StartHaDb

/**
* Copyright (c) 2002-2011 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package slavetest;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.Config;
import org.neo4j.kernel.HighlyAvailableGraphDatabase;
import org.neo4j.kernel.ha.zookeeper.NeoStoreUtil;

public class StartHaDb
{
    public static final File PATH = new File( "var/hadb" );

    static final String ME = "172.16.1.242:5559";
    static final int MY_MACHINE_ID = 2;
       
    static final String[] ZOO_KEEPER_SERVERS = new String[] {
        "172.16.2.33:2181",
        "172.16.1.242:2181",
        "172.16.4.14:2181",
    };

    public static void main( String[] args ) throws Exception
    {
        NeoStoreUtil store = new NeoStoreUtil( PATH.getPath() );
        System.out.println( "Starting store: createTime=" + new Date( store.getCreationTime() ) +
                " identifier=" + store.getStoreId() + " last committed tx=" + store.getLastCommittedTx() );
        GraphDatabaseService db = startDb();
        System.out.println( "Waiting for ENTER (for clean shutdown)" );
        System.in.read();
        db.shutdown();
//        doStuff( db );
    }

    private static GraphDatabaseService startDb() throws IOException
    {
        return new HighlyAvailableGraphDatabase( PATH.getPath(), MapUtil.stringMap(
                HighlyAvailableGraphDatabase.CONFIG_KEY_HA_MACHINE_ID, "" + MY_MACHINE_ID,
                HighlyAvailableGraphDatabase.CONFIG_KEY_HA_ZOO_KEEPER_SERVERS, join( ZOO_KEEPER_SERVERS, "," ),
                HighlyAvailableGraphDatabase.CONFIG_KEY_HA_SERVER, ME,
                Config.ENABLE_REMOTE_SHELL, "true",
                Config.KEEP_LOGICAL_LOGS, "true" ) );
    }
   
//    private static void doStuff( GraphDatabaseService db ) throws IOException
//    {
//        RelationshipType refType = DynamicRelationshipType.withName( "MATTIAS_REF" );
//        RelationshipType type = DynamicRelationshipType.withName( "JOHAN_IS_NOOB" );
//        long time = System.currentTimeMillis();
//        int txCount = 0;
//        while ( System.currentTimeMillis() - time < 60000 )
//        {
//            Transaction tx = db.beginTx();
//            boolean restarted = false;
//            try
//            {
//                Node refNode = db.getReferenceNode();
//                refNode.setProperty( "name", "MP" + System.currentTimeMillis() );
//                Node myRefNode = db.createNode();
//                refNode.createRelationshipTo( myRefNode, refType );
//                for ( int i = 0; i < 20; i++ )
//                {
//                    Node node = db.createNode();
//                    Relationship rel = myRefNode.createRelationshipTo( node, type );
//                    rel.setProperty( "something", i );
//                }
//                tx.success();
//
//                if ( Math.random() < 0.33 )
//                {
//                    db.shutdown();
//                    db = startDb();
//                    restarted = true;
//                }
//            }
//            finally
//            {
//                if ( !restarted )
//                {
//                    tx.finish();
//                }
//            }
//            verifyDb( db );
//
//            if ( ++txCount % 100 == 0 ) System.out.println( txCount );
//        }
//        System.out.println( "done " + txCount );
//    }
//
//    private static void verifyDb( GraphDatabaseService db )
//    {
//        for ( Node node : db.getAllNodes() )
//        {
//            for ( String key : node.getPropertyKeys() )
//            {
//                node.getProperty( key );
//            }
//            for ( Relationship rel : node.getRelationships( Direction.OUTGOING ) )
//            {
//                for ( String key : rel.getPropertyKeys() )
//                {
//                    rel.getProperty( key );
//                }
//            }
//        }
//    }

    public static String join( String[] strings, String delimiter )
    {
        StringBuilder builder = new StringBuilder();
        for ( String string : strings )
        {
            builder.append( (builder.length() > 0 ? delimiter : "") + string );
        }
        return builder.toString();
    }
}
TOP

Related Classes of slavetest.StartHaDb

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.