ORA-28575: unable to open RPC connection to external procedure agent

环境:

Oracle 11.2.0.4x64 RAC + AIX6.1版本+SDE for aix oracle11g版本10.0 x64

sde配置情况如下:

检查oracle和grid用户下的$ORACLE_HOME/hs/admin/extproc.ora文件均包含有如下:

SET EXTPROC_DLLS=ANY

两个节点sde下的user_libraries都正常:

SQL> select * from user_libraries;

LIBRARY_NAME


FILE_SPEC


D STATUS


ST_SHAPELIB

/db/product/11.2/db_1/lib/libst_shapelib_64.so

Y VALID

Grid下的listener.ora内容:

grid@zydb1:/grid/product/11.2/db_1/network/admin(lnzycs1)>more listener.ora

LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent

LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent

grid@zydb1:/grid/product/11.2/db_1/network/admin(lnzycs1)>more sqlnet.ora

sqlnet.ora.zydb1 Network Configuration File: /grid/product/11.2/db_1/network/admin/sqlnet.ora.zydb1

Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

ADR_BASE = /grid/app

sqlnet.expire_time = 3

测试检查语句:

conn sde/sde

select object_name from user_objects where status='INVALID';

显示没有失效对象。

执行如下语句:

select sde.st_astext(shape) from manhole;

SELECT B.FLDID AS MANHOLEID, B.FLDCODE, A.名称 FROM sde.行政区划A,sde.tgx_manhole_gis B WHERE SDE.ST_Within(B.SHAPE, A.SHAPE)=1;

SELECT sde.st_linestring('LINESTRING(16621.5602000002 150232.4605,16844.6043999996 150130.066600001)','2') FROM dual;

报错如下:

ORA-28575

conn sde/sde

SELECT sde.st_linestring('LINESTRING(16621.5602000002 150232.4605,16844.6043999996 150130.066600001)','2') FROM dual

*

ERROR at line 1:

ORA-28575: unable to open RPC connection to external procedure agent

ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 12

ORA-06512: at "SDE.ST_LINESTRING", line 58

Oracle Cluster都重启过,报错依然。

root用户执行:

/grid/product/11.2/db_1/bin/crsctl stop cluster -all

/grid/product/11.2/db_1/bin/crsctl start cluster --all

尝试过的操作:

  1. lnzycs库正常安装sde服务创建sde对象schema,然后通过catalog导入表,执行检查上面sql,报上面报错。

2.从linux测试数据库采用exp/imp的方式导入到lnzycs库,执行检查上面sql,报错一样。

3.比较奇怪的是,在该操作系统,存储,veritas等重做之前sde执行完全正常,而前后安装的软件版本方法都是相同的,但现在却报这种错误。实在查不出哪里的配置有问题。

解决问题:

发现是Tnsnames.ora配置有问题。

安装环境:

ORACLE 11.2.0.4 RAC+AIX6100-09-03-1415+SDE10.0

说明:

正常安装完oracle cluster和database后,然后安装sde对象,只需要指定libst_shapelib_64.so即可,

listener.ora以及是否拷贝.so到$ORACLE_HOME/lib等都不需要修改。需要注意tnsnames.ora的配置,

去掉如下内容:

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

11g环境下唯一只需要的操作如下:

conn sde/sde

CREATE or REPLACE LIBRARY ST_SHAPELIB AS '/orasys/sde/libst_shapelib_64.so';

检查:cat /db/product/11.2/db_1/hs/admin/extproc.ora

SET EXTPROC_DLLS=ANY

相关推荐
SoftingChina1 年前
工程中的SOVD——从ECU到车辆
车辆测试·ecu·sovd·车辆工程·sde·odx