Home » RDBMS Server » Server Administration » auditing the version of the client
auditing the version of the client [message #245134] Fri, 15 June 2007 04:47 Go to next message
aline
Messages: 92
Registered: February 2002
Member
Hi,

I'm working with a 9.2.0.7 server.
I want to audit the version of the clients of my database.
Do you know how to do that?
thk in advance.
Re: auditing the version of the client [message #245141 is a reply to message #245134] Fri, 15 June 2007 05:07 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Quote:
I want to audit the version of the clients of my database

From what tools? What is your language? Where do you want to audit? Where do you want to store audit data?
Re: auditing the version of the client [message #245166 is a reply to message #245134] Fri, 15 June 2007 06:31 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
Hello,


From any tool. I just want to monitor the client version of the distinct connection.
If it could be in sql it will be nice, but if the information is in trace file, it's not a problem for me.

[Updated on: Fri, 15 June 2007 06:32]

Report message to a moderator

Re: auditing the version of the client [message #245568 is a reply to message #245166] Mon, 18 June 2007 02:49 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
any idea?
Re: auditing the version of the client [message #245584 is a reply to message #245568] Mon, 18 June 2007 03:09 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Depending on your application language, a client can know what is its Oracle version.
I know no way to know it from outside the client (but activating SQL*Net trace and anlyzing the trace files).

Regards
Michel
Re: auditing the version of the client [message #245630 is a reply to message #245584] Mon, 18 June 2007 04:32 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
good!
so there is two solution!

What is the query to do that from inside?
If a client could know that, with a database trigger on connect, I could easily manage my problem.
And how activating sql*net to do that to?

Thk for ur help!
Re: auditing the version of the client [message #245635 is a reply to message #245630] Mon, 18 June 2007 04:43 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
This is not a query.
It can't be done from inside the server (afaik), so a logon trigger is useless.

To know from the client, this depends on your programmatic language.
What it yours (Pro*C, OCI, SQLJ, JDBC, OO4O, OLE DB...)?

Regards
Michel

[Updated on: Mon, 18 June 2007 04:44]

Report message to a moderator

Re: auditing the version of the client [message #245646 is a reply to message #245635] Mon, 18 June 2007 05:03 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
I'm using sql of course and python.
But I want the information on my server.
So if a logon trigger can't do that, maybe activating sql*net trace.
Do you know how to do that?

[Updated on: Mon, 18 June 2007 05:06]

Report message to a moderator

Re: auditing the version of the client [message #245650 is a reply to message #245646] Mon, 18 June 2007 05:13 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
It is not a practical way. Ir will generate GB and GB of files without speaking about performances. SQL*Net trace is just for debugging.

I don't know python but what is your interface with Oracle (ODBC, ADO...)?
Maybe someone will help you on this.

Regards
Michel

Re: auditing the version of the client [message #245676 is a reply to message #245635] Mon, 18 June 2007 07:33 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
Michel Cadot wrote on Mon, 18 June 2007 04:43
This is not a query.
It can't be done from inside the server (afaik), so a logon trigger is useless.




I'm sure it could be.
Just an example:


Quote:

C:\Documents and Settings> sqlplus

SQL*Plus: Release 9.2.0.8.0 - Production on Mon Jun 18 14:29:55 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Enter user-name:



So I have the information here (eg: SQL*Plus: Release 9.2.0.8.0)
I just want to capture this information in a logon trigger!



Re: auditing the version of the client [message #245685 is a reply to message #245676] Mon, 18 June 2007 08:22 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
I understand what you want.
SQL*Plus is bias because Oracle writes it and so hard coded its version. It is not the Oracle interface version it gives you but SQL*Plus version.

SQL*Plus is written in C using OCI.
In a non-Oracle program in C using OCI you can get this information from OCI.

Now tell me what is your interface with Oracle and if I know I'll tell you how to get the information from it.

This can't be capture with logon trigger because it is information got from client and only client, and logon trigger is executed on server and only server.

Regards
Michel

Re: auditing the version of the client [message #245714 is a reply to message #245685] Mon, 18 June 2007 10:57 Go to previous messageGo to next message
ThomasG
Messages: 3212
Registered: April 2005
Location: Heilbronn, Germany
Senior Member
A seach for "python oracle" has shown me at least 4 possible python->oracle modules that could be used.

If it's DCOracle2 you can maybe use the DCOracle2.version variable in your python code to get some client version information into a python variable.

When you then fire a
dbms_application_info.set_client_info('[your_version]') 

after you connect from your client, that info can be queried over the client_info field in the v$sessions view on the server.

There is no unified way of querying the client, since it could even be possible that a client connects without any "normal" oracle client installed by using a java thin client, or a third party driver.
Re: auditing the version of the client [message #245719 is a reply to message #245134] Mon, 18 June 2007 11:53 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
thk for ur answer.


You have had understand very clearly my problem.
My problem is I have not the control of the client side! (If I had, I'll have unified all of my client and I'll have no reason to control that). So for me, the only way to know what is the version of my client is to work from the server side! If they are no way to do that, I'm afraid that I'll have no solution for my problem
Re: auditing the version of the client [message #245741 is a reply to message #245719] Mon, 18 June 2007 12:38 Go to previous messageGo to next message
ThomasG
Messages: 3212
Registered: April 2005
Location: Heilbronn, Germany
Senior Member
Maybe another approach could help:

What is the REASON for checking the clients?

If there is a problem with specific client versions maybe create a "login" procedure in the client program that triggers that specific problem and exits the client if the problem occurs.

But, since you have no control over the clients, in an ideal world it shouldn't be your problem anyway. ( Yeah, I know, I don't work for someone in that ideal world either Wink )

Thomas
Re: auditing the version of the client [message #245745 is a reply to message #245741] Mon, 18 June 2007 12:51 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Yes, this is the prime question.
Why do you need to know the Oracle client version?

Regards
Michel
Re: auditing the version of the client [message #246325 is a reply to message #245134] Wed, 20 June 2007 11:20 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
Hi,

Thank for your answer.
We are currently updating database version and client version or our system. We don't want to have 'to old' client to avoid different bug. So the only solution to be absolutely certain than there is no old client is an audit in the server side.


So now you know all my problematic!
Re: auditing the version of the client [message #246333 is a reply to message #246325] Wed, 20 June 2007 11:38 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Your problem is more organizational than technical.
If your upgrade/application needs a specific client then all clients must be upgraded.
If some are missing then you have an issue in your ugrade process.
Don't you know all your clients?
How do you upgrade their applications if you don't know them?

Regards
Michel
Re: auditing the version of the client [message #246335 is a reply to message #246333] Wed, 20 June 2007 11:40 Go to previous messageGo to next message
DreamzZ
Messages: 1666
Registered: May 2007
Location: Dreamzland
Senior Member
Michel Cadot wrote on Wed, 20 June 2007 10:38
Your problem is more organizational than technical.
If your upgrade/application needs a specific client then all clients must be upgraded.
If some are missing then you have an issue in your ugrade process.
Don't you know all your clients?
How do you upgrade their applications if you don't know them?

Regards
Michel



Make sence..
Re: auditing the version of the client [message #246517 is a reply to message #246335] Thu, 21 June 2007 03:29 Go to previous messageGo to next message
aline
Messages: 92
Registered: February 2002
Member
I'm not agreeing with you.
It depends on the structure of your organization.
In our society we don' have the full control of the clients.
Some of them could be forgotten (laptop, remote connection...)
And some people could reinstall oracle client.
I have no control of this.




Re: auditing the version of the client [message #246526 is a reply to message #246517] Thu, 21 June 2007 03:55 Go to previous messageGo to next message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
This is what I said.
The problem is an organizational one.

Regards
Michel
Re: auditing the version of the client [message #246533 is a reply to message #246526] Thu, 21 June 2007 04:13 Go to previous messageGo to next message
ThomasG
Messages: 3212
Registered: April 2005
Location: Heilbronn, Germany
Senior Member
Which could be solved technically.

For example have something in the startup code of your application that checks the local installation.

You could start up sqlPlus and do an

select '&&_SQLPLUS_RELEASE' as "SQLPLUS_RELEASE" from dual;


spooled into some file, and check the version from that.

You could :

1. Start the sqplus that is found int the PATH and spool the version into a file
2. read the file and get the version into a variable
3. put that variable in client_info with dbms_application_info.set_client_info

So it's technical possible, but your client application has to figure out the version first.

You can then even add checks for OS Version, [YourApp] Version, and so on, and put that in client_info, too.
Re: auditing the version of the client [message #246535 is a reply to message #246533] Thu, 21 June 2007 04:19 Go to previous message
Michel Cadot
Messages: 68718
Registered: March 2007
Location: Saint-Maur, France, https...
Senior Member
Account Moderator
Assuming that:
- Client has SQL*Plus
- Client does not have more than one Oracle version

Regards
Michel
Previous Topic: Increase of SYSAUX Tablespace - Oracle 10gr2
Next Topic: Best way to upload data to a warehouse
Goto Forum:
  


Current Time: Mon Dec 02 12:39:59 CST 2024