将PostgreSQL PL / Java安装为PostgreSQL扩展

在2011年,我在PostgreSQL PL / Java上写了一系列文章。 基本信息仍然可靠,但是现在有了一种从源代码安装PL / Java的简便方法。 这也消除了依赖第三方来创建软件包的需要。 这些注释将非常简短,因为我认为我的读者已经对git和maven熟悉了。

(注意:我已将此信息传递给PL / Java团队,因此在您阅读本文时,它可能已经被处理。)

执行基本构建

  1. 克隆PL / Java存储库, 网址为https://github.com/tada/pljava 。
  2. 运行Maven 不能使。
  3. 利润!

当然不是那么简单。 Maven可以引入自己的依赖关系,但是除了标准的GNU工具链之外,我们仍然需要几个专门的库。 在我的Ubuntu系统上,我需要:

  • PostgreSQL服务器开发9.4
  • libpg开发
  • libpgtypes3
  • libecpg开发

(我不知道RedHat / Fedora / CentOS的相应软件包名称。)

可能需要进行一些试验,但是确定所需的所有软件包并不难。 只要记住,您通常会需要带有“ -dev”扩展名的软件包。

编译器有很多警告和错误,但大多数(如果不是全部的话)似乎与符号转换有关。 这值得进一步调查-符号转换警告表明恶意用户可能会攻击该网络-但就目前而言,只要maven成功,我们就可以了。 我们需要三个文件:

./src/sql/install.sql
./pljava/target/pljava-0.0.2-SNAPSHOT.jar
./pljava-so/target/nar/pljava-so-0.0.2-SNAPSHOT-i386-Linux-gpp-shared/lib/i386-Linux-gpp/shared/libpljava-so-0.0.2-SNAPSHOT.so

复制文件

现在,我们可以将三个文件复制到它们各自的位置。

$ sudo cp ./pljava-so/target/nar/pljava-so-0.0.2-SNAPSHOT-i386-Linux-gpp-shared/lib/i386-Linux-gpp/shared/libpljava-so-0.0.2-SNAPSHOT.so \/usr/lib/postgresql/9.4/lib/pljava.so$ sudo cp ./pljava/target/pljava-0.0.2-SNAPSHOT.jar /usr/share/postgresql/9.4/extension/pljava--1.4.4.jar$ sudo cp ./src/sql/install.sql /usr/share/postgresql/9.4/extension/pljava--1.4.4.sql

我们可以使用“ pg_config”命令学习正确的目标目录。

$ pg_config
PKGLIBDIR = /usr/lib/postgresql/9.4/lib
SHAREDIR = /usr/share/postgresql/9.4
...

我将版本从0.0.2-SNAPSHOT更改为1.4.4,因为我们要捕获PL / Java版本,而不是pom.xml版本。 我希望这些很快会保持同步。

编辑pljava–1.4.4.sql

我们需要在安装sql中添加两行:

SET PLJAVA.CLASSPATH='/usr/share/postgresql/9.4/extension/pljava--1.4.4.jar';
SET PLJAVA.VMOPTIONS='-Xms64M -Xmx128M';

重要的是要记住,每个数据库连接都有一个实例化的唯一JVM。 当您同时具有20个以上的连接时,内存消耗可能成为主要问题。

创建pljava.control文件

我们必须将新扩展名告诉PostgreSQL。 这由控制文件处理。

/usr/share/postgresql/9.4/extension/pljava.control

# pljava extension
comment = 'PL/Java bundled as an extension'
default_version = '1.4.4'
relocatable = false

使libjvm.so可见

我们通常通过JAVA_HOME环境变量指定Java二进制文件和共享库的位置。 这不是数据库服务器的选项。

有两种方法取决于您是否要使Java共享库(libjvm.so)对所有应用程序或仅对数据库服务器可见。 我认为前者最简单。

我们需要创建一个文件

/etc/ld.so.conf.d/i386-linux-java.conf

/usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/server

其中大多数路径名来自JAVA_HOME。 您的系统上的位置可能不同。 该目录必须包含共享库“ libjvm.so”。

我们还必须告诉系统刷新其缓存。

