Oracle 11.2.0.4 SE-One 64-bit
Oracle Linux 5
My real goal is to get a better understanding of some entries in my listener log. But after some initial reading I am using SQLDev to generate the activity and have come to the point of asking a few questions. Hopefully the answers as regards SQL Dev will give me some insight into other jdbc apps.
In trying to analyze the listener log to determine who/what/hwere of the clients, I get a fair amount of "host=_jdbc_ " (instead of a host name or ip address), and "program=null" (or simply 'program=") Since the listener log reports "host" in both the 'connect' and the 'address' fields, I was able to track some of these back to my own desktop. In those, some reported
(CONNECT_DATA=(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=estevens)
While others reported
(CONNECT_DATA=(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))
The first was easy enough (up to a point) but the second was a real mystery. The only jdbc program I ever use to connect to that database is SQL Dev. And in the first sample, it was clearly identified as such. So what what was the second?
So I set up this test. While running 'tail -f listener.log | grep jdbc' . . .
Connect with a SQL Dev connection defined as connection type = basic. That resulted in
09-SEP-2016 10:46:09 * (CONNECT_DATA=(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=estevens))(SERVICE_NAME=mydb1)(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.12)(PORT=54190)) * establish * mydb1 * 0
Connect with a SQL Dev connection defined as connection type = tns That resulted in
09-SEP-2016 10:46:09 * (CONNECT_DATA=(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=estevens))(SERVICE_NAME=mydb1)(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.12)(PORT=54190)) * establish * mydb1 * 0
09-SEP-2016 10:47:32 * (CONNECT_DATA=(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=estevens))(SERVICE_NAME=mydb1)) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.12)(PORT=54196)) * establish * mydb1 * 0
Notice the difference after '(SERVICE_NAME=mydb1) ....
Next, thinking there might be some sort of connection pooling going on, I started another instance of SQL Dev. Didn't even try to make a connection. Just started it, and got the following:
09-SEP-2016 10:50:25 * (CONNECT_DATA=(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))(SERVICE_NAME=mydb1)(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.12)(PORT=54204)) * establish * mydb1 * 0
09-SEP-2016 10:50:26 * (CONNECT_DATA=(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))(SERVICE_NAME=mydb1)(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.12)(PORT=54207)) * establish * mydb1 * 0
09-SEP-2016 10:50:28 * (CONNECT_DATA=(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))(SERVICE_NAME=mydb2)(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.**.**.12)(PORT=54217)) * establish * mydb2 * 0
Two connections to my original db, and even more surprising, a connection to another db on that server.
So, what's going on here? How am I to interpret and understand this?