问题标签 [ibm-data-replication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
379 浏览

java - IBM CDC for MySQL 未启动

我正在尝试为 AS400 设置 IBM 数据复制到 MySQL。对于目标 MySQL,它现在是最新的 MySQL 8.0.20 Community Server。我已经很好地测试了 JDBC 连接。但是,CDC 实例从未启动(通过测试从 8.0.9rc 到 8.0.20 的 MySQL Jdbc 连接)。在 Windows 中,实例已添加但未启动。某些操作已完成,但无法在 RHEL 中添加实例。但是,日志错误消息完全相同。

  1. IBM InfoSphere CDC 访问服务器 (11.4.0.2 - 11016)
  2. IBM InfoSphere Data Replication for MySQL (11.4.0.2 - 5548) 备注:RHEL / Windows 2016 测试环境都面临相同的结果

仅对于 8.0.9rc 到 8.0.11,它可能会尝试连接并返回错误。

  • 格式错误的数据库 URL,无法解析主要 URL 部分。

由于 1.8 的 JRE/JDK 提供了 IBM,我已经为设置设置了正确的 JAVA_HOME、PATH。有什么线索吗?我已经尝试了连接字符串:(在 Windows / Linux Access Server + IIDR 上)

  • jdbc:mysql://127.0.0.1:3306/testdb
  • jdbc:mysql://127.0.0.1:3306/testdb?useSSL=false
  • jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
  • jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT

实际上,它提供了相同的结果。我试图用 jdbc 输入错误:mysql://127.0.0.1:3306/testdb&useSSL=false

然后,它可以返回语法错误。有没有人有任何线索?是否与 JDBC VS Java 版本兼容性问题有关?

详细的 Java 日志消息: 36 2020-06-07 11:21:51.335 main{1} com.datamirror.ts.engine.ReplicationExecutive startup() 监控统计数据库错误:发生 SQL 异常。SQL 错误代码为“0”。SQL 状态为:08001。错误消息为:|Cannot load connection class because of underly exception: com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL section.†com.datamirror .ts.monitoragent.statistics.MonitorStatisticsPbException 监控统计数据库错误:发生 SQL 异常。SQL 错误代码为“0”。SQL 状态为:08001。错误消息为:|无法加载连接类,因为基础异常:com.mysql.cj.core.exceptions.WrongArgumentException:数据库 URL 格式错误,无法解析主要 URL 部分。| 在 com.datamirror.ts。monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:616)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics.java:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools。shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools.script.Startup.main(Startup.java:105)|原因:java.sql.SQLNonTransientConnectionException 由于基础异常无法加载连接类:com.mysql.cj.core.exceptions.WrongArgumentException : 格式错误的数据库 URL,无法解析主要 URL 部分。| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:108)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)| 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping。translateException(SQLExceptionsMapping.java:79)| 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:131)| 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:232)| 在 java.sql.DriverManager.getConnection(DriverManager.java:675)| 在 java.sql.DriverManager.getConnection(DriverManager.java:258)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.createConnection(MonitorStatisticsDatabase.java:765)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:569)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics。爪哇:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools.shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools.script.Startup.main(Startup.java:105)|原因:com.mysql.cj.core.exceptions.UnableToConnectException 由于底层异常无法加载连接类:com.mysql.cj .core.exceptions.WrongArgumentException:数据库 URL 格式错误,无法解析主要 URL 部分。| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:83)| 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)| 在 java.lang.reflect.Constructor.newInstance(Constructor.java:437)| 在 com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:60)| 在 com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:99)| 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:232)| 在 java.sql.DriverManager.getConnection(DriverManager.java:675)| 在 java.sql.DriverManager.getConnection(DriverManager.java:258)| 在 com.datamirror.ts。monitoragent.statistics.MonitorStatisticsDatabase.createConnection(MonitorStatisticsDatabase.java:765)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:569)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics.java:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools.shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools.script.Startup.main(Startup.java:105)|原因:com.mysql.cj.core.exceptions.WrongArgumentException 数据库 URL 格式错误,无法解析主要 URL 部分。| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:83)| 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)| 在 java.lang.reflect.Constructor.newInstance(Constructor.java:437)| 在 com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:60)| 在 com. mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:140)| 在 com.mysql.cj.core.conf.url.ConnectionUrlParser.(ConnectionUrlParser.java:130)| 在 com.mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:119)| 在 com.mysql.cj.core.conf.url.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:197)| 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:202)| 在 java.sql.DriverManager.getConnection(DriverManager.java:675)| 在 java.sql.DriverManager.getConnection(DriverManager.java:258)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.createConnection(MonitorStatisticsDatabase.java:765)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:第569章 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics.java:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools.shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools。

0 投票
1 回答
262 浏览

