Database transfer to Oracle fails during action-transfer-jcr

本文记录了一次将数据库迁移至Oracle过程中出现的问题及解决思路。迁移过程中遇到的主要问题是由于Oracle服务器与本地JDBC驱动不匹配导致的数据转移失败。文中详细记录了错误日志,并给出了可能的解决方案。

Database transfer to Oracle fails during action-transfer-jcr

Problem
The database transfer to Oracle fails during the action-transfer-jcr sub-task. The following error is captured in the ConfigTrace.log:

[java] 15:05:22.944 com.ibm.wps.config.db.transfer.TransferDatabase
process main
[java] Adding DB Item 6 ICMADMIN."ICMSTRESOURCEMGR" (13)Columns
to work queue.

[java] 15:05:23.012
com.ibm.wps.config.db.transfer.TransferDatabaseTable
createPreparedStatement main
[java] java.lang.ClassCastException: General Exception caught while
processing this column
[java] at
com.ibm.wps.config.db.transfer.TransferDatabaseRow.updatePreparedStateme
nt(TransferDatabaseRow.java:440)
[java] INSERT INTO icmadm.ICMSTRESOURCEMGR
(RMCODE,RMPLATFORM,USERID,CHANGED,RMFLAGS,TOKENDURATION,DOMAINID,RMUSERI
D,RMPASSWORD,RMNAME,INETADDR,CURRENTVERSION,CACHEOBJSIZELIMIT) VALUES(
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )

[java] at
com.ibm.wps.config.db.transfer.TransferDatabaseRow.writeDatabaseRow(Tran
sferDatabaseRow.java:569)
[java] 15:05:23.012
com.ibm.wps.config.db.transfer.TransferDatabaseTable
transferDatabaseTable main
[java] Transferring table --{ ICMSTRESOURCEMGR }--

[java] at
com.ibm.wps.config.db.transfer.TransferDatabaseTable.populateDatabaseRow
(TransferDatabaseTable.java:188)
[java] 15:05:23.016
com.ibm.wps.config.db.transfer.TransferDatabaseRow
updatePreparedStatement main
[java] ERROR -- Original Type is: TIMESTAMP : 93

[java] at
com.ibm.wps.config.db.transfer.TransferDatabaseTable.transferDatabaseTab
le(TransferDatabaseTable.java:166)
[java] at
com.ibm.wps.config.db.transfer.TransferDatabase.process(TransferDatabase
.java:400)
[java] at
com.ibm.wps.config.db.transfer.TransferDatabase.initiate(TransferDatabas
e.java:167)
[java] 15:05:23.017
com.ibm.wps.config.db.transfer.TransferDatabaseRow
updatePreparedStatement main
[java] ERROR -- Value is 2005-07-21 17:50:25.315 ( class
java.sql.Timestamp )

[java] 15:05:23.017
com.ibm.wps.config.db.transfer.TransferDatabaseRow
updatePreparedStatement main
[java] at
com.ibm.wps.config.db.transfer.TransferDatabase.main(TransferDatabase.ja
va:458)
[java] Exception in thread "main" java.lang.Error
[java] ERROR -- New Type is : TIMESTAMP(6) : 1111

[java] 15:05:23.018
com.ibm.wps.config.db.transfer.TransferDatabaseRow
updatePreparedStatement main
[java] at
com.ibm.wps.config.db.transfer.TransferDatabaseTable.populateDatabaseRow
(TransferDatabaseTable.java:200)
[java] ERROR -- Column Name :CHANGED

[java] 15:05:23.018
com.ibm.wps.config.db.transfer.TransferDatabaseTable populateDatabaseRow
main
[java] at
com.ibm.wps.config.db.transfer.TransferDatabaseTable.transferDatabaseTab
le(TransferDatabaseTable.java:166)
[java] at
com.ibm.wps.config.db.transfer.TransferDatabase.process(TransferDatabase
.java:400)
[java] ERROR 1288-- Transferring data of table
--ICMSTRESOURCEMGR-- FAILED

