GBase 8s
其他
问答
使用java编写udf,并运行
发表于2025-03-31 16:14:59203次浏览20个评论
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】: GBase8sV8.8_TL_3.5.1_3X2_7_x86.tar
【操作系统】: centos
【CPU】: 16
【问题描述】*: 想使用java编写一个udf,然后放到数据库中运行,这个java程序里面会对传入的值进行的rsa加解密。我看网上的资料里面有用到gbase.udf.UDFMethod接口,想问下这个接口对应的jar包是哪里来的,我在你们官网没有找到。
评论
登录后才可以发表评论
路路路发表于 1年前
收到,马上找技术给您回复
9527发表于 1年前
https://blog.csdn.net/liaosnet/article/details/106158146 可以参考这个
liaosnet发表于 1年前
gbase.udf.UDFMethod接口是之前的版本(兼容mysql)。
你使用的版本,参考:https://gbasedbt.com/index.php/archives/174/
需要注意的是:数据库内置的jre一般是6或者8,位于$GBASEDBTDIR/extend/krakatoa/jre/bin 目录下,故编译应当使用jdk6或者jdk8。
你使用的版本,参考:https://gbasedbt.com/index.php/archives/174/
需要注意的是:数据库内置的jre一般是6或者8,位于$GBASEDBTDIR/extend/krakatoa/jre/bin 目录下,故编译应当使用jdk6或者jdk8。
最佳回答
GBase用户26979发表于 1年前
@liaosnet:是指必须用数据库的jdk编译吗?还是Oracle的的就行
liaosnet发表于 1年前
@GBase用户26979:正常的jdk编译,但编译的目标版本需要是6或者8的(起决于你的server版本上带的jre版本)。
GBase用户26979发表于 1年前
@liaosnet:好的,我先试试,有问题的话在找您
GBase用户26979发表于 1年前
@liaosnet:请问GBase8a_MPP_Cluster-9.5.2.45.7_patch.16.4-rhel8这个版本的udf和8s的有没有什么区别?就是说我用java写了个udf在8s中可以用的话,在这个版本中是否可用?
liaosnet发表于 1年前
@GBase用户26979:只要符合 “正常的jdk编译,但编译的目标版本需要是6或者8的(起决于你的server版本上带的jre版本)”的 java udr,一般都可使用。
GBase用户26979发表于 1年前
@liaosnet:我看了这个网站https://gbasedbt.com/index.php/archives/174/,在第一步配置sbspace空间的时候就报错了。数据库安装位置:/home/GBASE/gbase,sbspace文件:/home/GBASE/gbase/sbspace01,我创建了这个sbspace01文件,并给用户gbasedbt赋予了660后,提示打开文件错误,请问这个是什么问题



GBase用户26979发表于 1年前
@liaosnet:请问下:我用服务器安装目录/home/GBASE/gbase/extend/krakatoa/jre/bin/的jdk查看版本:
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxa6460sr16fp7-20150708_01(SR16 FP7))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr16fp7-20150701_255724 (JIT enabled, AOT enabled)
J9VM - 20150701_255724
JIT - r9_20150630_95420
GC - GA24_Java6_SR16_20150701_1008_B255724)
JCL - 20150628_01
但是我编译java的是1.8,导致我执行select报错:(38000) - Unknown throwable: (java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=Hello, offset=6)。这个是要用jdk1.6的编译java才行是吗?
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxa6460sr16fp7-20150708_01(SR16 FP7))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr16fp7-20150701_255724 (JIT enabled, AOT enabled)
J9VM - 20150701_255724
JIT - r9_20150630_95420
GC - GA24_Java6_SR16_20150701_1008_B255724)
JCL - 20150628_01
但是我编译java的是1.8,导致我执行select报错:(38000) - Unknown throwable: (java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=Hello, offset=6)。这个是要用jdk1.6的编译java才行是吗?
liaosnet发表于 1年前
@GBase用户26979:https://gbasedbt.com/dl/jre_jvp/
可自行下载jdk8(仅有x86_64及arm64两个版本),替换掉jre目录即可。
可自行下载jdk8(仅有x86_64及arm64两个版本),替换掉jre目录即可。
GBase用户26979发表于 1年前
@liaosnet:好的,谢谢。还有上面那个创建并配置sbspace空间的问题,麻烦看看
liaosnet发表于 1年前
@GBase用户26979:sbspace01是文件,而不是目录,建议跟rootdbs放在相同的目录下。
GBase用户26979发表于 1年前
@liaosnet:好的,谢谢
GBase用户26979发表于 1年前
@liaosnet:我的jar包里面包含有配置文件smcfg.properties,并且放置没有错误,直接运行jar包是可以拿到配置文件。但是创建function后,执行方法的时候,却拿不到配置文件,导致报错。我打印Classloader获取到的是这个:classLoader:gbasedbt.jvp.dbapplet.impl.JVPClassLoader@786871dc,然后用这个Classloader再去获取配置文件就为空了。请问一下这个问题需要怎么解决?
liaosnet发表于 1年前
@GBase用户26979:配置参数写到java中去吧。。
levvel发表于 4个月前
嗯,只能说不错!
柒柒天晴发表于 2个月前
围观了。
GBase用户51934发表于 2个月前
蹲个答案。
曾云林发表于 2个月前
学习下。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25051
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526