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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » MobiLink - Serveradministration » MobiLink-Server-APIs » Synchronisationsskripten in .NET

 

Synchronisationsskripten in .NET implementieren

Wenn Sie Synchronisationsskripten in .NET implementieren, müssen Sie MobiLink angeben, wo sich die Pakete, Klassen und Methoden befinden, die in Ihren Assemblys enthalten sind.

Voraussetzungen

Es gibt keine Voraussetzungen für diese Aufgabe.

 Aufgabe
  1. Erstellen Sie Ihre Klassen. Schreiben Sie für jedes einzelne erforderliche Synchronisationsereignis eine Methode. Diese Methoden müssen öffentlich sein.

    Weitere Hinweise zu Methoden finden Sie unter 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 für eine Verbindung aufgerufen wird.

    Siehe Konstruktoren.

  2. Erstellen Sie eine oder mehrere Assemblys. Referenzieren Sie beim Kompilieren die Datei iAnywhere.MobiLink.Script.dll, die ein Repository von API-Klassen des MobiLink-Servers enthält, die in Ihren eigenen .NET-Methoden verwendet werden sollen. iAnywhere.MobiLink.Script.dll befindet sich in %SQLANY16%\Assembly\V2.

    Sie können Ihre Klasse von der Befehlszeile aus kompilieren bzw. Visual Studio oder eine andere .NET-Entwicklungsumgebung verwenden.

    Siehe Referenz zur MobiLink-Server-API für .NET.

  3. Kompilieren Sie Ihr Projekt.

    So kompilieren Sie beispielsweise von Visual Studio aus:

    1. Klicken Sie im VS.NET Projektmenü auf die Option Vorhandenes Element hinzufügen.

    2. Suchen Sie die Datei iAnywhere.MobiLink.Script.dll.

      In der Liste Offen klicken Sie auf Datei verknüpfen.

      Hinweis

      Verwenden Sie für Visual Studio immer die Dateiverknüpfungsmethode. Verwenden Sie nicht die Option "Verweis hinzufügen", um iAnywhere.MobiLink.Script.dll zu referenzieren. Die Option "Verweis hinzufügen" dupliziert die Datei iAnywhere.MobiLink.Script.dll im physischen Verzeichnis Ihrer Klassen-Assembly, wodurch Probleme für den MobiLink-Server entstehen.

    3. Verwenden Sie das Menü Erstellen, um Ihr Assembly zu erstellen.

    Sie können auch wie nachfolgend beschrieben über die Befehlszeile kompilieren:

    Ersetzen Sie dll-Pfad mit dem Pfad zur Datei iAnywhere.MobiLink.Script.dll, z.B. in C#:

    csc /out:dll-pathout.dll /target:library /reference:dll-pathiAnywhere.MobiLink.Script.dll sync_v1.cs
  4. 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 nicht mehr als eine Klasse zulässig.

    Sie können diese Angaben beispielsweise mit der gespeicherten Prozedur ml_add_dnet_connection_script oder ml_add_dnet_table_script in die MobiLink-Systemtabellen einfügen. Wenn die nachfolgende SQL-Anweisung in einer SQL Anywhere-Datenbank ausgeführt wird, legt sie fest, dass myNamespace.myClass.myMethod immer dann ausgeführt werden soll, wenn auf Verbindungsebene das Ereignis authenticate_user eintritt.

    CALL ml_add_dnet_connection_script( 
        'version1',
        'authenticate_user', 
        'myNamespace.myClass.myMethod'
    )
    Hinweis

    Der vollständig angegebene Methodenname berücksichtigt die Groß- und Kleinschreibung.

    Dieser Prozeduraufruf bewirkt, dass die Spalte script_language in der Systemtabelle ml_script das Wort dnet enthalten muss. Die Skriptspalte enthält den qualifizierten Namen einer öffentlichen .NET-Methode.

    Siehe ml_add_dnet_connection_script-Systemprozedur und ml_add_dnet_table_script-Systemprozedur.

    Es besteht außerdem die Möglichkeit, diese Angaben mit Sybase Central hinzuzufügen.

    Siehe Hinzufügungen und Löschungen von Skripten.

  5. Weisen Sie den MobiLink-Server an, Assemblys zu laden und den CLR zu starten. Sie geben für MobiLink mit Optionen in der mlsrv16-Befehlszeile an, wo sich diese Assemblys befinden. Sie können zwischen zwei Optionen wählen:

    • -sl dnet verwenden ( -MLAutoLoadPath )   Hiermit setzen Sie den Pfad auf das Stammverzeichnis der Anwendung und laden alle privaten Assemblys aus diesem Verzeichnis. In der Regel wird diese Option bevorzugt. Um beispielsweise alle Assemblys aus dll-path zu laden, geben Sie Folgendes ein:
      mlsrv16 -c "DSN=consolidated1" -sl dnet(-MLAutoLoadPath=dll-path)

      Wenn Sie die Option -MLAutoLoadPath verwenden, können Sie im Ereignisskript bei der Eingabe eines voll qualifizierten Methodennamens keine Domäne angeben.

      Siehe Laden von .NET-Assemblys und mlsrv16-Option -sl dnet .

    • -sl dnet verwenden ( -MLDomConfigFile )   Diese Option erfordert eine Konfigurationsdatei, die Domänen- und Assembly-Einstellungen enthält. Verwenden Sie diese Option, wenn Sie gemeinsam genutzte Assemblys haben und nicht alle Assemblys in einem Verzeichnis laden möchten oder wenn Sie aus einem anderen Grund eine Konfigurationsdatei verwenden müssen.

      Weitere Hinweise zum Laden von gemeinsam genutzten Assemblys finden Sie unter Laden von .NET-Assemblys.

      Weitere Hinweise zur mlsrv16-Option -sl dnet finden Sie unter mlsrv16-Option -sl dnet .

      Hinweis

      Sie können die Option -MLAutoLoadPath oder -MLDomConfigFile verwenden, aber nicht beide.

Ergebnisse

Die .NET-Synchronisationslogik wird eingerichtet.