您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

5种方法访问GlassFish资源

2026/1/9 3:12:35发布18次查看
方法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;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product