factory org.apache.commons.dbcp.BasicDataSourceFactory driverClassName com.ibm.as400.access.AS400JDBCDriver url jdbc:as400://ServerIP;translate binary=true username username password xxxxxxx minEvictableIdleTimeMillis 30000 maxActive 1000 maxIdle 8 maxWait 10000
其中要注意的地方,就是"translate binary"這個parameter,由於AS400早期的資料庫編碼是EBCDIT,這個parameter預設為false,也就是不自動轉碼。如果AS400資料庫的CCSID為65535,也是不自動轉碼,所以透過JNDI取得的每個字元都會變成2byte,得到奇怪的字元,所以有兩個方向可走。
- 確定讀取到的AS400資料庫CCSID為937,那translate binary可走預設(False)
- 如果不確定 AS400資料庫CCSID為何,那translate binary就預設為True,透過JTOpen來做轉碼
AS400相關的CCSID預設與Windows的對應
沒有留言:
張貼留言