Jdbc 如何查看连接到Informix数据库的应用程序的名称?

Jdbc 如何查看连接到Informix数据库的应用程序的名称?,jdbc,informix,Jdbc,Informix,在JDBC中有: Connection.setClientInfo("ApplicationName", myAppName); 使用PostgreSQL,我可以通过SQL查询查看myAppName: select * from pg_stat_activity; 使用Informix,我希望在syssessions表的feprogram列中看到它,但它是空的。我还尝试了onstat命令行实用程序,但看不到任何会话列表 我的环境: 客户端:Informix动态服务器4.50.JC1的Info

在JDBC中有:

Connection.setClientInfo("ApplicationName", myAppName);
使用PostgreSQL,我可以通过SQL查询查看
myAppName

select * from pg_stat_activity;
使用Informix,我希望在
syssessions
表的
feprogram
列中看到它,但它是空的。我还尝试了
onstat
命令行实用程序,但看不到任何会话列表

我的环境:

客户端:Informix动态服务器4.50.JC1的Informix JDBC驱动程序

服务器:IBM Informix动态服务器版本11.50.FC4


如何查看连接到Informix数据库的应用程序名称?

Informix 12.10.xC10新功能显示:

  • 更轻松的会话跟踪
    CSDK:引入新的CLIENT_LABEL环境变量,方便客户端标记自己以进行监视
因此,您的CSDK是正常的,因为这是从4.10.xC10开始的

但我不知道引擎是否能识别它

onstat -g ses
onstat -g env
在sysmaster上选择也可用于跟踪


请考虑升级ASP。

< P> >这里有两件事需要注意。首先,至少在Informix 12.10和14.10服务器上,程序由JDBC驱动程序填充。JDBC驱动程序根据是否提交FEP程序数据和11.50是否太旧来查找服务器功能

下面是一个使用4.50.1 JDBC驱动程序和14.10 Informix服务器的程序输出示例

[bhughes@ultima ~]$ dbaccess sysmaster -

Database selected.

> select feprogram from syssessions where sid=429;

feprogram  Thread[id:1, name:main, path:/work/jdbc/jdbc-4.50.1.jar]

1 row(s) retrieved.
现在介绍JDBC和Connection.setClientInfo()API。JDBC规范只要求驱动程序支持为返回的任何参数设置/获取客户机信息。Informix在4.50.1中没有为此返回任何值,因此这告诉我们,它此时不支持从连接对象设置或检索任何客户端信息属性

“ApplicationName”客户机信息参数不是JDBC标准,而是一个特定于供应商的参数,并非所有数据库都支持该参数

如果informixjdbc驱动程序确实支持客户机信息属性,那就太好了,只是目前还不支持


至于Alexandre提供的客户端标签,很抱歉,您必须拥有相应的12.10XC10或更高版本的服务器才能正常工作。

我想您可以在11.50之后的版本(可能是11.70,可能是12.10,可能是14.10)中看到这些信息。您的目标应该是从11.50更新到至少12.10,最好是14.10。客户端标签需要相应的12.10.xC10或更高版本的服务器才能正常工作。我注意到知识中心的客户标签文档中没有提到该部分。