[Seasar-user:8036] Re: [S2DAO]Oracle の TIMESTAMP WITH LOCAL TIME ZONE

WAKABAYASHI Ryoji [E-MAIL ADDRESS DELETED]
2007年 6月 4日 (月) 16:56:59 JST


お世話になります。若林です。

TIMESTAMP WITH LOCAL TIME ZONEの表示は
以下の方法でうまくいきました。
ありがとうございました。

(1)XADataSourceImplのサブクラスに以下を定義
private String timeZone;
public void setTimeZone(String timeZone) {
    this.timeZone = timeZone;
}
public XAConnection getXAConnection() throws SQLException {
    XAConnection xa = super.getXAConnection();
    Connection con = xa.getConnection();
    if ( con instanceof OracleConnection ){
        ((OracleConnection)con).setSessionTimeZone(timeZone);
    }
    return xa;
}

(2)j2ee.diconのxaDataSourceのクラス名変更とプロパティ追加
<property name="timeZone">"Asia/Tokyo"</property>


JUNDUさん、詳しく調べていただきありがとうございます。
ちなみに、setSessionTimeZone("+09:00")では
java.sql.SQLException: Timezone not supported
になってしまいました。
(alter sessionでの指定とは仕様が異なるようです・・・)


[E-MAIL ADDRESS DELETED] wrote:
> せとあずさです。
> 
> On Fri, 1 Jun 2007 17:32:38 +0900
> "Jundo Ishikawa" <[E-MAIL ADDRESS DELETED]> wrote:
>>  まったく同じことを考えて実際に試したのですが、ダメでした。
> 
> そうすると、
> org.seasar.extension.dbcp.impl.XADataSourceImpl#getXAConnectionを
> オーバーライドしてコネクション取得後にキャストしてsetSessionTimeZone
> メソッドを呼び出すという流れになるのではないでしょうか。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 



Seasar-user メーリングリストの案内