Vấn đề là khi tạo ojdbc connection Pool trong Glassfish bạn không thể Ping được và gặp lỗi thông báo: ORA-01882: Timezone region not found

Bằng cách thêm thuộc tính oracle.jdbc.timezoneAsRegion=false vào file thư viện Ojdbc, giả sử là ojdbc6-11.2.0.4.jar update lại file /oracle/jdbc/defaultConnectionProperties.properties.

# This properties file sets the default value for connection properties.
# Entries in this file override the predefined defaults as specified
# in the JavaDoc for oracle.jdbc.OracleConnection. These defaults are
# themselves overridden by any values set via -D which are overridden
# by values passed in the Properties argument to getConnection.
#
# Controls whether getObject returns the Java standard type java.sql.SQLXML
# or the Oracle proprietary type oracle.xdb.XMLType.
#oracle.jdbc.getObjectReturnsXMLType=false
oracle.jdbc.timezoneAsRegion=false

Tóm lại, là có 3 bước thứ tự như sau.

1. Cập nhật oracle.jdbc.timezoneAsRegion

Thêm thuộc tính oracle.jdbc.timezoneAsRegion=false vào ojdbc6-11.2.0.4.jar/oracle/jdbc/defaultConnectionProperties.properties bằng cách giải nén ra và cập nhật vào gói jar.

2. Đưa lên Glassfish server

Replace thư viện ojdbc6-11.2.0.4.jar lên domain tương ứng: /opt/oracle/glassfish4/glassfish/domains/domain1/lib/ext/ojdbc6-11.2.0.4.jar

3. Restart lại Glassfish server

Khởi động lại glassfish server là ta đã có thể Ping được connection Pool mà bạn tạo.

/opt/oracle/glassfish4/bin/asadmin restart-domain

Liên kết tham khảo

Done !

About The Author