©2009IBMCorporationIBMChinaDevelopmentLab1业务流程编排器数据库的创建、维护及性能优化吴薇WPS二线技术支持2IBMChinaDevelopmentLab©2009IBMCorporation目录WPS使用的数据库列表及规范创建高性能的业务流程编排器数据库对业务流程编排器数据库维护和优化3IBMChinaDevelopmentLab©2009IBMCorporation目录WPS使用的数据库列表及规范创建高性能的业务流程编排器数据库对业务流程编排器数据库维护和优化IBMChinaDevelopmentLab©2009IBMCorporationWPS使用的数据库列表及规范--由用户创建SIBus在启动WPS之前,必须创建公共数据库。WPRCSDB(公共数据库)/存储库数据库选择器/业务规则在启动WPS之前,必须创建公共数据库。WPRCSDB(公共数据库)应用程序调度程序在启动WPS之前,必须创建公共数据库。WPRCSDB(公共数据库)恢复在启动WPS之前,必须创建公共数据库。WPRCSDB(公共数据库)调解在启动WPS之前,必须创建公共数据库。WPRCSDB(公共数据库)关系在启动WPS之前,不需要创建此数据库,但是,要监视事件,则必须创建此数据库。EVENT(用于事件的存储)公共事件基础结构可选择对业务流程编排器观察器使用单独的数据库,并将其缺省名称设置为OBSRVDB。BPEDB业务流程编排器观察器在启动WPS之前,不需要创建此数据库,但是,在调用任何业务流程编排器组件之前,必须创建此数据库。BPEDB业务流程编排器说明数据库(缺省名称)组件IBMChinaDevelopmentLab©2009IBMCorporation业务流程编排器数据库缺省情况下,业务流程编排器和事件收集器使用公共数据库。对于生产环境,建议使用专用数据库从而保证系统的性能。例如,将BPEDB用作业务流程编排器专用的数据库,而将OBSRVRDB用作事件收集器和观察器的数据库。在实际应用中,用户通常需要开发长时间运行的流程来满足他们复杂的业务需求。而对于长时间运行流程来说,流程实例及其活动实例的状态都保存在数据库中,因此,这些长时间运行流程的性能好坏将在很大程度上取决于业务流程编排器数据库(以下简称BPEDB)的性能。6IBMChinaDevelopmentLab©2009IBMCorporation目录WPS使用的数据库列表及规范创建高性能的业务流程编排器数据库对业务流程编排器数据库维护和优化IBMChinaDevelopmentLab©2009IBMCorporation创建高性能的业务流程编排器数据库缺省情况下,BPEDB的创建可以通过下面两种方式之一自动完成:9运行BPC安装向导配置业务流程编排器9使用bpeconfig.jacl脚本配置业务流程编排器。在生产环境中,为了保证良好的数据库操作性能,建议手动执行脚本创建BPEDB及相应的表空间、表。IBMChinaDevelopmentLab©2009IBMCorporation创建数据库在Windows®上,可以指定目标驱动器。例如:CREATEDATABASEBPEDBOND:USINGCODESETUTF-8TERRITORYen-us;在UNIX®和Linux®上,输入以下命令:其中/wasdbfs指定目录。CREATEDATABASEBPEDBON/wasdbfsUSINGCODESETUTF-8TERRITORYen-us;IBMChinaDevelopmentLab©2009IBMCorporation创建表空间–(I)创建数据库后,必须显式地创建表空间。用户在完成WPS的安装后,在ProcessChoreographer子目录中,业务流程编排器提供了用于创建表空间的示例脚本。--ScriptfiletocreatetablespacesforDB2UDB--Replaceoccurenceor@location@inthisfilewiththelocation--whereyouwantthetablespacecontainerstobestored,thenrun:--db2connecttoBPEDB--db2-tfcreateTablespaceDb2.ddlCREATETABLESPACETEMPLATEMANAGEDBYSYSTEMUSING('D:/BPE/TEMPLATE');CREATETABLESPACESTAFFQRYMANAGEDBYSYSTEMUSING('D:/BPE/STAFFQRY');CREATETABLESPACEAUDITLOGMANAGEDBYSYSTEMUSING('D:/BPE/AUDITLOG');CREATETABLESPACECOMPMANAGEDBYSYSTEMUSING('D:/BPE/COMP');CREATETABLESPACEINSTANCEMANAGEDBYSYSTEMUSING('D:/BPE/INSTANCE','D:/BPE/INSTANCE');CREATETABLESPACEWORKITEMMANAGEDBYSYSTEMUSING('D:/BPE/WORKITEM');CREATETABLESPACESCHEDTSMANAGEDBYSYSTEMUSING('D:/BPE/SCHEDTS');IBMChinaDevelopmentLab©2009IBMCorporation创建表空间–(II)包含工作项处理所需的表。工作项用于进行人员任务交互。根据业务流程中人员任务数的不同,对此表空间中的表的访问频率既可能很低,也可能非常高。由于还将生成工作项以支持长时间运行流程的管理工作,因此,即使未使用显式的人员任务,访问频率也不会为零。WORKITEM包含用于存储流程模板信息和任务模板信息的表。将在应用程序部署期间填充这些表。在运行时,对这些表的访问频率并不高。除了在部署期间插入新数据以外,不会更新任何数据。TEMPLATE包含用于临时存储从诸如轻量级目录访问协议(LDAP)等人员注册表获取的人员查询结果的表。当业务流程包含许多人员活动时,将频繁地访问此表空间中的表。STAFFQRY包含WebSphere调度组件使用的表。由于在调度程序中使用了高速缓存机制,因此,对调度程序表空间中的表的访问量通常较低。SCHEDTS包含流程实例和任务的表。此表空间的使用率始终较高,而与所运行的长时间运行流程类型无关。有可能的话,请将此表空间分布到多个磁盘驱动器上。INSTANCE包含业务流程编排器V5中业务流程的补偿表。根据可补偿流程和活动的百分比,此表空间中的表可能需要较高的磁盘带宽。如果在业务流程中未使用补偿功能,那么不会使用此表空间中的表。COMP包含流程和任务的审计跟踪表。根据所使用审计等级的不同,对此表空间中的表进行的访问量可能非常大。如果审计功能处于关闭状态,那么不会访问此表空间中的表。AUDITLOG说明表空间IBMChinaDevelopmentLab©2009IBMCorporation创建表WPS提供了示例脚本来创建表,类似地,用户可以定制并手动执行这些脚本来创建BPEDB中所需的表。对于DB2,请使用ProcessChoreographer的DB2子目录中的createSchema.ddl文件。--ScriptfiletocreateschemaforDB2UDB--ProcessthisscriptintheDB2commandlineprocessor------------------------------------------------------------------------Thefollowingvariableneedstobechangedforcustomizationand--beforerunningthisscript.--@SCHEMA@=Schemaname------------------------------------------------------------------------Example:--db2connecttoBPEDB--db2-tfcreateSchema.sql--Theschemaassumesexistingtablespacesthatshouldhavebeen--createdbeforeusingcreateTablespace.sqlscript.---------------------Createtables---------------------CREATETABLE@SCHEMA@.SCHEMA_VERSION(SCHEMA_VERSIONINTEGERNOTNULL,DATA_MIGRATIONSMALLINTNOTNULL,PRIMARYKEY(SCHEMA_VERSION))INTEMPLATE;CREATETABLE@SCHEMA@.PROCESS_TEMPLATE_B_T(...12IBMChinaDevelopmentLab©2009IBMCorporation目录WPS使用的数据库列表及规范创建高性能的业务流程编排器数据库对业务流程编排器数据库维护和优化IBMChinaDevelopmentLab©2009IBMCorporation将日志文件与数据文件分开记录DB2日志的速度是一个重要的DB2性能因素(依赖于数据更新的速率),推荐将数据库日志文件与数据存储在不同的磁盘驱动器上有助于提高性能。例如,如果在Windows®系统上使用DB2,那么可以输入以下命令将数据库BPEDB的日志文件位置更改为F:\db2logs目录:db2UPDATEDBCFGFORBPEDBUSINGNEWLOGPATHF:\db2logs为日志分配一个具有快速写入缓存的磁盘存储器,并将日志缓冲区大小增加到256个页面或更大,以改善DB2记录日志的性能。IBMChinaDevelopmentLab©2009IBMCorporation根据工作负载需求,调整数据库设置和数据库管理器设置MINCOMMIT控制“批量提交”,允许用户延迟将日志记录写到磁盘,直到已经执行了所规定的最小数量的提交。(经验:在BPEDB中,建议使用默认值1。)NUM_IO_CLEANERS指定一个数据库的异步页面清除器的数量。建议使用介于1与数据库所使用的物理存储器数目之间的值。对于大型缓冲池而言,最好使用较大的数目。(经验:在BPEDB中,可以将这个值设置为15。)NUM_IOSERVERS必须与用于存储数据库的物理磁盘数匹配。IO服务器数应该至少与磁盘数相同。IO服务器不会使用很多系统资源,因此,设置太大的值比设置太小的值好。LOCKLIST指示分配给锁定列表的内存量。(经验:在BPEDB中,可以将这个值设置为1000。)QUERY_HEAP_SZ指定可为查询堆分配的最大内存容量。如果有很大的LOB,则可能需要增大此参数的值。(经验:在BPEDB中,可以将这个值设置为100000。)IBMChinaDevelopmentLab©2009IBMCorporation使用DB2配置顾问程序优化数据库–(I)为DB2分配内存。对于服务器,仅向DB2分配不需要进行磁盘交换情况下的最大可用物理内存量。指定工作负载类型。对于工作负载,选择混合,即包括查询和事务。对于事务数,指定事务长度以及估计每分钟处理的事务数。选择多于10个以指示使用长事务。然后,在每分钟事务数字段中,选择估计每分钟处理的事务数。要确定此数目,请假定流程中每个活动各有一个事务。那么,每分钟执行的事务数如下:每分钟执行的事务数=每分钟完成的流程数*每个流程中的活动数数据库管理优先级选择事务性能更快(恢复较慢)调整并行连接数设置。对于连接数,指定可以对应用程序服务器建立的最大并行