ibm-midrange - i 系列上的 IBM CDC(来源)

我正在为 CDC(数据复制)使用 11.4.0 从 AS400(i 系列)捕获数据的新测试环境中工作。不幸的是,使用 QSECOFR 的用户没有连接它进行安装,并且 D_MIRROR 将被创建。

尝试连接数据存储时,它提示我输入密码。因此,我尝试让 QSECOFR 登录,但再次提示我。所以,我已经要求 AS400 管理员用密码更改 D_MIRROR 用户配置文件。登录过程很好,但无法映射带有错误的订阅。

错误:无法完成目标表的映射,因为源表的定义在目标数据存储中不存在。这可能是由于描述不完整造成的。检查事件日志以了解相关事件和可能的原因。

我不确定接下来我应该做什么。

0 投票
1 回答
142 浏览

ibm-data-replication - 订阅已收到中止关闭请求

我订阅了 DB2 for i (as400) 作为源,Kafka 作为目标 (11.4.0.2)。复制方法是REFRESH。

订阅中有一个表,运行良好。

但是在我将其删除并将其添加到另一个新订阅(具有相同的源和目标,也是 REFRESH)之后,它无法被复制。复制以以下消息结束: Subscription XXX has received a request for an abort shutdown.没有其他错误消息。CDC 似乎忽略了表映射(已刷新标志)。

从日志中,它返回: Received normal shutdown request number 9 with reason OTHER_ENGINE_COMPLETE

我不知道发生了什么,因为日志中没有明显的提示。

我尝试(1)重新创建表映射和(2)更新表定义,但没有工作。可以复制订阅中的其他表。

0 投票
2 回答
90 浏览

ibm-midrange - IBM 中的 CDC 引擎,我无法启动 TCP 侦听器作业

DB2 for i我为我的客户设置了 CDC 引擎。我安装好了。启动 DMIRROR 子系统没问题,但是当我启动 TCP 侦听器作业 (STRDMTCP) 时,该作业无法启动。在作业日志中,它显示此错误:

关于如何解决这个问题的任何想法?太感谢了。

0 投票
0 回答
103 浏览

mysql - IBM CDC Replication 获取 SQL 错误代码 1172,SQL 状态 42000

我正在使用 IBM CDC Replication 将数据从 AS400 复制到 MySQL。

来源:AS400 (CDC Engine for DB2 for i)==> 目标:MySQL (CDC Engine for FlexRep)

然后,我使用下表映射创建了一个订阅作为镜像复制:

source.item==>target.item

显然,source.item来自 AS400,target.item来自 MySQL。 target.item对 具有唯一键COL1约束COL8

当我运行此订阅时,我收到以下错误:

起初我想知道源表中是否有重复记录 COL1='IT' COL2='2' COL3='999' COL4='H203 ' COL5=' ' COL6='20180831' COL7='999999' COL8= 'FPL',因为复制重复的键值记录会违反目标中的唯一键约束,但是源表中只有一条具有此类键值的记录。

还要提一提的是,我们在表映射中有一个派生列表达式:

NEW_COL ==> %GETCOL(COL_WANTED, "source.lookup", "NOT FOUND", DESCRPF, 5, COL1, COL2, COL3, COL4, COL5)

基本上,我们正在尝试COL_WANTEDsource.lookup匹配值为 COL1to的列中查找COL5。我认为这种“加入/查找”操作可能会产生导致错误的多个结果记录。但是后来我去掉了这个派生列表达式,仍然提示同样的错误。

任何建议将不胜感激。提前致谢。

0 投票
0 回答
29 浏览

ibm-data-replication - IIDR CDC 通知

我正在尝试设置有关 cdc 操作的通知。一种订阅以 iSeries 作为源和目标,其他订阅以 iSeries 作为源和 MySQL 作为目标。我的问题是,有没有办法在管理控制台或 iidr 访问服务器上设置通知?

0 投票
2 回答
117 浏览

db2 - IBM CDC 表应该已经被刷新。转换服务器将终止

我有一个作为 IBM DB2 iSeries 的源和目标表。复制方法是镜像。镜像前刷新后,出现消息Table <lib>/<table> should already have been refreshed. Transformation Server will terminate.,表的状态保持为刷新。同一订阅中的其他表运行正常。以下是详细日志:

资源

  1. lib/table,成员将刷新为subscription
  2. lib/table,成员刷新订阅完成 200000 行发送。
  3. 无法刷新表库/表成员表。
  4. lib/table应该已经被刷新。Transformation Server 将终止。

目标

  1. 为目标表lib/table开始刷新,成员 *ONLY。
  2. 从表lib/table的成员 *FIRST 中删除了 220310 行。
  3. 表lib/table的刷新已完成,成员 *ONLY。收到 200000 行,成功应用 199500 行,失败 500 行。

有没有人对这种情况有任何想法?