1

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

jTDS / Sybase ASE 有一个可以作为连接属性传入的 appName。由于我们使用的是连接池,因此会重新使用现有连接,但据我所知,appName 仅在建立新连接时才会读取。

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

  • Tomcat Web 应用程序 (Java 6)
  • C3P0 连接池(仅支持 JDBC 3)
  • jTDS 连接到 Sybase ASE 15

谢谢西蒙

4

1 回答 1

1

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

您可以将某种 SessionID 从您的 Java/Tomecat 传递给您的所有 Sybase 查询。对我来说,这很容易,因为我使用存储过程来处理我的 Java 应用程序和 SQL 服务器之间的所有通信。我基于 J2EE 会话在 Java 中建立了我的 SessionID。

于 2011-08-04T14:53:40.573 回答