$ sudo ldconfig
$ sudo ldconfig -p | grep jvmlibjvm.so (libc6) => /usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/server/libjvm.solibjsig.so (libc6) => /usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/server/libjsig.so

加载扩展

现在,我们可以轻松地加载和卸载PL / Java。

=> CREATE EXTENSION pljava;
CREATE EXTENSION=> DROP EXTENSION pljava;
DROP EXTENSION

万一出现薄脆...

如果系统看起来不稳定,您可以将两个“ set”命令移到postgresql.conf文件中。

/etc/postgresql/9.4/main/postgresql.conf

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------# Add settings for extensions herePLJAVA.CLASSPATH='/usr/share/postgresql/9.4/extension/pljava--1.4.4.jar'
PLJAVA.VMOPTIONS='-Xms64M -Xmx128M'

翻译自: https://www.javacodegeeks.com/2015/08/installing-postgresql-pljava-as-a-postgresql-extension.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下php可以实现哪些功能,基于Linux的远程管理系统的设计与实现(PHP)

基于Linux的远程管理系统的设计与实现(PHP)来源:2BYSJ.cn 资料编号:2SJ260700 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5%A3%BA2SJ260700以下是资料介绍,如需要完整的请充值下载. 本资料已审核过,确保内容和网页里介绍一致. 密 惠1.无需…

MySQL 5.6 my.cnf 参数说明(转)

1 # 以下选项会被MySQL客户端应用读取。2 # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。3 # 如果你想你自己的MySQL应用程序获取这些值。4 # 需要在MySQL客户端库初始化的时候指定这些选项。5 6 #7 [client]8 #password [your_password]9 port MYSQL_TCP_PORT…

java dto entity,entity与DTO完全一致时

