本文讲述继《DM8创建外部函数(JAVA版国密SM3)-开发篇》之后部署外部jar包、创建达梦外部函数过程。
将SM3主函数包(Sm3ForDm.jar)传到达梦数据库以下目录:
[dmdba@db1 ~]$ mkdir $DM_HOME/bin/external_jar
[dmdba@db1 external_jar]$ pwd
/home/dmdba/dmdbms/bin/external_jar
[dmdba@db1 external_jar]$ ll
-rw-r--r-- 1 dmdba dinstall 3462988 6月 13 09:24 Sm3ForDm.jar
将SM3主函数包(Sm3ForDm.jar)需要引用的包(bcprov-ext-jdk15on-1.58.jar)传到以下目录,如:
[dmdba@db1 ~]$ cd $DM_HOME/tool/dmagent/lib
[dmdba@db1 lib]$ ll bcprov-ext-jdk15on-1.58.jar
-rw-r--r-- 1 dmdba dinstall 4025895 6月 13 10:36 bcprov-ext-jdk15on-1.58.jar
[dmdba@db1 ~]$ cd $DM_HOME/tool/dmagent
[dmdba@db1 dmagent]$ vi agent.ini
#开启以下配置,默认为true
ap_enable = true #whether enable ap plugin
ap_port = 6363 #ap listen tcp/ip port, range[1~65535]
#如果没部署DEM,或不用与DEM连接,修改以下参数关闭:
service_enable = false #whether enable service plugin
gather_enable = false #whether enable gather plugin
upgrade_enable = false #whether enable upgrade plugin
用root用户执行,配置服务:
[root@db1 ~]# cd /home/dmdba/dmdbms/tool/dmagent
[root@db1 dmagent]# ./service.sh install
input agent home [/home/dmdba/dmdbms/tool/dmagent] :
input agent.ini path [/home/dmdba/dmdbms/tool/dmagent/agent.ini] :
installation the service DmAgentService completed.
启动服务:
[root@db1 ~]# systemctl start DmAgentService
查询创建外部函数参数,如果无记录或参数为0,则未开启:
SELECT * FROM V$DM_INI WHERE PARA_NAME= 'ENABLE_EXTERNAL_CALL';
开启参数:
SP_SET_PARA_VALUE(2,'ENABLE_EXTERNAL_CALL',1);
根据实际部署情况,执行脚本重启数据库服务,如:
[dmdba@db1 bin]$ cd $DM_HOME/bin
[dmdba@db1 bin]$ ./DmServiceDMSERVER restart
或
[root@db1 ~]# systemctl restart DmServiceDMSERVER
CREATE OR REPLACE FUNCTION getSM3Hash(originalStr VARCHAR)
RETURN VARCHAR
EXTERNAL ‘/home/dmdba/dmdbms/bin/external_jar/Sm3ForDm.jar’ “com.dm.crypto.SM3ForDM.getSM3Hash” USING java;
CREATE OR REPLACE FUNCTION verifySM3Hash(originalStr VARCHAR,sm3Hash VARCHAR)
RETURN VARCHAR
EXTERNAL ‘/home/dmdba/dmdbms/bin/external_jar/Sm3ForDm.jar’ “com.dm.crypto.SM3ForDM.verifySM3Hash” USING java;
CREATE OR REPLACE FUNCTION getHmac(keyStr VARCHAR,originalStr VARCHAR)
RETURN VARCHAR
EXTERNAL ‘/home/dmdba/dmdbms/bin/external_jar/Sm3ForDm.jar’ “com.dm.crypto.SM3ForDM.getHmac” USING java;
文章
阅读量
获赞