Beiträge von mehrda

    Wäre noch etwas zum ausprbieren.
    Mach ich nächste Woche, da ich zur Zeit kein JAVA-Tool auf der Maschine habe und die Softwareverteilungs-Fritzen bereits im Weekend sind.


    Ich habe noch eine Info, die vielleicht von Nützen ist:
    Auf dem SQL Server laufen mehrere Instanzen und das Port wird dynamisch generiert.....ist das das Problem?


    gruss

    Klar darfst Du dich da einmischen, das ist ja ein öffentliches Forum;-)


    Ok, wäre auch für mich nicht so schlecht, dann muss ich nicht weiter an den Envoirments und den INIs vom Server herum basteln.
    somit auch deine Frage beantwortet, ja...ich habe alle Eintrage gemacht.


    Hmm, und wie muss ich die im Notes-Agent einbinden??

    Ok, das schanllt er jetzt.
    Nun der folgende Fehler.... (Classpath habe ich gesetzt)


    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at lotus.domino.AgentLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:448)
    at java.lang.Class.forName1(Native Method)
    at java.lang.Class.forName(Class.java:142)
    at JavaAgent.NotesMain(JavaAgent.java:13)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(NotesThread.java:215)

    So sieht mein Script aus, mehr habe ich nicht....
    und was muss ich wo rein schreiben??


    import java.*;
    import java.sql.*;


    /**
    * Microsoft SQL Server JDBC test program
    */
    public class Test {
    public Test() throws Exception {
    // Get connection
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url = "jdbc:microsoft:sqlserver://server:port";
    Connection connection = DriverManager.getConnection(url, "user", "pw");


    if (connection != null) {
    System.out.println();
    System.out.println("Successfully connected");
    System.out.println();
    // Meta data
    DatabaseMetaData meta = connection.getMetaData();
    System.out.println("\nDriver Information");
    System.out.println("Driver Name: " + meta.getDriverName());
    System.out.println("Driver Version: " + meta.getDriverVersion());
    System.out.println("\nDatabase Information ");
    System.out.println("Database Name: " + meta.getDatabaseProductName());
    System.out.println("Database Version: " + meta.getDatabaseProductVersion());
    }
    } // Test
    public static void main (String args[ ]) throws Exception {
    Test test = new Test();
    }
    }

    Das Kompilieren funktioniert jetzt, nun erscheint mir im debuger der Fehler:


    Error loading Agent Base Class



    Hier der connect, der nun funktioniert:
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url = "jdbc:microsoft:sqlserver://server:port";
    Connection connection = DriverManager.getConnection(url, "user", "pw");

    Hey @All


    Möchte eine Datenbank-Verbindung über JDBC von Notes auf eine MS SQL DB realisieren.
    Bin leider noch JAVA Anfänger und taste mich langsam an die Sache ran...


    Ich habe ein Package installiert, das hat mir einige *.jar Files gegeben, welche ich im lib Verzeichnis liegen habe.
    Ich habe auch die Variabeln PATH= und CLASSPATH= gesetzt.


    Trotz all dem bringt er mir beim Kompilieren immer die Fehlermeldung, dass das Package nit existiert:


    Script:
    DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
    Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://server:port","user","pw");


    Fehlermeldung:
    package com.microsoft.jdbc.sqlserver does not exist



    Was muss ich noch machen?


    Gruss, dave

    @member: Zu schwach sind die Server bestimmt nicht....


    admin: Wir haben die Notes-Interne Archivierung ins Auge gefasst und werden diese so mitte Jahr einführen.
    Dann wird sich das ganze bestimmt auch wieder entschärfen.


    Was ich mir sonst noch so überlegt habe:
    - Der Compact unter der Woche mit der Option von Member laufen lassen. Compact -s 5 finde ich einen guten Wert, da werden nicht alle compacted, aber die die wirklich was gelöscht haben, werden compacted.


    - Während des Compact -B alle anderen Domino Task deaktivieren, dass der Server nur Ressourcen für den Compact -B braucht.


    Wie findet ihr das?
    "Fahre" ich so gut?


    Gruss, Dave

    Nochmals ich, leider habe ich nichts weiteres herausgefunden, er macht es einfach nicht.
    Komisch ist noch, dass die Gruppe zuletzt geändert wurde vom Server und dort auch ein aktuelles Datum beinhaltet.


    Es ist zwar ungelöst, ich werde es aber ad-acta legen, da eh bald der 7ner installiert wird.


    gruss dave

    Hallo


    Immer am Weekend lassen wir den compact -B auf beiden Server (Wir haben einen DominoCluster, beide mit 6.5.4FP1) laufen.


    Auch immer am Weekend machen wir einen FullBackup (inkrementell unter der Woche) für unsere 250GB NotesDB-Daten.


    Der Backup dauert inzwischen 11 Stunden....für den Compact -B brauchen die DominoServer ebenfalls 11h.


    Irgendwie kommen wir in einen Engpass, da der Compact -B vor dem FullBackup laufen muss, damit der FullBackup alles einpacken mag....ansonsten bringts das inkrementelle ja nicht.


    Frage:
    Wie macht ihr das mit vergleichsweise gleichviel Daten-Mengen?
    Bringts der "kleine" Compact (ohne Parameter) unter der Woche?



    Gruss, Dave

    Hier der Code:
    **************START******************


    import lotus.domino.*;
    import java.util.Hashtable;
    import javax.naming.Context;
    import javax.naming.directory.InitialDirContext;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.Attributes;
    import javax.naming.directory.SearchControls;
    import javax.naming.directory.SearchResult;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import java.util.Vector;


    public class JavaAgent extends AgentBase {


    public void NotesMain() {


    try {
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();

    System.out.println("Hashtabelle fuer Properties");
    Hashtable env = new Hashtable(11);


    System.out.println("INITIAL_CONTEXT_FACTORY : com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");


    System.out.println("PROVIDER_URL : ldap://SERVERNAME:PORT/");
    env.put(Context.PROVIDER_URL,"ldap://SERVERNAME:PORT/");

    String adminName = "CN=USERNAME,OU=XXX,dc=XXX,dc=XX";
    String adminPasswort = "PASSWORT";


    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, adminName);
    env.put(Context.SECURITY_CREDENTIALS, adminPasswort);


    System.out.println("Context");
    try {
    // initialisieren des Contextes
    System.out.println("Initialisieren des Contextes");
    DirContext ctx = new InitialDirContext(env);


    // Suchparameter
    SearchControls constraints = new SearchControls();
    String searchBase = "SUCHSTRING" ;
    String searchFilter = "(&(objectClass=SEARCHCLASS)(mail=*hans*))";

    // Auch Unterebenen durchsuchen
    constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);


    // Suche starten mit den Argumenten (searchBase, searchFilter, searchCtl)
    NamingEnumeration results = ctx.search(searchBase, searchFilter, constraints);


    System.out.println("Results: " + results.hasMore());


    int totalResults = 0;

    // Durch alle gefundenen Datensätze durchgehen
    while (results.hasMoreElements()) {
    // Das nächste Ergebnis aussuchen
    SearchResult si = (SearchResult) results.next();
    totalResults++;
    System.out.println(">> " + si.getName());
    // Attribute
    Attributes attrs = si.getAttributes();
    }
    System.out.println("Total results: " + totalResults);

    // Verbindung trennen
    ctx.close();
    } catch (NamingException e) {
    System.err.println("Problem : " + e);
    }
    session.recycle();
    } catch(Exception e) {
    e.printStackTrace();
    }
    }
    }


    ***************ENDE******************


    Angepasst werden müssen folgende Zeilen:


    System.out.println("PROVIDER_URL : ldap://SERVERNAME:PORT/");
    env.put(Context.PROVIDER_URL,"ldap://SERVERNAME:PORT/");


    String adminName = "CN=USERNAME,OU=XXX,dc=XXX,dc=XX";
    String adminPasswort = "PASSWORT";


    String searchBase = "SUCHSTRING" ;
    String searchFilter = "(&(objectClass=SEARCHCLASS)(mail=*hans*))";



    Gruss, Dave