Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Server-APIs » Schreiben eines Synchronisationsskripts in Java

 

Java-Synchronisationslogik einrichten

 Implementieren von Synchronisationsskripten in Java

Wenn Sie SQL Anywhere installieren, legt das Installationsprogramm automatisch den Speicherort der API für Java-Klassen von MobiLink fest. Wenn Sie den MobiLink-Server starten, schließt er diese Klassen automatisch in die classpath-Variable ein. Die MobiLink-Server-API für Java-Klassen befindet sich in %SQLANY12%\java\mlscript.jar.

  1. Erstellen Sie Ihre Klassen. Schreiben Sie für jedes einzelne erforderliche Synchronisationsskript eine Methode. Diese Methoden müssen öffentlich sein. Die Klasse muss im Paket öffentlich sein.

    Siehe Methoden.

    Jede Klasse mit nichtstatischen Methoden muss über einen öffentlichen Konstruktor verfügen. Der MobiLink-Server instanziert automatisch jede einzelne Klasse, wenn eine Methode in der betreffenden Klasse zum ersten Mal aufgerufen wird.

    Siehe Konstruktoren.

  2. Beim Kompilieren der Klasse müssen Sie die JAR-Datei java\mlscript.jar einbeziehen.

    Beispiel:

    javac MyClass.java -classpath "C:\Programme\SQL Anywhere 12\java\mlscript.jar"
  3. In den MobiLink-Systemtabellen Ihrer konsolidierten Datenbank geben Sie für jedes einzelne Skript den Namen des aufzurufenden Pakets, der Klasse und der Methode an. Pro Skriptversion ist eine Klasse zulässig.

    Sie können diese Angaben beispielsweise mit der gespeicherten Prozedur ml_add_java_connection_script oder ml_add_java_table_script in die MobiLink-Systemtabellen einfügen.

    Wird z.B. die folgende SQL-Anweisung in einer SQL Anywhere-Datenbank ausgeführt, dann wird festgelegt, dass "MyPackage.MyClass.myMethod" für die Skriptversion verl immer dann ausgeführt werden soll, wenn auf Verbindungsebene das Ereignis authenticate_user eintritt. Bei der festgelegten Methode muss es sich um den vollständigen qualifizierten Namen einer öffentlichen Java-Methode handeln. Der Name berücksichtigt die Groß- und Kleinschreibung.

    call ml_add_java_connection_script('ver1',
    'authenticate_user', 'myPackage.myClass.myMethod')

    Weitere Hinweise zur Erstellung von Skripten finden Sie unter:

  4. Weisen Sie den MobiLink-Server an, Klassen zu laden. Ein wesentlicher Bestandteil der Java-Synchronisationslogik besteht darin, der Java VM mitzuteilen, wo sich die Java-Klassen befinden. Dies kann auf zwei Wegen geschehen:

    • Verwenden Sie die mlsrv12-Option -sl java -cp, um eine Reihe von Verzeichnissen oder Jar-Dateien festzulegen, in denen nach Klassen gesucht werden soll. Führen Sie zum Beispiel folgenden Befehl aus:

      mlsrv12 -c "DSN=consolidated1" -sl java (-cp %classpath%;c:\local\Java\myclasses.jar)

      Der MobiLink-Server fügt automatisch den Speicherort der API für Java-Klassen des MobiLink-Servers (java\mlscript.jar) an die Gruppe der Verzeichnisse oder JAR-Dateien an. Die Option -sl java erzwingt auch, dass die Java Virtual Machine beim Start des Servers geladen wird.

      Weitere Hinweise zu den verfügbaren Java-Optionen finden Sie unter mlsrv12-Option -sl java.

    • Legen Sie den Klassenpfad explizit fest. Verwenden Sie eine Anweisung wie die folgende, um den Klassenpfad für benutzerdefinierte Klassen festzulegen:

      SET classpath=%classpath%;c:\local\Java\myclasses.jar

      Wenn Ihr Systemklassenpfad die Klassen Ihrer Java-Synchronisationslogik umfasst, müssen Sie in der Befehlszeile des MobiLink-Servers nichts ändern.

      Mit der Java-Option -sl können Sie erzwingen, dass die Java VM beim Start des Servers geladen wird. Andernfalls wird die Java VM bei der Ausführung der ersten Java-Methode gestartet.

      Weitere Hinweise zu den verfügbaren Java-Optionen finden Sie unter mlsrv12-Option -sl java.

  5. Wenn Sie unter UNIX eine bestimmte JRE laden wollen, legen Sie die Umgebungsvariable LD_LIBRARY_PATH (LIBPATH unter IBM AIX, SHLIB_PATH unter HP-UX), fest, sodass das Verzeichnis mit der JRE einbezogen wird. Das Verzeichnis muss vor allen SQL Anywhere-Installationsverzeichnissen aufgeführt sein.

 Siehe auch