数据源配置,该tomcat怎么配置数据源处理

如何配置报表特定数据源 (Management Studio)_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何配置报表特定数据源 (Management Studio)
不能为共享数据源配置连接字符串或凭据。您需要在对象资源管理器中导航到该共享数据源来配置凭据处于选中状态,则说明打开的报表使用共享数据源进行数据源连接。在此对话框中。有关配置凭据的详细信息
采纳率:95%
为您推荐:
其他类似问题
您可能关注的内容
数据源的相关知识
换一换
回答问题,赢新手礼包温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(/itguozijian)
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&!---order代表加载顺序---&&&&property&name="order"&value="1"&/&&&&&&!---&ignoreUnresolvablePlaceholders代表加载顺序---&&&&property&name="ignoreUnresolvablePlaceholders"&value="true"&/&&&&&&&!---location指的是包含一个properties文件---&&&&property&name="location"&&&&&&!---location指的是包含多个properties文件---&&&&&&&&&&property&name="&locations"&&&实例:文件:Xml代码&&?xml&version="1.0"&encoding="UTF-8"?&&!DOCTYPE&beans&PUBLIC&"-//SPRING//DTD&BEAN//EN"&"http://www.springframework.org/dtd/spring-beans.dtd"&&&&&&beans&&&&&&&&&&bean&id="propertyConfigurer"&&&&&&&&class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&&&&&&&&&&&&&&&&property&name="location"&&&&&&&&&&&&&&&&&&&&&&&value&classpath:com/starxing/test/jdbc.properties&/value&&&&&&&&&/property&&&&&&&&&!--&使用locations属性定义多个配置文件&&&&&&&&&&&&&&&property&name="locations"&&&&&&&&&&&&&&&&&&&&&&&&&&&&list&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&value&classpath:&log.properties&/value&&&&&&&&&&&&&&&&&&&Xml代码&&&&&value&classpath:&system.properties&/value&&&&&&&value&classpath:&database.properties&/value&&&&&&&&&&&&&&&&&&/list&&&Xml代码&&&&&&&&&&/property&&&&&&/bean&&&&&&&&bean&id="dataSource"&&&&&&&&class="org.springframework.jdbc.datasource.DriverManagerDataSource"&&&&&&&&&&&&property&name="url"&&&&&&&&&&&&&&&&value&${database.url}&/value&&&&&&/property&&&&&&&&&&&&property&name="driverClassName"&&&&&&value&${database.driver}&/value&&&&&&&&&&&&/property&&&&&&&&&&&&property&name="username"&&&&&&&&&&&&&&&value&${database.user}&/value&&&&&&&&&&&&/property&&&&&&&&&&&&property&name="password"&&&&&&&&&&&&&&value&${database.password}&/value&&&&&&&&&&&&/property&&&&&&&&/bean&&&&/beans&&&database文件:database.driver&=&com.mysql.jdbc.Driver&&database.url=jdbc:mysql://localhost:3306/example&useUnicode=true&characterEncoding=utf8&&database.user&=&root&&database.password&=root&&文件(测试类):Java代码&import&org.springframework.beans.factory.config.PropertyPlaceholderC&&import&org.springframework.beans.factory.xml.XmlBeanF&&import&org.springframework.context.ApplicationC&&import&org.springframework.context.support.ClassPathXmlApplicationC&&import&org.springframework.core.io.FileSystemR&&import&org.springframework.jdbc.datasource.DriverManagerDataS&&public&class&Config&{&&&&&&&&&&&public&static&void&main(String[]&args)&{&&&&&&&&&&&&&&&&XmlBeanFactory&factory&=&new&XmlBeanFactory(new&FileSystemResource("applicationContext.xml"));&&&&&&&&&&&&&&&&//&如果要在BeanFactory中使用,bean&factory&post-processor必须手动运行:&&&&&&&&&&&&PropertyPlaceholderConfigurer&cfg&=&new&PropertyPlaceholderConfigurer();&&&&&&&&&&&&&&cfg.setLocation(new&FileSystemResource("database.properties"));&&&&&&&&&&&&&&cfg.postProcessBeanFactory(factory);&&&&&&&&&&&&&&DriverManagerDataSource&dataSource&=&(DriverManagerDataSource)&factory.getBean("dataSource");&&&&&&&&&&&&&&System.out.println(dataSource.getDriverClassName());&&&&&&&&&&&&&&//&注意,ApplicationContext能够自动辨认和应用在其上部署的实现了BeanFactoryPostProcessor的bean。这就意味着,当使用ApplicationContext的时候应用PropertyPlaceholderConfigurer会非常的方便。由于这个原因,建议想要使用这个或者其他bean&&&&&&&&//&factory&postprocessor的用户使用ApplicationContext代替BeanFactroy。&&&&&&&&&&&&&&ApplicationContext&context&=&new&ClassPathXmlApplicationContext("&applicationContext.xml&");&&&&&&&&&&&&&DriverManagerDataSource&dataSource2&=&(DriverManagerDataSource)&context.getBean("dataSource");&&&&&&&&&&&&&System.out.println(dataSource2.getDriverClassName());&&&&&&&&&&}&&} &
阅读(4061)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'如何把dataSource中的数据库配置参数放入database.properties中管理',
blogAbstract:'& &&如何把dataSource中的数据库配置参数放入database.properties中管理& & & 在软件开发中,因为我们会涉及到很多地方用到相关的数据库信息配置,还有一些定制的一些参数信息。这些有时候因为不在一个地方,但都是在一个地方使用,这就给我们带来了很多不便。今天我想给大家介绍的这个类大家也许听过,也许现在的项目也正在使用,现在我总结整理了一下。希望给那些还在迷茫的菜农们一些帮助,也可以给那些快要忘记的老菜农们一些小小的回忆机会。',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:6,
publishTime:7,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(/itguozijian)',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}如何在spring框架中解决多数据源的问题_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何在spring框架中解决多数据源的问题
我有更好的答案
我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往 在 spring 和 hibernate 框架中总是配置一个数据源在 我们的项目中遇到这样一个问题:如何让 sessionFactory 在执 行数据持久化的时候,更准确说是实例变量, sessionFactory 在整个项目中只有一 个对象.springframework,通过它来动态切换数据源 。同时在配置文件中将sessionFactory的dataSource属性由原来的某个具体的dataSource改为MultiDataSource,根据客户的需求能够动态切换不同的数据源,同时,我们又希望使用 dataSource 的 sessionFactory 根本就感觉不到这样的变 化。 Decorator 模式就正是解决这个问题的设计模式。首先写一个 Decorator 类,我取名叫 mons。当我们使用 Decorator 的时候与原类完全一样,当 Decorator 的某些功能却已经修改为了我们需要修改的功 能。如图:对 比原Decorator 模式,我们在使用 spring 框架 的时候,更不可能对它们一 个个地修改以实现动态分配数据源的功能。然后 sessionFactory 根据客户的 每次请求,将dataSource 属性设置成不同的数据源,以到达切换数据源的目的。但 是,我很快发现一个问题:当多用户同时并发访问数据库的时候会出现资源争用的问题,但在这里我们可以将这个抽象类用接口来代替,即 DataSource 接口,而 ConcreteComponent 就是那些 DataSource 的实现类。如果 sessionFactory 指向的 dataSource 可以根据客户的 需求去连接客户所需要的真正的数据源,即提供动态切换数据源的功能,那么问题就解决了,即 spring 在启动的时候.dbcp.BasicDataSource ,对象的所有属性,使 用 GoF 设计模式中的 Decorator 模式(装饰者模式)应当是我们可以选择的最佳方案。什 么是“ Decorator 模式”?简单点儿说就是当我们需要修改原有的功能,但我们又不愿直接去修改原有的代码时,设计一个 Decorator 套 在原有代码外面,比如不同的数据库: Oracle ?我们能不能在 spring 的框架下通过少量修改得到解决?是否有什么设计模式可以利用 呢?
问题的分析我 首先想到在 spring 的 applicationContext 中配置所有的 dataSource ,我们 的 DAO 在访问 sessionFactory 的时候都不得不在多个数据源中不断切换,问题就出现了,它的实例变量 dataSource 也就只有一个,就如同一个静态变量一般。如果不同的用户都不断地去修改 dataSource 的值、 SQL Server 、 MySQL 等。这都是“单例模式”惹的祸。众所周知,也可能是不同的数据源:比如 apache
提供的 org, 如 BasicDataSource ,因此它长得和具 体的 Component 类一样,也就是说我们在使用 Decorator 的时候就如同在使用 ConcreteComponentA 或者 ConcreteComponentB 一样,甚至那些使用 ConcreteComponentA 或者 ConcreteComponentB 的客 户程序都不知道它们用的类已经改为了 Decorator ,但是 Decorator 已经对具体的 Component 类的部分方法进行了修改,执 行这些方法的结果已经不同了。(二)
设计 MultiDataSource 类现 在回到我们的问题。 Decorator 与具体的 Component 类都是继承的 AbstractComponent ,在 beanFactory 中注册的 bean 基本上都是采用单例模式。 Decorator 模式的结构如图。我 们本来需要修改图中所有具体的 Component 类的一些功能,但却并不是去直接修改它们的代码,而是在它们的外面增加一 个 Decorator 。那么我们怎么做呢?去修改那些我们要使用 的 dataSource 源码吗?这显然不是一个好的方案,我们希望我们的修改与原dataSource 代码是分离的.mons.dbcp。根据以上的分析,这些 bean 就装载到内存中.BasicDataSource 、 spring 提供的 org.springframework.jndi。 MultiDataSource 封装了具体的 dataSource,并实现了数据源动态切换: java 代码 public
MultiDataSource
implements
DataSource {
DataSource dataSource =
MultiDataSource(DataSource dataSource){
this .dataSource = dataS
Connection getConnection()
SQLException {
getDataSource().getConnection();
//其它DataSource接口应当实现的方法
DataSource getDataSource(){
this .dataS
setDataSource(DataSource dataSource) {
this .dataSource = dataS
客 户在发出请求的时候,将dataSourceName放到request中,然后把request中的数据源名通过调用 newMultiDataSource(dataSource) 时可以告诉 MultiDataSource 客户需要的数据源,就可以实现动态切换数 据源了。但细心的朋友会发现这在单例的情况下就是问题的,因为 MultiDataSource 在系统中只有一个对象,它的实例变 量 dataSource 也只有一个,就如同一个静态变量一般。正因为如此, 单例模式让许多设计模式都不得不需要更改,这将在我的《“单例”更改了我 们的设计模式》中详细讨论。那么,我们在单例模式下如何设计呢?(三)
单例模式下的 MultiDataSource在 单例模式下,由于我们在每次调用 MultiDataSource 的方法的时候, dataSource 都可能是不同的,所以我们不能 将 dataSource 放在实例变量 dataSource 中,最简单的方式就是在方法 getDataSource() 中增加参数,告 诉 MultiDataSource 我到底调用的是哪个 dataSource :java 代码public
DataSource getDataSource(String dataSourceName){
log.debug( &dataSourceName:& +dataSourceName);
if (dataSourceName== null ||dataSourceName.equals( && )){
this .dataS
(DataSource) this .applicationContext.getBean(dataSourceName);
} catch (NoSuchBeanDefinitionException ex){
DaoException( &There is not the dataSource
值得一提的是,我需要的数据源已经都在spring 的配置文件中注册, dataSourceName 就是其对应的 id 。xml 代码& bean
id = &dataSource1&
class = &mons.dbcp.BasicDataSource& &
& property
name = &driverClassName& &
& value & oracle.jdbc.driver.OracleDriver value &
property &
id = &dataSource2&
class = &mons.dbcp.BasicDataSource& &
& property
name = &driverClassName& &
& value & oracle.jdbc.driver.OracleDriver value &
property &
为了得到spring 的 ApplicationContext , MultiDataSource 类必须实现接口org.springframework.context.ApplicationContextAware ,并且实现方法:java 代码private
ApplicationContext applicationContext =
setApplicationContext(ApplicationContext applicationContext)
BeansException {
this .applicationContext = applicationC
如此这样,我就可以通过this . applicationContext .getBean(dataSourceName) 得到 dataSource 了。(四)
通过线程传递 dataSourceName查 看以上设计, MultiDataSource 依然无法运行,因为用户在发出请求时,他需要连接什么数据库,其数据源名是放在 request 中的, 要将 request 中的数据源名传给 MultiDataSource ,需要经过 BUS 和 DAO ,也就是说为了把数据源名传 给 MultiDataSource , BUS 和 DAO 的所有方法都要增加 dataSourceName 的参数,这是我们不愿看到的。写一个 类,通过线程的方式跳过 BUS 和 DAO 直接传递给 MultiDataSource 是一个不错的设计:java 代码public
SpObserver {
ThreadLocal local =
ThreadLocal();
putSp(String sp) {
local.set(sp);
String getSp() {
(String)local.get();
做一个filter ,每次客户发出请求的时候就调用 SpObserver.petSp ( dataSourceName ) ,将 request 中的dataSourceName 传递给 SpObserver 对象。 最后修改 MultiDataSource 的方法 getDataSource() :java 代码public
DataSource getDataSource(){
String sp = SpObserver.getSp();
getDataSource(sp);
完整的MultiDataSource 代码在附件中。(五)
动态添加数据源通 过以上方案,我们解决了动态分配数据源的问题,但你可能提出疑问:方案中的数据源都是配置在 spring 的 ApplicationContext 中,如果我在程序运行过程中动态添加数据源怎么办?这确实是一个问题,而且在我们的项目中也确实遇 到。 spring 的 ApplicationContext 是在项目启动的时候加载的。加载以后,我们如何动态地加载新的 bean 到 ApplicationContext 中呢?我想到如果用 spring 自己的方法解决这个问题就好了。所幸的是,在查看 spring 的源代码后,我找到了这样的代码,编写了 DynamicLoadBean 类,只要 调用loadBean() 方法,就可以将某个或某 几个配置文件中的 bean 加载到 ApplicationContext 中(见附件)。不通过配置文件直接加载对象,在spring 的源码中也 有,感兴趣的朋友可以自己研究。(六)
在 spring 中配置在完成了所有这些设计以后,我最后再唠叨一句。我们应当在 spring 中做如下配置:xml 代码& bean
id = &dynamicLoadBean&
class = &com.htxx.service.dao.DynamicLoadBean& & bean &
id = &dataSource&
class = &com.htxx.service.dao.MultiDataSource& &
& property
name = &dataSource& &
bean = &dataSource1&
property &
id = &sessionFactory&
class = &org.springframework.orm.hibernate3.LocalSessionFactoryBean& &
& property
name = &dataSource& &
bean = &dataSource&
property &
其中dataSource 属性实际上更准确地说应当是 defaultDataSource ,即 spring 启动时以及在客户没有指定数据源时应当指定的默认数据源。该方案的优势 以上方案与其它方案相比,它有哪些优势呢?首 先,这个方案完全是在 spring 的框架下解决的,数据源依然配置在 spring 的配置文件中, sessionFactory依然去配置它 的 dataSource 属性,它甚至都不知道 dataSource 的改变。唯一不同的是在真正的 dataSource 与 sessionFactory 之间增加了一个 MultiDataSource 。其 次,实现简单,易于维护。这个方案虽然我说了这么多东西,其实都是分析,真正需要我们写的代码就只有 MultiDataSource 、 SpObserver 两个类。 MultiDataSource 类真正要写的只 有 getDataSource() 和getDataSource(sp) 两个方法,而 SpObserver 类更简单了。实现越简单,出错的可能 就越小,维护性就越高。最 后,这个方案可以使单数据源与多数据源兼容。这个方案完全不影响 BUS 和 DAO 的编写。如果我们的项目在开始之初是单数据源的情况下开发,随着项 目的进行,需要变更为多数据源,则只需要修改 spring 配置,并少量修改 MVC 层以便在请求中写入需要的数据源名,变更就完成了。如果我们的项 目希望改回单数据源,则只需要简单修改配置文件。这样,为我们的项目将增加更多的弹性。特 别说明:实例中的DynamicLoadBean在web环境下运行会出错,需要将类中AbstractApplicationContext改为 org.springframework.context.ConfigurableApplicationContext。。问题的解决(一)
采用 Decorator 设计模式要 解决这个问题,我的思路锁定在了这个 dataSource 上了.jndi.JndiObjectFactoryBean 等,这些类我们不可能修改它们本身, 并且每个 bean 在整个项目中只存在一个对象。正因为只存在一个对象.JndiObjectFactoryBean 等,表现得就如同是个静态变量(实际上“静 态”与“单例”往往是非常相似的两个东西,我们常常用“静态”来实现“单例”)。拿我们的问题来说、 spring 提供的 org、JndiObjectFactoryBean 等,必然 会出现多用户争用一个变量的问题,对系统产生隐患。通过以上的分析,解决多数据源访问问题的关键,就集中在 sessionFactory 在执行数据持久化的时候,能够通过某段代码去根据客户的需要动态切换数据源,并解决资源争用的问题,我们需要对 dataSource 的功能进行变更,但又不希望修改 dataSource 中的任何代码。我这里指 的 dataSource 是所有实现 javax.sql.DataSource 接口的类,我们常用的包括 apache
提供的 org.apache,由于项目的需要,因而 sessionFactory 的dataSource 属性总是指向这个 数据源并且恒定不变,所有 DAO 在使用 sessionFactory 的时候都是通过这个数据源访问数据库。但是现在。这些 dataSource 可能是各种 不同类型的, AbstractComponent 是一个抽象类
采纳率:95%
来自团队:
为您推荐:
其他类似问题
spring框架的相关知识
换一换
回答问题,赢新手礼包SMS --> 注册/取消注册来注册或取消注册用于间隔监视的 SMS 资源。
在创建关系语句时使用类和对象标识来标识资源。当按住 Shift + Control 键不放然后再按下 F12 键
时,资源的“类”和“对象标识”将显示在资源的属性页上。属性页面的 ResourceDebugAttribute 选项卡包含属性行 cid(对象的类标识)和 id(对象的对象标识)。
可以通过修改阈值和添加关系语句,执行更多的配置以创建其它概要文件和资源指定。其它概要文件可以提供专用资源级别的阈值管理。使用先前提到的相同的过程。
要为数据库存储器组卷创建特殊的 DPE 和 CPE 异常概要文件,请执行以下步骤:
查找组成数据库存储器组的磁盘卷资源,并标识它们的父磁盘设备资源。查找所有已选的磁盘设备资源的对象标识。
复制 SMSSampleIntervalProfiles.sqi 文件。通过复制缺省的概要文件并修改阈值来创建用于异常的数据库概要文件。
通过添加如下资源关系语句,将数据库概要文件分配到所有已选的磁盘设备资源:
BEGIN_SMSINTERVAL_PROFILE(Database, DPE)SMSINTERVAL_OBJECT_RELATION (DKDV, ObjectId)SMSINTERVAL_OBJECT_RELATION (DKDV, ObjectId)SMSINTERVAL_OBJECT_RELATION (DKDV, ObjectId)END_SMSINTERVAL_PROFILE(Database, DPE)
BEGIN_SMSINTERVAL_PROFILE (Database, CPE)SMSINTERVAL_OBJECT_RELATION (DKDV, ObjectId)SMSINTERVAL_OBJECT_RELATION (DKDV, ObjectId)SMSINTERVAL_OBJECT_RELATION (DKDV, ObjectId)END_SMSINTERVAL_PROFILE(Database, CPE)
创建 SMSIntervalProfile.sqi 文件并按照前述步骤中的概述运行“查询分析器”。
SMS 时间间隔度量由 OS/390 按照已调度的时间间隔进行检查。性能概要文件(DPE 或 CPE)的时间间隔由 OS/390 主机决定。磁盘空间异常概要文件(DSE)的时间间隔可以在 BEGIN_SMSINTERVAL_PROFILE 宏的可选的第三和第四个参数中指定。
第三个参数指定时间间隔(以分钟为单位)。
第四个参数指定应该检查概要文件的时间(超过整点的分钟数)。例如,要每小时在整点过 30 分的时候检查概要文件,请指定时间间隔为 60 分钟,校准时间为 30 分钟。如果不指定,则时间间隔为 30 分钟,而校准时间为 0 分钟(以小时为单位每隔 30 分钟,即每小时过 30 分钟后)。
以下部分说明了配置 Tivoli Business Systems Manager 与 Data Facility Systems Managed Storage Hierarchal Storage Manager(DFSMShsm)过程(作为异常源)集成的必需步骤,以启用对 DFSMShsm 资源的监视和控制。
为了使 Tivoli Business Systems Manager 和 DFSMShsm 进程接口,在进行以下配置之前先安装 HSM 监视器/调谐器的 PTF UW80013:
为使 Tivoli Business Systems Manager 能接收来自 HSM 监视器/调谐器的警告,必须修改 HSM 监视器/调谐器启动任务(GFTJHMT)。
将 HILEV.SGTMMODS 模块库添加到 STEPLIB DD 并置中。在 STEPLIB 并置中包含 REXX 运行时库或 REXX 备用库。
将 HILEV.SGTMEXEC EXEC 库添加到 SYSEXEC DD 并置中。
如果正在单个的映象上运行 OS/390 组件的多个副本,则编码与 Tivoli Business Systems Manager 首选实例相对应的 ACC1IDxx DD DUMMY 卡。
HMT 工作站的信息,请参考 DFSMS Optimizer: The New HSM Monitor/Tuner。
Tivoli Business Systems Manager 通过从 HMT 安装目录运行 runmontuner.bat 文件来启动 HMT 工作站。
HMT 工作站组件的缺省安装目录如下:
c:\Program Files\IBM\DFSMSOPT V1.2.0
要运行 HSM 监视器/调谐器工作站,您必须更新环境路径变量,可以通过编辑 Autoexec.bat 文件或更新系统的“控制面板”中的 PATH 变量来实现。
以下示例假设您使用缺省安装目录:
PATH=C:\Program Files\IBM\DFSMSOPT V1.2.0;
如果存在一个在 HSM 监视器/调谐器地址空间中使用的 MON9999 自动例程,必须修改它以运行控制台。
传递到 MON9999 例程的参数必须传给控制台。
以下 REXX 代码可以插入到 MON9999 例程以运行控制台。
ARG ARG1, ARG2, ARG3
RC = GTMHMTRX(ARG1, ARG2, ARG3)
在这种情况下,HILEV.SGTMEXEC 库应该在包含了 MON9999 例程的库的 SYSEXEC 并置中。
以下部分说明了对 Tivoli Business Systems Manager 的 OS/390 和 Windows 操作系统组件使用扩展远程复制存储事件的发现过程和事件流所需的步骤。
要配置 Tivoli Business Systems Manager OS/390 组件:
安装适当的 SMP/E 维护包,该维护包位于程序目录中。
确认以下存储模块位于 Tivoli Business Systems Manager OS/390 SGTMSAMP 库中。下表列出了为 XRC 发现配置 OS/390 组件所使用的存储模块。
表 71. 存储模块
批处理发现的样本 JCL 成员
通过复制和修改样本 JCL 程序来准备批处理发现 JCL 成员。有关更多指示信息,请参考样本 JCL 程序中的 Comments 一节。
GTMAOPE0 实用程序和 ASIMVSIPListenerSvc 服务用于扩展远程复制(XRC)存储数据源的批量发现。
在运行 GTMAOPE0 实用程序之前,必须在数据库服务器上设置 ASIMVSIPListenerSvc 服务的 ValidClient 条目,然后重新启动该服务。
有关配置 ASIMVSIPListenerSvc 服务的详细信息,请参阅和。
以下 SQL Server 作业用于支持和发现扩展远程复制存储数据资源:
XRC 会话名称发现装入
XRC 会话名称发现处理
XRC 会话对发现装入
XRC 会话对发现处理
关于这些作业的配置的详细信息,请参阅。
使用以下部分配置 ASG-TMON for CICS,以与 Tivoli Business Systems Manager 一起使用。
表 72. ASG-TMON for CICS 安装概述
使用以下步骤配置 ASG-TMON for CICS。
在 ASG-TMON for CICS 消息警告屏幕(选项 10.3.1)上,添加以下消息警告定义。
MessageSev: TMON259* Z
MessageSev: TMON26* Z该消息警告定义使 ASG-TMON for CICS 将智能目标(Smart
Target)警告消息定向到 z/OS 系统控制台。
指定严重性 Z 将导致 ASG-TMON for CICS 将警告消息发送至 z/OS 系统控制台,保持 ASG-TMON for CICS 提供的缺省严重性级别。要覆盖特定警告消息的缺省严重性级别,请指定严重性为 A、B 或 C(这等同于 1、2 或 3,但将消息发送至 z/OS 系统控制台)。关于使用 ASG-TMON for CICS“消息警告”屏幕的详细信息,请参考 ASG-TMON for CICS Reference Manual。
可从 Tivoli Business Systems Manager 监视排除某条 ASG-TMON for CICS 消息。要达到此目的,在 ASG-TMON for CICS“消息警告”屏幕(选项 10.3.1)上,为所有要排除的消息代码添加额外的消息警告定义。为这些定义指定空的(或 1、2 或 3)严重性。
请注意,这些是中定义的 TMON26* 和 TMON259* 定义以外的定义。
Tivoli Business Systems Manager for ASG-TMON for CICS 在 NetView for OS/390 启动任务中运行。此部分详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
使用以下部分配置 ASG-TMON for DB2,以与 Tivoli Business Systems Manager 一起使用。
表 73. ASG-TMON for DB2 安装概述
由于 Tivoli Business Systems Manager for ASG-TMON for DB2 数据源要求 Tivoli Business Systems Manager for DB2 数据源可操作,所以需要对 Tivoli Business Systems Manager for DB2 执行所有配置步骤。请参阅 。
以下部分提供有关配置 ASG-TMON for DB2 的信息。
对于每个传递给 Tivoli Business Systems Manager 的 ASG-TMON for DB2 缺省异常,请执行下列操作:
激活相关的异常集。要达到此目的,请执行以下操作:
在 ASG-TMON for DB2“异常定义”窗口(选项 3.1),选择异常记录类型,然后选择特定的异常集。
输入 act 以激活特定异常集。
插入 DB2 名称,作为异常消息文本中的第一个标记。要达到此目的,请执行以下操作:
输入 e,编辑异常集。Exception Definition Detail 窗口打开。
选择 EDIT EXCEPTION TEXT SUBSTITUTION FIELDS 命令。Exception Text Substitution Data 窗口打开。
输入 DB2 名称作为第一个文本替换字段中的名称。
按 F3,返回到“异常定义详细信息”窗口。
指定 WTO(写到操作程序),作为检测到异常时要执行的操作。要达到此目的,请执行以下操作:
选择 SPECIFY ACTIONS TAKEN WHEN EXCEPTION DETECTED 命令。打开“异常操作定义”窗口。
在 ACTIONS TAKEN WHEN EXCEPTION IS DETECTED 下,指定:
STOP AFTER
WTO EXCEPTION TEXT MESSAGE TO SYSTEM LOG :
按 F3,返回到“异常定义”窗口。
在 EXCEPTION TEXT 字段中,输入 @@@@(一个
由 4 个 @ 符号组成的字符串),后跟一个空格,然后是现有文本。这导致 ASG-TMON for DB2 插入 DB2 子系统名称,作为 WTO 消息文本中的第一个标记,使 Tivoli Business Systems Manager 能够将事件路由到适当的 Tivoli Business Systems Manager DB2 资源。
自动启动异常监视。要达到此目的,在 AUTOSTART 字段输入 Y。
请不要更改 TEXT MESSAGE # 字段的值。NetView 自动表基于该 TMDBnnnnns 值来检测 ASG-TMON for DB2 异常。如果更改此值,异常将不会传递到 Tivoli Business Systems Manager 或有可能被解释为不同类型的事件。
Tivoli Business Systems Manager for ASG-TMON for DB2 在 NetView for OS/390 启动任务中运行。此部分详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
使用以下部分配置 ASG-TMON for MVS,以与 Tivoli Business Systems Manager 一起使用:
表 74. ASG-TMON for MVS 安装概述
创建专用于 Tivoli Business Systems Manager for ASG-TMON for MVS 的 ASG-TMON for MVS 用户标识。将此用户标识创建为具有有限的(只读)访问权。此用户标识只需要访问 ASG-TMON for MVS 主菜单和“异常活动显示”窗口。
关于创建 ASG-TMON for MVS 用户标识的详细信息,请参考 ASG-TMON for MVS System Administrators Guide。
查看 SGTMSAMP 成员 IHSZTMIN 中的参数值,并按要求修改。
以下参数没有缺省值,要成功监视 ASG-TMON for MVS,必须为 Tivoli Business Systems Manager 指定这些参数:
IHSZTM.USERID
IHSZTM.PASSWORD下表提供对所有参数的描述:
IHSZTM.APPLID
ASG-TMON for MVS 的 VTAM 应用程序标识。缺省:TMONMVS
IHSZTM.AUTOTASK
Tivoli Business Systems Manager 用于处理 MVS 事件的 NetView 自动任务标识。
如果更改 Tivoli 提供的缺省值,则需要更改 SGTMSAMP 成员 IHSZTMOP 中相应的自动任务定义的标识。缺省值:IHSZTMA1
IHSZTM.DEBUG. IHSZTMIT
用于诊断目的。必须为 ON 或 OFF。只有在客户支持的指导下才能更改此参数。
缺省值:OFF
IHSZTM.DEBUG. IHSZTMON
用于诊断目的。必须为 ON 或 OFF。只有在客户支持的指导下才能更改此参数。
缺省值:OFF
IHSZTM.GROUPS
“异常活动显示 窗口上的“活动组”字段的值。此字段代表显示在窗口上的活动异常组。
可以使用此参数(和 LEVEL 参数)来限制作为事件传递至 Tivoli Business Systems Manager 的异常消息。
关于此参数允许的值的详细信息,请参考 ASG-TMON for MVS Reference Manual。
缺省值:SWIOAMU
IHSZTM.IHSMSG.DD
仅供内部使用。
缺省值:IHSOUT
IHSZTM.IHSMSG.DISP
仅供内部使用。
缺省值:IMMED
IHSZTM.INIT
复位异常事件标志。
如果设置为 YES,将在 NetView for OS/390 启动时清除所有过去的异常事件,且新事件将发送至
Tivoli Business Systems Manager 控制台,即使已经发送过也是如此。
如果设置为 NO,将不会在 NetView for OS/390 启动时清除过去的异常事件。
如果 IHSZTM.SAVEC 设置为 OFF,IHSZTM.INIT 将始终为 YES。
缺省值:YES
IHSZTM.LEVEL
在“异常活动显示”窗口上的“最低活动级别”字段的值。此字段代表能显示在面板上的最不严重的异常消息的严重性级别。
您可以使用此参数(和 GROUPS 参数)来限制作为事件传递至 Tivoli Business Systems Manager 的异常消息:
传递至 Tivoli Business Systems Manager 的各种严重性级别的异常消息。
仅警告和紧急异常消息传递至 Tivoli Business Systems Manager。
仅紧急异常消息传递至 Tivoli Business Systems Manager。
缺省值:INFO
IHSZTM.LOGMODE
当 Tivoli Business Systems Manager 尝试登录至 ASG-TMON for MVS 时使用的 VTAM logmode
缺省值:D4A32782
IHSZTM.PASSWORD
ASG-TMON for MVS 用户标识的密码。该参数具有潜在的安全性风险:IHSZTMIN 成员包含 ASG-TMON for MVS 用户的用户标识和(未加密的纯文本)密码。要限制此安全性风险,可以执行以下操作:
复查对包含了您存储此成员的数据集的访问权。
限制此 ASG-TMON for MVS 用户标识的访问权。缺省值:无缺省值 - 必须由用户指定。
IHSZTM.SAVEC
保存 NetView 全局变量标志。
如果设置为 ON,NetView for OS/390 全局变量将保存至 NetView 保存/恢复数据集,因此在 NetView 重新启动后仍可用。
如果设置为 OFF,在 NetView for OS/390 每次重新启动后都会清除 NetView for OS/390 全局变量。
另请参阅 IHSZTM.INIT 参数。
缺省值:ON
IHSZTM.TMON
捕获 ASG-TMON for MVS 异常消息标志
如果设置为 YES,Tivoli Business Systems Manager 将监视来自 ASG-TMON
for MVS“异常活动显示”窗口的异常消息。
如果设置为 NO,将不会监视这些异常消息。
缺省值:YES
IHSZTM.USERID
Tivoli Business
Systems Manager 用于登录到 ASG-TMON for MVS 的 ASG-TMON for MVS 用户标识。
缺省值:无缺省值 - 必须由用户指定。
IHSZTM.WAITTIME
“异常活动显示”窗口执行捕获的时间间隔(以秒计)。
缺省值:60
Tivoli Business Systems Manager for ASG-TMON for MVS 在 NetView for OS/390 启动任务中运行。本节详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
使用以下部分配置 BMC MAINVIEW for CICS,以与 Tivoli Business Systems Manager 一起使用。
表 76. MAINVIEW for CICS 安装概述
使用以下步骤来配置 BMC MAINVIEW for CICS。
配置您的 BMC MAINVIEW for CICS 服务,通过在启动服务时指定 WMSG=WTO 来将这些服务的消息定向到 z/OS 系统控制台。关于在启动监视器时指定关键字的详细信息,请参考 BMC MAINVIEW for CICS 库中的相应文档。
即使已指定 WMSG=WTO,并非所有由 BMC
MAINVIEW for CICS 发出的消息都会发送至 z/OS 系统控制台。因此,有必要创建 SMLXIT 定期日志用户出口例程。请遵循 SGTMSAMP 成员 IHSCMVX1 中的指示信息操作。
Tivoli Business Systems Manager 要求 MAINVIEW 消息文本中有与 BMC MAINVIEW 消息相关的 CICS 区域。要确保这一点,请在 BMC MAINVIEW BBIJNTxx 和 BBIISPxx 成员中使用 TARGET 参数并指定 CICS 区域作业或启动任务名称。关于指定 TARGET 参数的详细信息,请参考 BMC MAINVIEW for CICS 库中的相应文档。
Tivoli Business Systems Manager for MAINVIEW for CICS 在 NetView for OS/390 启动任务中运行。此部分详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
使用以下部分配置 BMC MAINVIEW for DB2,以与 Tivoli Business Systems Manager 一起使用。
表 77. MAINVIEW for DB2 安装概述
由于 Tivoli Business Systems Manager for BMC MAINVIEW for DB2 数据源要求 Tivoli Business Systems Manager for DB2 数据源可操作,所以需要对 Tivoli Business Systems Manager for DB2 执行所有配置步骤。请参阅 。
使用以下步骤来配置 BMC MAINVIEW for DB2。
配置您的 BMC MAINVIEW for DB2 服务,通过在启动服务时指定 WMSG=WTO 来将这些服务的消息定向到 z/OS 系统控制台。例如,当启动 THDQD 服务时,指定
REQ=THDQD WMSG=WTO关于在启动监视器时指定关键字的详细信息,请参考 BMC MAINVIEW for DB2 库中的相应文档。
配置 BMC MAINVIEW for DB2 后台异常取样器服务,以将其消息定向到 z/OS 系统控制台。要执行此操作,请在 BMC MAINVIEW for DB2 DMRBEXxx 成员中指定 BMSGWTO=YES(应用于所有异常取样器)或 WTO=YES(应用于单个异常取样器)。关于更多信息,请参考 BMC MAINVIEW for DB2 库中的相应文档。
Tivoli Business Systems Manager 要求 MAINVIEW 消息文本中有与 BMC MAINVIEW 消息相关的 DB2 区域。要确保这一点,请在 BMC MAINVIEW BBIJNTxx 和 BBIISPxx 成员中使用 TARGET 参数并指定 DB2 子系统名称。关于指定 TARGET 参数的详细信息,请参考 BMC MAINVIEW for DB2 库中的相应文档。
Tivoli Business Systems Manager for MAINVIEW for DB2 在 NetView for OS/390 启动任务中运行。此部分详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
使用以下部分配置 BMC MAINVIEW for OS/390,以与 Tivoli Business Systems Manager 一起使用。
表 78. MAINVIEW for OS/390 安装概述
MAINVIEW,通过在 BBPARM 数据集的 $$INSYS0 成员中插入以下控制语句来将消息定向到z/OS syslog。
LCLAEW=BOTH
关于详细信息,请参考 MainView SYSPROG Services User Guide and Reference。
Tivoli Business Systems Manager for MAINVIEW for OS/390 在 NetView for OS/390 启动任务中运行。本节详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
使用以下部分配置 BMC MAINVIEW for IMS,以与 Tivoli Business Systems Manager 一起使用。
表 79. MAINVIEW for IMS 安装概述
由于 Tivoli Business Systems Manager for BMC MAINVIEW for IMS 数据源要求 Tivoli Business Systems Manager for IMS 数据源可操作,所以需要对 Tivoli Business Systems Manager for IMS 执行所有配置步骤。请参阅 。
使用以下步骤来配置 BMC MAINVIEW for IMS。
配置您的 BMC MAINVIEW for IMS Resource Monitor 和 Workload Monitor 服务,通过在启动服务时指定 WMSG=WTO 来将这些服务的消息定向到 z/OS 系统控制台。例如,当启动 INQTR 服务时,指定:
REQ=INQTR WMSG=WTO关于在启动监视器时指定关键字的详细信息,请参考 BMC MAINVIEW for IMS 库中的相应文档。
Tivoli Business Systems Manager 要求 MAINVIEW 消息文本中有与 BMC MAINVIEW 消息相关的 IMS 区域。要确保这一点,请在 BMC MAINVIEW BBIJNTxx 和 BBIISPxx 成员中使用 TARGET 参数并指定 IMS 控制区域作业或启动任务名称。关于指定 TARGET 参数的详细信息,请参考 BMC MAINVIEW for IMS 库中的相应文档。
Tivoli Business Systems Manager for MAINVIEW for IMS 在 NetView for OS/390 启动任务中运行。此部分详细说明了此启动任务需要的定制。
完成中的所有步骤。
完成所有定制步骤后,必须重新启动 NetView for OS/390。
请使用下列各节集成 WebSphere for OS/390 与 Tivoli Business Systems Manager。
使用以下部分启用从 WebSphere
for OS/390 到 Tivoli Business Systems Manager 的事件流。
为位于 HFS 上的每个 HTTP Server 配置文件(例如,/etc/http.conf 文件)准备一个输入流,以启用 HTTP Server 模板的发现。
请参考 SGTMSAMP 库中的 GTMWSBD JCL 样本。
在 Windows 注册表中配置适当的条目,以在运行 ASIMVSIPListenerSvc 服务的主机上完成处理。
GTMAOPE0 实用程序和 ASIMVSIPListenerSvc 服务用于 WebSphere for OS/390 数据源的批量发现。
在运行 GTMAOPE0 实用程序之前,必须在数据库服务器上设置 ASIMVSIPListenerSvc 服务的 ValidClient 条目,然后重新启动该服务。
有关配置 ASIMVSIPListenerSvc 服务的详细信息,请参阅和。
关于安装与配置分布式数据源的信息,请参阅。
关于 TEC 事件与公共侦听器资源相关联的信息,请参阅。

我要回帖

更多关于 spring 多数据源配置 的文章

 

随机推荐