Thursday, April 12, 2007

ORA-12152: TNS:unable to send break message

Let's start this short topic with the so called "managerial summary":

ORA-12152 means that the session has expired for some reason and the only way to move forward is to log in into Oracle again and re-execute, if possible or if applicable, any uncommitted transactions.

Now, supposing you are not a manager, you may find useful some additional technical details.

I am referring in particular to a scenario that i've outlined in a previous post concerning ORA-12170 and ORA-12152 means that your session is no longer alive on the server because oracle's PMON process got rid of it as it presumed that it was dead.
As a consequence it rolled back any pending transactions and it reclaimed the resources used by the session.

Now your question probably is:
why did PMON assume that the session was dead?

I can't tell you for sure why it happened in your case, but here is why it happened to me.

I was connected to my db server over the internet (no VPN) and, in order to get through the remote firewall, i had to force the connection to occur on port 1521 by setting the server O/S environment variable USE_SHARED_SOCKET=TRUE and, as if it were not enough, my client pc was also behind a firewall.
Then PMON saw that my session had been idle for a while and when it tried (without success owing to the pc firewall perhaps?) to probe my client session, it came to the conclusion that the connection was gone and removed it.
Thereafter, when i went back to execute a new command from sqlplus (or another client program), the Oracle client returned:
ORA-12152: TNS:unable to send break message
I hope this makes sense to you too.

In conclusion i wouldn't expect this error to happen very frequently inside a private network or when using a stable VPN connection, but you may want to comment basing on your own experience.

ORA-12152: TNS: impossibile inviare il messaggio di interruzione
ORA-12152: TNS:no se ha podido enviar mensaje de ruptura
ORA-12152: TNS: no es pot enviar el missatge d'interrupció.
ORA-12152: TNS : impossible d'envoyer un message de rupture
ORA-12152: TNS:Unterbrechungsmeldung kann nicht gesendet werden.
ORA-12152: TNS:δεν είναι δυνατή η αποστολή μηνύματος διακοπής
ORA-12152: TNS:Kan ikke sende afbryd-meddelelse
ORA-12152: TNS: kan inte sända brytningsmeddelande.
ORA-12152: TNS: kan ikke sende bruddmelding
ORA-12152: TNS: katkosanomaa ei voi lähettää
ORA-12152: TNS:nem lehet megszakító üzenetet küldeni
ORA-12152: TNS:nu s-a putut trimite mesajul de întrerupere
ORA-12152: TNS:kan geen onderbrekingsbericht verzenden.
ORA-12152: TNS:não é possível enviar mensagem de interrupção
ORA-12152: TNS:incapaz de enviar mensagem de quebra
ORA-12152: TNS:не в состоянии передать прерывающее сообщение
ORA-12152: TNS:nelze odeslat přerušovací zprávu
ORA-12152: TNS: Nemožno vyslať správu prerušenia
ORA-12152: TNS:nie można wysłać komunikatu przerwania
ORA-12152: TNS: kesim mesaj gönderme olanağı yok.


Anonymous said...

Hi I am facing ORA-12152. basically I am using a batch file which connects to a database (on another server) to insert data. If I run the batch file(which uses sqlloader) I get the error. However if run sqlloader on command prompt and use the ctrl file, I get my job done. Any ideas??

Byte64 said...

Hard to say, is the batch job running under the same user? If not, may be some environment setting is the cause.

Randall Wicks said...

Check the date and time on your servers. That was a issues we saw when getting this error.

yes you can!

Two great ways to help us out with a minimal effort. Click on the Google Plus +1 button above or...
We appreciate your support!

latest articles