none
VS2003 : Connecting To Oracle 9I [RESOLVED]

    Question

  • Hi everybody,

    Ok, totaly new a connecting VB.Net to Oracle using the Oracle Client....
    But this comes back with "Unable to load DLL (oci.dll)." on my machine..............
    Connecting with SQLplus or TOAD is not a problem..... Any clues?

     
    Code:

    Imports System.Data.OracleClient
    Imports Microsoft.VisualBasic
     Public Class clOracle
        Public conn As New Data.OracleClient.OracleConnection
        Public Function ConnectToOracle() As String
     
            ' TODO: Modify the connection string and include any
            ' additional required properties for your database.
            conn.ConnectionString = "Data Source='X.WORLD';USER ID = 'X'; Password = 'X'"
     
            Try
                conn.Open()
                Return conn.State
            Catch ex As Exception
                Return ex.Message
            End Try
        End Function
     
    End Class



    All Clues Welcome .....

    John

     

    [RESOLVED] : security issue, ASP uses the ASPNET account to make the basic connection, instead of the local account.


     

    Tuesday, June 06, 2006 6:46 AM

Answers


  • Probably a security issue. See the following:

    From Oracle's MetaLink:


    Problem Description
    -------------------


    When running an application using the Oracle9i Release 2 (9.2.0.1.0) install
    of client software and that attempts to connect to an Oracle database with the
    Authenticated User privilege (such as when you use Microsoft's Internet
    Information Server (IIS)) through any of the following programmatic interfaces


        1. Oracle Provider for OLE DB
        2. Microsoft OLE DB Provider for Oracle
        3. Oracle ODBC Driver
        4. Microsoft ODBC for Oracle
        5. Oracle Objects for OLE (OO4O)
        6. Microsoft .NET Framework Data Provider for Oracle


    you may receive one of the following errors:


       (1) Oracle Provider for OLE DB


           (a) Error Type:  Microsoft OLE DB Service Components (0x80070005)


               Access is denied.


           (b) OraOLEDB.Oracle Provider is not registered on the local machine


       (2) Microsoft OLE DB Provider for Oracle


           (a) Error Type:  Microsoft OLE DB Provider for Oracle (0x80004005)


               Oracle client and networking components were not found. These
               components are supplied by Oracle Corporation and are part of the
               Oracle Version 7.3.3 or later client software installation. Provider
               is unable to function until these components are installed.


           (b) Error Type:  Microsoft OLE DB Provider for Oracle (0x80004005)


               Oracle error occurred, but error message could not be retrieved
               from Oracle.


       (3) Oracle ODBC Driver


           (a) Error Type:  Microsoft OLE DB Provider for ODBC Drivers (0x80004005)


               Specified driver could not be loaded due to system error 5 (Oracle
               in OraHome92).


       (4) Microsoft ODBC for Oracle


           (a) The Oracle(tm) client and networking components were not found.
               These components are supplied by Oracle Corporation and are part
               of the Oracle Version 7.3 (or greater) client software installation.


               You will be unable to use this driver until these components have
               been installed.


           (b) Error number: -2147467259


               Error Description: [Microsoft][ODBC Driver Manager] Driver's
               SQLAllocHandle on SQL_HANDLE_ENV failed


       (5) Oracle Objects for OLE


           (a) while using a GLOBAL.ASA file


               Error Type:  Active Server Pages (0x0)


               An error occurred while creating object 'OraSession'.


           (b) not using a GLOBAL.ASA file


               Error Type:  Microsoft VBScript runtime (0x800A0046)


               Permission denied: 'CreateObject'


       (6) Microsoft .NET Framework Data Provider for Oracle


           (a) System.DllNotFoundException: Unable to load DLL (oci.dll).
               at System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
                 isInTransaction)
               at System.Data.OracleClient.OracleConnectionPoolManager.
                 GetPooledConnection(String encryptedConnectionString,
                 OracleConnectionString options, Boolean& isInTransaction)
               at System.Data.OracleClient.OracleConnection.OpenInternal
                 (OracleConnectionString parsedConnectionString, Object transact)
               at System.Data.OracleClient.OracleConnection.Open()
               at WCWSItemAvailability.ETAAvailability.SingleAvailability(String  
                 ItemNumber, String BusinessUnit, Int32 OrderQty, Int32&
                 AvailableQty, Int32& OnHandQty, String& ETADate, Int32& Error)
               at WCWSItemAvailability.ETAAvailability.XMLAvailability(String
                 XMLInput)


       (7) Other miscellaneous errors


           (a) The Specified Module Could Not Be Found


           (b) ORA-00604: error occurred at recursive SQL level 1  
               ORA-12705: invalid or unknown NLS parameter value specified


           (c) Unable to load DLL (OraOps9.dll):
               ...
               [DllNotFoundException: Unable to load DLL (OraOps9.dll).]


           (d) System Error 998 trying to run ASP page


    Solution Description
    --------------------


      Oracle 9.2 Client software requires that you give the Authenticated User
      privilege to the Oracle Home by following these steps:


       1.  Log on to Windows as a user with Administrator privileges.


       2.  Launch Windows Explorer from the Start Menu and and navigate to the
           ORACLE_HOME folder.  This is typically the "Ora92" folder under the
           "Oracle" folder (i.e. D:\Oracle\Ora92).


       3.  Right-click on the ORACLE_HOME folder and choose the "Properties" option
           from the drop down list.  A "Properties" window should appear.


       4.  Click on the "Security" tab of the "Properties" window.


       5.  Click on "Authenticated Users" item in the "Name" list (on Windows XP
           the "Name" list is called "Group or user names").


       6.  Uncheck the "Read and Execute" box in the "Permissions" list under the
           "Allow" column (on Windows XP the "Permissions" list is called
           "Permissions for Authenticated Users").


       7.  Re-check the "Read and Execute" box under the "Allow" column (this is
           the box you just unchecked).


       8.  Click the "Advanced" button and in the "Permission Entries" list make
           sure you see the "Authenticated Users" listed there with:


               Permission = Read & Execute
                 Apply To = This folder, subfolders and files


           If this is NOT the case, edit that line and make sure the "Apply onto"
           drop-down box is set to "This folder, subfolders and files".  This
           should already be set properly but it is important that you verify this.


       9.  Click the "Ok" button until you close out all of the security properties
           windows.  The cursor may present the hour glass for a few seconds as it
           applies the permissions you just changed to all subfolders and files.


      10.  Reboot your computer to assure that these changes have taken effect.


    Re-execute the application and it should now work.


    Explanation
    -----------


    If you install Oracle9i Release 2 (9.2.0.1.0) on a computer running Windows
    with an NTFS partition, the contents of ORACLE_HOME directory will not be
    visible to users who are authenticated on that machine.  These permissions
    were not set properly when the software was installed.


    Applications that were working fine with previous versions of Oracle software
    will stop working when they upgrade to Oracle 9.2.


      NOTE: The application will continue to work if the user has logged onto the
            machine as an Administrator.


    Any application that is using the Authenticated User privilege will not work.
    A notable example would be IIS which might service some of the requests based
    on the Authenticated User privileges.


    To demonstrate the problem in further detail, you can log on to the operating  
    system as an authenticated machine user.  You won't be able browse the contents
    of the ORACLE_HOME directory demonstrating your inability to load any Oracle DLLs
    or make a connection.


    Additional Information
    ----------------------


    The above error messages may not only be encountered when using Oracle 9.2
    client software but may also exists when running into general permissions
    issues using third party products on a Windows platform.


     

    Tuesday, June 06, 2006 12:40 PM

