This is a discussion on intermittent ora-12545 within the Oracle Database forums, part of the Database Server Software category; --> intermittent 12545 error which I cannot track down. Pro*c routine. oracle 9.2.0 solaris SunOS 5.8 since upgrading to oracle ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| intermittent 12545 error which I cannot track down. Pro*c routine. oracle 9.2.0 solaris SunOS 5.8 since upgrading to oracle 9i from 8i I have had 2 ora-12545 errors 'Connect failed because target host or object does not exist' There is no pattern thus far. It ran for 4 months on oracle 8i without this error. The sysadmin said there was little network traffic. The dba said there were no error log problems. The Pro*C program connects to prod, inserts one row, then disconnects. It is part of an asynchronous socket routine and therefore sends one item at a time. The Pro*C connect is EXEC SQL CONNECT :username IDENTIFIED BY where username is a string like "user@prod" and password is a string tnsnames.ora - no sqlnet - the program is on the same machine as the sid prod = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = ourmachine.ourinternaldomain) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = prod) ) ) |
| |||
| On 2 Feb 2004 14:57:39 -0800, sparling@speakeasy.net (andrea) wrote: >tnsnames.ora - no sqlnet - the program is on the same machine as the >sid If the program is on the server, why do you use the TCP/IP protocol to connect? You should set ORACLE_SID prior to connecting and leave out the @prod or use the IPC protocol. -- Sybrand Bakker, Senior Oracle DBA |
| |||
| "Sybrand Bakker" <gooiditweg@sybrandb.demon.nl> wrote in message news:u9bu109bpqnd10naqsn1jsst6n1df30njc@4ax.com... > On 2 Feb 2004 14:57:39 -0800, sparling@speakeasy.net (andrea) wrote: > > >tnsnames.ora - no sqlnet - the program is on the same machine as the > >sid > > If the program is on the server, why do you use the TCP/IP protocol to > connect? You should set ORACLE_SID prior to connecting and leave out > the @prod or use the IPC protocol. > > > -- > Sybrand Bakker, Senior Oracle DBA And perhaps TWO_TASK (for a unix machine). |
| |||
| "Gerry Sinkiewicz" <sinkiege@snet.net> wrote in message news:<K%WTb.31852$yT3.4028@newssvr33.news.prodigy. com>... > "Sybrand Bakker" <gooiditweg@sybrandb.demon.nl> wrote in message > news:u9bu109bpqnd10naqsn1jsst6n1df30njc@4ax.com... > > On 2 Feb 2004 14:57:39 -0800, sparling@speakeasy.net (andrea) wrote: > > > > >tnsnames.ora - no sqlnet - the program is on the same machine as the > > >sid > > > > If the program is on the server, why do you use the TCP/IP protocol to > > connect? You should set ORACLE_SID prior to connecting and leave out > > the @prod or use the IPC protocol. > > > > > > -- > > Sybrand Bakker, Senior Oracle DBA > > And perhaps TWO_TASK (for a unix machine). My "dba" answers me this - no connections are local, all are tcp, no bequeath dont need two_task So within his constraints, why would I get the intermittent error 12545? Perhaps I could rewrite the Pro*C with a different method? ( I am connecting as "user@prod" ) We have ORACLE_SID set to prod we do not have two_task |
| ||||
| andrea wrote: > "Gerry Sinkiewicz" <sinkiege@snet.net> wrote in message news:<K%WTb.31852$yT3.4028@newssvr33.news.prodigy. com>... > >>"Sybrand Bakker" <gooiditweg@sybrandb.demon.nl> wrote in message >>news:u9bu109bpqnd10naqsn1jsst6n1df30njc@4ax.com. .. >> >>>On 2 Feb 2004 14:57:39 -0800, sparling@speakeasy.net (andrea) wrote: >>> >>> >>>>tnsnames.ora - no sqlnet - the program is on the same machine as the >>>>sid >>> >>>If the program is on the server, why do you use the TCP/IP protocol to >>>connect? You should set ORACLE_SID prior to connecting and leave out >>>the @prod or use the IPC protocol. >>> >>> >>>-- >>>Sybrand Bakker, Senior Oracle DBA >> >>And perhaps TWO_TASK (for a unix machine). > > > My "dba" answers me this - > no connections are local, all are tcp, no bequeath > dont need two_task > > So within his constraints, why would I get the intermittent error 12545? > > Perhaps I could rewrite the Pro*C with a different method? > ( I am connecting as "user@prod" ) > We have ORACLE_SID set to prod > we do not have two_task Your DBA should talk to a sysadmin with some knowledge of networking. Why would you have all overhead of TCP/IP, where you can use bequeath?!? Have seen IPC and Bequeath outperform TCP/IP by a factor of 100. Apart from that - your approach is twofold - you either set ORACLE_SID and connect user/password (which would end up in a bequeath connection), or do no such thing, and connect user/password@connect (which would be a "remote" connect, using IPX, TCP, Named Pipes - TCP in your case). And your DBA should have lookup up the error (or you should): [oracle@csdb01 oracle]$ oerr tns 12545 12545, 00000, "Connect failed because target host or object does not exist" // *Cause: The address specified is not valid, or the program being // connected to does not exist. // *Action: Ensure the ADDRESS parameters have been entered correctly; the // most likely incorrect parameter is the node name. Ensure that the // executable for the server exists (perhaps "oracle" is missing.) // If the protocol is TCP/IP, edit the TNSNAMES.ORA file to change the // host name to a numeric IP address and try again. I'd go for the bequeath solution, if possible, or else IPC. Never configure tnsnames for TCP on the server. -- Regards, Frank van Bortel |