Showing posts from October, 2010

Testing Oracle rack connections with Erlang

I had an interesting task the other day. There is a new database installation were I work. Two equally balanced servers with Oracle rack installed on them.

The DBA did the installation with some Oracle consultants but it seemed to us the system functioning was rather bizarre. It appeared to us that some connections were getting lost while others were going through. We wanted to gather more detailed data in order to work out what percentages of connections were getting lost.

I chose to program an Erlang application which made concurrent connections to the rack. First I tried running many simultaneous Erlang processes that connected to the rack through odbc. There was only one Erlang node and I soon realised that it wasn't paralelising the connections. Apparently, there is only one odbc server running per windows process (or erlang node, to put it in another way). Thus, even if I created many spawned functions inside one node, there was only one odbc server answering all of them.

To ov…