Question :
Running Policy Server with an ODBC Store, I get the following error message:
[DataDirect][ODBC Oracle Wire Protocol driver]File not found '.odbcinst.ini'.
I have checked and the system_odbc.ini file exists, is readable. How can I trouble shoot this problem?
Environment :
Policy Server 12.52SP1CR01 on SunOS 5.10
Answer :
If you are running on SunOS system, you can run truss command to see if the Policy Server find the files and what it is doing after.
To illustrate a case where a connection issue was causing the error, you should see :
- the Policy Server finds the system_odbc.ini
/33: stat64("/opt/CA/siteminder/db/system_odbc.ini",
0xF8078238) = 0 - set for udp connection:
/33: open("/dev/udp", O_RDONLY)
= 18 - open the socket:
/33: so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "",
SOV_DEFAULT) = 18
/33: setsockopt(18, SOL_SOCKET, SO_LINGER, 0x005283B8,
8, SOV_DEFAULT) = 0
/33: setsockopt(18, tcp, TCP_NODELAY, 0xF807AB8C, 4,
SOV_DEFAULT) = 0
/33: setsockopt(18, SOL_SOCKET, SO_KEEPALIVE, 0xF807AB8C,
4, SOV_DEFAULT) = 0
/33: AF_INET name = 0.0.0.0 port = 0
/33: AF_INET name = 10.58.14.21 port = 1521
/33: AF_INET name = 10.58.190.133 port = 60797
/33: sysinfo(SI_HOSTNAME, "mymachine", 256) = 11 - send data to the odbc server :
/33: send(18, "\0C8\0\001\0\0\001 401 ,".., 200, 0) = 200 - the odbc server replies with data :
/33: recv(18, "\0 M", 2, 0) = 2
/33: recv(18, "\0\005\0\0\0\0 C ( D E S".., 75, 0) = 75
/33: close(18) = 0 - The Policy Server open another connection, but this time to a different odbc server :
/33: so_socket(PF_INET, SOCK_STREAM, IPPROTO_IP, "",
SOV_DEFAULT) = 18
/33: setsockopt(18, SOL_SOCKET, SO_LINGER, 0x00525FC8,
8, SOV_DEFAULT) = 0
/33: setsockopt(18, tcp, TCP_NODELAY, 0xF807AB8C, 4,
SOV_DEFAULT) = 0
/33: setsockopt(18, SOL_SOCKET, SO_KEEPALIVE, 0xF807AB8C,
4, SOV_DEFAULT) = 0
to 10.58.14.20 instead of previously 10.58.14.21, but
this time the connection is refused :
/33: connect(18, 0x005283B0, 16, SOV_DEFAULT)
Err#146 ECONNREFUSED
/33: AF_INET name = 10.58.14.20 port = 1521
/33: close(18) = 0
and finally Policy Server writes :
/33: write(17, "\n E X I T S Q L C o".., 51) = 51