当调用API/SDK使用表格存储功能时可能会出现一些报错信息。本文介绍了常见错误信息的解决方案。
错误信息 | 可能原因 | 解决方案 | 相关功能文档 |
java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STOPPED | 一般是由于OTSClient被调用了shutdown,其内部的I/O reactor均已被关闭。 | 调用的OTSClient不能处于shutDown状态。如果调用的OTSClient已处于shutDown状态,请重新初始化OTSClient后再进行操作。 | |
java.lang.UnsupportedOperationException: This is supposed to be overridden by subclassed | 表格存储Java SDK依赖2.4.1版本的Protobuf库和4.0.2版本的httpasyncclient,容易与您的应用程序中自带的相同库冲突。 | 在Maven项目中的pom.xml中添加如下依赖即可。 说明 classifier为jar-with-dependencies,它将依赖的HttpClient和Protobuf库都通过rename package的方式打包进去,去除了对HttpClient和Protobuf的依赖。
| |
The count of attribute columns exceeds the maximum:128 | 在向表格存储数据表写入数据时,一行最多支持写入1024列。在使用TableStoreWriter的过程中,客户端会有一个默认写入128列的限制。 | 使用Java SDK构造TableStoreWriter客户端时,您可以通过修改MaxColumnsCount参数来适当调大一行默认写入的列数。 | |
length of field value is longer than 32 for the [WILDCARD_QUERY] query | 带有通配符的字符串长度超过32字节。 | 使用通配符查询时,要匹配的值可以是一个带有通配符的字符串,带有通配符的字符串长度不能超过32字节,请替换查询字符串。 | |
field:xx must enable enable_sort_and_agg | 创建多元索引时没有为对应字段开启排序与统计聚合(即enable_sort_and_agg=true)功能。 | 请通过多元索引的动态修改schema功能来为要使用的字段开启排序与统计聚合功能。具体操作,请参见动态修改schema。 | |
[bool_query] sub query must not be null | 查询条件中的子查询条件为空,未配置必选参数。 | 您需要自行排查代码中查询条件的相关参数配置,请确保已正确配置查询条件中的所有子查询条件。 重要 如果自行排查代码后问题仍未解决,请加入钉钉群23307953(表格存储技术交流群-2)或36165029092(表格存储技术支持群-3)联系我们。 | |
can't set [sort] when [token] is not null | 在使用token翻页时设置了sort。 | 通过多元索引查询数据使用token进行翻页时,token中已编码了排序字段,无需再额外设置sort。 | |
[table ttl] must be bigger than or equal search index ttl | 数据表上存在多元索引,数据表的TTL必须大于或等于多元索引的TTL。 | 当要调整数据表TTL时,请确认所需数据表TTL是否小于多元索引TTL。
| |
The sql scanned rows of main table exceeds the quota, main table rows quota is 100000 | 如果使用SQL查询数据时使用的条件为非分区键,则会造成全表扫描数据,可能会出现扫描到的行数或者数据量超过限制的情况。 重要 目前SQL单次扫描支持的最大行数为100000行,最大数据量为128 MB,最长时间为30秒。 | 使用SQL查询数据时,请确保查询条件包含主键列且符合最左匹配原则,并为SQL语句添加limit参数来控制返回的行数。 如果查询条件不满足上述条件,您还可以通过如下方式进行查询加速。更多信息,请参见索引选择策略。 | |
Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] | 缺少javassist-x.x.x.jar包。 | 您可以通过以下两种方式安装javassist-x.x.x.jar包。
| |
Disallow read index table in building base state | 二级索引的存量构造需要对表中的存量数据进行读取,然后同步到索引表。在存量数据同步完成之前,不允许读索引表,当存量数据同步完成,可以正常读取索引表。存量数据同步时间与数据表的数据量大小相关。 | 等待二级索引存量数据构造和同步完成后再进行数据读取。 | |
Checksum mismatch | 表格存储的整型是64位的,而32位PHP只能用string表示64位的整型,所以暂不支持32位PHP;且Windows系统中PHP 7之前版本的整型不是真正的64位。 | 在Windows系统中使用表格存储PHP SDK时,PHP版本必须使用PHP 7及PHP 7以上的64位版本,强烈建议使用PHP 7以获得最佳性能。 通过phpinfo()查看PHP配置信息中的Architecture类型,可以判断PHP版本是否满足使用要求。 |