Identify SQL version from client
Answered: red (solid confidence) — Multiple experts, including Art Kagel, converge on confirming there is no reliable/documented way to get sysmaster's F.E. version fields to match onstat -g sql's displayed version — a known, unresolved discrepancy, not a working answer to what the asker actually needed.
Advisory only.
Posted in 2015
A DBA wanted to determine, via SQL, the client (CSDK/front-end) version of connected sessions, as shown by 'onstat -g sql', so he could plan client upgrades across many versions. Suggestions were to query sysmaster:syssqlstat (sqs_feversion) or syssqscb/syssqlcurall, plus a posted mapping of SQLI F.E. versions to iConnect/CSDK releases. However, the SMI tables reported 9.03 while onstat showed 9.28, and others confirmed onstat and sysmaster have long disagreed. The workaround offered was to script onstat -g sql (awk) and join session ids with syssessions for hostnames; otherwise no fix was found, with a suggestion to open a support PMR.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: General Discussion
Hi,
I would like to know how to identify SQL version from my clients, like
reported F.E. Version on onstat -g sql. I have looked over several tables on
sysmaster but don't have found any that have the value diplayed by the command.
Anybody can help me with the correct instruction to get it, or tell me the
table and field where I can get it.
Thanks in advance,
SP
sergio.peres@airc.pt
Hi Sergio,
You can identify SQL version from the clients, like reported on onstat -g sql,
querying the sysmaster:syssqlstat.
sqs_sessionid integer, { session id }
sqs_dbname char(128), { database name }
sqs_iso smallint, { Isolation level }
sqs_lockmode smallint, { lock mode }
sqs_sqlerror smallint, { sql error of last SQL stmt }
sqs_isamerror smallint, { isam error of last SQL stmt }
sqs_feversion char(4), { FE Version }
sqs_statement char(200) { last SQL statement }
Cheers.
As far as I know:
F.E. iConnect
=======================
9.24 = 3.50.UC8
9.28 = 3.50.xC8
9.29 = 2.90.xC1
9.35 = 3.50.xC8
9.37 = 3.70.xC7 or 3.70.xC8
3.50 = 3.50.TC8
3.70 = 3.70.TC7
4.10 = 4.10.TC4
On 28.01.2015 13:44, SERGIO PERES wrote:
> Hi,
>
> I would like to know how to identify SQL version from my clients, like
> reported F.E. Version on onstat -g sql. I have looked over several tables on
> sysmaster but don't have found any that have the value diplayed by the
> command.
> Anybody can help me with the correct instruction to get it, or tell me the
> table and field where I can get it.
>
> Thanks in advance,
>
> SP
> sergio.peres@airc.pt
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
Thanks for the information but my problem is in the query I made to the
specified table returns sqs_"feversion = 9.03" and on the system the command
onstat -g sql to the session return 9.28.My question is why is that difference between values and how can I identify
the correct versions from the command line using a query.
I forgot to mention that I am sysadmin on a company that have several informix
versions and also a lot of products with several different versions of CSDK
installed, as we now need to update the clients to one specific version I am
looking for a simple way to identify which version of the client is being used.
Thanks for any help,
SP
sergio.peres@airc.pt
Hi Sergio,
Regarding the conversion between the version of the SQLI protocol used by the
client program given by the onstat -g sql and the version of the actual client
I believe that it is not documented anywhere.
As Ivan already wrote there is:
F.E. iConnect
=======================
9.24 = 3.50.UC8
9.28 = 3.50.xC8
9.29 = 2.90.xC1
9.35 = 3.50.xC8
9.37 = 3.70.xC7 or 3.70.xC8
3.50 = 3.50.TC8
3.70 = 3.70.TC7
4.10 = 4.10.TC4
Now the question is, do you only want the version or do you want the version
and the hostname from which it is connected?
The first one is simple, you can issue the next command:
onstat -g sql | awk 'NR > 6 NF {print $(NF-1)}' | sort | uniq
But for what I understand your goal is the second one.
Here the use of the query on the next tables/views will give you the F.E.
Version:
syssqscb
syssqlstat
syssqlcurall
syssqlcurses
Then we could cross the session id with:
syssessions
sysscblst
But unfortunately the first tables are giving only the version 9.03, I'm
getting the same behavior here in different environments, I have to look
deeper in the issue.
Nonetheless you can write a script where you will issue the next command to
save the session id and the F.E. Version:
onstat -g sql | awk 'NR > 6 NF {print $1"|"$(NF-1)}'
Then you can get the hostname by, for example, querying the syssessions.
And finally do a match up with the list Ivan gave.
I will try to find more info on why the F.E. Version is not showing correctly
on the tables, what is the ids version you are using?
Best regards.
My general impression is that there isn't a trustworthy method of finding
this out.
However I find a bit odd that the version showed by sysmaster views and
onstta tool are different.
Sérgio: I'd suggest a quick call to your local support... Their feeling is
that the values should be similar. Maybe they'll suggest a PMR....
Regards.
On Wed, Jan 28, 2015 at 7:30 PM, RICARDO HENRIQUES <
ricardoaireshenriques@gmail.com> wrote:
> Hi Sergio,
>
> Regarding the conversion between the version of the SQLI protocol used by
> the
> client program given by the onstat -g sql and the version of the actual
> client
> I believe that it is not documented anywhere.
>
> As Ivan already wrote there is:
> F.E. iConnect
> =======================
> 9.24 = 3.50.UC8
> 9.28 = 3.50.xC8
> 9.29 = 2.90.xC1
> 9.35 = 3.50.xC8
> 9.37 = 3.70.xC7 or 3.70.xC8
> 3.50 = 3.50.TC8
> 3.70 = 3.70.TC7
> 4.10 = 4.10.TC4
>
> Now the question is, do you only want the version or do you want the
> version
> and the hostname from which it is connected?
>
> The first one is simple, you can issue the next command:
> onstat -g sql | awk 'NR > 6 NF {print $(NF-1)}' | sort | uniq>
> But for what I understand your goal is the second one.
> Here the use of the query on the next tables/views will give you the F.E.
> Version:
> syssqscb
> syssqlstat
> syssqlcurall
> syssqlcurses
>
> Then we could cross the session id with:
> syssessions
> sysscblst
>
> But unfortunately the first tables are giving only the version 9.03, I'm
> getting the same behavior here in different environments, I have to look
> deeper in the issue.
>
> Nonetheless you can write a script where you will issue the next command to
> save the session id and the F.E. Version:
> onstat -g sql | awk 'NR > 6 NF {print $1"|"$(NF-1)}'>
> Then you can get the hostname by, for example, querying the syssessions.
>
> And finally do a match up with the list Ivan gave.
>
> I will try to find more info on why the F.E. Version is not showing
> correctly
> on the tables, what is the ids version you are using?
>
> Best regards.
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--
Fernando Nunes
Portugal
http://informix-technology.blogspot.com
My email works... but I don't check it frequently...
--047d7b5d341e121c56050dcb4aa3
This has been true for a while Fernando. Onstat and sysmaster disagree as
to the front-end version numbers for sessions. I've never found an SMI
table that has the same versions that onstat displays.
Art
Art S. Kagel, President and Principal Consultant
ASK Database Management
www.askdbmgt.com
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on the IIUG, nor any other organization with which I am
associated either explicitly, implicitly, or by inference. Neither do
those opinions reflect those of other individuals affiliated with any
entity with which I am affiliated nor those of the entities themselves.
On Thu, Jan 29, 2015 at 9:27 AM, Fernando Nunes <domusonline@gmail.com>
wrote:
> My general impression is that there isn't a trustworthy method of finding
> this out.
> However I find a bit odd that the version showed by sysmaster views and
> onstta tool are different.
>
> Sérgio: I'd suggest a quick call to your local support... Their feeling is
> that the values should be similar. Maybe they'll suggest a PMR....
>
> Regards.
>
> On Wed, Jan 28, 2015 at 7:30 PM, RICARDO HENRIQUES <
> ricardoaireshenriques@gmail.com> wrote:
>
> > Hi Sergio,
> >
> > Regarding the conversion between the version of the SQLI protocol used by
> > the
> > client program given by the onstat -g sql and the version of the actual
> > client
> > I believe that it is not documented anywhere.
> >
> > As Ivan already wrote there is:
> > F.E. iConnect
> > =======================
> > 9.24 = 3.50.UC8
> > 9.28 = 3.50.xC8
> > 9.29 = 2.90.xC1
> > 9.35 = 3.50.xC8
> > 9.37 = 3.70.xC7 or 3.70.xC8
> > 3.50 = 3.50.TC8
> > 3.70 = 3.70.TC7
> > 4.10 = 4.10.TC4
> >
> > Now the question is, do you only want the version or do you want the
> > version
> > and the hostname from which it is connected?
> >
> > The first one is simple, you can issue the next command:
> > onstat -g sql | awk 'NR > 6 NF {print $(NF-1)}' | sort | uniq> >
> > But for what I understand your goal is the second one.
> > Here the use of the query on the next tables/views will give you the F.E.
> > Version:
> > syssqscb
> > syssqlstat
> > syssqlcurall
> > syssqlcurses
> >
> > Then we could cross the session id with:
> > syssessions
> > sysscblst
> >
> > But unfortunately the first tables are giving only the version 9.03, I'm
> > getting the same behavior here in different environments, I have to look
> > deeper in the issue.
> >
> > Nonetheless you can write a script where you will issue the next command
> to
> > save the session id and the F.E. Version:
> > onstat -g sql | awk 'NR > 6 NF {print $1"|"$(NF-1)}'> >
> > Then you can get the hostname by, for example, querying the syssessions.
> >
> > And finally do a match up with the list Ivan gave.
> >
> > I will try to find more info on why the F.E. Version is not showing
> > correctly
> > on the tables, what is the ids version you are using?
> >
> > Best regards.
> >
> >
> >
> >
>
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
>
> --
> Fernando Nunes
> Portugal
>
> http://informix-technology.blogspot.com
> My email works... but I don't check it frequently...
>
> --047d7b5d341e121c56050dcb4aa3
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--001a113617001a0b79050dcbcafa
Related threads
- Posting from the Informix-list
- Migrating from IDS 9.40.UC6 to 11.50.UC3
- Ip for a network session
- questions onstat -g