kenie123

JAVA采用JDBC Driver 访问PI Server:操作步骤

Blog Post created by kenie123 on Dec 26, 2017

(0)前言

         在官方上多次查询,以及官方文档的多次阅读,我表示依旧还是有很多不懂的地方。本方案是我目前暂时采用的方案,并不完善,还需改进。请 其他大神路过的话,指出我的方案中的不足之处。

(1) 背景

          我们现有的服务器已经安装了 PI Server。目前正在开发的应用程序需要访问PI Server 中的数据,以方便显示图表或者更新数据。应用程序采用Java 开发。

(2) 定方案

     由官网(Developer Technologies)介绍可知:常用的访问PI数据库的方案有

    • 使用 JDBC Driver 或 ODBC Driver
    • 使用 PI Web Api
    • 使用 sdk

          为了适用于Java 程序的开发,采用 JDBC Driver 方案来实现 PI 数据库的访问。这样可以使用数据库连接池的方式来实现多数据源方案实现数据库连接。

(3) 原理

PI的JDBC驱动程序是一个java数据库连接驱动,通过SQL查询提供了强大的数据访问PI系统 。PI JDBC Driver 提供了一个类似于java 访问Mysql或者Oracle 同样的方式。

但是,JDBC Driver 是 通过中间层 PI SQL DATA Access Server 来实现 PI JDBC driver 和 PI OLEDB Enterprise/PI OLEDB providers 之间的交互的。
PI SQL DAS(OLE DB)在客户端 通过 Net.TCP 或者 HTTPS 来提供安全的网络连接
JDBC
安装架构模式1
架构模式2

(4) 环境准备

          - PI JDBC Dirver (1.5.17051.1)

          - PI SQL DAS (1.5.16302.2)

          在官网上下载了对应的安装包。

         - 已安装 Java JRE 1.6 以上版本。设置了环境变量 JAVA_HOME

         - 64 位 windows 操作系统

 

(5)安装步骤

1)安装 PI OLEDB Provider 或者 PI OLEDB Enterprise

  • PI JDBC Driver 2016 在 windows 上基本要求
    • windows7 及以上
    • JRE 7 及以上
    • 需要安装 Microsoft .Net Framework 4.6 (企业版中包含此安装包)
  • 安装步骤
    • 下载 PI OLEDB Provider 或者 PI OLEDB Enterprise
    • 根据安装向导运行,运行 PI-OLEDB_*.exe,全部默认
    • 安装完成
    • 注意
      • PI OLEDB Enterprise 比 PI OLEDB Provider 要全面较多。所安装的软件也会更多。
      • msiexec.exe /i PIOLEDBEnterprise64.msi REBOOT=Suppress ALLUSES=1 /qn

2)安装PI SQL DATA Access Serve(OLE DB)

  • PI SQL DAS 在 windows 上基本要求
    • 需要安装 Microsoft .Net Framework 4.6
    • 需要安装 PI OLEDB Provider 或者 PI OLEDB Enterprise
  • 安装步骤
    • 下载 PI SQL Data Access Server (OLE DB) Install Kit
    • 使用拥有管理员权限的账户来安装
    • 根据安装向导运行,运行 PISQLDAS_*.exe, 点击Ok
      • 当你运行安装时,PI SQL DAS 会根据你的操作系统版本自动选择安装 32bit 或者 64bit
      • HTTPS port 默认为 5461,Net.TCP 为 5462
      • 自动安装对应的证书
      • 会修改对应端口的防火墙
    • 安装完成
    • 校验服务是否在运行。我的电脑->管理->服务 中查看 是否新增了一个 PI SQL Access Server(OLE DB)的服务在运行状态
      安装后服务启动

3)安装PI JDBC Driver 2016(补:现在已经出了新版2017,可以用 .net 4.6 了)

  • PI JDBC Driver 2016 在 windows 上基本要求
    • windows7 及以上
    • JRE 7 及以上
    • 已经安装了 PI SQL DATA Access Server
  • 安装步骤
    • 下载 PI JDBC Driver 2016 SP1 Install Kit (Windows)
    • 根据安装向导运行,运行 PI-JDBC_2016-SP1_.exe,全部默认
    • 安装以后,其安装目录(PIHOME),32bit:C:\Program Files (x86)\PIPC\JDBC,64 bit :C:\Program Files\PIPC\JDBC
    • 系统环境变量会自动添加或更新
      • PI_RDSA_LIB=PIHOME\JDBC\RDSAWrapper.dll
      • PI_RDSA_LIB64=PIHOME\JDBC\RDSAWrapper64.dll
      • CLASSPATH=PIHOME\JDBC\PIJDBCDriver.jar
      • 打开 cmd,运行set piset classpath 即可查询环境变量是否设置
    • 安装完成
  • 注意事项
    • 如果没有安装 PI SQL DATA Access Server,安装了 JDBC Driver 也没有什么用。你会发现 JDBC 的安装目录下提供了一个类似于 JDBC访问Mysql的包而已。
    • 甚至,你自身的系统为64bit,它却会静默安装 将32 bit 的安装上去。
    • 程序还提供了一种静默安装方案
      • msiexec.exe /i PIJDBC.msi REBOOT=Suppress ALLUSES=1 /qn
      • msiexec.exe /i PIJDBC64.msi REBOOT=Suppress ALLUSES=1 /qn

通过上述的安装步骤之后,从开始菜单打开SQL Commander Lite,可以连接上 PI 服务,并且使用 类似 sql 语句去查询PI 中的数据。具体 sql语句 查看 帮助文档如PI-OLEDB-Enterprise-2016-R2-User-Guide.pdf

 

(6)安装过程中的产生的问题

  • 从官网上面下载的包,都是分散的,不能一次完成我所想要的功能。而且,安装一个版本,其附带的准备环境不统一,造成我安装一次,则安装了很多的不同版本的环境,严重造成了资源浪费的感觉。在我安装的过程中,我装了JDBC Driver 才知道,我需要安装  PI SQL DATA Access Server 。去下载了一个,再次安装,才知道我缺少  PI OLEDB Provider 或者 PI OLEDB Enterprise 。而且安装的时候,默认会将 32位和 64 位的都安装。
    • 建议:自己精简软件包,将需要的软件包,打包成自己想要的样子。可以修改 setup.ini 来实现

 

Java 访问PI 数据库:(1)安装必要软件 - CSDN博客

Outcomes