首页 > Arcgis > hp-ux下arcgis plsql报 ORA-06522:Unable to find library ‘libclntsh.so.10.1’

hp-ux下arcgis plsql报 ORA-06522:Unable to find library ‘libclntsh.so.10.1’

1 问题
hp-ux 11.31 ia-64的操作系统+ORACLE 11gRAC的数据库+arcgis 10.1,按照arcgis官方文档 配置 Oracle extproc 以使用 SQL 访问地理数据库 做的extproc的配置,执行arcgis调用及报错如下:
sql:

select SDE.ST_POINTFROMTEXT(‘point(126.627213 45.672099)’,’4326′) from dual;

报错:

ORA-06520:PL/SQL加载外部库时出错
ORA-06522:Unable to find library ‘libclntsh.so.10.1’.
ORA-06512:在”SDE_GEOMETRY_SHAPLIB_PKG”,line 12
ORA-06512:在”SDE.ST_POINTFROMTEXT”,line 58


2 问题解决
按arcgis for 10g的方式配置extproc

libst_shapelib.so版本是10.1

SQL> SELECT * FROM dba_libraries WHERE owner=’SDE’;
OWNER LIBRARY_NAME FILE_SPEC DYNAMIC STATUS
——— ————– —————————————- ——- ——-
SDE ST_SHAPELIB /grid/app/crs_home/lib/libst_shapelib.so Y VALID

listener.ora:

grid@qyzydb1[/home/grid]$cat /grid/app/crs_home/network/admin/listener.ora
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))) # 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

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /grid/app/crs_home)
(PROGRAM = extproc)
(ENVS=”EXTPROC_DLLS=/grid/app/crs_home/lib/libst_shapelib.so:LD_LIBRARY_PATH=/grid/app/crs_home/lib”)
)
)

需要注意的是ENVS的设置,其中加入了LD_LIBRARY_PATH的设置,从报错上看我认为与LD_LIBRARY_PATH变量没被arcgis用到有关
tnsnames.ora

oracle@qyzydb1[/oracle/app/oracle/product/11.2.0/db_1/network/admin]$cat tns*.ora
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1521))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

重启一下监听问题就解决了

3 反思
1)这个问题用了我半天的时间,掀开窗户纸看似容易,实则很烧脑。原因在于原来的环境aix+11g+arcgis 10.1按官方文档的配置没有问题,而在新环境咋就报错呢?新环境明明是oracle 11g,解决方式是采用了10g方式的配置,我们以为正确的前提实则是错的。
2)开始时我是怀疑extproc的调用本身存在问题,为此我还专门写了个外部过程,测试ok,进而集中心思关注arcgis本身。
3)arcgis 10.2的版本已经不支持hp-ux了,它支持的平台有windows、linux、aix和solaris,或许你能看出点门道,10.1是支持hp-ux的最后一个版本。
4)这个问题实则是acgis与hp-ux平台的兼容性的问题。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.