次の手順を使用して、Java に同期スクリプトを実装します。
前提条件
この作業を実行するための前提条件はありません。
内容と備考
SQL Anywhere をインストールすると、インストーラによって Java 用 Mobile Link サーバ API クラスのロケーションが自動的に設定されます。これらのクラスは、Mobile Link サーバの起動時にクラスパスに自動的に組み込まれます。Java 用 Mobile Link サーバ API クラスは、%SQLANY16%\Java\mlscript.jar にあります。
1 つまたは複数の独自クラスを作成します。必要な同期スクリプトごとに、メソッドを作成します。これらのメソッドは、パブリックにしてください。クラスは、パッケージ内ではパブリックにしてください。
メソッドを参照してください。
非静的メソッドを持つ各クラスには、パブリックコンストラクタが必要です。Mobile Link サーバは、各クラスのメソッドが初めて呼び出されるときに、そのクラスを自動的にインスタンス化します。
コンストラクタを参照してください。
クラスをコンパイルするときは、JAR ファイル java\mlscript.jar をインクルードしてください。
次に例を示します。
javac MyClass.java -classpath "C:\Program Files\SQL Anywhere 16\java\mlscript.jar" |
統合データベースの 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') |
スクリプト追加の詳細については、以下の項目を参照してください。
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 オプションを参照してください。
UNIX で特定の JRE をロードする場合は、LD_LIBRARY_PATH (IBM AIX の場合は LIBPATH、HP-UX の場合は SHLIB_PATH) を設定して、JRE を含むディレクトリを指定します。ディレクトリは、すべての SQL Anywhere インストールディレクトリの前に指定します。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |