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

SQL Anywhere 12.0.1 » Mobile Link サーバー管理 » Mobile Link サーバー API » Java による同期スクリプトの作成

 

Java 同期論理の設定

 ♦ Java への同期スクリプトの実装

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

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

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

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

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

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

    次に例を示します。

    javac MyClass.java -classpath "C:\Program Files\SQL Anywhere 12\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 ファイルを指定するには、mlsrv12 -sl java -cp オプションを使用します。たとえば、次のコマンドを実行します。

      mlsrv12 -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 mlsrv12 オプションを参照してください。

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

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

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

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

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

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

 参照