Skip to Main Content

SQL Developer

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Analyzing SQLDev connections in listener log

EdStevensSep 9 2016 — edited Sep 11 2016

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?

This post has been answered by thatJeffSmith-Oracle on Sep 9 2016
Jump to Answer

Comments

John_K

Well, if you have two facts and you want to combine them, then they need to contain the same set of dimensions. Imagine you have two facts - cars and people. Cars have a num_wheels dimension and people have a hair_colour dimension. It makes no sense to report how many people have four wheels!!

You can actually combine facts at different dimensionality though using the FILTER clause. See here: Combining Facts/Subject Areas in Oracle OBIEE - Part 2 - Beyond Blog

Christian Berg-0racle

OBI at ist core is a source agnostic query Generator for any source there is.

Logical dimensions and Logical Facts are - as their "Logical" bit of the Name implies - actually completely artificial concepts and have Zero to do with the physical model in the strictest sense of the word. I can happily and easily create a 10 fact, 30 Dimension model where only 4 dims will ever be conformed on one single flat file.

You must comprehend this to comprehend why OBI does things the way it does them.

a) all business model concepts are virtual

b) don't even think "this Logical Dimension just means a dimension table" - through multiple LTSs and multiple tables nested inside each LTS I can create you a "Dimension" which - while a logical entity - is sourced from 20 physical sources, 2 being tables, 4 being cubes, 11 being XML and 3 coming from Hadoop

Yes this is the strongest feature of the NQuire Server which people still don't get comprehend 20 years after its inception.

Thomas Dodds

Every fact has a dimensional context

Every dimensional attribute is related through a fact (conformed dimensions & implicit facts)

Use of information drives fact star design (typically a related set of business questions are answered by a single fact star)

+ to @"Christian Berg"

^ the basic rules

Christian Berg-0racle

True, but contrary to breathing and heartbeat they don't happen automagically

1 - 4
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Oct 9 2016
Added on Sep 9 2016
7 comments
2,306 views