Tnsnames.ora

Add the following entry in your TNSNAMES.ORA file and change the values shown in brackets to suit your environment:

<addressname> =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>))
   )
 (CONNECT_DATA =
   (SERVICE_NAME = <service_name>)
 )
)

Here is a completed example:

ORA11 =
 (DESCRIPTION = 
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.0)(PORT = 1521))
   )
 (CONNECT_DATA =
   (SERVICE_NAME = ORA12)
 )
)

TNSNAMES.ORA files are located on both client and server systems. If you make configuration changes on the server ($ORACLE_HOME/network/admin/tnsnames.ora) ensure you can connect to the database through the listener if you are logged on to the server. If you make configuration changes on the client (c:\oracle\product\12.1.0\db_1\network\admin\tnsnames.ora) ensure you can connect from your client workstation to the database through the listener running on the server.

Invalid identifier at OCI call OCIStmtExecute

Problem: Error when editing report

Screenshot:

Screenshot text:

 


Possible solution:

The physical column “[TABLE_NAME]”.”[COLUMN_NAME]” doesn’t exist anymore.

  • remove this column from the physical layer or create it in the database
  • check in
  • refresh screen

The error message is not displayed anymore.

TNS:could not resolve the connect identifier specified at oci call ociserveratta

[nQsError:17014] Could not connect to Oracle database.
[nQsError:17001] Oracle Error code: 12154, message: ORA-12154:
TNS:could not resolve the connect identifier specified
at OCI call OCIServerAttach.

Obiee repository creation error

Have you tried writing the full connection string, as it appears in the tnsnames.ora file, instead of just the name??

Instead of writing pdborcl write:

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

Solution:

set path environment variable:

1. C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN
2. C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN

According Oracle these locations are searched for tnsnames.ora, resp. sqlnet.ora and ldap.ora:

  1. current path (associated with the running client application)
  2. Environment variable TNS_ADMIN defined for the session
  3. Environment variable TNS_ADMIN defined for the system
  4. Windows Registry Key HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN (for x64) or HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN (for x86)
  5. %ORACLE_HOME%\network\admin

However, I am not sure whether each application/driver follows this list. I got this list from Oracle Document 111942.1 referring to Oracle 9i.

So, I also would recommend to define an environment variable for TNS_ADMIN and use only one tnsnames.ora file. In order to be on the safe side, check also your registry values.

If your files are not located in %ORACLE_HOME%\network\admin, I recommend to create a symbolic link for it – just to be on the very safe side, e.g. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin

Another note, you don’t have to “play” with your tnsnames.ora file. With Process Monitor from Microsoft Sysinternals you can monitor each file access, i.e. the filter would be Path contains tnsnames

Update

When I run a test on my machine I get following order:

  1. Environment variable TNS_ADMIN
  2. HKLM\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN, resp. HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN -> Only if TNS_ADMINEnvironment variable is not set.
  3. %ORACLE_HOME%\network\admin
  4. Current directory (which can be different to directory where your application is located)
  5. Folder where your application is located

Update 2

Obviously there is no fix search, it varies for different providers/drivers. Maybe it also depends on the Oracle version.

For example, for ODP.NET Managed Driver (Oracle.ManagedDataAccess) I found this order at Oracle Managed and TNS Names :

  1. data source alias in the ‘dataSources’ section under <oracle.manageddataaccess.client>section in the .NET config file (i.e. machine.config, web.config, user.config).
  2. data source alias in the tnsnames.ora file at the location specified by TNS_ADMIN in the .NET config file.
  3. data source alias in the tnsnames.ora file present in the same directory as the .exe.
  4. data source alias in the tnsnames.ora file present at %TNS_ADMIN%
    (where %TNS_ADMIN% is an environment variable setting).
  5. data source alias in the tnsnames.ora file present at %ORACLE_HOME%\network\admin
    (where %ORACLE_HOME% is an environment variable setting).

whereas official documentation says:

  1. data source alias in the dataSources section under <oracle.manageddataaccess.client>section in the .NET config file (i.e. machine.config, web.config, user.config).
  2. data source alias in the tnsnames.ora file at the location specified by TNS_ADMIN in the .NET config file. Locations can consist of either absolute or relative directory paths.
  3. data source alias in the tnsnames.ora file present in the same directory as the .exe.
 

 

CREATING USERS AND GROUPS in obiee

Steps to Create a User and Group:

If you want to create a new User and assign that User to a new Group that you have created, do the following:

  1. Launch Weblogic Administration Console eg: http:<hostname>:<port_no>/console
  2. Create a new User in security Realm.
  3. Create a new Group in security Realm.
  4. Add User to new Group.
  5. Launch Fusion Middleware EM console (http:<hostname>:<port_no>/em)and create a new Application Role and assign it to the new Group.
  6. Edit the repository (RPD file) and set up the privileges for the new Application.

2. Create a new User in security Realm:

Login Weblogic admin console and on Left side panel click on Security Realm1 . And click on myrealm2 in Right side panel.

Click on Users and Groups Tab and below select Users tab again and then click New as shown in below screen shot.

Create user by providing all details and click ok.

3. Create a new Group in security Realm:

Login Weblogic admin console and on Left side panel click on Security Realm1 . And click on myrealm2 in Right side panel.

Click on Users and Groups Tab and below select Groups tab again and then click New as shown in below screen shot.

Create a Group by providing all details and click ok.

4. Add User to new Group.

Click on Security ream->myrealm.

And then click on Users and Groups and Users tab. In that click on new user (here User1 )

In Next window click on Groups. In Available Groups select created group and Move to chosen window as shown below.

5. Launch Fusion Middleware EM console (http:<hostname>:<port_no>/em)and create a new Application Role and assign it to the new Group:

Assign Group to Application Role:


Important:  Stop OPMN and Start again

6. Edit the online repository (RPD file) and set up the privileges for the new Application:

Click on Manage->Identity

Click on BI Repository and on Right window clicking on Application Roles – Now you can see roles created in EM Console.