如果使用 Apache Derby 的 UDDI 数据库是使用 WebSphere® Application Server V6.1 或更早版本建立的,且该 UDDI 数据库现在使用 Apache Derby V10.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 V6.1 或更早版本建立的,且您将服务器升级到产品的最新级别,那么您需要迁移该数据库。
如果不迁移该数据库,并且尝试将业务实体保存到 UDDI 注册中心(在产品的最新级别上运行),而该注册中心使用 Apache Derby V10.2,那么会发生以下错误:
Serious technical error has occurred while processing the request.
过程
- 确保停止任何使用 UDDI 数据库的服务器。
- 使用以下命令来启动 Apache Derby 命令提示符:
WAS_HOME/derby/bin/embedded/ij
- 在命令提示符下运行以下命令。替换 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;
- 重新启动使用 UDDI 数据库的服务器。