我有一个Java EE应用程序,它驻留在多个站点的多个服务器上。
应用程序的每个实例都在本地生成日志。
Java EE应用程序还通过SOAP / HTTP与IBM Mainframe CICS应用程序通信。
这些CICS应用程序在多个站点上的多个主机LPARS上的多个CICS区域中执行。
与Java EE应用程序类似,CICS应用程序在本地生成日志。
尝试解决问题是非常耗时的。这需要支持人员必须手动登录到UNIX服务器和/或大型机LPARS,以跟踪特定问题的所有相关日志。
我们正在研究的一个解决方案是创建一个单点,从UNIX和大型机收集所有分布式日志。
我们正在研究的另一个领域是,是否可以将客户端流量驱动到指定的Java EE服务器和IBM Mainframe LAPS,直到特定的应用程序服务器节点和单个IBM CICS区域。
我们只想对“合成”客户端调用执行此操作,例如我们的支持人员发出的呼叫,而不是“真正的”客户流量。
这可能吗?
例如,假设我们有10台UNIX服务器分布在两个地理站点上,如下所示: -
Geo One: UNIX_1, UNIX_3, UNIX_5, UNIX_7, UNIX_9
Geo Two: UNIX_2, UNIX_4, UNIX_6, UNIX_8, UNIX_0
以下两个地理站点的四个IBM Mainframe lpars: -
Geo One: lpar_a, lpar_c
Geo Two: lpar_b, lpar_d
每个lpar有8个cics区域
cicsa_1, cicsa_2... cicsa_8
cicsb_1, cicsb_2... cicsb_8
cicsc_1, cicsc_2... cicsc_8
cicsd_1, cicsd_2... cicsd_8
我们希望为
的合成流量定位单一路线unix_5 > lpar_b, > cicsb_6
这样我们就知道在所有平台上查找日志输出的位置
更新 - 0001
“合成流量”是指我们的支持人员会拨打客户电话给我们的后端API,而不是“真正的”前端用户。
如果我们的支持人员可以指定这些合成调用遍历的确切路由,他们就会确切知道每一步要搜索的日志文件。
这些日志文件非常大10 MB,其中有很多
例如,我们的一个应用程序在64个UNIX物理服务器上运行,分为两个地理位置。每个UNIX服务器承载多个应用服务器节点,每个节点产生多个日志文件,每个日志文件都是10MB +。日志文件翻转,因此日志输出可能会很快丢失。答案 0 :(得分:1)
我们正在研究的一个解决方案是创建一个单点 从UNIX和大型机收集所有分布式日志。
我相信将所有日志收集到一个点是可行的方法。当日志文件翻转时,您可以将它们SFTP到您的单点作为滚动过程的一部分。或者使用NFS挂载来复制它们。
我认为你可以让你的综合交通解决方案有效,但我不确定它能完成什么。
您可以将Java应用程序发送到合成URL,该URL由DNS映射到包含合成WEBSERVICE定义,合成PIPELINE定义和合成URIMAP定义的单个CICS区域,该合成URIMAP定义又映射到合成事务,即定义为在本地运行。定义的本地部分应使其不会被路由到CICSPlex中的另一个CICS区域。
为了获得合成URIMAP,您必须通过IBM工具(DFHWS2LS或DFHLS2WS)运行WSDL,并使用URI控制卡指示您的合成URL。您还可以使用TRANSACTION控制卡指向定义为在本地运行的综合事务。
我认为这严重扭曲了CICS定义,使其几乎与您的非合成环境相似 - 并且它提供了它可以工作,我不是CICS系统程序员,您可能会阅读并得出结论我的理智是有问题的。另一方面,你的审计员可能只是在盘子上问我的头。
需要所有额外定义(IMHO)来破坏CICSPlex的功能,即负载平衡传入请求,将它们发送到最能为其提供服务的CICS区域。您需要某些请求转到特定区域,从而缩短为您完成的所有负载平衡。