com.hangum.tadpole.mongodb.core.test.MongoTestProfilling.java Source code

Java tutorial

Introduction

Here is the source code for com.hangum.tadpole.mongodb.core.test.MongoTestProfilling.java

Source

/*******************************************************************************
 * Copyright (c) 2013 hangum.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v2.1
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * 
 * Contributors:
 *     hangum - initial API and implementation
 ******************************************************************************/
package com.hangum.tadpole.mongodb.core.test;

import com.hangum.tadpole.commons.util.JSONUtil;
import com.mongodb.BasicDBObject;
import com.mongodb.CommandResult;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.util.JSON;

/**
 * profilling example
 * 
 * @author hangum
 * 
 */
public class MongoTestProfilling {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        ConAndAuthentication testMongoCls = new ConAndAuthentication();
        Mongo mongo = testMongoCls.connection(ConAndAuthentication.serverurl, ConAndAuthentication.port);
        DB db = mongo.getDB("test");

        // ??       
        System.out.println("####[profilling  ]######################################################");
        CommandResult cr = db.command(new BasicDBObject("profile", 0));

        System.out.println("[ok]" + cr.ok());
        if (!cr.ok())
            System.out.println("[Exception ]" + cr.getException().toString());
        System.out.println("[toString]" + JSONUtil.getPretty(cr.toString()));
        System.out.println("[size]" + cr.size());
        System.out.println("####[profilling  ]######################################################");

        //  ?          
        System.out.println(
                "####[profilling collections  ]######################################################");
        if (db.collectionExists("system.profile")) {
            DBCollection profileColl = db.getCollection("system.profile");
            profileColl.drop();
        }
        System.out.println(
                "####[profilling collections  ]######################################################");
        //  ?     

        // system.profile collection ? 
        System.out.println(
                "####[profilling collections ? ]######################################################");
        DBObject dbObject = (DBObject) JSON.parse("{capped:true, size:8000000}");
        DBCollection dbColl = db.createCollection("system.profile", dbObject);
        BasicDBObject newProfileColl = (BasicDBObject) dbColl.getStats().copy();
        System.out.println(
                "####[profilling collections ? ]######################################################");
        // system.profile collection ? 

        System.out.println("####[profilling ]######################################################");
        cr = db.command(new BasicDBObject("profile", 2));

        System.out.println("[ok]" + cr.ok());
        if (!cr.ok())
            System.out.println("[Exception ]" + cr.getException().toString());
        System.out.println("[toString]" + JSONUtil.getPretty(cr.toString()));
        System.out.println("[size]" + cr.size());
        System.out.println("####[profilling ]######################################################");

        //      //#######################################################################################################
        //      //#######################################################################################################
        //      //#######################################################################################################      
        System.out.println("####[start profilling result]######################################################");
        DBCollection myColl = db.getCollection("system.profile");

        BasicDBObject query = new BasicDBObject();
        query.put("millis", new BasicDBObject("$gt", 4));

        DBCursor myCursor = myColl.find();
        while (myCursor.hasNext()) {
            DBObject dbObj = myCursor.next();
            System.out.println(dbObj.get("ts") + " - " + dbObj.get("ns") + " - " + dbObj.get("nscanned") + "/"
                    + dbObj.get("nreturned") + " millis :" + dbObj.get("millis"));
        }
        System.out.println("####[end profilling result]######################################################");

        mongo.close();
    }

}