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

SQL Anywhere 11.0.1 (中文) » MobiLink - 服务器管理 » MobiLink 服务器 API » 使用 Java 语言编写同步脚本

 

设置 Java 同步逻辑

安装 SQL Anywhere 时,安装程序会自动设置用于 Java 的 MobiLink 服务器 API 类的位置。启动 MobiLink 服务器时,它会自动将这些类加入类路径中。用于 Java 的 MobiLink 服务器 API 类位于 install-dir\Java\mlscript.jar 中。

♦  使用 Java 实现同步脚本
  1. 创建自己的类。为每个所需的同步脚本编写方法。这些方法必须是公共的。类在程序包中必须是公共的。

    请参见方法

    每个包含非静态方法的类都应有一个公共的构造函数。在第一次调用每个类中的方法时,MobiLink 服务器都会自动实例化此类。

    请参见构造函数

  2. 编译类时必须包括 JAR 文件 java\mlscript.jar

    例如,

    javac MyClass.java -classpath "c:\Program Files\SQL Anywhere 11\java\mlscript.jar"
  3. 在统一数据库的 MobiLink 系统表中,为每个同步脚本指定要调用的程序包、类和方法的名称。每个脚本版本中只允许存在一个类。

    例如,可以使用 ml_add_java_connection_script 存储过程或 ml_add_java_table_script 存储过程将此信息添加到 MobiLink 系统表中。

    例如,如果在 SQL Anywhere 数据库中运行以下 SQL 语句,会指定每当发生 authenticate_user 连接级事件时脚本版本 ver1 将运行 myPackage.myClass.myMethod。指定的方法必须是公共 Java 方法的完全限定名称,而且名称应区分大小写。

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

    有关添加脚本的详细信息,请参见:

  4. 指示 MobiLink 服务器装载类。设置 Java 同步逻辑中至关重要的部分是告知虚拟机到哪里寻找 Java 类。有两种方法可实现这一点:

    • 使用 mlsrv11 -sl java -cp 选项来指定要在其中搜索类的一组目录或 jar 文件。例如,可运行以下命令:

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

      MobiLink 服务器会自动将用于 Java 的 MobiLink 服务器 API 类 (java\mlscript.jar) 的位置附加到这组目录或 jar 文件中。-sl java 选项还强制在服务器启动时装载 Java VM。

      有关可用 Java 选项的详细信息,请参见-sl java 选项

    • 显式设置类路径。使用下面这样的语句为用户定义的类设置类路径:

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

      如果系统类路径中已经包含 Java 同步逻辑类,则无需更改 MobiLink 服务器命令行。

      可以使用 -sl java 选项强制在服务器启动时装载 Java 虚拟机。否则 Java 虚拟机将在第一个 Java 方法执行时启动。

      有关可用 Java 选项的详细信息,请参见-sl java 选项

  5. 在 Unix 上,如果想要装载特定的 JRE,应当设置 LD_LIBRARY_PATH(在 AIX 上为 LIBPATH,在 HP-UX 上为 SHLIB_PATH),使之包括含有该 JRE 的目录。此目录必须列在所有 SQL Anywhere 安装目录之前。

另请参见