SDE.ST_GEOMETRY_SHAPELIB_PKG问题处理

SDE.ST_GEOMETRY_SHAPELIB_PKG问题处理

安装环境:ArcGIS Desktop10.1 、ArcSDE10.2.134940、 Oracle11.2.0.1

操作系统:Red Hat Enterprise Linux Server release 7.4 (Maipo)

                  Red Hat Enterprise Linux Server release 6.8 (Santiago)

 

1、用SDE用户执行下面的创建语句:

create or replace library st_shapelib as '/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/libst_shapelib.so'

/

2、修改数据库配置文件

vi $ORACLE_HOME/hs/admin/extproc.ora

SET EXTPROC_DLLS=ANY

Or

ONLY: /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/libst_shapelib.so

SDE用户登录数据库,此后的操作以sde用户的身份运行

SDE.ST_GEOMETRY_SHAPELIB_PKG问题处理

如果显示的libst_shapelib.so位置与实际路径不一致,所以需要执行以下语句重新指定路径,这个路径就是上面安装ARCSDE产生的。

SQL> create or replace library ST_SHAPELIB  as '/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/libst_shapelib.so';

SQL> alter package sde.st_geometry_shapelib_pkg compile reuse settings;

另:windows环境下对应的是st_shapelib.dll

3、修改监听文件

listener.ora文件添加(黑体部分):

# listener.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ANY")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = presales2)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /home/oracle/app/oracle

(Linux环境**意大小写,PROGRAM =extproc是小写的...)
tnsnames.ora文件添加(黑体部分):

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lw-oracle)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
在listener.ora和tnsnames.ora,划红线部分中的KEY要求一致。如果KEY值不一致,会导致错误ORA-28575: unable to open RPC connection to external procedure agent

SDE.ST_GEOMETRY_SHAPELIB_PKG问题处理

 需要检查Oracle的监听是否监听IPC协议,如果没有监听,肯定会报ORA-28575错误。