Benutzer-Werkzeuge

Webseiten-Werkzeuge


nosql:admin_console_oracle_nosql_db_11gr2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
nosql:admin_console_oracle_nosql_db_11gr2 [2013/07/26 16:17]
gpipperr
nosql:admin_console_oracle_nosql_db_11gr2 [2013/07/26 16:18] (aktuell)
gpipperr [Version abfragen]
Zeile 1: Zeile 1:
 +===== Die Befehle der Admin Konsole der Oracle NoSQL DB im eigenen Programm integrieren =====
  
 +Über die Klasse CommandServiceAPI kann auch im eigenen Programmcode auf die Befehle der Admin Konsole der NoSQL Datenbank zugegriffen werden.
 +
 +=== Initialisieren ===
 +
 +<code java>
 +
 +..
 +    public static CommandServiceAPI csi = null;
 +    public static String adminNode = "localost";
 +    public static int adminPort = 5000;
 +..
 +    /**
 +      init the Command API
 +     */
 +    public static void init(String nodeName, int RMIPort) {
 +        log("     =============Get PerfMap Demo ==========================");
 +        try {
 +            if (csi == null) {
 +                csi = RegistryUtils.getAdmin(nodeName, RMIPort);
 +            }
 +
 +        }
 +        catch (Exception ex) {
 +            log(ex.toString());
 +        }
 +
 +    }
 +</code>
 +
 +=== Beispiel für den Aufruf der Performance Statistik ohne den lästigen Header der Amin Konsole===
 +
 +<code java>    
 +
 +    /**
 +     * show the performance Satistik of the KStore
 +     */
 +
 +    public static void showPerfStat() {
 +
 +        log("     =============Get PerfMap Demo ==========================");
 +        try {
 +            if (csi == null) {
 +                init(adminNode, adminPort);
 +            }
 +
 +            Map<ResourceId, PerfEvent> perfmap = csi.getPerfMap();
 +
 +            for (PerfEvent pe : perfmap.values()) {
 +                System.out.println(pe.getColumnFormatted());
 +            }
 +        }
 +        catch (Exception ex) {
 +            log(ex.toString());
 +        }
 +
 +        log("     =============Get PerfMap Demo ==========================");
 +    }
 +    
 +</code>
 +
 +===Beispiel für die Anzeige der Topology===
 +
 +<code java>    
 +    /**
 +     * show the Topology Overview of the KStore
 +     */
 +    
 +        public static void showTopology(){
 +        
 +        log("     =============show Part Map ==========================");
 +        
 +        try {
 +            
 +            if (csi == null) {
 +                init(adminNode, adminPort);
 +            }           
 +            
 +            Topology topo = csi.getTopology();
 +            PartitionMap part = topo.getPartitionMap();
 +           
 +            for (Topology.Component com :  part.getAll()) {
 +                System.out.println(com.toString());
 +            }
 +            for ( StorageNode sn : topo.getSortedStorageNodes() ){
 +                System.out.println("Read from "+ sn.getStorageNodeId() +" read :: "+sn.toString());                
 +            }
 +            
 +        }
 +        catch (Exception ex) {
 +            log(ex.toString());
 +        }
 +
 +        log("     =============show Part Map ==========================");
 +        
 +    }
 +
 +</code>
 +
 +=== Beispiel für eine Anzeige des Status der einzelnen Nodes in einer CSV Sicht ===
 +
 +<code java>
 +
 +    public static void showTopologyCSV() {
 +
 +        try {
 +
 +            if (csi == null) {
 +                init(adminNode, adminPort);
 +            }
 +
 +            // get the topo
 +
 +            Topology topo = csi.getTopology();
 +
 +            //register util
 +            RegistryUtils regUtils = new RegistryUtils(topo);
 +
 +            // grep the status
 +            ServiceStatus status = ServiceStatus.UNREACHABLE;
 +            // For all Storage Nodes
 +            StorageNodeStatus snStatus = null;
 +            StorageNodeAgentAPI sna = null;
 +
 +            RepNodeStatus rnStatus = null;
 +            RepNodeAdminAPI rna = null;
 +            String repRole = "MASTER";
 +
 +            for (StorageNode sn : topo.getSortedStorageNodes()) {
 +                sna = regUtils.getStorageNodeAgent(sn.getStorageNodeId());
 +                snStatus = sna.ping();
 +                status = snStatus.getServiceStatus();
 +                System.out.printf("nosqlTopo=%s|%s|%s|null\n",sn.getStorageNodeId(),sn.toString(),status);
 +
 +                RepGroupMap snrepgrp = topo.getRepGroupMap();
 +                for (RepGroup r : snrepgrp.getAll()) {
 +                    for (RepNode rn2 : r.getRepNodes()) {
 +                        rna = regUtils.getRepNodeAdmin(rn2.getResourceId());
 +                        rnStatus = rna.ping();
 +                        status = rnStatus.getServiceStatus();
 +                        if (sn.getStorageNodeId().equals(rn2.getStorageNodeId())) {
 +
 +                            if (rnStatus.getReplicationState().isMaster()) {
 +                                repRole = "MASTER";
 +                            } else {
 +                                repRole = "REPLICA";
 +                            }
 +
 +                             System.out.printf("nosqlTopo=%s|%s|%s|%s\n",rn2.toString(),r.toString(),status,repRole);
 +                        }
 +                    }
 +                }
 +
 +            }
 +
 +        } catch (Exception ex) {
 +            System.out.println(ex.toString());
 +        }
 +
 +</code>
 +
 +==== Version abfragen ====
 +
 +Erste Version,geht über die ganze Topology, kann noch verbessert werden .-)!
 +
 +<code java>
 +    public static void showVersion() {
 +
 +        String version     = "n/a";
 +        String datacenter  = "n/a";
 +        String storeName   = "n/a";
 +        String numPartions = "100";
 +
 +        try {
 +
 +            if (csi == null) {
 +                init(adminNode, adminPort);
 +            }
 +
 +            // get the topo
 +            Topology topo = csi.getTopology();
 +            
 +            storeName   = topo.getKVStoreName();
 +            numPartions = ""+topo.getPartitionMap().size();
 +
 +            //register util
 +            RegistryUtils regUtils = new RegistryUtils(topo);
 +           
 +            RepNodeAdminAPI rna = null;
 +            
 +            KVVersion rnVersion = null;
 +
 +            RepGroupMap snrepgrp = topo.getRepGroupMap();
 +
 +            for (RepGroup r : snrepgrp.getAll()) {
 +                for (RepNode rn2 : r.getRepNodes()) {
 +                    rna = regUtils.getRepNodeAdmin(rn2.getResourceId());
 +                    rnVersion = rna.getInfo().getSoftwareVersion();
 +                    version = rnVersion.getNumericVersionString();
 +                    datacenter = topo.getDatacenter(rn2.getStorageNodeId()).getName();
 +                }
 +            }
 +
 +        } catch (Exception ex) {
 +            System.out.println(ex.toString());
 +        }
 +
 +        System.out.printf("Version %s| DataCenter %s| Storename %s| Anzahl Partitionen %s\n", version, datacenter,storeName,numPartions);
 +
 +    }
 +</code>
"Autor: Gunther Pipperr"
nosql/admin_console_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2013/07/26 16:18 von gpipperr