All replies


  • Probably a security issue. See the following:

    From Oracle's MetaLink:


    Problem Description
    -------------------


    When running an application using the Oracle9i Release 2 (9.2.0.1.0) install
    of client software and that attempts to connect to an Oracle database with the
    Authenticated User privilege (such as when you use Microsoft's Internet
    Information Server (IIS)) through any of the following programmatic interfaces


        1. Oracle Provider for OLE DB
        2. Microsoft OLE DB Provider for Oracle
        3. Oracle ODBC Driver
        4. Microsoft ODBC for Oracle
        5. Oracle Objects for OLE (OO4O)
        6. Microsoft .NET Framework Data Provider for Oracle


    you may receive one of the following errors:


       (1) Oracle Provider for OLE DB


           (a) Error Type:  Microsoft OLE DB Service Components (0x80070005)


               Access is denied.


           (b) OraOLEDB.Oracle Provider is not registered on the local machine


       (2) Microsoft OLE DB Provider for Oracle


           (a) Error Type:  Microsoft OLE DB Provider for Oracle (0x80004005)


               Oracle client and networking components were not found. These
               components are supplied by Oracle Corporation and are part of the
               Oracle Version 7.3.3 or later client software installation. Provider
               is unable to function until these components are installed.


           (b) Error Type:  Microsoft OLE DB Provider for Oracle (0x80004005)


               Oracle error occurred, but error message could not be retrieved
               from Oracle.


       (3) Oracle ODBC Driver


           (a) Error Type:  Microsoft OLE DB Provider for ODBC Drivers (0x80004005)


               Specified driver could not be loaded due to system error 5 (Oracle
               in OraHome92).


       (4) Microsoft ODBC for Oracle


           (a) The Oracle(tm) client and networking components were not found.
               These components are supplied by Oracle Corporation and are part
               of the Oracle Version 7.3 (or greater) client software installation.


               You will be unable to use this driver until these components have
               been installed.


           (b) Error number: -2147467259


               Error Description: [Microsoft][ODBC Driver Manager] Driver's
               SQLAllocHandle on SQL_HANDLE_ENV failed


       (5) Oracle Objects for OLE


           (a) while using a GLOBAL.ASA file


               Error Type:  Active Server Pages (0x0)


               An error occurred while creating object 'OraSession'.


           (b) not using a GLOBAL.ASA file


               Error Type:  Microsoft VBScript runtime (0x800A0046)


               Permission denied: 'CreateObject'


       (6) Microsoft .NET Framework Data Provider for Oracle


           (a) System.DllNotFoundException: Unable to load DLL (oci.dll).
               at System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
                 isInTransaction)
               at System.Data.OracleClient.OracleConnectionPoolManager.
                 GetPooledConnection(String encryptedConnectionString,
                 OracleConnectionString options, Boolean& isInTransaction)
               at System.Data.OracleClient.OracleConnection.OpenInternal
                 (OracleConnectionString parsedConnectionString, Object transact)
               at System.Data.OracleClient.OracleConnection.Open()
               at WCWSItemAvailability.ETAAvailability.SingleAvailability(String  
                 ItemNumber, String BusinessUnit, Int32 OrderQty, Int32&
                 AvailableQty, Int32& OnHandQty, String& ETADate, Int32& Error)
               at WCWSItemAvailability.ETAAvailability.XMLAvailability(String
                 XMLInput)


       (7) Other miscellaneous errors


           (a) The Specified Module Could Not Be Found


           (b) ORA-00604: error occurred at recursive SQL level 1  
               ORA-12705: invalid or unknown NLS parameter value specified


           (c) Unable to load DLL (OraOps9.dll):
               ...
               [DllNotFoundException: Unable to load DLL (OraOps9.dll).]


           (d) System Error 998 trying to run ASP page


    Solution Description
    --------------------


      Oracle 9.2 Client software requires that you give the Authenticated User
      privilege to the Oracle Home by following these steps:


       1.  Log on to Windows as a user with Administrator privileges.


       2.  Launch Windows Explorer from the Start Menu and and navigate to the
           ORACLE_HOME folder.  This is typically the "Ora92" folder under the
           "Oracle" folder (i.e. D:\Oracle\Ora92).


       3.  Right-click on the ORACLE_HOME folder and choose the "Properties" option
           from the drop down list.  A "Properties" window should appear.


       4.  Click on the "Security" tab of the "Properties" window.


       5.  Click on "Authenticated Users" item in the "Name" list (on Windows XP
           the "Name" list is called "Group or user names").


       6.  Uncheck the "Read and Execute" box in the "Permissions" list under the
           "Allow" column (on Windows XP the "Permissions" list is called
           "Permissions for Authenticated Users").


       7.  Re-check the "Read and Execute" box under the "Allow" column (this is
           the box you just unchecked).


       8.  Click the "Advanced" button and in the "Permission Entries" list make
           sure you see the "Authenticated Users" listed there with:


               Permission = Read & Execute
                 Apply To = This folder, subfolders and files


           If this is NOT the case, edit that line and make sure the "Apply onto"
           drop-down box is set to "This folder, subfolders and files".  This
           should already be set properly but it is important that you verify this.


       9.  Click the "Ok" button until you close out all of the security properties
           windows.  The cursor may present the hour glass for a few seconds as it
           applies the permissions you just changed to all subfolders and files.


      10.  Reboot your computer to assure that these changes have taken effect.


    Re-execute the application and it should now work.


    Explanation
    -----------


    If you install Oracle9i Release 2 (9.2.0.1.0) on a computer running Windows
    with an NTFS partition, the contents of ORACLE_HOME directory will not be
    visible to users who are authenticated on that machine.  These permissions
    were not set properly when the software was installed.


    Applications that were working fine with previous versions of Oracle software
    will stop working when they upgrade to Oracle 9.2.


      NOTE: The application will continue to work if the user has logged onto the
            machine as an Administrator.


    Any application that is using the Authenticated User privilege will not work.
    A notable example would be IIS which might service some of the requests based
    on the Authenticated User privileges.


    To demonstrate the problem in further detail, you can log on to the operating  
    system as an authenticated machine user.  You won't be able browse the contents
    of the ORACLE_HOME directory demonstrating your inability to load any Oracle DLLs
    or make a connection.


    Additional Information
    ----------------------


    The above error messages may not only be encountered when using Oracle 9.2
    client software but may also exists when running into general permissions
    issues using third party products on a Windows platform.


     

    Tuesday, June 06, 2006 12:40 PM
  • [RESOLVED] : security issue, ASP uses the ASPNET account to make the basic connection, instead of the local account.

     

    Thanks John

    Thursday, June 08, 2006 10:36 AM
  •  

    You can avoid allowing users to log into the 64 bit SQL Server 2005 machine as NT Administrators (WIN 2003) if you make a shared folder of the D:\ORACLE\ORA92 folder.  to work around the

     

    OLE DB provider "OraOLEDB.Oracle" for linked server "PTDEV" returned message "Error while trying to retrieve text for error ORA-12154".

    Msg 7303, Level 16, State 1, Line 1

    Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "PTDEV".

     

    error message.

    Tuesday, June 17, 2008 2:19 PM