Home > Identity Manager, Oracle MiddleWare > ORA-12705: Cannot access NLS data files or invalid environment specified

ORA-12705: Cannot access NLS data files or invalid environment specified


Problem: I’ve my oracle applications installed on a windows server. Yesterday this server was shutdown unexpectedly with out graceful shutdown of oracle applications. I was scared and sensing some issue might popup, as expected after windows server restart my OID server was reluctant to start. In the Logs ..\Middleware\asinst\diagnostics\logs\OID\oid1\oidmonxxx.log I see an error message (this is just a snapshot of logs):

[OID] [NOTIFICATION:16] [] [OIDMON] [host: ] [pid: 5712] [tid: 0] Guardian: Connecting to database, connect string is oiddb
[OID] [NOTIFICATION:16] [] [OIDMON] [host: ] [pid: 5712] [tid: 0] Guardian: [gsdsiConnect] ORA-12705, ORA-12705: Cannot access NLS data files or invalid environment specified
[OID] [NOTIFICATION:16] [] [OIDMON] [host: ] [pid: 5712] [tid: 0] Guardian: [oidmon]: Unable to connect to database, will retry again after 10 sec

Solution: After doing a bit of google, I understand that this has something to do with the NLS_LANG environment variable setup. I followed the below steps to resolve this issue:

  • Right click My computer–> Properties–>Advanced System Settings –> Environment variables, check for NLS_LANG environment variable. If available delete it.
  • Now go to ..\Middleware\Oracle_IDM1\bin
  • Open ‘oracle.key‘ file in a notepad, make a note of the path mine was ‘SOFTWARE\ORACLE\KEY_OH414431757’
  • Now Start–>Run–>regedit, to go to registry entries
  • Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\<key i.e. KEY_OH414431757>
  • Add an entry here by right click New –> String value
  • NLS_LANG, right click and modify to add value in my case it is ‘AMERICAL_AMERICA.WE8MSWIN1252’
  • Also add ORA_NLS10 value. Since ‘am using Oracle 11g it’s ORA_NLS10, if you are using other oracle version this key differs you may need to check the documentation.
  • ORA_NLS10 is important in a way that oracle searches for NLS data files in this path, wrong path here may lead to ORA12705
  • ORA_NLS10 = <your IDM location>\Middleware\Oracle_IDM1\nls\data
  • Make sure above path is available
  • Once you are done with the above 2 NLS_LANG and ORA_NLS10 entries in the registry, you are done! or you might want to restart your windows server again for registry entries to take affect or open a new command prompt
  • On new command prompt, issue following command
  • opmnctl status -l  (see if all servers are Alive, if now go to below step)
  • opmnctl startall (starts all servers, once done check for status again by issuing above command)

That’s all for now. Let me know if this helps some one there.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: