迁移使用 Apache Derby 的 UDDI 数据库

如果使用 Apache Derby 的 UDDI 数据库是使用 WebSphere® Application Server V 6.1 或更低版本创建的,并且现在使用 Apache Derby V 10.2 或更高版本,那么您需要迁移该数据库。 如果您的 UDDI 数据库使用任何其他支持的数据库(其中包括版本早于 Apache Derby V10.2 的 Apache Derby),那么不需要执行此过程。

准备工作

迁移 WebSphere Application Server的安装; 确保选择用于迁移应用程序的选项,以便迁移 UDDI 注册中心应用程序。

有关此任务

如果 UDDI 数据库当前使用 Apache Derby V10.2 或更高版本,请执行此过程。 在此版本的产品中,会将此类数据库与 Apache Derby V10.3 配合使用。 通常,如果使用 Apache Derby 的 UDDI 数据库是使用 WebSphere Application Server V 6.1 或更低版本创建的,并且您将服务器升级到产品的当前级别,那么需要迁移该数据库。

如果不迁移该数据库,那么在尝试将业务实体保存到正在产品的当前级别上运行的 UDDI 注册中心(该注册中心使用 Apache Derby V10.2)时,会发生以下错误:

Serious technical error has occurred while processing the request.

过程

  1. 确保停止任何使用 UDDI 数据库的服务器。
  2. 使用以下命令来启动 Apache Derby 命令提示符:
    WAS_HOME/derby/bin/embedded/ij
  3. 在命令提示符下运行以下命令。 替换 CONNECT 语句中的 UDDI 数据库位置。
    connect 'WAS_HOME/profiles/profileName/databases/com.ibm.uddi/UDDI30';
    
    drop trigger ibmudi30.tr_upd_busallsvc_p;
    
    create trigger ibmudi30.tr_upd_bservice_p 
    after update of businesskey on ibmudi30.bservice 
    referencing old as old_real_service 
    new as new_real_service 
    for each row mode db2sql update ibmudi30.busallservice 
    set ibmudi30.busallservice.owningbusinesskey = new_real_service.businesskey 
    where ibmudi30.busallservice.servicekey = new_real_service.servicekey 
    and ibmudi30.busallservice.owningbusinesskey != ibmudi30.busallservice.businesskey;
    
    exit;
  4. 重新启动使用 UDDI 数据库的服务器。