TestRunner.java 4.41 KB
package se.lil.om;

import java.util.ArrayList;

public class TestRunner {

	public TestRunner() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Throwable {
		//runner1();
		//test1();
		testTns();
	}
	
	public static void test1() throws Throwable {
		OraMon mon = new OraMon("jdbc:oracle:thin:@//u02822.kap.rsv.se:1526/DB1K06","dbsnmp","dbsnmp"); // CDB
		System.out.println("getData returned: " + mon.getData());
		System.out.println("getDatabaseName: " + mon.getDBName());
	}
	
	public static void testTns() throws Throwable {
		OraMon mon = new OraMon("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=u00153.kap.rsv.se)(Port=1526))(ADDRESS=(PROTOCOL=TCP)(Host=u00154.kap.rsv.se)(Port=1526)))(CONNECT_DATA=(SERVICE_NAME=PB1K001)))","dbsnmp","dbsnmp"); // PDB using TNS
		System.out.println("getData returned: " + mon.getData());
		System.out.println("getDatabaseName: " + mon.getDBName());
		System.out.println("getServiceName: " + mon.getServiceName());
		System.out.println("getFriendlyName: " + mon.getFriendlyName());
		System.out.println("getConString: " + mon.getConString());
		System.out.println("getNumberOfCPUs: " + mon.getNumberOfCPUs());
	}
	
	public static void runner1() throws Throwable {
		// TODO Auto-generated method stub
		
		//ArrayList<OraMon> oraList = new ArrayList<OraMon>();
		ArrayList<OraMon> oraList = Registry.getList();
		
		//OraMon mon1 = new OraMon("jdbc:oracle:thin:@uvp3dbkappkg:1550:VP1K03","dbsnmp","dbsnmp"); // SID eller Service Name format
		//OraMon mon1 = new OraMon("jdbc:oracle:thin:@//u00154.kap.rsv.se:1526/DB1K01","dbsnmp","dbsnmp");
		OraMon mon1 = new OraMon("jdbc:oracle:thin:@//u03634.kap.rsv.se:1526/DA1K001","dbsnmp","dbsnmp");
		//OraMon mon2 = new OraMon("jdbc:oracle:thin:@host:port:sid","user","pass"); // SID format
		mon1.open();
		//mon2.open();
		oraList.add(mon1);
		//oraList.add(mon2);
				
		int times = 100;
		while(times-- > 0) {
			int num = 0;
			for(OraMon mon : oraList) {
				num++;
				Long ts1 = System.currentTimeMillis();
				mon.getData();
				Long time = System.currentTimeMillis() - ts1;
				
				System.out.println(
//						"Logical reads:" + mon.getLogicalReadsPerSecond()
//						+ " Consistent gets: " + mon.getPerSecondValue("consistent gets")
//						+ " Block Gets: " + mon.getPerSecondValue("db block gets")
//						+ " Block Changes: " + mon.getPerSecondValue("db block changes")
//						+ "\n"
						"MON" + num + " CPUs: " + mon.getNumberOfCPUs() 
						+ " CPU Time: " + String.format("%1$,.2f", mon.getCPUTimePerSecond()/1000) + "ms/s"
						+ " CPU Usage: " + String.format("%1$,.2f", mon.getCPUPercent()) + "%"
						+ " CPU xNIWT: " + String.format("%1$,.2f", mon.getCPUPercent(true)) + "%"
						+ " OS Busy: " + String.format("%1$,.2f", mon.getOsBusyPercent()) + "%"
//						+ " (Raw: " + mon.getCPURawValue() 
//						+ " Diff: " + mon.getCPURawDiff()
//						+ " Available: " + String.format("%1$,.2f", mon.getCPUAvailableSeconds()*1000) + ")"
						+ " NIWTime: " + String.format("%1$,.2f", mon.niwTime.getPerSecondValue()) + "ms/s"
//						+ "\n"
//						+ "Cache Hit Ratio: " + String.format("%1$,.2f", mon.getCacheHitRatioPercent()) + "%"
//						+ " Buffer Cache Hit Ratio: " + String.format("%1$,.2f", mon.getBufferCacheHitRatioPercent()) + "%"
//						+ "\n"
//						+ "Redo size: " + mon.getPerSecondValue("redo size")
//						+ " Phys Reads: " + mon.getPerSecondValue("physical reads")
//						+ " Phys Writes: " + mon.getPerSecondValue("physical writes")
//						+ " Redo Writes: " + mon.getPerSecondValue("redo writes")
//						+ "\n"
//						+ "Non Idle Wait: " + mon.getPerSecondValue("non-idle wait time")
//						+ " File IO Wait: " + mon.getPerSecondValue("file io wait time")
//						+ "\n"
//						+ "Executes: " + mon.getPerSecondValue("execute count")
//						+ " User calls: " + mon.getPerSecondValue("user calls")
//						+ " Commits: " + mon.getPerSecondValue("user commits")
//						+ " Rollbacks: " + mon.getPerSecondValue("user rollbacks")
//						+ " Parse tot: " + mon.getPerSecondValue("parse count (total)")
//						+ " Parse hard: " + mon.getPerSecondValue("parse count (hard)")
						+ "\nTime: " + time + "ms"
						);
				
			}
			System.out.println("---------------------------------------------------------------------------------------------------------------");
			Thread.sleep(15000);
		}
		
		// Close all mon objects
		for(OraMon mon : oraList) {
			mon.close();
		}
	}

}