[java] at
com.ibm.wps.config.db.transfer.TransferDatabase.initiate(TransferDatabas
e.java:167)
[java] at
com.ibm.wps.config.db.transfer.TransferDatabase.main(TransferDatabase.ja
va:458)
Target finished: action-transfer-jcr
Target finished: database-transfer-jcr-populate-oracle
Target finished: action-database-transfer-jcr-populate
Target finished: database-transfer-jcr
Target finished: action-transfer-content-management
Target finished: database-transfer

BUILD FAILED 
 
Cause
This issue was caused by an Oracle driver mismatch between the Oracle server and the local JDBC driver. 
 
Solution
The drivers may look the same and may report the same level, but something has caused a driver mismatch. You should contact Oracle support for more information.
In some cases, the issue has been resolved by downloading a new Oracle 32-bit driver from the Oracle Web site and replace the existing drivers.
 

在使用 `ctrip-apollo` 时,配置获取失败是一个较为常见的问题,可能由多种原因引起。以下是一些可能的原因及对应的解决方案: ### 1. Apollo 服务端未启动或网络不通 如果 Apollo 配置中心的服务端没有正常启动,或者客户端无法访问 Apollo 服务端的地址,将导致配置无法获取。 检查 Apollo 服务端是否正常运行,并确保客户端可以访问 Apollo 的 Meta Server 地址。可以通过 `ping` 或 `telnet` 命令测试网络连通性。 ### 2. 客户端配置错误 `application.properties` 或 `bootstrap.properties` 中的 Apollo 配置参数不正确可能导致连接失败。例如: - `app.id` 配置错误,导致无法匹配 Apollo 服务端中的应用配置。 - `apollo.meta` 配置不正确,导致客户端无法定位到正确的 Apollo 服务地址。 - `apollo.cluster` 配置错误,导致客户端尝试从错误的集群获取配置信息。 确保这些参数与 Apollo 服务端中的配置一致。 ### 3. Apollo 配置中心的 Namespace 配置问题 如果使用了自定义的 `namespace`,但未在 Apollo 服务端中正确配置,或者客户端使用的 `namespace` 名称与服务端不一致,会导致配置获取失败。 检查客户端与服务端的 `namespace` 配置是否一致,并确保相关配置项已正确发布。 ### 4. Apollo 客户端版本与服务端不兼容 不同版本的 Apollo 客户端与服务端可能存在兼容性问题。如果客户端版本过低或过高,可能无法正常获取配置。 建议使用官方推荐的版本组合,并确保客户端与服务端版本兼容。 ### 5. 权限问题 Apollo 配置中心可能对某些配置项设置了访问权限。如果客户端使用的账号没有足够的权限访问特定的配置项,也会导致配置获取失败。 检查 Apollo 服务端的权限配置,确保客户端使用的账号具有访问相关配置的权限。 ### 6. 日志文件排查 查看 Apollo 客户端的日志文件,通常会记录详细的错误信息。通过日志可以更准确地定位问题。例如,日志中可能会显示连接超时、认证失败等错误信息。 ### 7. 灰度发布或集群配置问题 如果启用了灰度发布功能,但未正确配置灰度规则,或者客户端所在的集群未正确配置,可能导致配置无法获取。 检查灰度发布和集群配置是否正确,并确保客户端所在的集群与 Apollo 服务端的配置一致。 ### 示例代码 以下是一个典型的 Apollo 客户端配置示例: ```properties # application.properties app.id=your-app-id apollo.meta=http://apollo-configservice:8080 apollo.cluster=default apollo.namespace=application ``` ### 解决方案总结 - 确保 Apollo 服务端正常运行,并且客户端可以访问服务端。 - 检查客户端配置文件中的 `app.id`、`apollo.meta`、`apollo.cluster` 和 `apollo.namespace` 是否正确。 - 确保客户端与服务端版本兼容。 - 检查权限配置,确保客户端账号有访问相关配置的权限。 - 查看日志文件,定位具体的错误信息。 - 检查灰度发布和集群配置是否正确。 通过以上步骤,可以有效排查和解决 `ctrip-apollo` 配置获取失败的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值