我有一個在Tomcat 6中運行的Web應用程序,我已經設法配置它使用內置的DBCP連接池,並且所有工作都很好,但是我懷疑它運行在錯誤的隔離級別數據庫。我希望它在讀取未運行的情況下運行,但我認爲它在讀取提交時運行,不知道如何設置它。我可以從Tomcat上下文中設置JDBC隔離級別嗎?
這裏是我的上下文的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true">
<Resource
name="jdbc/Connection"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://...etc..."
/>
</Context>
這是用來獲取數據庫連接的Java方法。
public Connection getDatabaseConnection() throws ServletException {
try {
InitialContext cxt = new InitialContext();
if (cxt == null) {
throw new ServletException("ServletContext unavailable.");
}
DataSource ds = (DataSource)cxt.lookup("java:/comp/env/jdbc/Connection");
if (ds == null) {
throw new ServletException("Data source not found!");
}
Connection conn = ds.getConnection();
return conn;
} etc...
已經獲得getDatabaseConnection()
我知道我可以手動設置隔離級別與conn.setIsolationLevel(Connection.TRANSACTION_READ_UNCOMMITTED)
的連接,但是,感覺錯了,因爲它要麼涉及硬編碼的隔離級別到Java,或執行查找到每次需要新的連接時都要使用servlet上下文。
我可以在上下文XML中以某種方式定義這個,還是有更好的方法,我不知道?