完全一致指的是entity与DTO之间参数名、参数类型、参数个数全部相同的情况entity代码package com.hxd.simple.domain.entity;import java.io.Serializable;import java.time.LocalDateTime;/*** author hxd*/public class User implements Serializable {/*** 用户id*/private …

【APICloud系列|41】融云单聊及消息的处理的对接与实现

包含了单聊及消息的处理。主要分三个页面处理完成,入口首页(index)、消息列表页(message)、会话页面(chat) index.html var rong;apiready=function(){rong = api.require(rongCloud2);//判断用户登录成功后执行方法rongCloud();}function rongCloud(){//初始化init();/…

SQL2000中@@ERROR的使用提醒

SQL SERVER 2000中不支持TRY, CATCH语法&#xff0c;所以对于异常的捕捉处理只可以根据ERROR来判断&#xff1b; 经常的用法是在执行语句后直接判断ERROR <> 0 看是不是执行成功。 然而日前因为存储过程的多并发调用&#xff0c;对一个表插入数据&#xff0c;产生主键冲突…

tostring 16进制_ToString:身份哈希码的十六进制表示形式

tostring 16进制我以前在方便的Apache Commons ToStringBuilder上写过博客&#xff0c;最近有人问我&#xff0c;在生成的String输出中出现的看似神秘的文本是什么构成的。 询问该问题的同事正确地推测出他正在查看的是哈希码&#xff0c;但与他的实例的哈希码不匹配。 我解释说…

uctools.php,discuz 论坛UCenter无法登录,闪退的终极8种解决办法

最近论坛的UCenter无法登录&#xff0c;闪退的解决办法(密码是正确的)在Discuz官方论坛寻找了无数的解决方法&#xff0c;总结有以下几种&#xff1a;1. 直接在Uc_server修改创始人密码改UC创始人密码。修改UC配置文件 /uc_server/data/config.inc.php对应两行换掉define(UC_FO…

前端工程师应该掌握哪些技能才方便找工作?

作为前端工程师,必须掌握到一定的技能才方便找工作,找高薪工作,你需要掌握这些技能。 高清思维导图下载:https://download.csdn.net/download/weixin_41937552/14752706 目录 HTML5+CSS3 移动Web网页开发

dictionary 用linQ排序

Dictionary<string, int> letterWordTotalNum wordsMrg.GetAllLetterTotalNum();var dicSort from d in letterWordTotalNum orderby d.Key select d;foreach (string key in dicSort.Keys){s Response.Write(dicSort[key] "<br />");}按key进行升…

延迟分析中的案例研究:锁定与同步

特别是在这篇文章中&#xff0c;我们将讨论&#xff1a; java.concurrent.Lock创建的垃圾 比较锁与同步 如何以编程方式测量延迟 争用对锁和同步的影响 协调遗漏对延迟测试的影响 回到我最喜欢的主题之一&#xff0c;垃圾创建/分配。 有关此主题的更多详细信息&#xff0…

思维脑图——数据分析实战(最新版)

导读:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。 在统计学领域,将数据分析划分为描述性统计分析、探索性数据分析以及验证性数据分析,探索性数据分析侧重于在数据之中发现新的特征,而验证…

java servlet jsp javabean关系图,一个关于javaBean+servlet+jsp的MVC架构有关问题

当前位置:我的异常网 Java Web开发 一个关于javaBeanservletjsp的MVC架构有关问题一个关于javaBeanservletjsp的MVC架构有关问题www.myexceptions.net 网友分享于&#xff1a;2013-01-14 浏览&#xff1a;13次一个关于javaBeanservletjsp的MVC架构问题//jsp的代码&#xff1…

并发

http://ifeve.com/volatile/转载于:https://www.cnblogs.com/lemon-now/p/5200645.html

java实现一个旅游网站

导读:采用JSP和Java语言以及html脚本语言,同时采用B/S模式,进行各个界面和每个功能的设计与实现,后台管理与设计选用了SQL Server 2005数据库,前台设计与后台管理相结合,共同完成各功能模块的功能。 目录 基本功能 项目结构 项目截图

【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)

来源&#xff1a;http://blog.csdn.net/zhaokaiqiang1992 更多&#xff1a;Android AutoLayout全新的适配方式&#xff0c; 堪称适配终结者 Android的屏幕适配一直以来都在折磨着我们这些开发者&#xff0c;本篇文章以Google的官方文档为基础&#xff0c;全面而深入的讲解了And…

matlab ode45 二阶微分,matlab关于ode45解二阶微分方程的困惑

matlab关于ode45解二阶微分方程的困惑matlab关于ode45解二阶微分方程的困惑一个二阶微分方程&#xff1a;yyysin(t)初始条件为y(0)5,y(0)6。过程&#xff1a;先降阶为一阶微分方程组yzz-z-ysin(t)编制如下函数m文件function dyweifen(t,x)dyzeros(2,1);%yx(1)%zx(2)dy(1)x(2);d…

java+jsp+sqlserver 2008+Tomcat实现一个简单的搜索引擎

导读:搜索引擎的定义就是指按照既定的策略与方法,采取相关的计算机程序,通过在互联网中进行寻找信息,并显示信息,最后把找到的信息进行整理和筛选,为搜索引擎的使用者提供检索信息的服务,终极目标是为了提供给使用者,他所搜索信息相关的资料的计算机

精通推荐算法1:为什么需要推荐系统(系列文章,建议收藏)

作者简介&#xff1a; 腾讯算法研究员。硕士毕业于中国科学院大学。在阿里和腾讯工作多年&#xff0c;拥有丰富的搜索和推荐算法经验。CSDN博客专家&#xff0c;原创文章100篇。发表专利15个&#xff0c;其中已授权6个。 系列文章&#xff0c;欢迎关注 精通推荐算法1&#x…

mlse均衡器matlab,基于LMS自适应均衡器matlab仿真.doc

基于LMS自适应均衡器matlab仿真.doc毕 业 设 计(2014届)题 目 一种基于OpenCV的摄像机标定方法学 院 物理电气信息学院专 业 电子信息工程年 级 2010学生学号 1201024534学生姓名 李指导教师2014年5月6日摘要关键词&#xff1a;AbstractIn the field of machine vision and ind…

spring 开发环境_设置Spring 3开发环境

spring 开发环境本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序。 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外&#xff0c;本教程没有其他先决条件。 在教程中&#xff0c;我们将需要安装以下组件&#xff1a; Java 6 JDK更新26 适用于Jav…