[发明专利]数据库管理系统调用外部函数的方法、装置、设备及介质有效
申请号: | 201810068779.9 | 申请日: | 2018-01-24 |
公开(公告)号: | CN108228880B | 公开(公告)日: | 2020-07-14 |
发明(设计)人: | 王家贤;刘静 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F9/445;G06F9/48;G06F9/54 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 管理 系统 调用 外部 函数 方法 装置 设备 介质 | ||
1.一种数据库管理系统调用外部函数的方法,其特征在于,包括:
如果通过数据库服务器进程确定接收到客户端发送的外部函数执行请求,则通过所述数据库服务器进程向AP辅助进程发送外部函数执行任务,其中,所述AP辅助进程为数据库管理系统用于执行外部函数调用功能的辅助进程;
通过所述AP辅助进程接收所述外部函数执行任务;
通过所述AP辅助进程加载第三方共享库,执行所述外部函数执行任务,获取执行结果,并将所述执行结果返回至所述数据库服务器进程,其中,所述第三方共享库用于存储外部函数程序;
通过所述数据库服务进程接收所述AP辅助进程返回的执行结果,并将所述执行结果发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述数据库服务器进程与所述AP辅助进程之间的通信方式包括:socket通信或者管道通信。
3.根据权利要求2所述的方法,其特征在于,所述数据库服务器进程与所述AP辅助进程之间的通信方式为所述管道通信;
所述通过所述数据库服务器进程向AP辅助进程发送外部函数执行任务,包括:
通过所述数据库服务器进程从预先创建的管道池中获取一个空闲的专用管道或新建一个专用管道后,生成外部函数执行任务消息,其中,所述外部函数执行任务消息中包括所述专用管道的管道名、任务语言类型以及任务信息;
如果确定所述数据库服务器进程开启监听管道客户端,则通过所述数据库服务器进程经由所述监听管道向所述AP辅助进程发送所述外部函数执行任务消息;
如果确定所述数据库服务器进程开启专用管道服务端,则通过所述数据库服务器进程经由所述专用管道向所述AP辅助进程发送执行参数消息。
4.根据权利要求3所述的方法,其特征在于,所述AP辅助进程包括监听线程和任务线程,其中,所述监听线程用于监听所述数据库服务器进程发送的外部函数执行任务消息,并根据所述外部函数执行任务消息生成相应的任务线程,所述任务线程用于执行外部函数;
在所述通过所述数据库服务器进程向AP辅助进程发送外部函数执行任务之前,还包括:通过所述AP辅助进程创建所述监听管道;
所述通过所述AP辅助进程接收所述外部函数执行任务,包括:
如果确定所述监听线程开启监听管道服务端,则通过所述监听线程监听所述外部函数执行任务消息;
如果通过所述监听线程经由所述监听管道接收到所述外部函数执行任务消息,则解析所述专用管道的管道名;
如果确定所述监听线程根据所述管道名开启专用管道的客户端,则通过所述监听线程生成对应的任务线程,并放入任务队列,其中,目标任务线程的线程参数为目标专用管道的管道名、任务语言类型以及任务信息;
通过目标任务线程经由目标专用管道接收并解析所述执行参数消息。
5.根据权利要求4所述的方法,其特征在于,所述通过所述AP辅助进程加载第三方共享库,执行所述外部函数执行任务,获取执行结果,并将所述执行结果返回所述数据库服务器进程,包括:
通过所述任务线程按任务队列执行外部函数,获取执行结果;
通过所述任务线程将所述执行结果返回至所述数据库服务器进程;
在所述通过所述任务线程将所述执行结果返回至所述数据库服务器进程之后,还包括:
通过任务线程关闭与所述任务线程对应的专用管道;
退出所述任务线程;
通过所述数据库服务器进程将所述专用管道放回管道池。
6.根据权利要求5所述的方法,其特征在于,所述监听管道和专用管道使用非阻塞连接模型;各个任务线程将所述执行结果返回所述数据库服务器进程时使用非阻塞写模型;所述数据库服务进程接收所述AP辅助进程返回的执行结果时使用非阻塞读模型。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第三方共享库包括文件类型为dll文件、so文件和Jar包的外部函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810068779.9/1.html,转载请声明来源钻瓜专利网。