Trong quá trình phát triển các portlet cũng như các kênh mà có liên quan tới mô hình nghiệp vụ của hệ thống cần xây dựng, việc truy cập cơ sở dữ
liệu là hoàn toàn không thể tránh khỏi. Để tránh tình trạng thắt cổ chai trong lúc truy cập, chúng ta thường sử dụng kỹ thuật connection pool, tuy nhiên khi sử dụng uPortal để xây dựng hệ thống, uPortal đã tạo sẵn một connection pool thông qua datasource, do đó ta chỉ cần cấu hình lại và sử dụng chung connection pool với uPortal. Sau đây là cách cấu hình datasource :
Chép hai gói sau commons-pool-1.2.jar và commons-dbcp-1.2.1.jar (có thể tìm trong UPORTAL_HOME/lib) vào trong thư mục <$TOMCAT_HOME>/commons/lib.
Di chuyển gói jdbc từ trong thư mục
<$TOMCAT_HOME>/webapps/uPortal/WEB-INF/lib vào thư mục <$TOMCAT_HOME>/commons/lib.
Chép đoạn thẻ sau
<Resource name="jdbc/PortalDb" auth="Container"
type="javax.sql.DataSource"
username="<user>" password="<password>"
driverClassName="com.mysql.jdbc.Driver" url="<jdbc datasource>" maxActive="100" maxIdle="30" maxWait="10000"/>
vào trong thẻ <GlobalNamingResources> của tập tin
<$TOMCAT_HOME>/conf/server.xml.
Trong đó phải xác định tên đăng nhập (username), mật khẩu (password), tên lớp dùng để truy cập (driverClassName) và địa chỉ
______________________________________________________________________________________
Vào tập tin context.xml trong thư mục
<$TOMCAT_HOME>/conf/context.xml, thêm đoạn mã
<ResourceLink global="jdbc/PortalDb" name="jdbc/PortalDb"
type="javax.sql.DataSource" /> vào trong thẻ <context>
Vào trong tập tin context.xml trong thư mục
<$TOMCAT_HOME$>/webapps/uPortal/META-INF/context.xml đóng tag Resource với tên cơ sở dữ liệu mà bạn muốn tạo pool chung. Ví dụ ở đây là jdbc/PortalDB
______________________________________________________________________________________
Để không phải sửa lại sau mỗi lần build portal thì ta vào trong thư mục properties/uPortal55.xml để đóng tag <Resource> ứng với cơ sở dữ liệu đó.
Để portlet của bạn viết có thể kết nối với cơ sở dữ liệu mà bạn cần, vào trong file web.xml của portlet thêm đoạn này vào
Đoạn mã sau có thể minh họa việc kết nối cơ sở dữ liệu sử dụng datasource.
Cùng với việc cấu hình này là một gói đã được biên dịch thành tập tin hutech-common-util.jar, đây là một gói riêng, nhằm tạo kết nối tới cơ sở dữ
______________________________________________________________________________________
liệu thông qua datasource đã được cấu hình bên trên, ngoài ra còn chứa các lớp được tạo ra nhằm hổ trợ nhóm phát triển hiện tại và sau này. Các lớp trong gói này bao gồm :
WebHelper.java : Cung cấp các thành phần được thể hiện trên giao diện, như danh sách các phân loại tin (người phát triển không cần phải viết lại khi có một yêu cầu nào đó cần nhận một danh sách các phân loại tin)…
DateTime.java : Cung cấp các định dạng ngày giờ theo hệ thống ngày giờ được sử dụng ở Việt Nam.
DateUtil.java : Lấy các ngày,tháng,năm tùy theo yêu cầu của người phát triển…
stringUtil.java : Xử lý chuổi, thay thế các ký tự có thể bị mã hóa khi lưu xuống cơ sở dữ liệu, mã hóa một chuỗi từ dạng ISO-8859-1 sang dạng UTF-8…
ConnectionPool : Truy cập cơ sở dữ liệu thông qua jndi lookup, giải quyết tình trạng thắt cổ chai như đã đề cập ở trên.
______________________________________________________________________________________