版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目概 概 系统上线检 系统系统基本运行状 消息总 WPS消息总线结构介 WPS消息总线的日常WPS消息总线工 数据库基本运行状 WPS使用的数据库列表及规 业务流程编排器数据 业务流程编排器数据库的死 数据库中的流程实例和活动实 异常流程和数 JMS失 BPC失 BFMholdqueue失败基于控制 管 使用BusinessSpace进行系 Health Module 启动与停止服 启动服 停止服 系统备份及恢 系统备 系统恢 服务器与数据迁 服务器基本信息修改和迁 数据库的迁 服务器安全设置修 全局用 的修 数据库用 的修 EJB应用程序管 安 卸 更 BPEL应用程序管 BPEL应用安 BPEL应用卸 BPEL应用版本控 定期清除已完成的流 启用与更改安全配 启用全局安全配 更改全局安全配 一些典型问 数据库创建、和优 创建高性能的业务流程编排器数据 对业务流程编排器数据库和优 对业务流程编排器API查询进行优 系统出错处 系统恢 失 管 失 处 SCA失 失 查 数据库故障诊断及信息收 常见问题分 诊断信息收 应急处理流 内存溢出的应急处 服务器停止运行的应急处 CPU使用率100%的应急处 线程挂起的应急处 联系技术支持人 附 附 工具索 参考资 WebSphereProcessServer(以下简称为WPS)是一个业务流程整合和系统集成的中间件产品,在生产环境中承担信息交互、整合,或业务的功能,其自身运行的稳定性和日程尤为重要。此篇文章简要介绍WPS日常运行和失,对系统运行状态进行基本,及达到一定的作用。AppClusterMECluster和SupportingCluster,分布在多注:DB2有Schema的概念,可以用同一个数据源(同一个登陆用户名)分配不用的Schema给不同的消息引擎。有些数据库产品没有Schema的概念(例如Oracle),SchemaUserId进行区分。WPS公共数据库,包含以下组件的表、索引和CEI数据BPEDB使用一个独立的数据库。CEIDB、MEDBCommonDB合并在 Topology中的系统数据源和作用域如下JNDI Choreographerdatasource ChoreographerreportingfunctionsourceBusinessSpacedata CEIMEdataSCAApplicationBusMEdatasourceSCASystemBusMEdata系统环境中包括安装产品自带的应用程序,本文称之为系统应用程序(请与安装 下的SystemApps区分开来,SystemApps本文不做讨论)说BPCBPCBPCBusinessSpaceBusinessSpace的RESTServicesRESTRemoteArtifactEventSequencing管SCASIBus说失败管理应用程本文以WPS6.2版本的ND7结构为例,从以下三个方面进行阐述本文的预期读者为WPS WPSWPS版本和拓扑结构的配WPS的安装和运行要求,对于使用WPSWPS的WPS对所有的日志文件 如果在SystemOut.log中检索出关键Warning rollback,则明出现异常状警告信息,要进一步Warning。 Message进入管理界面,选择Serviceintegration>ServiceIntegrationBrowser,展开总如果队列中有存在,并且数量较大或者接近最大值(缺省是系统存在处理瓶颈或者出现异常导致如果队列中有存在,并且数量比较多对这个队列持续监 控,查看队列中的事QueuePointsJVM PerformanceViewer如果正在使用的堆栈内存大进入管理界面,选择小接近最大堆 Tuning>PerformanceViewer>CurrentActivity,点击选择栈设置,说明Java堆栈设置如果正在使用的堆栈内存大 小持续增长,说明存在内存 PerformanceViewer进入管理界面,选择 Tuning>PerformanceViewer>CurrentActivity,点击选择Reports>Thread PerformanceViewer进入管理界面,选择 Tuning>PerformanceViewer>CurrentActivity,点击选择Reports>应用程人工任务产生查看最近一段时间产查看产生的人序运行工任务数量是否为正常数值,如果有异常,要查看系发起的流程数查看最近一段时间发查看产生的流量程数量是否为正常数值,如果有异常,要查看系统是否数据库运行状db2diag.log如果错误信息存在,进一步况数据文件占用查询数据文件的磁盘如果当前磁盘剩余空间较小,要及时扩容或清除无用文件,防止数据文件无法增WPSWPS通过同步消息或异步消息的通信机制来完成服务集成,这种通信机制的实WPSSCA该总线上承载了所有SCASCA通过这些队列来支持SCASCA该总线支持WBIAdapters和其他SCACEI该总线支持向CEI服务器异步发送CEIBPC该总线支持BPC在WPS的控制面板上可以浏览这四条总线:服务集成->WPS在总线日常中,可以以下三种情况0该队列中的消息,否则会导致异常无法恢复。通过失败管理器失败新提交失败,或是删除失败。通过失败管理器失败新提交失败,或是删除失败。WPS消息总线工有三个消息总线的工具,一个是SIBus浏览器,一个是SIBus性能器,还有一个是SIBus消息处理器。SIBusSIBus浏览器可以用来SIBus的运行情况,比多少消息在队列里,以及消息的内容等等SIBus浏览器是用100%的Java开发的其图形界面基于Eclipse的标准控件工具(SWT)Java环境的平台之上。SIBus浏览器的可以是的,因此如果你的SIBus产品运行平台没有可视化的Java支持,也可以使用SIBus浏览器,在支持SWT的平台进行监控。SIBus浏览器可以用来监视WPS的SIBus,也可以监视WESB的SIBus。SIBus浏览器在IBMalphaworks提供,和使用都是免费的。地址 其所依赖的SWT图形库可以从 WPSSWT3.3.2Linux。WESB上以及其他的操作系统应该是类似的。. SWT库,并解压到一 ,比从. /tech/sibexplorerSIBus浏览器并解压 编辑 下 文件,假如你的 装转到 ,运行在IBM红皮书/ s/SG247665.html第9.3.1节,SIBus性能性能监视器用来监视SIBus的性能。SIBus性能器和SIBus浏览器类似,都是基于Java,图形库基于SWT。因此可以配置在一起使用。(PMI在管理控制台,找到需要打开性能体系的服务器体系(PMI)按如下步骤安装SIBus性能器从alphaworks 并解压到一 ,比如可以重用SIBus浏览器所使用的SWT库,假设装在了/usr/local/swt编辑env.sh这样可以使sibperf.shsibexplorer.sh共用一个env.shSIBus消息处理前面两个工具,SIBus浏览器可以用来发现功能方面的问题,SIBus性能器我们可以用SIBus列里消息堆积过多,我们就可以使用SIBus消息处理器来把这些消息移走。这个工具也是IBM提供的,地址 sib.desthandler.x.y.z.zipWPS所在的机器上解压缩。WPS安装任何应用。命令行工具的好处是还UnixcronUNIX上任务调度。Web工具和服务器上任务调度使用需要在WPS-sib.desthandler.taskejb.ear-EJB无论哪种使用方法,都需要写一个XML的配置文件,指明你要做的事情。在sib.desthandlerreadme.html11个例子,来阐述比较常见的1例子3:打印一个空间订阅的所有消息410个`红色’消息。5:重新提交例外目标队列里的消息6:使用SQL92选择器选一个消息,并将其移到另一个队列7:把消息写到文件810:不同分区队列间移动消息-其中,PROFILE_ROOTProfile所在,SERVER_HOST_NAME为CONFIG_FILEXML。配置文件详细的语法参见SIBusreadme.htmlWPSWPS中的一些特定组件都使用它们相应的数据库表(见下表)。可以在创建概WPS中的组件使用到的数据库表及缺省情况下相数据库(缺省名称在启动WPS之前,不需要创建业务流程编排器缺省名称设置为OBSRVDB。公共基础结在启动WPS此数据库,但是,要监视事在启动WPS在启动WPS在启动WPS应用程序调度程序在启动WPS选择器//库数据在启动WPS--需要数据库表的WebSphereProcessServer组件以及这些表所在的数据库的WPS系统需求中提供了包括版本在内的受支持数据库的详细信息。每个数据库dbType参数表示的,该参数的值是字符串。dbType参数用于文件命名和文件路径。下表列出了受支持数据库的名称及dbType值。此数据库类型不支持Deployment拓扑。这是用于独立Derby这是用于NetworkDeployment拓DB2DB2 OS/390DB2z/OS版V8DB2z/OSDB2UDBiSeries(本机此数据库类型不支持NetworkDeployment拓扑。这是用于独立 这是用于NetworkDeployment拓DB2通用运行时 SQLSQLServer(DataOracle9i安装向导无法对Oracle9i和Oracle10g创建此类型的新数据 数据库从而保证系统的性能。例如,将BPEDB用作业务流程编 的数据库,而将OBSRVRDB用作收集器和观察器的数据库。日DB2UDB提供了运行状况监视器和运行状况中心用于和评估数据库性能。死锁/锁定等待和超时**Oracle数据库的死锁/锁定等待和超时的操作,可以DB2的操作原理,由Oracle数据库管理员完成。DB2UDB通过锁来完成应用程序的并发性控制,而应用程序的并发性可以有效释放该锁定的事务,即发生锁定等待。DB2UDB提供了locktimeout配置暂挂的时间大于locktimeout值,则请求应用程序将接收到一个错误并将其事注:locktimeout-1针对死锁的情况,DB2UDB提供了死锁检测器监视关于等待锁定的程序的信息,并在dlchktime配置参数所指定的时间间隔苏醒。如果它发现死锁,那如,5分钟的唤醒时间间隔使死锁几乎存在5分钟,这对于短事务处理来说看在分区数据库环境中,dlchktime配置参数时间间隔仅在节点上适用。如果在分区数据库环境中检测到大量的死锁,增大dlchktime参数的值以解决锁在分区数据库中,每个数据库分区将锁定图发送到包含系统视图的数据3.死锁DB2UDB提供两种类型的器:快照器和器用于进行死锁。锁。但由于死锁的发生具有不可预见性,因此DB2UDB提供了(死锁)监在DB2UDB中存在两种和死锁有关的类型DEADLOCKSDEADLOCKSWITHDETAILS用来记录所有复杂的信息,包括应用程序、执行可以用CREATEEVENTMONITORSQL语句来创建一个死锁器,从其导出的日志文件中分析死锁发生的时间,级别,模式以及产生死锁的SQL在缺省情况下,所有数据库都有定义为DB2DETAILDEADLOCK的监视器,DB2DETAILDEADLOCK监视器将在数据库启动时自动启动。注:可以通过执行下面的SQL语句停止DB2DETAILDEADLOCK监视器DROPEVENTMONITOR要将有关锁定请求超时的信息记入db2diag.log,将数据库管理器配置参数diaglevel设置为4。记录的信息包括已锁定的对象、锁定方式以及挂起有锁定的应用程序。还可能会记录当前的动态SQL或XQuery语句或静态程序包名称。仅在diaglevel4记录动态SQL或XQuery语句。可从锁定等待信息系统监视元素或db.apps_waiting_locks运行状况指示器获取端发生死锁导致应用程序无法获取请求的数据。这时,DB2UDB只能依赖数据源端的死锁处理机制。如果死锁发生在多个数据源之间,DB2UDB就依赖数据最佳实践DB2Version8,导致死锁的一个常见原因是锁列表数据库配置参数的大小问题。默认情况下DB29使用了STMM,它会调整锁列表大小以避免可能由通过锁升级的发(通过2状态器、db2diag.log、s浏览器或其他性能器,或者利用2ST),确保锁列表和maxlok配置参数足够大。锁列表大小不足将会导致2尝试将大量行锁“升级”到单个表级别的锁。如果升级失败,就会导致死锁;如果升级成功,又会极大地影响到并发性。参考文档监视器样本输出(DB2V9/infocenter/db2luw/v9/in 如何在DB2UDB中死锁(开发者园地 PCExplorrbSphreProsSrvr问业务流程编排器数据库,获取关于流程实例以及活动实例的信息并采取进一步行动。selectcount(*)fromprocess_instance_b_twith注:这里使用了“withURselect语句与其他正在运selectcount(*)fromprocess_instance_b_twherestate=2withDELETED=0,READY=1,RUNNING=2,FINISHED=3,COMPENSATING=4, 类似地,可以通过执行下面令返回活动实例相关的信息selectcount(*)fromactivity_instance_b_twith对应的更详细令selectcount(*)fromactivity_instance_b_twherestate=5withINACTIVE=1,READY=2,RUNNING=3,SKIPPED=4,FINISHED=5,FAILED=6,EXPIRED=12,STOPPED=13,如果希望得到有关实例的更进一步的信息,例如当前哪个实例包含最多的活动,可以执行下面这条语句:PI.PIID,PT.NAME,COUNT(AI.AIID)ASPROCESS_INSTANCE_B_TASPI,PROCESS_TEMTE_B_TASPTPI.PTID=PT.PTIDANDAI.PIID=PI.PIIDGROUPORDERBYNUMBER_OF_ACTIVITIESDESCFETCHFIRST20ROWSONLYWITHPI.PIID是查询process_instance_b_t表得到的流程实例的ID,通常,它是用十六进制表示的。在查询中包含了流程模板的名称(PT.NAME),目的是得到一个更直观的输出结果。由于目的是获得活动有关的信息,因此查询中也包括了activity_instance_b_tGROUPBY子句对查询进行分组。 6 6E841DDEF13EFDEB53045C3DD9'6从上面我们可以看出,流程实例终止后(6terminted)并没有从数据库中自动清除,因此,我们可能需要执行下面这个来删除已完成的流程实例以改善数据库性能:关于这个的信息请参阅WPS信息中心相关内容在如今的企业应用中,业务越来越复杂,各个业务之间联系也越来越紧密。在这种情况下,当某个业务的应用程序有问题,或者某些资源(例如数据库连接不可用时,往往会导致业务流程,业务调用不能正常执行。快速,准确的定位错误源,并提供适当的人工恢复是非常重要的。WPS提供了对于SCA,的业务流程,JMSbinding失败,以及被挂起的业务流程提供了SCA对于SCA,可能引起处理出错的原因包括(但不限于):SCA件,WPS失败管理机制会消息及上下文环境。用户可以在WPSV61的SessionJMSJMSbindingfunctionselectorcompoentJMSimportexport,这种情形下,会产生JMS类型。所以当有与JMSbinding有关的调用出现错误的时候,用户应该尝试去查看失败,看看是否有JMSBPC或者业务流程出于"running”状态,但是相关的acitivity处于停止状态,那么这 BFMholdqueue在某种情况下,bpc的 message会最终被放到hold里,这种情况往往是因为调用过程一些transaction强制回滚,导致业务流程无 这类放到holdqueue里边的消息,将它当作一个 件,还可以修改业务数据后从新提交。下面就以sca为例,讲述如何用 基于控制台管WPSRuntime的控制台提供了对失败管理的界面,可以提供查询,删除,重理做介绍。使用失败管理器的前提是已经在WPS配置了SCA,并且是具有打开FailedEventManager管理界面,在控制台,点击左侧IntegrationApplication->FailedEventManager,右侧就会显示FailedEventManager根据各种条件查询失败来快速查询失败,也提供了各种查询的组合。点击右侧Advancedsearch,就可看到以基于下图中的各种查询条件进行查询。失败管理的功能列表,在失败列表的上方,提供了对失败的提交,删除等操作,可以选择一组失败进行批处理操作查看单条失败的详细信息点击单条失败,可以查看这条失败的详细信息,包括sessionID,查看失败的业务数据:在失败详细信息里,点击EditBusiness修改失败的业务数据后重新提交点击Editbusininessdata,就可以查看这条失败相关的业务数据重新提交并打开CEITrace(只对sca从失败列表中,选择一个失败,然后点击Resubmitwithtrace,当修改完‘Tracecontrol’后,点击ok,这样一条失败就被重新提交,同时会产CEIEvent从而方便WPS。图BusinessSpaceBusinessSpaceBusinessSpaceWPS产品进行交互获取信息。WPS6.2Widget,分别对不同层次的系统进行。HealthHealthMonitorHealthMonitor,用户可以快速的浏数据库、系统应用以及失败等。创建HealthMonitor首先登录进入BusinessSpaceManager,创建一个新的Business为新创建的BusinessSpaceHealthMonitor使用HealthHealthMonitor一共包括四项内容,组织成tab1)Topology在Topologytab中,将列出包括部署环境、集群、单机服务器、节点等系统拓扑的状态。在示例中,可以看出拓扑环境中只有一个单机服务器。SystemApplicationsSystemapplicationsBusinessProcessChoreographer,CommonEventInfrastructure(CEI)andServiceComponentArchitecture(SCA)applicationsSystemdatasourcesSystemmessagingenginesApplicationsApplicationsFailedeventcount列出了所有失败的数量以及相关的模块QueuesQueuedepth状符Widget定可以通过定制使HealthMonitorWidgetRefresheverynumberOfSecondssecondsWideget刷新信息的时0代表不刷新。在Rowsperpage在umqueryresult域设置从服务器传输到客户端的查询结果的最大值。Module使用ModuleHealth来对当前用户创建的模块进行和诊断,提供的信息包括模块拓扑、系统组件、系统消息引擎、队列、数据源和失败等。创建ModuleHealthModuleHealth需要与ModuleBrowser协同使用,用户在ModuleBrowser选中关心的模块后,ModuleHealth将显示该模块的相关信息。因此,在添加完ModuleHealthWidget后,还需要添加ModuleBrowserWidget。其他步骤都与HealthMonitorWidget章。使用ModuleModuleHealthwidget除了显示关于模块的所有信息,还加入了一些相关的系统1)TopologytabTopologytabSystemComponentsSystemComponentstabBusinessProcessChoreographer,CommonEventInfrastructure(CEI)andServiceComponentArchitecture(SCA)applicationsSystemMessagingEngineSystemMessagingEnginetabQueuesQueuetabDataSourcesDataSourcestabFailedEventsFailedEventstab列出了所有和模块相关的数量ModuleHealthWideget3本文以WPS6.2版本的ND7结构为例,从以下三个方面进行阐述启动服ND7启动执行WPSHOME/profiles/Dmgr01/bin/startManager.shDGMR启动Node执行WPSHOME/profiles/Custom01/bin/startNode.shNodeAgent中选取系统管理>NodeAgent,查看状态一栏,绿色箭头代表已经成功启动。启动部署环选取服务器>部署环境,选择需要启动的部署环境,选取服务器>这里需要注意的是集群启动的顺序,AppCluster>这里同样需要注意服务器启动的顺序,AppServer需要最后启动。启动Web服务Web>Web停止服停止Web服务首先需要停止Web服务器,以防止服务停止后,用户依然通过Web服务器>Web停止部署环选取服务器>选取服务器>这里需要注意的是停止集群的顺序,AppCluster>这里同样需要注意停止服务器的顺序,AppServer需要最先被停止。停止Node执行WPSHOME/profiles/Custom01/bin/stopNode.sh在停止的过程中,需要输入管理员的用户名和NodeAgentNodeAgent。选取系统管理>NodeAgent停止执行WPSHOME/profiles/Dmgr01/bin/stopManager.shDGMR在停止的过程中,需要输入管理员的用户名和DMGRWebSphereProcessServer的系统备份既要考虑运行时文件系统的备份,也要考虑数据库的备份。两者,在备份文件的同时,必须备份相联机备WebSphereProcessServer不支持运行时的联机实时备份和恢复。数据库的脱机备,当前的事务处理完毕,之后再停掉各个应用服务器节点服务器和管理服务,以下面顺序关闭所有集群和服务从Web管理控制台或用关闭应用集群(Application从Web管理控制台或 stopCluster关闭消息集(Messaging从Web管理控制台或 关闭支持集群(Support从Web管理控制台或 关闭节点(Node用stopManager关闭管理控制台节点(Dmgr备份运行时文件系在Windows平台可以用zip工具将WPS的整个安 和(如果Profile建在安 以外 )打包备在Unix/Linux平台可以用“tar–cvf<directoryname>”将WPS的安装目录和Profile (如果Profile建在安装 备份用到的数据DB2db2backup<database把将要被恢复的运行时系统下的进程关(如果有运行进程的话参看恢复数据库备份,在恢复之前建议先将现有的数据库Drop掉,在DB2下以用下面令db2dropdb<databasename>db2restoredb<databasename>恢复运行时文件系统。在恢复运行时文件系统备份之前,先将要被恢复的行时文件系统删除,通过运行删除命令即可。之后将对应的运行时文件ProfileWPS安装以外的,注意需要同时恢复Profile的备份。替换自定义节在正常运行使用中WPS的服务器不能修改IPND7ND7的拓扑环境如下图所示:NodeAgentDMA上面,2CustomNodeBC上面。根据实际业务需求,使用机器DC,具体步骤如下:CA5分钟以CDMWPS/WESBFederatethisnodelater,或者使用命令行方式创建概Manageprofile.sh-create-temtePath/opt/WPS62/profileTemtes/managed.wbiserver-profileNameCustom01-dbTypeDB2_UniversalManageprofile.sh-create-temtePath/opt/WPS62/profileTemtes/managed.wbiserver-profileNameCustom01-dbTypeDB2_Universal-hostName false-cellNameaix37Node01Cell-nodeNameaix37Node01-通过命令行方式或者通过adminconsole的两种不同形式将机器CCustomNode概要添加到DM添加成功后,NodeAgent添加新的CustomNodepartialstart,选择启动,使整个集群环境中调整应用集群成员的运行权重,让被替换的服务器被机会降低到等待一段时间之后,停止这个节点上面所有的在停止serverserver还在继续运行之后,将节点从整个环境中更改服务器的IP地DMCustomNodehostname。如果使用IP地址作为hostname,不能使用如下方式进行修改。停止所有集群,NodeAgent和修改IPhosts文件,保证其他主机可以对修改后的主机可以正常访更改服务器的主<endPointxmi:id="EndPoint_1235122309141" "修改<endPointxmi:id="EndPoint_1235122309141" "wsadmin如果只是变更CustomNode所在机器的主机名,wsadmin配置文件不需要进行修PROFILE_HOME/properties/将文件中的com.ibm.ws.scripting.host变量的值替换为更换后的主机IP更改其他机器上面对应节点下的serverindex.xml文件。如果更改的清空缓存PROFILE_NAME/config/temp和数据库的备份和建议数据库备份和恢复在停止整个WPS环境之后执行,如果在集群或者DeploymentManager候对系统的环境产生影响请在停止所有集群,DeploymentManager和各个NodeEJB安注:可以从文件系统中指定安装包,前提是文件必须已经上传到应用服务卸在应用程序列表中选取待删除的应用,点击“卸载”,遵循向导完成卸载过程,并保存到主配置中。更J2EE应用程序的逻辑,需要更新应用程序时,参考以下三种方法来(三)EJB模块,选取这个模这里需要指定归档文件(而不是完整的应用程序包)InterOperation.jar的(jar,配置文件等),如下图列出的文BPEL本章节主要描述如何安装,卸载BPEL应用,尤其是在卸载长流程的应用时,BPEL使用WID导出EAR注意事项:在创建BPEL的Module后,会自动产生相应的App,以及Web,EJB应用;如果在这些工程中存在额外的配置工作:如在EJBJNDI资源等,在每次clean动作之后,这些配置都会丢失.所以建议,在clean所有的project之后,再手工增加额外的配置,Export成EAR包从WPSConsole上安装EAR包同普通的EAR包的安装过程;BPEL通过BPCExplorer以BPC管理员登陆BPC如果存在Standalone的Humantask节点,则首先中止,并删task选择所有Taskinstance,单击选择所有Taskinstance,单击删除所有的流程实选择所有Processinstance,单击选择所有Processinstance,单击通过来删除流程实cdinstall_root\bin\wsadmin–langjython–f[([-nodenodeName]-serverserverName)|(-clusterclusterName)](-all|-finished|-terminated|-failed)[-temteNameteteName[-validFromtimestamp]][-startedByuserID][-profileNameprofileName]进入应用界面,点击Manage选中EJB选中Business选中流程模板名,单击同样的,停止Humantask模BPEL在很多基本流程的业务场景中,经常会出现已经投产的流程需要大量的修改,其原因,一方面是由于开发过程中需求不是很明确;另一方面,的是由于业注:如果需要已经有流程实例,按新的流程模板流转,只能在设计流程时,合理的分解成多个子流程,通过控制子流程的版本,达到影响已经流程实例的目的,以及将可变的因素,抽取成ule的形式,由uleMngr来管理,而无需改变流程本身.由于这里涉及到的流程开发阶段设计流程的问题,所以这部分内容不在这重构原有重新命名ModuleName;(App注意UTC时间,需要换算成Local时间导出EAR,安装,部署WebSphereProcessServer在v6.2中提供的一项新功能。通过该功能–》应用服务器-》server1-》然运行该清除服务的频率。该数据的格式是CRON日历格式。具体如下: 0023**?23点运行该服要每小时运行一次清除作业,请使用时间表00***该服务每次运行的最大时间。如果超出该时间但还没有运行结束,则系统间并用括号括起来,例如,myTaskTem(是5分钟,则表示所有OrderProcess模板的实例在完成后5Peoplequeryrefresh Default001**?(everynightatone全局用户的修HTTPNodeAgentDeploymentManager处于通过安全管理控制向导修改用户名和,然后保存同NodeAgentDeploymentHTTP用户名和修改结数据库用户的修HTTPNodeAgentDeploymentManager处于更改数据库的用户名和修改数据源关联的数据库的用户名和保持之后测试数据库的是否正常,然后启动集群全局安全在系统安装的时候就可以启用,也可以安装后再进行修改。在ND环NodeAgent。NDDeploymentManagerCustom概要文件(Profile)以后启用,本节假定ND环境中没有任何Server/Cluster,即系统应用程序例如BPC本例由未启用安全更改为使用LDAPNDDeploymentManagerNodeAgentsServers/Clusters(一)登陆管理控制台,选取安全性”>”安全管理、应用程序和基础结构,点击选中“使用Java2安全性来限制应用程序本地资源”,进入下一步选择“独立LDAP表”,点击Next按下图所示配置userrepository,根据具体的LDAP(二)DeploymentManager过程中没有设定认证别名,需要在启用全局安全后修改一下。在管理控制台中进入Security>BusinessIntegrationSecurity,认证别名SCA_Auth_Alias的默认用户名是SCA。将用户名和修改成LDAP中的已存在用户,保存修改:启用安全后一定要保证更改同步到所有的节点。若节点的状态显示为未同步,请选 点,点击同步按钮进行手动同步。Systemadministration>ConsolePreferences,选中“SynchronizechangeswithNodes”选项,保存修改。停止Servers/Clusters建议在启动安全时先停止NodeAgentsstopNode.bat,DeploymentManagerstopManager.bat,stopManager.sh)。DeploymentNodeAgentsstartNode.bat,启动Servers/ClustersstartManager.batstartManager.sh)在某些情况下需要更改已有的全局安全配置,例如在建立DeploymentManagerProfile过程中就打开了安全,即指定了联合库方式。在创建了ND拓扑结构以后,再更改为LDAP表方式。更改系统应用程序的用户/ND1、2、4更改BPEContainer的映射用在企业应用程序中选取BPEContainerBPESystemAdministratorBPESystemMonitor角色映射新的用户。选取这两搜索的用户,添加新的用户或组,并保存设置更改BPEContainerRunAS角在BPEContainer应用程序配置页选取“RunAs角色”选择角色JMSAPIUser和CleanupUser,填写新的用户名和,应用到这两个同步骤对TaskContainer设置用户/组映射和RunAs一个典型问题:启用安全配置未同步到所有节点就重启D环境,ent将ploymntngr。ND环境。数据库创建、和优的创建,以及调优等几个方面的最佳实践缺省情况下,BPEDB的创建可以通过运行BPC安装向导或者运行createDatabaseDb2.ddl完成。在这两种情况下,数据库、表空间、表以及视BPEDB(目标是将输入和输出操作分布到尽可能多可供DB2使用的磁盘驱动器上。具体步骤如下:Windows上,可以指定目标驱动器。以下命令在目标驱动器上与服务器上缺DB2D:上创建数据库,并且本地缺省实例是DB2,那么数据库数据将在D:\DB2中。因此,要在D:中为业务流程编排器创建DB2数据库,请输入以下命令:CREATEDATABASEBPEDBOND:USINGCODESETUTF-8TERRITORYUNIX®和Linux® TERRITORYen-us;其中/wasdbfs指 创建创建数据库后,必须显式地创建表空间。用户在完成WPS的安装后,在
。 通常用户可以。定制这些以满足特定的需求在缺省情况 然后在期望的磁盘上创建表空间。例如,以下使用WebSphereApplicationServer安装版本的ProcessChoreographer子中的createTablespaceDb2.ddl文件。此将使用Windows系统上的单一高性能磁盘驱动器来创建表空间--ScriptfiletocreatetablespacesforDB2--Receoccurenceor@location@inthisfilewiththe--whereyouwantthetablespacecontainerstobestored,then--db2connectto--db2-tf USING('D:/BPE/TEMTE'); USING('D:/BPE/STAFFQRY'); USING('D:/BPE/AUDITLOG');USING(P' USING('D:/BPE/WORKITEM'); USING('D:/BPE/SCHEDTS'DB2ProcessChoreographercreateSchemaDb2.ddl文件。对业务流程编排器数据库和优在这一节中对业务流程编排器数据库的日常和优化给出一般性的建**针对Oracle数据库的优化操作,可以仿照DB2的操作原理,由Oracle数据将日志文件与数据文件分DB2DB2性能因素(依赖于数据更新的速率 例如,如果在Windows®系统上使用DB2,那么可以输入以下命令将数据库BPEDB的日志文件位置更改为F:\db2logs db2UPDATEDBCFGFORBPEDBUSINGNEWLOGPATH冲区大小增加到256个页面或更大,以改善DB2记录日志的性能。根据工作负载需求,调整数据库设置和数据库管理器设1。DB2与系统中磁盘驱动器数目的值(NUM_IOSERVERS参数。对于大型必须与用于数据库的物理磁盘数匹配IO服务器数应该至少与磁盘数相同。IO服务器不会使用很多系统资源,因此,设置太大的值比设置太小的值好。1000154096使用配置顾问程序优化数据**针对Oracle数据库的优化操作,可以仿照DB2的操作原理,由Oracle数据DB2DB2DB2DB2选择多于10个以指示使用长事务。每分钟执行的事务数=每分钟完成的流程数*WebSphereApplicationServerJava数据库连接(JDBC)数确定。JDBCWebSphereApplicationServerJDBC连pJDBCp*1.1个数据库连接。调整应用程序服务器描述了如何估算p的实际值。DB2安装在不同的服务器上,那么根据先前对本地连对于级别,选择读稳定性。此级别是业务流程编排器所必需的DB2序,那么请将AVG_APPLS设置为50。10此参数指定应用程序等待锁定的时间。缺省值为-1,这表示应用程序将等待到获取锁定或者发生死锁为止。此参数的值应该始终大于DLCHKTIME参数值,30秒。如果负载测试表明事务时间将超过30DB2根据缓冲池的用途和指定其大**针对Oracle数据库缓冲池的优化操作,可以仿照DB2的操作原理,由数据库管理员完此值应该接近100%,但任何高于90%的值都可接受。请增大缓冲池的SIZE在DB2版本9中,请使用BP_HITRATIO管理视图来检索信息。有关此视图的信息,请参阅DB2V9信息中心。DB2配置顾问程序能够提供建议的缓冲池大小值,在缺省情况下,业务流程编IBMDEFAULTBP缺省缓冲池。您可以使用以下命令来设置此命令将显示缓冲池及其大小(以页数计)DB2selectBPNAME,NPAGES,PAGESIZEfrom自调优内存管理DB29开始,DB2关于STMM的信息,请参阅DB2V9信息中心相关内容利用数据库的建议工具生成DB2提供的一些工具,如设计顾问程序提供的建议来建立收集业务流程编排器执行查询时的SQL在管理控制台上启用如下:trace.logSQL[6/12/098:27:40:089 eB.java:588)SELECTPIID,NAME,ENDPOINT_REFERENCE, BPEDB_USR.PARTNER_LINK_INSTANCE_B_TWHERE(PIID=HEXTORAW(?))AND(NAME=?)DB2的(statement)快照工具也可以获取执行查询的SQL还可以进一步将收集的所有SQL语句放在一个名为“queries.sql”的文件中,注意,每个SQL语句需要用“回车”和分号隔开,示例如下:SELECT*FROMxxxWITHSELECTTKIIDFROMTASKxxxWITH然后对queries.sqlDB2设计顾问程序,得到建议的信息。具体方法在DB2令行,输入如下命令db2advis-d<dbname>-iqueries.sql>们再进一步去删除不推荐使用的索引,并新建索引。经验表明,DB2设计顾问DB2专家的帮助来进一步分析每个SQL语句的执行情况DB2数据库的统计信息以优化执行计划。DB2设计顾问程序的详细信息,请参阅DB2V9信息中心相关内容。SQLBPEDB中数据记录变化的信息。举例来说下面这个SQL语句的执行结果将返回过去10秒钟内状态发生变化的实100条记录。ai.last_state_changeasAI_last_state_change,substr(,1,30)asAI_temtename,caseai.statewhen0then'null(0)'when1then'inactive(1)'when2then'ready(2)'when3then'running(3)'when4then'skipped(4)'when5then'finished(5)'when6then'failed(6)'when7then'terminated(7)'when8then'claimed(8)'when9then'terminating(9)'when10then'failing(10)'when11then'waiting(11)'when12then'expired(12)'when13then'stopped(13)'when14then'processing_undo'endasAI_state,substr(,1,30)asPI_temtename,casepi.statewhen0then'deleted(0)'when1then'ready(1)'when2then'running(2)'when3thenwhen4then'compensating(4)'when5then'failed(5)'when6then'terminated(6)'when7then'compensated(7)'when8then'terminating(8)'when9then'failing(9)'when10then'indoubt(10)'when11then'suspended(11)'when12then'compensation_fail'endasPI_state,ai.piidasProcess_Instance_IDactivity_instance_b_tai,activity_temte_b_tatp,process_instance_b_tpi,process_temte_b_tptatp.atid=ai.atidandai.piid=pi.piidandpi.ptid=pt.ptidandai.last_state_change>((selectmax(last_state_change)fromactivity_instance_b_t)-10seconds)orderbyai.last_state_changedescfetchfirst100rowsonlywithur;AI_LAST_STATE_CHANGEAI_TEMTENAME 2009-04-03-45000Receive_waitforeverwaiting(11)tptmainrunning(2) 2009-04-03-40000Receive_waitforeverwaiting(11)tptmainrunning(2) 2009-04-03-17000Callsubfinished(5) tptmainrunning(2) 2009-04-03-17000Callsubfinished(5) tptmainrunning(2) 2009-04-03-07000Receive_waitforeverwaiting(11)tptmainrunning(2) 2009-04-03-77000Callsubfinished(5) tptmainrunning(2) 2009-04-03-61000Receive_waitforeverwaiting(11)tptmainrunning(2) 2009-04-03-51000- 2009-04-03-51000Reply 2009-04-03-41000Snippet2 2009-04-03-39000- 2009-04-03-39000Reply 2009-04-03-32000Snippet2 2009-04-03-00000Callsubfinished(5) tptmainrunning(2) AI_TEMTENAME活动模板的名称。 PI_TEMTENAME活动所属流程实例的模板的名称PROCESS_INSTANCE_ID流程实例的ID通常,SQL语句执行的性能将依赖于相关表的大小。大部分的操作都是在ACTIVITY_INSTANCE_B_T这个表的LAST_STATE_CHANGE列上执行的,而SQL语句执行时间大大超出了正常范围,ACTIVITY_INSTANCE_B_T上发生了表扫描,这时,我们可能需要是索引扫描,从而大大地减少了SQL语句的执行时间。这里需要的是,通常对某个SQL语句进行分析优化只能改善查询的性能,定期清除流程实QueryResultSetresult"PROCESS_INSTANCE.STATE=(String)null,Integer)nullTimeZone)null);while(result.next(){PIIDpiid=(PIID)result.getOID(1);}更新数据库的统计信RUNSTATSRUNSTATS更新的统计信STS(流2000STS库的统计信息产生严重的影响。您以bpeuser用户使用password登录并且将连接到业务流程编排器数据库BPEDB。DB2命令将生成一个Windows命令文件,此文件将更新BPEDB数据库中相关表空间中所有表的统计信息。对于TEMTE表空间中db2-x"select'db2runstatsontable'concatrtrim(tabschema)concat'.'concatconcat'withdistributionanddetailedindexesall'fromsyscat.tables TBSPACEIDIN(selectTBSPACEIDfromsysibm.systablespaces 'AUDITLOG','SCHEDTS'))">echodb2connectreset>>db2runstatsontableBPEUSER.ACTIVITY_INSTANCE_B_Twithdistributionanddetailedindexesalldb2runstatsontableBPEUSER.AUDIT_LOG_Twithdistributionanddetailedindexesalldb2connect如果用户想对此命令文件进行扩展,以便在调用RUNSTATS命令前运行REORG命令。REORG命令用来完成重组以减少表所需的空间量并提高数据访BPEDBREORG操作。在生产REORG关于REORG命令使用方法的信息,请参阅DB2V9信息中心相关内容数据库备WebSphereProcessServerWebProcessServer。在WebSphereProcessServer停止后15分钟,验证数据库没有任是从WebSphereProcessServer以及WebSphereApplicationServer,停止后中的backupConfigWebSphereApplicationServer安装ServerbackupConfigWebSphereProcessServer安装进行备备份BPEDB最佳实践不要对运行中的业务流程编排器数据(或在备份中执“db2quiescedbimmediateDB2连接。这会造成正在运transaction对业务流程编排器APIBPCAPI在生产系统上,通常需要一个BPCAPI查询的执行时间以确保其满足整体BPCAPI查询会占用过多的数据库资源,容BPCAPI查询优化给出一些通分析trace.log文件中的BPCAPI在启用com.ibm.bpe.*=all之后,在生成的trace.log中,类似地,会有如下记 QUERY_PROPERTY.PIIDIN(ID('_PI: QUERY_PROPERTY.NAMEASC> 30 <通过上面的信息,我们可以大概估算出执行一个查询所需的时间。通常,Tom.setDataSource(Tom.java:297)ENTRY可以视为查询开始时间;对应地,pletion(Tom.java:1298)RETURN即为查询结束时间。在上面的例子中,它们分别是[6/12/098:28:29:299CEST]和[6/12/098:28:29:688CEST](JDBC占用的时间,但其通常可以被忽略。对于那些执行时间大DB2的statement快照关于BPCAPI查询的细APIpreparedstatements,在缺省情况下,DB2为preparedstatements使用已经准备好的执行计划。但这个对BPEDB中所有的表执行命令"runstatsontable<schema>.<table>withdistributionanddetailedindexesall"实现。需要注意的是,在进行这些操作之前,请确保BPEDBBPEDB执行runstats命连接db2connecttoBPEDBb.为runstats生成db2-x"select'runstatsontable'concatrtrim(tabschema)concat'.'concattabnameconcat'withdistributionanddetailedindexesall'fromsyscat.tableswheretype='T'ANDtabnamenotin('SAVED_ENGINE_MESSAGE_B_T')ANDTBSPACEID(selectTBSPACEIDfromsysibm.systablespaceswhereTBSPACEIN('INSTANCE','WORKITEM','STAFFQUERY','AUDITLOG','SCHEDTS','BPETS8K'))">>注:这里的select语句中,"IN('INSTANCE',...,'BPETS8K')"包含自动创建c.执行生成的SQLdb2-f在BPEDB中创建程序包"NULLIDR1"a.连接BPEDBdb2connecttoBPEDB注:必须位于这些文件所在的中,才能在BPEDBdb2binddb2clipk.bndcollection定制BPEDBWebSphereProcessServer到BPEDB数据源的定制属性页面,将属性“currentPackageSet"的值设为WebSphereProcessServer在WPS服务器的运行过程中,如果出现突发,导致服务器的某些功能发生异常,则我们在排除了异常之后,系统应该能够从上次发生异常的点开始继续运行.这里所说的突发是指WPS服务器本身的突发,包括WPS所用到的数据库异常终止,WPS服务器本身异常终止,WPS集群成员异常终止等.下面将一一详WPSWPS服务器如果不是正常停止,而是异常终止,比如进程被强行终止,或机器系统恢复过程中接受新的请求,可以采用recoverystartServer.bat(sh)-对于应用程序而言,WPS服务器的异常终止,即应用程序运行过程中出现的异常终止.如果在流程设计中没有考虑或完全处理这类问题,WPS系统可以帮助应用程序进行管理。如在长流程执行过程中,因WPS服务器异常终止导致BPEL应用程序调用节点出错。流程没有设计特别的FaultHandler或补偿。出错后调WPS服务器重新启动后从这个节点开始继续整个WPSWPSCommon在WPS服务器运行过程中WPSCommonDB异常终止,导致应用程序运行止)和相应的解决方法。解决的方法通常是重新启动WPSCommonDB,重WPSBPE在WPS服务器运行过程中WPSBPEDB异常终止,导致BPEL应用程序运SystemOut.log将给出问题的原因(WPSBPEDB异常终止)和相应的解决方法。解决的方法通常是重新启动WPSBPEDB,重新运WPSME在WPS服务器运行过程中WPSMEDB服务器的SystemOut.log将给出问题的原因(WPSMEDB异常终止)和相应的解决方法解决的方法通常是重新启动WPSMEDB,重新运行应用程序,WPSRelationship在WPS服务器运行过程中WPSRelationshipDB异常终止,导致使用RelationshipSystemOut.log将给出问题的原重新启动WPSRelationshipDB,重新运行应用程序,此时应用程序将恢复正WPSEVENT在WPS服务器运行过程中WPSEVENTDBEVENTDB的应用程序运行异常,服务器的SystemOut.log将给出问题的原因(WPSEVENTDB,重新运行应用程序,此时应用程序将恢复正常运行。WPS在WPS服务器的集群运行环境中,如果一个正在处理请求的集群成员突然异常终止,WPS将自动切换到另一个启动着的集群成员,继续完成未处理完的请求和后续请求。即WPS集群的FailOver功能。WPS的集群种类有:ME集群,CEI集群,BPC集群和用户应用程序集群。4.1.1WPS集群的FailME在WPS服务器的集群运行环境中,ME集群的一个正在处理请求的成员异ME集群成员的SystemOut.log里可以看到,BPCCEISCASYSTEMSCAAPPLICATION4个BUS都逐一EE集群成员处E集群成员处理请求。对于正在运行应用程序的用户来说,这一变化是透明的,即用户感觉不到这一变化对应用程序造成的影响。CEI在WPS服务器的集群运行环境中,CEI集群的一个正在处理请求的成员异常终止,另一个处于启动状态的CEI集群成员将负责继续处理请求。如果将异常终止的CEI集群成员重新启动,两个处于启动状态的集群成员将协BPC在PS服务器的集群运行环境中,PC常终止,另一个处于启动状态的PC集群成员将负责继续处理请求。如果将异常终止的PC集群成员重新启动,两个处于启动状态的集群成员将协同工作共同处理请求。对于正在运行应用程序的用户来说,这一变化是透明的,即用户感觉不到这一变化对应用程序造成的影响。在WPS服务器的集群运行环境中,用户应用程序集群的一个正在处理请求WPSWPS服务器里有一组系统应用程序如BPCcontainer,HTMcontainer等。如果这WPSBPC在WPS服务器运行过程中WPSBPCcontainerBPEL应用程异常终止)和相应的解决方法。解决的方法通常是重新启动WPSBPCWPSHTM在WPS服务器运行过程中WPSHTMcontainer异常终止,导致BPELHTM应用程序运行异常,服务器的SystemOut.log将给出问题的原因(WPSHTMcontainer异常终止)WPSHTMcontainer,重新运行应用程序,此时应用程序将恢复正常运行。WPSWPSWPSBUS(BUSBPC,CEI,SCASYSTEM,SCAAPPLICATION4个BUS)ME异常终止,导致使用这个BUS的应用程序运行异常,服务器的SystemOut.log失败管WPS的控制台提供了对失败管理的界面,通过控制台,用户可以查询,删除,重新提交失败,也可以在修改业务数据以后重新提交失败。失败处打开失败管理器页面,选取集成应用程序>失败管理器,将进入管理界面,右侧会显示出失败的总数。点击获取所有失败。 的提交,删除等操作,可以选择一组失败进行批处理操作。WPSV62支持对四种失败类型的管理,详细类型可参考“2.4异常流程SCA失败点击一条SCA失败查看详细信息除了失败的共同属性外,SCA失 查看SCA失败的业务数据:在失败详细信息里,点击编辑业务数据,可以查看到失败的业务数据的组成以及数据内容。修改失败的业务数据后重新提交:查看失败相关的业务数据信息的JMS失败点击一条JMS失败查看详细信息,除了失败的共同属性外,JMS失败包含的一些特殊属性如下图所示:对JMS失败有“重新提交”和“删除”两个操作BPC失败点击一条BPC失败查看详细信息,BPC失败包含的“流程实例名”查看BPC失败的业务数据:在失败详细信息里,点击编辑业务数据,可以查看到失败的业务数据的组成以及数据内容。同时,也可以修BFMHold失败点击一条BFMHold失败查看详细信息,除了失败的共同属性外BFMHold失败包含的一些特殊属性如下图所示失败查还可以组合条件来查询特定。以SCA失败为例点击搜索失败进入查询页选选 类型为SCA,在“模块”中输入查询条件在数据库优化和日 (ProblemManagementReport,PMR)的同时将这些信息一并提交给IBM的技术支持工程师,他们将协注:关于提交PMR的信息,请参阅应急处理流程部分的“联系IBM技术支I/ODB2CPU6-10志放在与表空间的磁盘,以避免关键数据库组件之间的I/O争用。如果数据库运行在AIX或Linux系统上,可以通过运行如下命令获取信息并进一步分析是否发生I/O资源争夺的情况:iostats160>在生成的iostat.txt%-iowait。通常,对于一个运行50%。也可以通过运行下面令得到CPU使用情况的相关信息以判定瓶颈是否为系:vmstat160>vmstat.txtcpu的那列,看是否有“wa”以进一步执行db2levelDB2DB2的db2diag.logdb2diag.log文本日志文件中包含详细的诊断信息,供数据库和系统管理员使用的志文件为管理通知日志。DB2管理员可以通过分析该日志文件确定性能diaglevel4db2updatedbmcfgusingDIAGLEVEL关于使用db2diag分析db2diag.log文件的内容,请参阅DB2V9信息中心DB2相关信息:db2"getsnapshotfordatabasemanager"db2getsnapshotfordatabaseonBPEDB"db2"getdbcfgforBPEDB"db2"listtablespacesshowdb2"getsnapshotfortablesondb2"getsnapshotforbufferpoolsonBPEDB”db2"getsnapshotforlocksonBPEDBdb2getdbmDB2数据库管理器为例,介绍通过对快照信息进行分析并调整相关db2"getsnapshotfordatabaseHighwatermarkforagentsregistered=7Highwatermarkforagentswaitingforatoken=0Agentsregistered=7Agentswaitingforatoken=0Idleagents=5Agentsassignedfrompool=158AgentscreatedfromemptyPool=7Agentsstolenfromanotherapplication=0Highwatermarkforcoordinatingagents=7Maxagentsoverflow=0Agentstoken,4.DB2_MMAP_WRITE参数如果在文件系统上启用了concurrentI/O(CIO)或者directI/O(DIO)果设置了这个参数,就会开启extraLOB的锁定从而导致性能的下降。针对业务流程编排器数据库的性能问题,在已经启用了 .ibm.task.*=all 对版本6.0:6.1和6.2然后重现问题并收集在下面路径中生成的日志、和FFDC文件db2pddb2pdDB2内存集中的快速即时信息,对于Thedb2pd通常,在诊断BPEDB - db2pd-dbBPEDB-返回动态执行SQLdb2pd-dbBPEDB-locksshowlocks-file结果输出到名为lock.txt的文件中db2pd-dbBPEDB-db2pd-dbsample-lockswaitshow
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年职业健康与安全防护技能考核
- 2025下半年安徽合肥市人力资源服务有限公司社会招聘5人笔试历年备考题库附带答案详解
- 2026年法律顾问合同审查与法律风险评估测试
- 实验室安全督导、考核与激励制度
- 2026年新能源技术与应用测试题
- 2026年心理咨询师考试预测模拟试题集
- 2026年环境监测与保护技术应用能力测试题
- 2026年营养师资格认证考试预测模拟题
- 2026年影视编导版权法及行业伦理考题分析
- 安全生产责任事故倒查制度
- 园林苗木的种实生产
- 【网络谣言的治理路径探析(含问卷)14000字(论文)】
- 2024年新安全生产法培训课件
- 卷闸门合同书
- 煤矿运输知识课件
- (全册完整版)人教版五年级数学上册100道口算题
- 人口信息查询申请表(表格)
- 一年级上册数学期末质量分析报告
- 一点一策模板课件
- 2023年冲刺-副主任医师(副高)-学校卫生与儿少卫生(副高)笔试题库3含答案
- 看图猜成语(有趣又好玩PPT版)
评论
0/150
提交评论