search
HomeDatabaseMysql Tutorial5种方法访问GlassFish资源

方法1,通过管理控制台


 
  首先,先通过管理控制台来创建一个连接池mypool。在浏览器的输入管理控制台地址:localhost:4848。采用缺省的用户名“admin”及其密码“adminadmin”登录。成功登录后,在左边的树型菜单中,展开“资源”-“JDBC”-“连接池”。
在主面板中,点击“新建”。在面板“新建 JDBC 连接池(步骤 1,共 2 步)”中,输入“名称”为mypool,“资源类型”选为“javax.sql.DataSource”,“数据库供应商”选为“JavaDB”。在接下来的“新建 JDBC 连接池(步骤 2,共 2 步)”中,可以看到数据库连接池的各项缺省设置。将在“池设置”一栏中的“空闲超时”值由缺省的300改为777。 点击“完成”。至此,我们通过管理控制台完成了对数据库连接池mypook的创建,并修改了其空闲超时的值。

 
  方法2,通过命令行工具asadmin

接下来,我们通过命令行的asadmin来查看这一资源。
asadmin list server.resource*
运行结果如下:

 

undefined
undefined
  server.resource
  -
  ref
  .jdbc
  /
  __CallFlowPool server.resource
  -
  ref
  .jdbc
  /
  __TimerPool server.resource
  -
  ref
  .jdbc
  /
  __default server.resources server.resources.jdbc
  -
  connection
  -
  pool.DerbyPool server.resources.jdbc
  -
  connection
  -
  pool.__CallFlowPool server.resources.jdbc
  -
  connection
  -
  pool.__TimerPool server.resources.jdbc
  -
  connection
  -
  pool.mypool server.resources.jdbc
  -
  resource.jdbc
  /
  __CallFlowPool server.resources.jdbc
  -
  resource.jdbc
  /
  __TimerPool server.resources.jdbc
  -
  resource.jdbc
  /
  __default

这里列出的MBean是用GlassFish自己的DottedName来标识的。接着通过asadmin的子命令get来查看对象mypool的属性:
asadmin get server.resources.jdbc-connection-pool.mypool.*
或者进一步查看空闲超时(idle-timeout-in-seconds)的属性值。
asadmin get server.resources.jdbc-connection-pool.mypool.idle-timeout-in-seconds


结果如下:
server.resources.jdbc-connection-pool.mypool.idle-timeout-in-seconds = 777
至此,我们完成了使用命令行的管理工具asadmin对mypool的访问。这里asadmin通过GlassFish扩展的Dotted Name命名方式来访问MBean的。Dotted Name是GlassFish命令行工具asadmin定义的一套约定。在这套约定的支持下,asadmin的三个子命令(list、set和get )可以通过一个由“.”分隔的字串寻址到GlassFish中的MBean。


方法3,通过第三方工具JConsole


接下来,我们要通过JConsole来访问对象mypool。
在JConsole的登录面板中,选择远处进程:localhost:8686(8686是GlassFish缺省的管理端口),用户名同样为admin,密码adminadmin。登录进来后所看到的是关于GlassFish应用服务器运行时的信息,点击“MBean”。展开树型结构“com.sun.aperv” - “jdbc-connection-pool” - “my pool” - “config” - “属性”。
可以

看到我们所关心的连接池mypool的信息。属性idle-timeout-in-seconds的值为777。修改777为888。
在回到管理控制台或命令行工具asadmin同样可以看到刚才在JConsole所作的修改已经生效。
以上说明三种工具对GlassFish资源的修改是等效的。

接下来通过编程的方式来访问数据库连接池mypool。


方法4,通过标准的JMX编程方式


标准的JMX方式的代码如下:(以下为演示代码。为突出重点,未作异常处理。)


 

undefined
undefined
  import javax.management.
  *
  ; import javax.management.remote.
  *
  ;
  public
  
  class
   JMX_demo {
  public
   JMX_demo() throws Exception {
  //
  创建JMX 的URL
  
  JMXServiceURL url
  =
  
  new
   JMXServiceURL(
  "
  service:jmx:rmi:///jndi/rmi://localhost:8686/jmxrmi
  "
  ); java.util.Map env
  =
  
  new
   java.util.Hashtable();
  //
  缺省用户名和其口令
  
  String[] creds
  =
   {
  "
  admin
  "
  ,
  "
  adminadmin
  "
  }; env.put(JMXConnector.CREDENTIALS,creds);
  //
  建立连接
  
  JMXConnector connector
  =
   JMXConnectorFactory.connect(url,env); MBeanServerConnection mbsc
  =
   connector.getMBeanServerConnection();
  //
  要访问的MBean的Object Name
  
  ObjectName mbeanName
  =
  
  new
   ObjectName(
  "
  com.sun.appserv:type=jdbc-connection-pool,name=mypool,category=config
  "
  );
  //
  所要访问的属性idle-timeout-in-seconds
  
  System.
  out
  .println(
  "
  Using JMX, jdbc pool idle timeout:
  "
  +
   mbsc.getAttribute(mbeanName,
  "
  idle-timeout-in-seconds
  "
  )); }
  public
  
  static
  
  void
   main( final String[] args ) throws Exception{
  new
   JMX_demo(); } }
运行结果如下: Using JMX, jdbc pool idle timeout:888


 

