Technical Blog Post
Abstract
揭秘IBM集成web应用服务器IAS
Body
如果您正在使用IBM i,并希望获得一个免费的、易于使用的、节省内存资源的web应用服务器,那么IBM 集成web应用服务器(IAS: Integrated Web Application Server)将是您正确的选择。 IBM IAS包含在IBM i V5R4、IBM i 6.1及IBM i 7.1当中,满足占用空间小、配置简单、结构安全可靠的承载Web应用的需求,对于在内存较小的机器上运行IBM i Web应用非常有吸引力。 本文将进一步详细地介绍IAS服务器的创建及管理、应用的部署及数据库的连接等知识。 图 1 IBM i WebAdmin IBM i WebAdmin GUI接口旨在提供IAS服务器的基本功能,而不是涵盖服务器的所有方面。对于需要使用IAS高级功能的用户,可以使用可调用的SPI或服务器脚本,例如,可以通过脚本/www/lwi/bin/lwistatus.sh来检查应用程序的状态,确定其是否正常运行。 IBM i WebAdmin GUI是IAS的唯一管理界面,lwistatus.sh只能用于显示LWI server的状态和版本。 部署Web应用 传统J2EE应用一般被打包为WAR(Web Application Archive)或EAR(Enterprise Archive)文件,而基于OSGi(Open Services Gateway initiative )结构的IAS服务器需要一种被称为WAB(Web Application Bundle)的包文件。WAB文件包含JAVA类和其他资源,它们一起为Web应用提供所需类。如图2所示,在IBM i WebAdmin GUI上,你可以选择.WAR或者.WAB文件进行安装,GUI可以把WAR文件自动转换为WAB文件。利用IBM RED(Rational Application Developer)工具可以很容易的产生WAR文件,如图3中所示。IAS SPI提供了相应的接口来构建WAB文件。 连接数据库 数据库在web应用中被广泛的使用,利用IBM i WebAdmin GUI工具,你可以很容易的创建一个数据库连接,创建数据库连接的向导界面如图4所示,作为配置数据库的起点,它可以帮助您迅速创建应用所需的数据库连接。以下的几个概念,对您理解GUI的数据库连接向导非常重要: · Connection ID:用于区分不同的连接,必须指定一个唯一的值,应用将使用该ID进行数据库的访问。当你需要使用多个数据库时设置该值,如果只有一个可使用默认值“DEFAULT”. · Connection type:定义数据库连接的类型。IAS服务器可以连接DB2或Derby两种类型数据库,其中DB2数据库可以在本地系统或远程IBM i系统上。 · Database location:指示该数据库连接的系统主机名。“*LOCAL”指创建数据库连接到本地系统,对于远程数据库需要给出远程系统的主机名。 · Schema name::指出数据库的Schema或Library名称。 · Connection user ID: 指出用于连接系统、访问数据库的用户配置文件名称。 · Password:Connection user ID指示的用户密码。密码长度不能超过128个字符。 · JDNI(Java Naming and Directory Interface) name: 为Java应用提供命名和目录功能。 注意:IAS服务器现有的一个局限是,JNDI name仅有唯一的命名空间,其值不可被更改,必须为jdbc/ProxyDS。对于大多数应用来说,JNID name可以区分不同的数据库,而IAS服务器通过指定不同的数据库连接ID来完成此功能。 图 4 创建数据库连接向导界面 当你完成向导步骤之后,可以通过点击如图5所示的“Manage Database Connections”链接来查看数据库连接的属性。 现在你已经成功的建立了一个数据库连接,接下来让我们看一下应用程序是如何与我们定义的数据库连接一起工作的。下面的Java代码片段是使用JNDI和connection ID获取指定连接,执行SQL语句并返回结果集。 InitialContext ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/ProxyDS"); //<connection_id>为已指定的数据库连接ID Connection dbConnect = ds.getConnection(<connection_id>, null); String sqlText = <some valid SQL query statement text>; PreparedStatement stmt = dbCon-nect.prepareStatement(sqlText); ResultSet rs = stmt.executeQuery(); 性能调优 为了获得更好的性能,你可以使用DB Connection Pool技术来重用连接,或者使用 Prepared Statement cache来重用preparations。IBM i WebAdmin GUI中定义的“Web Perfomance Advisor”功能中包含数据库连接的性能调优管理。查看它是如何工作的,您需要再次打开WebAdmin界面,单击导航面板左侧的“Web Perfomance Advisor”链接,选择相应的IAS服务器,然后点击“Manage Attributes”按钮。数据库连接标签是更新数据库属性值的起始位置,通过单击数据库连接ID,来处理相应的数据库连接属性,图6展示了管理数据库连接属性的页面,例如你可以通过点击“Advisor”按钮来获得推荐的最大连接池大小。 成功组合
创建及管理IBM IAS
创建和管理IBM IAS服务器主要是通过IBM i Web Administration (后文简称IBM i WebAdmin)GUI接口,可以通过http://hostname:2001/HTTPAdmin进行访问。从图1中可以看出,INTAPSVR是一个正在运行的IAS实例,其上部署了两个Web应用:Eclipse Help和iDrink_IAS。
UID
ibm11146058