我可以在已经打开的JTDS连接上更改'appName'吗?

时间:2011-07-26 11:15:38

标签: java jdbc sybase-ase jtds

我正在寻找一种方法将Web应用程序事务信息传递给底层数据库进程。在我的Java代码中,我可能有一个事务方法ReservationService #search(),它运行一个或多个SQL。在DBMS上,我只看到一个SPID和一些锁。我正在寻找一种方法来向数据库进程添加标签“ReservationService#search”。

jTDS / Sybase ASE有一个appName,可以作为连接属性传入。当我们使用连接池时,现有的连接会被重用,但据我所知,appName只能在建立新连接时读取。

如何在现有连接上重新设置appName(不关闭/打开)?或者,如果这根本不可能,还有其他想法从Java获取事务上下文信息到DBMS吗?

  • Tomcat Webapplication(Java 6)
  • C3P0连接池(仅支持JDBC 3)
  • jTDS连接到Sybase ASE 15

由于 西蒙

1 个答案:

答案 0 :(得分:1)

不幸的是,似乎您只能在打开连接时在URL参数中指定但不能在后面更改。

您可以将Java / Tomecat中的某种SessionID传递给所有Sybase查询。对我来说,这很简单,因为我使用存储过程进行Java应用程序和SQL服务器之间的所有通信。我在Java会话中使用Java构建了SessionID。