如果使用 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.
过程
- 确保停止任何使用 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 数据库的服务器。