--portbase 34000指定当前新建的domian的portbase,--portbase 34000的意思就是该domain的各个端口以34000为基数增加,从日志中可以看到:
Using port 34048 for Admin.
Using port 34080 for HTTP Instance.
Using port 34076 for JMS.
Using port 34037 for IIOP.
Using port 34081 for HTTP_SSL.
Using port 34038 for IIOP_SSL.
Using port 34039 for IIOP_MUTUALAUTH.
Using port 34086 for JMX_ADMIN.
和前面默认建立的domain1的端口对照,可以看到基本是每个端口都有一个基数,然后加portbase就得到最终使用的端口好。
portbase=34000 default 基数
Admin 34048 4848 48
HTTP Instance 34080 8080 80
JMS 34076
IIOP 34037 3700 37
HTTP_SSL 34081 8181 81
IIOP_SSL 34038
IIOP_MUTUALAUTH 34039
JMX_ADMIN 34086 8686 86
使用--portbase比较方便记忆,推荐这样使用,避免逐个指定不同端口。为了方便记忆,domain的名字取名为domain_340以对应。
2.2)start domain
执行命令:
asadmin start-domain -e --passwordfile=password.properties domain_340
2.3) stop domian
执行命令:
asadmin stop-domain -e domain_340
2.4) delete domain
执行命令:
asadmin delete-domain -e domain_340
注意必须在domain处于stop的情况下才能delete。
为了方便,提供一个简单的ant脚本处理以上命令,直接通过exec来调用asadmin.bat:
ant.build
xml version="1.0" encoding="UTF-8" ?>
project name ="GfAsadminDemo" default ="listDomains" >
description > demo of how to use adadmin command description >
property file ="build.properties" />
target name ="listDomains" >
exec executable ="asadmin.bat" >
arg line ="list-domains -e" />
exec >
target >
target name ="createDomain" >
echo > begin to create domain ${domain.name} echo >
exec executable ="asadmin.bat" dir ="." failifexecutionfails ="true" >
arg line ="create-domain --user ${AS_ADMIN_USER} -e --passwordfile=password.properties --portbase ${domain.baseport} --profile developer ${domain.name}" />
exec >
echo > finish to create domain ${domain.name} echo >
target >
target name ="startDomain" >
echo > begin to start domain ${domain.name} echo >
exec executable ="asadmin.bat" dir ="." failifexecutionfails ="true" >
arg line ="start-domain -e --passwordfile=password.properties ${domain.name}" />
exec >
echo > finish to start domain ${domain.name} echo >
target >
target name ="stopDomain" >
echo > begin to stop domain ${domain.name} echo >
exec executable ="asadmin.bat" dir ="." failifexecutionfails ="true" >
arg line ="stop-domain -e ${domain.name}" />
exec >
echo > finish to stop domain ${domain.name} echo >
target >
target name ="deleteDomain" >
echo > begin to delete domain ${domain.name} echo >
exec executable ="asadmin.bat" dir ="." >
arg line ="delete-domain -e ${domain.name}" />
exec >
echo > finish to delete domain ${domain.name} echo >
target >
project >
build.properties
domain.name=domain_340
domain.baseport=34000
AS_ADMIN_USER=sigadmin
(更适当的方法是通过asant来直接操作,不过上面的ant脚本只是为了演示asadmin的使用。)
ps,解释一下为什么考虑从weblogic迁移道glassfish:
1. 经济原因
毕竟glassfish不要钱,而weblogic价格不菲。我们做的产品是面对国际市场的各国电信运行商,总不可能让他们从盗版吧。因此weblogic会带来成本问题。
2. 客户需求
这个其实也和经济原因有关,因为成本问题,因此有客户希望我们能将产品迁移到glassfish。而且最近有一个大客户明确要求使用glassfish,为了在未来有机会拿到他们的单,glassfish的使用就变得很现实了。
3. 技术原因
weblogic目前对新技术的支持可以说是很不积极的,呵呵,可能weblogic有它的考虑,我们不深入讨论。开源的免费的技术新潮的glassfish,尤其是即将发布的v3版本,很有吸引力。
glassfish对于开发人员也更加友好,没有weblogic的臃肿与庞大,尤其启动速度太有优势了
4) 个人喜好
这个就纯属个人喜欢,坦白说我对weblogic的上述表现非常厌恶,我个人就比较讨厌大而满的东西,weblogic和我的美学完全不相合,我学它用它只是为了工作。当然这个是很小的原因,不过似乎公司和我抱有类似想法的开发人员不少,因此还是可以形成一个不算太小的声音。
当然,最终公司是否会下定决心将我们那个巨无霸级别的产品迁移道glassfish上,还有很多很多的东西需要考虑和权衡,技术的,非技术的都有,目前只是处于可行性分析阶段。