簡體   English   中英

GlassFish 4.1中的連接池

[英]Connection Pooling in GlassFish 4.1

在舊的Web應用程序中,我使用了tomcat服務器。 為了配置Web應用程序的連接池,我修改了該應用程序的context.xml文件。 我沒有對服務器文件做任何事情。 這樣,我就可以為同一台服務器上的不同應用程序使用不同的池。 我現在正在開發一個新的Web應用程序,但是這次使用的是glassfish 4.1服務器。 根據我執行的Internet搜索,似乎我必須自己修改服務器文件才能為連接池設置服務器。 有沒有一種方法可以只修改Web應用程序中的文件,並讓服務器讀取該文件,就像context.xml文件適用於tomcat一樣? 謝謝。

您無需修改​​任何服務器文件。 您可以從管理控制台創建連接池,可以從http://localhost:4848

然后導航到資源> JDBC> JDBC連接池以創建新的連接池。

您也可以使用Ping按鈕測試連接。

要在應用程序中使用連接,您需要執行以下JNDI查找

InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("datasource jndi name");
Connection connection = ds.getConnection();

更新您正在尋找的是應用程序范圍內的資源。 為了使資源特定於您的應用程序,您需要創建WEB-INF / glassfish-resources.xml文件,該文件將在部署war時創建資源,而在取消部署時將其刪除。

與GlassFish resources.xml中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource   Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
  <jdbc-connection-pool name="java:app/appConnectionPool" res-type="javax.sql.ConnectionPoolDataSource"
   datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
    <property name="ServerName" value="localhost"/>
    <property name="Port" value="3306" />
    <property name="DatabaseName" value="demojpa" />
    <property name="User" value="demojpa" />
    <property name="Password" value="password"/>
    <property name="Url" value="jdbc:mysql://localhost:3306/demojpa"/>
    <!-- property name="driverClass" value="com.mysql.jdbc.Driver"/ not required -->
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="java:app/jdbc/appDataSource" object-type="user" 
pool-name="java:app/appConnectionPool"/>
</resources>

使用“ java:app / jdbc / appDataSource” jndi名稱查找數據源。 Glassfish應用程序范圍內的資源上為此創建了博客文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM