This topic describes errors that may occur when OTSStream Reader is running and how to troubleshoot the errors.
Error message: "Must set date or time range millis or time range string, please check your config"
Problem description
The "Must set date or time range millis or time range string, please check your config" error message appears when OTSStream Reader is running. The following figure shows the error message.
Possible cause
The parameters that specify the timestamp range of incremental data are not configured in the configuration script of OTSStream Reader.
Solutions
Specify the timestamp range of incremental data by using one of the following methods:
Set the
parameter.date
parameter to the date of the incremental data that you want to export.Set the
parameter.startTimestampMillis
parameter to the start timestamp of the timestamp range of incremental data and theparameter.endTimestampMillis
parameter to the end timestamp of the timestamp range of incremental data.
For more information about how to configure the timestamp range of incremental data, see Synchronize incremental data to OSS.
Error Message: "The stream of data table is not enabled"
Problem description
The "The stream of data table is not enabled" error message appears when OTSStream Reader is running. The following figure shows the error message.
Possible cause
The Stream feature is disabled for the data table that is specified by the parameter.table
parameter in OTSStream Reader.
Solutions
Enable the Stream feature for the data table that is specified by the parameter.table parameter in OTSStream Reader by using one of the following methods:
Use the Tablestore console
Go to the Manage Table page.
Log on to the Tablestore console.
In the upper part of the page, select a resource group and a region.
On the Overview page, click the name of the instance.
On the Tables tab of the Instance Details tab, click the name of the table that you want to manage.
On the Tunnels tab of the Manage Table page, click Enable next to Stream Information.
In the Enable Stream dialog box, configure the Log Expiration Time parameter and click Enable.
Use Tablestore SDKs
You can call the UpdateTable operation to modify the configurations of a data table by using the following Tablestore SDKs:
Tablestore SDK for Java: Update the configurations of a table
Tablestore SDK for Python: Update the configurations of a table
Tablestore SDK for Node.js: Update the configurations of a table
Tablestore SDK for .NET: Update the configurations of a table
Tablestore SDK for PHP: Update the configurations of a table
Error Message: "As expiration time is xx, so the start timestamp must greater than xx"
Problem description
The "As expiration time is xx, so the start timestamp must greater than xx" error message appears when OTSStream Reader is running. The following figure shows the error message.
Possible cause
The startTime parameter that specifies the start timestamp of the timestamp range of incremental logs is not correctly configured based on the log expiration time.
Solutions
Set the startTime parameter in the synchronization script to a value that is greater than the value that is obtained by using the following formula: Synchronization task start time - Log expiration time + 10 minutes
.
You can perform the following steps to view the log expiration time:
Go to the Manage Table page.
Log on to the Tablestore console.
In the upper part of the page, select a resource group and a region.
On the Overview page, click the name of the instance.
On the Tables tab of the Instance Details tab, click the name of the table that you want to manage.
On the Basic Information tab of the Manage Table page, view the log expiration time.
Error message: "To avoid timing error between different machines, the end timestamp must smaller than xx"
Problem description
The "To avoid timing error between different machines, the end timestamp must smaller than xx" error message appears when OTSStream Reader is running. The following figure shows the error message.
Possible cause
The value of the endTime parameter is invalid.
Solutions
Set the endTime parameter in the synchronization script to a value that is smaller than the value that is obtained by using the following formula: Synchronization task start time - 5 minutes
.
Error message: "The item of column must be map object"
Problem description
The "The item of column must be map object" error message appears when OTSStream Reader is running. The following sample code provides an example of the error message.
[code:OTSStreamReaderError,messageOTSStreamReaderError]-com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException:Parsecolumnfail,pleasecheckyourconfig.-com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException:Parsecolumnfail,pleasecheckyourconfig.
atcom.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.parseConfigForSingleVersionAndUpdateOnlyMode(OTSStreamReaderConfig.java:178)
atcom.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.load(OTSStreamReaderConfig.java:267)
atcom.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:30)
atcom.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1083)
atcom.alibaba.datax.core.job.JobContainer.init(JobContainer.java:497)
atcom.alibaba.datax.core.job.JobContainer.start(JobContainer.java:220)
atcom.alibaba.datax.core.Engine.start(Engine.java:100)
atcom.alibaba.datax.core.Engine.entry(Engine.java:318)
atcom.alibaba.datax.core.Engine.main(Engine.java:351)
Causedby:java.lang.IllegalArgumentException:Theitemofcolumnmustbemapobject,pleasecheckyourinput.
Possible cause
The format of the parameter.column
parameter is invalid.
Solutions
Make sure that the parameter.column parameter is in the correct format The following sample code provides examples of the format:
Invalid format
"column":[ "col1", "col2" ]
Valid format
"column":[ { "name" : "col1" }, { "name" : "col2" } ]