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...
は私が手動でconn.setIsolationLevel(Connection.TRANSACTION_READ_UNCOMMITTED)
で分離レベルを設定することができます実現getDatabaseConnection()
で接続を得たが、それはそれとして間違って感じているいずれかのJavaへの分離レベルをハードコーディング、またはそれにルックアップを実行する必要新しい接続が必要となるたびにサーブレット・コンテキストを更新します。
これをコンテキストXMLで何らかの形で定義することはできますか、それとも私が気づいていないより良いアプローチがありますか?