0

我有一个驻留在多个站点上的多个服务器上的 Java EE 应用程序。

应用程序的每个实例都在本地生成日志。

Java EE 应用程序还通过 SOAP/HTTP 与 IBM Mainframe CICS 应用程序进行通信。

这些 CICS 应用程序在多个站点上的多个大型机 LPAR 上的多个 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 大型机 lpar 在两个两个地理位置如下:-

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 物理服务器上运行,分布在 2 个地理位置。每个 UNIX 服务器托管多个应用服务器节点,每个节点产生多个日志文件,每个日志文件为 10MB+。日志文件会翻转,因此日志输出会很快丢失。

4

1 回答 1

1

我们正在研究的一种解决方案是创建一个从 UNIX 和大型机收集所有分布式日志的单点。

我相信将所有日志收集到一个点是要走的路。当日志文件翻转时,也许您可​​以将它们 SFTP 到您的单点,作为翻转过程的一部分。或者使用 NFS 挂载来复制它们。

认为您可以使您的合成流量解决方案发挥作用,但我不确定它可以完成什么。

您可以让 Java 应用程序发送到合成 URL,该 URL 由 DNS 映射到单个 CICS 区域,其中包含合成 WEBSERVICE 定义、合成 PIPELINE 定义和合成 URIMAP 定义,该定义又映射到定义为运行的合成事务本地。定义的本地部分应该防止它被路由到 CICSPlex 中的另一个 CICS 区域。

为了获得合成 ​​URIMAP,您必须通过 IBM 工具(DFHWS2LS 或 DFHLS2WS)运行 WSDL,并使用指示合成 URL 的 URI 控制卡。您还可以使用 TRANSACTION 控制卡指向定义为在本地运行的合成事务。

我认为这严重扭曲了 CICS 定义,以至于它几乎与您的非综合环境相似——前提是它完全可以工作,我不是 CICS 系统程序员,您的人可能会读到这篇文章并得出结论认为我的理智存在问题。另一方面,您的审计师可能会简单地要求我把头放在盘子上。

需要所有额外的定义(恕我直言)来破坏 CICSPlex 的功能,即负载平衡传入请求,将它们发送到能够最好地为它们提供服务的 CICS 区域。您需要一些请求才能到达特定区域,从而缩短为您完成的所有负载平衡。

于 2015-08-13T03:08:19.920 回答