undefined
undefined
  public
  
  class
   AMX_demo {
  public
   AMX_demo() throws Exception {
  //
  Domain Admin Server的机器名或IP地址
  
  final String host
  =
  
  "
  localhost
  "
  ;
  //
  JMX管理端口,缺省8686。
  
  final
  int
   port
  =
  8686
  ;
  //
  管理员名
  
  final String user
  =
  
  "
  admin
  "
  ;
  //
   管理员密码
  
  final String password
  =
  
  "
  adminadmin
  "
  ; TLSParams tlsParams
  =
  null
  ;
  //
  连接到JMX server
  
  AppserverConnectionSource conn
  =
  
  new
   AppserverConnectionSource( AppserverConnectionSource.PROTOCOL_RMI, host, port, user, password, tlsParams,
  null
  ); conn.getJMXConnector(
  true
   );
  //
  DomainRoot和JDBCConnectionPoolConfig就是所说的DCP组件 DomainRoot mDomainRoot = conn.getDomainRoot();
  //
  获取JDBCConnectionPool的列表
  
  Map pools
  =
   mDomainRoot.getDomainConfig().getJDBCConnectionPoolConfigMap(); JDBCConnectionPoolConfig mypool
  =
   (JDBCConnectionPoolConfig)pools.
  get
  (
  "
  mypool
  "
  ); System.
  out
  .println(
  "
  Using DCP, jdbc pool idle timeout:
  "
  +
  mypool.getIdleTimeoutInSeconds()); }
  public
  
  static
  
  void
   main( final String[] args ) throws Exception{
  new
   AMX_demo(); } }方法5,通过AMX编程方式

AMX方式的代码如下:


 

undefined
undefined
  import com.sun.appserv.management.DomainRoot; import com.sun.appserv.management.client.AppserverConnectionSource; import com.sun.appserv.management.client.TLSParams; import com.sun.appserv.management.util.misc.ExceptionUtil; import com.sun.appserv.management.config.
  *
  ; import java.ConnectException; import java.util.Map;

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
What Are the Limitations of Using Views in MySQL?What Are the Limitations of Using Views in MySQL?May 14, 2025 am 12:10 AM

MySQLviewshavelimitations:1)Theydon'tsupportallSQLoperations,restrictingdatamanipulationthroughviewswithjoinsorsubqueries.2)Theycanimpactperformance,especiallywithcomplexqueriesorlargedatasets.3)Viewsdon'tstoredata,potentiallyleadingtooutdatedinforma

Securing Your MySQL Database: Adding Users and Granting PrivilegesSecuring Your MySQL Database: Adding Users and Granting PrivilegesMay 14, 2025 am 12:09 AM

ProperusermanagementinMySQLiscrucialforenhancingsecurityandensuringefficientdatabaseoperation.1)UseCREATEUSERtoaddusers,specifyingconnectionsourcewith@'localhost'or@'%'.2)GrantspecificprivilegeswithGRANT,usingleastprivilegeprincipletominimizerisks.3)

What Factors Influence the Number of Triggers I Can Use in MySQL?What Factors Influence the Number of Triggers I Can Use in MySQL?May 14, 2025 am 12:08 AM

MySQLdoesn'timposeahardlimitontriggers,butpracticalfactorsdeterminetheireffectiveuse:1)Serverconfigurationimpactstriggermanagement;2)Complextriggersincreasesystemload;3)Largertablesslowtriggerperformance;4)Highconcurrencycancausetriggercontention;5)M

MySQL: Is it safe to store BLOB?MySQL: Is it safe to store BLOB?May 14, 2025 am 12:07 AM

Yes,it'ssafetostoreBLOBdatainMySQL,butconsiderthesefactors:1)StorageSpace:BLOBscanconsumesignificantspace,potentiallyincreasingcostsandslowingperformance.2)Performance:LargerrowsizesduetoBLOBsmayslowdownqueries.3)BackupandRecovery:Theseprocessescanbe

MySQL: Adding a user through a PHP web interfaceMySQL: Adding a user through a PHP web interfaceMay 14, 2025 am 12:04 AM

Adding MySQL users through the PHP web interface can use MySQLi extensions. The steps are as follows: 1. Connect to the MySQL database and use the MySQLi extension. 2. Create a user, use the CREATEUSER statement, and use the PASSWORD() function to encrypt the password. 3. Prevent SQL injection and use the mysqli_real_escape_string() function to process user input. 4. Assign permissions to new users and use the GRANT statement.

MySQL: BLOB and other no-sql storage, what are the differences?MySQL: BLOB and other no-sql storage, what are the differences?May 13, 2025 am 12:14 AM

MySQL'sBLOBissuitableforstoringbinarydatawithinarelationaldatabase,whileNoSQLoptionslikeMongoDB,Redis,andCassandraofferflexible,scalablesolutionsforunstructureddata.BLOBissimplerbutcanslowdownperformancewithlargedata;NoSQLprovidesbetterscalabilityand

MySQL Add User: Syntax, Options, and Security Best PracticesMySQL Add User: Syntax, Options, and Security Best PracticesMay 13, 2025 am 12:12 AM

ToaddauserinMySQL,use:CREATEUSER'username'@'host'IDENTIFIEDBY'password';Here'showtodoitsecurely:1)Choosethehostcarefullytocontrolaccess.2)SetresourcelimitswithoptionslikeMAX_QUERIES_PER_HOUR.3)Usestrong,uniquepasswords.4)EnforceSSL/TLSconnectionswith

MySQL: How to avoid String Data Types common mistakes?MySQL: How to avoid String Data Types common mistakes?May 13, 2025 am 12:09 AM

ToavoidcommonmistakeswithstringdatatypesinMySQL,understandstringtypenuances,choosetherighttype,andmanageencodingandcollationsettingseffectively.1)UseCHARforfixed-lengthstrings,VARCHARforvariable-length,andTEXT/BLOBforlargerdata.2)Setcorrectcharacters

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software