我正在寻找一种方法将Web应用程序事务信息传递给底层数据库进程。在我的Java代码中,我可能有一个事务方法ReservationService #search(),它运行一个或多个SQL。在DBMS上,我只看到一个SPID和一些锁。我正在寻找一种方法来向数据库进程添加标签“ReservationService#search”。
jTDS / Sybase ASE有一个appName,可以作为连接属性传入。当我们使用连接池时,现有的连接会被重用,但据我所知,appName只能在建立新连接时读取。
如何在现有连接上重新设置appName(不关闭/打开)?或者,如果这根本不可能,还有其他想法从Java获取事务上下文信息到DBMS吗?
由于 西蒙
答案 0 :(得分:1)
不幸的是,似乎您只能在打开连接时在URL参数中指定但不能在后面更改。
您可以将Java / Tomecat中的某种SessionID传递给所有Sybase查询。对我来说,这很简单,因为我使用存储过程进行Java应用程序和SQL服务器之间的所有通信。我在Java会话中使用Java构建了SessionID。