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 » Mobile Link サーバ管理 » Mobile Link サーバ API » Java による同期スクリプトの作成

 

Java 同期論理の設定

次の手順を使用して、Java に同期スクリプトを実装します。

前提条件

この作業を実行するための前提条件はありません。

内容と備考

SQL Anywhere をインストールすると、インストーラによって Java 用 Mobile Link サーバ API クラスのロケーションが自動的に設定されます。これらのクラスは、Mobile Link サーバの起動時にクラスパスに自動的に組み込まれます。Java 用 Mobile Link サーバ API クラスは、%SQLANY16%\Java\mlscript.jar にあります。

 ♦ タスク
  1. 1 つまたは複数の独自クラスを作成します。必要な同期スクリプトごとに、メソッドを作成します。これらのメソッドは、パブリックにしてください。クラスは、パッケージ内ではパブリックにしてください。

    メソッドを参照してください。

    非静的メソッドを持つ各クラスには、パブリックコンストラクタが必要です。Mobile Link サーバは、各クラスのメソッドが初めて呼び出されるときに、そのクラスを自動的にインスタンス化します。

    コンストラクタを参照してください。

  2. クラスをコンパイルするときは、JAR ファイル java\mlscript.jar をインクルードしてください。

    次に例を示します。

    javac MyClass.java -classpath "C:\Program Files\SQL Anywhere 16\java\mlscript.jar"
  3. 統合データベースの Mobile Link システムテーブルで、各同期スクリプトについて、呼び出すパッケージ、クラス、メソッドの名前を指定します。スクリプトのバージョンごとに、クラスを 1 つずつ使用します。

    たとえば、ml_add_java_connection_script ストアドプロシージャまたは ml_add_java_table_script ストアドプロシージャを使用して、この情報を Mobile Link システムテーブルに追加できます。

    たとえば、次の SQL 文は、SQL Anywhere データベース内で実行すると、スクリプトバージョン ver1 に対して、authenticate_user 接続レベルイベントが発生するたびに myPackage.myClass.myMethod を実行するように指定します。指定されるメソッドはパブリック Java メソッドの完全修飾名で、大文字と小文字が区別されます。

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

    スクリプト追加の詳細については、以下の項目を参照してください。

  4. Mobile Link サーバがクラスをロードするよう指定します。Java 同期ロジックの設定の中で最も重要な部分は、Java クラスの検索場所を Java VM に対して指定することです。このようにするには、次の 2 つの方法があります。

    • クラスを検索するディレクトリまたは jar ファイルを指定するには、mlsrv16 -sl java -cp オプションを使用します。たとえば、次のコマンドを実行します。

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

      Mobile Link サーバは、一連のディレクトリまたは jar ファイルに Java 用 Mobile Link サーバ API クラスのロケーション (java\mlscript.jar) を自動的に追加します。また、-sl java オプションは、Java VM がサーバの起動時にロードされるよう指定します。

      使用可能な Java オプションの詳細については、-sl java mlsrv16 オプションを参照してください。

    • 明示的にクラスパスを設定します。ユーザ定義クラスのクラスパスを設定するには、次のような文を使用します。

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

      システムのクラスパスに Java 同期論理のクラスが含まれている場合、Mobile Link サーバのコマンドラインを変更する必要はありません。

      -sl java オプションを使用すると、サーバ起動時に Java VM を強制的にロードできます。このオプションを使用しない場合は、Java メソッドが最初に実行されるときに Java VM が起動します。

      使用可能な Java オプションの詳細については、-sl java mlsrv16 オプションを参照してください。

  5. UNIX で特定の JRE をロードする場合は、LD_LIBRARY_PATH (IBM AIX の場合は LIBPATH、HP-UX の場合は SHLIB_PATH) を設定して、JRE を含むディレクトリを指定します。ディレクトリは、すべての SQL Anywhere インストールディレクトリの前に指定します。

結果

Java 同期論理が設定されます。

 参照