Skip to main content

Symptom:
When trying to do “edit table” or “query data” (as below) in pl/sql developer or try to run any SQL statement, the program will hang. Although schema browse works and connection to database server can be made withouth issue.

Trouble shooting:
I updated Oracle client to 11.2.0.3, upgrade pl/sql developer to the lasted version 9.0.6, no help.  I fired up TCPView (from www.sysinternals.com) and found there were 2 connections to server:


While on server side, we only got one:

I did a few more test, and turned out, sometimes, the first connection you made to the database may disappear on server side, when that happens, plsqldeveloper will hang.   So I traced server side Oracle process using “strace” as below (the number after –p is process ID as in above picture 32641/oracle….)
strace –p 32641
and in the trace file, I got:
write(20, "\2\274\0\0\6\0\0\0\0\0ssed\25\1\0\1\7 EHCC Query H"..., 700) = -1 ECONNRESET (Connection reset by peer)

that means the connection was reset, and that is mostly a software bug to me. To confirm the network reset was sent by plsqldeveoper, I downloaded wireshark (http://www.wireshark.org/) and did a client network capture, but there’s no reset packet was sent from client side. So I have to suspect the problem was on the network.
On my PC, I only got one network card (NIC) which is from Intel, but since sometimes I need to use VPN (Cisco VPN) to connect to production server, the VPN is always on. I disconnected VPN and try the same operation again, now everything works just as expected.
I did some other test using other tools like sqlplus and sqldeveloper, both works without issue on Cisco VPN.
Root cause:
There’s something wrong when use plsqldevelop and Cisco VPN together or maybe there’s some settings on VPN side caused the problem. Anyway I this case, I need to disable VPN to make plsql developer work.

Comments

Popular posts from this blog

enable special character support in Graphite metric name

Problem Graphite doesn’t support special characters like “ “ (empty space), “/” slash etc. Because it expect everything to be just ASCII to split/processing them, and then make directories based on metric name. For example:   Metric:     datacenter1.server1.app1.metric1.abc Will create datacenter1/server1/app1/metric1/abc.wsp But Metric: datacentter1.this is a test/with/path.app.test will fail when create directory So any special name not allow to appear in directory/file name is not supported by Graphite.   What we can do?   We can urlEncode the metric name which has special characters. So like “/var/opt” (not valid file name) will become “%2Fvar%2Fopt”(now valid), using urlEncode instead of others (like BASE64) is because this will keep most of data readable.   So what to change? 1. urlEncode metric name before send to Graphite (if you always sending metrics using text/line mode instead of pickle/batch mode, then you may consider modify Carbon-cache.py), like     metricname=

How to send command / input to multiple Putty window simultaneously

Putty is one of the best and must-have freeware for people working on Linux/Unix but use Windows as client like me.  We need to manage many servers and sometimes we are hoping we can run/execute same command on multiple host at same time, or just input same thing to multiple host. I searched online for a tool can do this. And it looks like PuTTYCS (PuTTY Command Sender) is the only one existing. But I’m a little bit disappointing after tried the software, it’s good but not good enough. It can only send command to each window one by one, and you have to wait until last window got input. So I think I should do something, and puttyCluster was born ( https://github.com/mingbowan/puttyCluster ) interface is simple: When you input Windows title pattern in the text box, you will be prompt for how many windows matching the pattern, like this: and you click the edit box under “cluster input”, what ever key you pressed will pass to all those windows simultaneously, even “Ctrl-C”, “Esc” and