首页 > 解决方案 > TEIID 数据长度太大

问题描述

我正在尝试通过 python 从 teiid 中选择一个大型序列化对象,但遇到大型对象的以下错误:

ERROR [org.teiid.TRANSPORT] (NIO17) TEIID40114 Unhandled exception, closing client instance: java.io.StreamCorruptedException: data length too big: 369295618 (max: 1048576): io.netty.handler.codec.DecoderException: java.io.StreamCorruptedException: data length too big: 369295618 (max: 1048576)

下面是我用来获取序列化对象的 python 代码

import jaydebeapi
import os

os.environ["JAVA_HOME"] = r"C:\Program Files\AdoptOpenJDK\jre-11.0.8.10-hotspot\bin\client"

user = "xxxxx"
password = "xxxxx"
conn = jaydebeapi.connect('org.teiid.jdbc.TeiidDriver', 'jdbc:teiid:myvdb@mm://teiidserver:31000;version=1', [user,password], r'MyApp\teiid-client-12.0.2.jar')
curs = conn.cursor()
curs.execute("select serializedObj from MyTable")
data = curs.fetchall()

我相信这个错误发生在 python 客户端。现在调整 teiid-client-settings.orig.properties 中的参数 org.teiid.sockets.maxObjectSize 会解决问题吗?如果是这样,我如何在 python 代码中将此文件的路径作为 CLASSPATH 变量传递,以便在 jar 之前获取它?

谢谢

标签: pythonjavasqlwildflyteiid

解决方案


推荐阅读