5 votos

ORA-28595: Agente Extproc : Ruta DLL inválida

Estoy intentando crear una tabla con columna espacial en oracle e insertar datos en ella. Estoy usando ArcSDE y Oracle. La versión de Oracle es 11.2.0, la versión de ArcSDE es 10.0.

Mi declaración de creación es:

CREATE TABLE sensitive_areas (area_id integer, name varchar(128), 
area_size float, type varchar(10), zone sde.st_geometry);

Y la declaración de inserción es:

INSERT INTO SENSITIVE_AREAS (area_id, name, area_size, type, zone)
VALUES (1, 'Summerhill Elementary School', 67920.64, 'school', sde.ST_PolyFromText('polygon ((52 28,58 28,58 23,52 23,52 28))', 0));

Ya he añadido st_shaplib.dll y libst_raster_ora.dll a la variable de entorno EXTPROC_DLLS.

Mi tnsname.ora:

    LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Mi listener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\rainman\product\11.2.0\dbhome_3)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\rainman\product\11.2.0\dbhome_3\bin\oraclr11.dll;D:\Program Files\ArcGIS\ArcSDE\ora11gexe\bin\st_shapelib.dll;D:\Program Files\ArcGIS\ArcSDE\ora11gexe\bin\libst_raster_ora.dll")
    )
  )

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

ADR_BASE_LISTENER = D:\app\rainman

Sin embargo, tengo este error: ORA-28595: Extproc agent : Invalid DLL Path. ¿Qué debo hacer?

Gracias

La entrada USER_LIBRARIES para ST_SHAPELIB también es correcta: ST_SHAPELIB D:\Program Archivos \ArcGIS\ArcSDE\ora11gexe\bin\st_shapelib.dll Y VÁLIDO

3voto

mbamb19s Puntos 18

Si ya has compilado el esquema PUBLIC y SDE después de configurar la biblioteca de usuario, ese mensaje de error parece que no tienes la variable de entorno EXTPROC_DLLS real en tu servidor Oracle. Por tu configuración parece que tu Oracle está en Windows.

Su ruta de escucha y su biblioteca de usuario apuntan a su st_shapelib.dll que reside en el hogar de ArcSDE. Oracle no accederá a esa ubicación si la variable de entorno EXTPROC_DLLS no está establecida:

Specify the EXTPROC_DLLS environment variable to restrict the DLLs that extproc is allowed to load. **Without the EXTPROC_DLLS environment variable, extproc loads DLLs from ORACLE_HOME/lib on UNIX operating systems and ORACLE_HOME\bin on Microsoft Windows.**

Fuente: Habilitación de las funciones avanzadas de Oracle Net Services - Tabla 13-5 Configuración de procedimientos externos en listener.ora http://docs.oracle.com/cd/E11882_01/network.112/e41945/advcfg.htm#NETAG0132

Para rectificar esto, puede mover el archivo st_shapelib.dll a su Oracle_Home \bin y vuelva a apuntar su archivo listener.ora y la biblioteca de usuario de Oracle SDE, luego compile.

Como alternativa, puede crear la variable de entorno del sistema Windows EXTPROC_DLLS utilizando la fuente proporcionada. Reinicie su escuchador por si acaso después de establecer la variable.

Realiza una prueba rápida después de hacerlo como:

select sde.ST_AsText(SDE.ST_Geometry('POINT (10 10)', 0)) from dual;

Aquí está la información de Esri sobre EXTPROC_DLLS:

Configuración del listener de Oracle para acceder a la geodatabase con SQL(10.0) http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002n00000091000000

Si eso no tiene éxito, publica el resto del mensaje de error. Debe ser algo más que una línea/un error de Ora.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X