ORACLE ERROR SIMULATION A Kalkhof R Trentadue On

  • Slides: 15
Download presentation
ORACLE ERROR SIMULATION A. Kalkhof R. Trentadue On behalf Persistency group B.

ORACLE ERROR SIMULATION A. Kalkhof R. Trentadue On behalf Persistency group B.

ORACLE ERROR 03113 This error has s been many times observed and reported in

ORACLE ERROR 03113 This error has s been many times observed and reported in the Savannah ticket bug #58522. This problem might be issued by many different situations, among them the relevant are: - the Oracle shadow process on the server died unexpectedly. So, if a running process were to suddenly encounter an ORA-03113 and / or 3114, the first place to check is the alert. log on the server to see if any other Oracle errors occurred. - machine crash or network failure at the server side - there are two servers with the same node names on the same network - there are duplicate IP addresses on the network

Network failure second half Gateway Port 45000 Port 10121 itrac 517. cern. ch LXBUILD

Network failure second half Gateway Port 45000 Port 10121 itrac 517. cern. ch LXBUILD 114 DB SERVER Itrac 517 -v. cern. ch The local port forwarding is created with the following command: /usr/bin/ssh -N -L 45000: itrac 517 v. cern. ch: 10121 lxbuild 114 itrac 507. cern. ch Itrac 507 -v. cern. ch

Py. Coral test Documentation: The test has been implemented and commited in cvs at

Py. Coral test Documentation: The test has been implemented and commited in cvs at the following link: http: //cool. cvs. cern. ch/cgibin/cool. cgi/cool/contrib/External. Tests/Coral. Network. Glitch/trentad/ Andrea published in his directory a Readme. txt with all the most important remark noticed during this work. Results: We are able to reproduce the error ORA-03113 in the similar way found using the Stone. Handler in C++.

Connection. Service UML

Connection. Service UML

Legend The class has pointer to The class has reference to The object or

Legend The class has pointer to The class has reference to The object or method generate A class A bloc of operations A package

From Connection. Service to Oracle. Access Connection. Service Session. Proxy Connection. Handle Transaction. Proxy

From Connection. Service to Oracle. Access Connection. Service Session. Proxy Connection. Handle Transaction. Proxy Session. Handle Connection. Service get. Validation. Session() Session. Proxy Connection. Pool get. Session. From. New. Connection() Session. Handle Domain new. Session() open() Connection. Handle Oracle. Access Connection. Propertie s Connection new Sess ion( ) open() Session. Properties Session Transaction

Latest implementation for the Reconnection

Latest implementation for the Reconnection

How to trigger the connection lost transaction() Session. Proxy is. Valid() Session. Handle is.

How to trigger the connection lost transaction() Session. Proxy is. Valid() Session. Handle is. Valid() Connection. Handle __disconnect() invalidate. All() invalidate() Session is now invalidated Oracle. Access: : Connection Oracle. Access: : Session: : is. User. Session. Active() bool is. User. Session. Active() const { if ( ! this->is. Valid() ) return false; ……. . return ( m_session. Handle != 0 ); }

How to trigger the lost connection now bool is. User. Session. Active() const {

How to trigger the lost connection now bool is. User. Session. Active() const { if (! m_properties->is. Connected()) return false; if ( ! this->is. Valid() ) return false; …. return ( m_session. Handle != 0 ); } Reconnect() Validate() false true transaction() is. User. Session. Active() Oracle. Access: : Session is. Connected() Invalidate() Session. Properties Session is now invalidated OK

Reconnection in transaction. Start If the network glitch occurs after the transaction initialization and

Reconnection in transaction. Start If the network glitch occurs after the transaction initialization and before the its start, the connection lost could be triggered inside the method Start, just loocking at the status of the OCITrans. If an exception raises, the method OCIError. Handle of Session. Properties is invoked and a loop of 100 seconds start in order to try the reconnection until it is successfully accomplished. If not, trow an exception. This method to reconnect is similar but not identical to the one used in Session class. Therefore as soon as possible a minor modification will be implemented in order to have just only one way everywhere.

Conclusion ü The latest implementation of the new design for the network glitch problem

Conclusion ü The latest implementation of the new design for the network glitch problem is ready. ü The strategy decided is similar to the previous one. The most important element is Session. Properties as class shared by all the objects and easely used to invoke the Reconnection. ü The Py. Coral tests have been successfully executed. They solve the problem of glitch until the Query level. ü However when the glitch occurs at the level of Cursor loop the usual ORA-03113 appears. With Alex. K we discussed a possible solution for that, but we have to decide whether is meaningfull or not.

Link of other documentation http: //cool. cvs. cern. ch/cgibin/cool. cgi/cool/contrib/External. Tests/Coral. Network. Glitch/trentad/Py. Coral/S

Link of other documentation http: //cool. cvs. cern. ch/cgibin/cool. cgi/cool/contrib/External. Tests/Coral. Network. Glitch/trentad/Py. Coral/S tatus. Report. txt? rev=1. 6&content-type=text/vnd. viewcvs-markup