3 Replies Latest reply on Mar 21, 2013 5:39 PM by user11993275

    Issues with Selinux with OBIEE in Linux

      Hello guys

      Have you ever run into this error in OBIEE?

      Odbc driver returned an error (SQLExecDirectW).
      Error Details
      Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
      State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. directory/dbhome/lib/libnnz10.so: cannot restore segment prot after reloc: Permission denied [nQSError: 46029] Failed to load the DLL Directory/OracleBI/server/Bin/libnqsdbgatewayoci10g.so. Check if 'Oracle OCI 10G' database client is installed. (HY000)
      SQL Issued: SELECT Date."Day Date" saw_0 FROM "Reports" ORDER BY saw_0

      Now I did some research around on this and I am getting that Selinux being 'enforced' was the cause of this error. Now we do have the requirement to enable to Selinux at all time, but this is not the point here..

      The thing I find interesting is that, after I change the setting to 'permissive', OBIEE is running perfectly fine. Then when we change it again back to 'enforced', OBIEE is still running fine. But initially, there was an error.

      In my other environment, because I was not able to change the setting of Selinux, the OBIEE was giving the same error after restarting the DB, OBIEE service. Then I restarted the OBIEE service again (OC4J, saw and sa scripts), then the error disappears..

      Does anybody ever experience this kind of behavior in Linux?

      Please share with me your thoughts to help me understand more about the inner working of this thing..

      Appreciated in advance
        • 1. Re: Issues with Selinux with OBIEE in Linux
          Satya Ranki Reddy

          Please follow the steps.

          1) Make sure you got a FULL Oracle 10g client installed (check with your DBA). Oracle INSTANT CLIENT is NOT SUPPORTED.
          2) Make sure the OBIEE user that you use to run the OBIEE services has read and execute permissions on all files under ORACLE_HOME for the Oracle client that you wish to use. Even better if you install the Oracle client with the same user as the OBIEE uses to run it's services.
          3) Make sure your Oracle 10g client has the OCI 32bits libraries installed (check in the ORACLE_HOME/lib32 directory that the libclntsh.so.10.1 library exists and it's size is bigger than 0 bytes). OBIEE uses the 32bits libraries.
          4) Configure your OBIEE /OracleBI/setup/user.sh file to make sure your ORACLE_HOME and TNS_ADMIN variables are correctly set to the correct values. You also need to set these two:

          export PATH=$ORACLE_HOME/bin:$PATH

          5) Export all the above 4 variables in your current session and test that you can resolve your database name(s) by doing "tnsping DB_NAME".
          6) Restart all your OBIEE services and check that all variables are correctly set (type "env").

          After you have done all that give it a test and let us know if it works.

          obiee oci driver loading problem

          Hope this help's

          • 2. Re: Issues with Selinux with OBIEE in Linux
            So far as I'm aware, Oracle don't support SELinux being anything other than Permissive or Disabled.
            • 3. Re: Issues with Selinux with OBIEE in Linux
              Hello Satya

              Thanks for the response but this is not where my problem is. My problem is that, it didn't work when I initially had the Selinux enabled. It threw those errors..

              A: When I changed it to 'permissive', the OBIEE works. When I then change the Selinux back to 'enforeced', it still works.

              B: In another environment since I can't change the Selinux setting, I just restarted OBIEE component without touching Selinux, after restarting, it works.

              My question is, have you experienced these behaviors and is there a way to better understand such behaviors?